Podcasts about byeeeeee

  • 31PODCASTS
  • 44EPISODES
  • 36mAVG DURATION
  • 1MONTHLY NEW EPISODE
  • Dec 26, 2024LATEST

POPULARITY

20172018201920202021202220232024


Best podcasts about byeeeeee

Latest podcast episodes about byeeeeee

Women Out Loud
Flashback Episode: Ep. 103: {ADHD Focus} - Lack Of Self-Esteem In Undiagnosed ADHD Women + How A Diagnosis Can Give It Back

Women Out Loud

Play Episode Listen Later Dec 26, 2024 26:54


One of the most common throughlines I see working with ADHD women is the impact that undiagnosed ADHD has on self-esteem and self-worth. Over decades, the struggles, misunderstandings, and constant misdiagnoses can chip away at how we see ourselves.In this throwback episode, I share why undiagnosed or misdiagnosed ADHD is a self-esteem killer—and the incredible shift that happens when you finally get the right diagnosis. Whether you're just starting your ADHD journey or looking to rebuild your confidence, this episode will help you see that change is waiting for you. I'll also take you behind the scenes of my own diagnosis, how it changed everything, and why becoming your own Michelangelo's “David” is not just a metaphor—it's your reality waiting to be sculpted.If you've ever thought, “Why can't I just be normal?” or “Why has everything always felt harder for me?” this episode is your permission slip to change that narrative.Learn:

Hunted Podcast
Bibiddy Bobbidy BYEEEEEE! Celebrity Hunted Revisited | Series 1, Episode 4

Hunted Podcast

Play Episode Listen Later Dec 22, 2024 42:39


It's time to revisit the celebrity series, as back in 2017 seven famous faces tried to stay hidden for 14 days in a fame obsessed country. Could they stay in the shadows and potentially go rough, or would the draw of fame and the high life prove too tempting - would they be Hunted?In the final episode of the series, Made In Chelsea stars Jamie & Spencer are in for an unscripted exit, whilst the Wanted boys Jay & Siva are singing their way to the finish line as fourteen days on the run reaches a dramatic ending. Also this week, we'll share our usual end of series review! See you in 2025 for NEW EPISODES!!! Thanks for listening. All celebrities donated their fees to Stand Up To Cancer - you can donate to the charity if you wish via https://donate.cancerresearchuk.org/stand-up-to-cancer/your-donation and you can Re-watch the series now https://www.channel4.com/programmes/celebrity-huntedDISCLAIMER -- This is a fan made podcast, and the views expressed in it are solely those of us. We have no affiliation with C4 or the production company at all -- Hosted on Acast. See acast.com/privacy for more information.

EdenxJay Unfiltered
We Have To Adopt Our Own Baby!? WTF?

EdenxJay Unfiltered

Play Episode Listen Later Jul 28, 2024 63:21


We're back and it's been waaaaay too long! Life was definitely doing its thing and we're so excited to catch you up on the chapters you missed.  Chapter 1: Baby update and learning we will have to adopt our own child (grab a tissue) Chapter 2: Preciosa is down to its final leg of the tour! Chapter 3: We answer your IG questions about first heartbrakes and how to avoid Uhauling... We missed you so much and we'll see you next week!    Don't forget to follow us @edenxjay and @preciosanight   BYEEEEEE

The Coco Show
Stonewall for Dummies

The Coco Show

Play Episode Listen Later Jul 16, 2024 33:03


WELCOME TO SEASON 3!!! Join  David and I as we breakdown where pride began- the stonewall riots. You can check out all episodes and shop merch at thecocoshow.com Until next time, Stay curious and keep connecting. We will see you  Next tuesday  Byeeeeee

Across The Couch with Kyle and Nicole
The One Where They Went To the Midwest

Across The Couch with Kyle and Nicole

Play Episode Listen Later Jan 20, 2024 57:06


First episode of 2024 LET'S GET INTO IT!!!! We took a trip! Not on a rocket ship but an airplane, to the Michigan to see our girl Bri get married! But first, we tell you about the 24 hours we spent in Chicago, and then all about our travels into Michigan, the wedding, New Years Eve and more! We hope you love it!! And we love you!! K love you BYEEEEEE. Drink Cred: Kyle - Water In an Owala Nicole - Hot Cho Cho from Trader Hoes

His and Her's Podcast
Not my type of date!

His and Her's Podcast

Play Episode Listen Later Nov 1, 2023 61:34


Hey, everyone! Welcome back to another episode! Todays episode will be about the following: Matt Perry, Jada Worthy, Maine Mass shooting, and much more. Have an amazing week and thankyou all so much for tuning in. Byeeeeee

matt perry byeeeeee
The Commercial Break
Direct Buy, BYEEEEEE!

The Commercial Break

Play Episode Listen Later May 1, 2023 49:39


For only $10,000 a month plus $499.99 shipping and handling, you, too, can get unlimited shitty furniture from Direct Buy! Act NOW! Don't call Bryan boss! Octo-mom...where are they now? Jon & Kate Plus 8 Questionable chicken, boxed potatoes, & hamburger helper Darcey & Stacey or the TLC twins? COD, the second worst idea ever TCB watches a Direct Buy Infomercial of years past Become a furniture insider! No need to worry anymore, you can be on the inside! Just a one time payment... Direct Buy: The Second American Revolution No 'Hey Boss' here! A furniture store that feels like home...*Meryl Streep voice* groundbreaking. LINKS: Send us show ideas, comments, questions or concerns by texting us or leaving a voicemail at: 1.855.TCB.8383 Speak to TCB LIVE by calling 775.TCB.LIVE (1.775.822.5483) Tuesday-Thursday 12pm-5pm EST Watch TCB on YouTube Creator: Bryan Green Co-Host: Bryan Green Co-Host: Krissy Hoadley Written By: Bryan Green Exec Producers: Bryan Green & Krissy Hoadley Content Production & Research: Tina Khano YouTube Producer & Editor: Morgan Please Audio Editing: Christina A. Executive Director: Astrid B. Associate Producer: Gustavo Episodic Contribution: Marianne, Diane, Natalie, Will The Champ, Will D** Learn more about your ad choices. Visit podcastchoices.com/adchoices

His and Her's Podcast
Old body Benz

His and Her's Podcast

Play Episode Listen Later Apr 4, 2023 33:40


Hey everyone welcome back! Todays episode we will be discussing our weekend recap plus why women really be getting surgery. Hope you all have a great week. Thanks again for tuning in! You all are very much appreciated. Byeeeeee

body benz byeeeeee
His and Her's Podcast
Back from paradise Pt1

His and Her's Podcast

Play Episode Listen Later Mar 21, 2023 24:18


Hey, everyone! Welcome back to the live with Kamaira and Ashley! Today we will be recapping on the time we were away. Also we will be covering how social media be having society looking crazy when trying the little hacks they be coming up wit and so much more. Have an amazing week and be sure to check out part 2. Byeeeeee

paradise byeeeeee
It's Tanya Time
Tanya sings “Love we Lost” by Armin Van Buuren & R3HAB (ft Simon ward)!!!

It's Tanya Time

Play Episode Listen Later Mar 15, 2023 2:32


Hey guys! I hope you liked it, thanks for everything!!! You can always achieve your dreams, u got this!!! I love you guys so much, have a great and healthy day!!! Byeeeeee!!! --- Support this podcast: https://podcasters.spotify.com/pod/show/its-tanya-time/support

His and Her's Podcast
Society's standards of being masculine

His and Her's Podcast

Play Episode Listen Later Mar 1, 2023 40:26


Hello every one welcome back to the live with Ashley and Kamaira! We hope everyones week is going amazing thus far. Todays episode will be covering various topics that society puts under a microscope wayyyy to often. They just be nit picking at every little thing everyone does. Thankyou all for tuning in. We hope you all enjoy listening and have a great start to your month of March! Byeeeeee

Unprofessional Friends
#23 - We On Some Harry Potter Shit!

Unprofessional Friends

Play Episode Listen Later Feb 17, 2023 59:00


Today we talk about stuff. Like wizards and other cool stuff. BYEEEEEE

I Don't Wanna Hear It
196 – Disc Dives For Dummies: Slayer's Reign In Blood

I Don't Wanna Hear It

Play Episode Listen Later Nov 7, 2022 72:47


I Don't Wanna Hear It Podcast195 – Disc Dives For Dummies: Slayer's Reign In BloodOn this belated Halloween outing, we discuss the ripping masterpiece that is Slayer's Reign In Blood. Make sure you've got your fireproof witch cape because this week we're going to Hell. Byeeeeee.Check out more of our stuff at I Don't Wanna Hear It and join the Patreon, jabroni. I mean, if you want. Don't be weird about it. Oh, and we publish books now at WND Press because we want to be bankrupted by a dying medium.We now have a Big Cartel where you can buy shirts, pins, mugs, and coffee.Also, you should listen to our 2021 Christmas special: A Black Metal Christmas Carol, as well as Mikey's true crime podcast, Wasteland and Shane's psychology podcast, Why We Do What We Do.Aaannnddd... our good buddy Matt Moment is in a great hardcore band called Contact. Check 'em out!Some of our old bands are on Spotify:Absent FriendsWe're Not DeadYears From NowMusical Attribution:Licensed through NEOSounds. License information available upon request.“5 O'Clock Shadow,” “America On the Move,” “Baby You Miss Me,” “Big Fat Gypsy,” “Bubble Up,” “C'est Chaud,” “East River Blues,” “The Gold Rush,” “Gypsy Fiddle Jazz,” “Here Comes That Jazz,” “I Wish I Could Charleston,” “I Told You,” “It Feels Like Love To Me,” “Little Tramp,” “Mornington Crescent,” “No Takeaways.”

The Bike Shed
358: Class Methods

The Bike Shed

Play Episode Listen Later Oct 18, 2022 40:40


Inspired by a Slack thread, Joël invites fellow thoughtbotter Aji Slater on the show to talk about when you should use class methods and when you should avoid them. Are there particular anti-patterns to look out for? How does this fit in with good object-oriented programming? What about Rails? What is an "alternate constructor"? What about service objects? So many questions, and friends: Aji and Joël deliver answers! Backbone.js collections (https://backbonejs.org/#Model-Collections) Query object (https://thoughtbot.com/blog/a-case-for-query-objects-in-rails) Rails is a dialect (https://solnic.codes/2022/02/02/rails-and-its-ruby-dialect/) Meditations on a Class Method (https://thoughtbot.com/blog/meditations-on-a-class-method) Why Ruby Class Methods Resist Refactoring (https://codeclimate.com/blog/why-ruby-class-methods-resist-refactoring/) Transcript: JOËL: Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Joël Quenneville. And today, I'm joined by fellow thoughtboter Aji Slater. AJI: Howdy. JOËL: And together, we're here to share a little bit of what we've learned along the way. So, Aji, what's new in your world? AJI: Yeah, well, I just joined a new project, so that's kind of the newest thing in my day-to-day work world. I say just joined, but I guess it was about a month ago now. I'm on the Liftoff team at thoughtbot, which is different than the team that you're on. We do more closer to greenfield ideas and things like that. So there's actually not much to speak about there in that project just yet. Rails new is still just over the horizon for us. So I've been putting a lot of unused brain cycles toward a side project that is sort of a personal knowledge base concept, and that's a whole thing that I could probably host an entire podcast about. So we don't have to go too deep into my theories about that. But suffice it to say I've talked to some other ADHDers like myself who find that that space is not really conducive to the way that we think and have to organize ourselves and our personal knowledge stores. So sort of writing an app that can lend itself to our fast brains a little bit better. JOËL: Nice. I just recently recorded an episode of this podcast talking a little bit about note-taking approaches and knowledge-base systems. So, yeah, it's a topic that's very much top of mind for me right now. AJI: Yeah, what else is going on in your world? JOËL: I'm based in New England in the U.S. East Coast, and it is fall here. I feel like it happened kind of all of a sudden. And the traditional fall thing to do here is to go to an orchard and pick apples. It's a fun activity to do, and so I'm in the middle of planning that. Yeah, it's fun to go out into nature, very artificial space. AJI: [laughs] JOËL: But it's a fun thing to do every fall. AJI: Yeah, we do that here too. There's an orchard up north of us where my wife and I live in Chicago that we try to visit. And Apple Fest in Lincoln Square is this weekend, and we've been really looking forward to that. Try another time at making homemade hard cider this season, I think, and see how that goes. JOËL: Fun. When you say another time, does that mean there was a previous unsuccessful attempt? AJI: Yes. Did the sort of naive approach to it, and there is apparently a lot more subtlety to cidermaking than there is home-brew beer. And we got some real strong funk in that cider that did not make it necessarily an enjoyable experience. Like, it worked but wasn't the tastiest. JOËL: So it got alcoholic. It was just terrible to drink. AJI: Yeah, I would back that up. JOËL: So recently, at thoughtbot, we had a conversation among different team members about the use of Ruby class methods, when they make sense, when they are to be avoided. What is their use case? And different people had different opinions. So I'm curious what your take on class methods are. When do you like to use them? AJI: Yeah, I remember those conversations coming up. I think I might have even started one of those threads because this is something that comes up to me a lot. I'm a long-time listener, first-time caller to The Bike Shed. [laughs] I can remember awaiting new episodes from Sage and Derek to listen to on my way to and from my first dev job. And at one point, Sage had said, "Never put your business logic in something that you can't call .new on." And being a young, impressionable developer at the time, I took that to heart, and that seems something that just has been baked in and stayed very truthful to me. And I think one of the times that I asked that and got some conversation started was I was trying to figure out why did I feel that, and like, why did they say that? And I think, yeah, I try to avoid them. I like making instances of things. What is your stance on the Class Method, capital C, capital M? JOËL: I also generally avoid them. I have sort of two main scenarios that I like to use class methods, first is as an alternate constructor. So new is effectively a class method that's built into Ruby's object model. But sometimes, you want variations on your constructor that maybe sets values by default or that construct things with some slightly different inputs, things like that. And so those almost always make sense as class methods. The other thing that I sometimes use a class method for is as an alias for newing up an instance and then immediately calling an instance method on it. So it's just a slightly shorthand way to call some code. AJI: That's usually been my first line defense of when there's someone who might feel more comfortable doing class methods that sees me making an instance and says, "Well, you don't need an instance, just make a class method here because it'll get too long if you have to .new and then dot this other thing." And so I'll throw in that magic little trick and be like, here you go. You can call it a class method, and you still get all the benefits of your instance. I love that one. JOËL: Do you feel like that maybe defeats the purpose? In terms of the interface that people are using, if you're calling it a class method, do you lose the benefits of trying to do things at the instance level instead? Or is it more in the implementation that the benefits are not at the caller level? AJI: I think that's more true that the benefits are at the instance level, and you're getting all of that that goes along with it. And you're not carrying along a lot of what I see as baggage of the class method version, but you're picking up a little bit of that syntactic sugar. And sometimes it's even easier just to conceptualize, especially in the Rails space because we have all of these different class methods like, you know, Find is one I'm sure that we use all the time to call it on a class, and we get back an instance. And so that feels very natural in the Rails world. JOËL: I think you could make an argument that that is a form of alternate constructor. It's a class method you call to get an instance back. AJI: Yeah, absolutely. JOËL: The fact that it makes a background request to the database is an implementation detail. AJI: For sure. I agree with that. I had a similar need in a recent project where the data was kept on a third-party API. So I treated it the same way as, instead of going out to the database like ActiveRecord does, made a class method that went off to the API and then came back and made the object that was the representation of that idea in our application. So, yeah, I wholeheartedly agree with that. JOËL: So in Rails, we have the scope keyword, which will run some query to get a collection of records. But another way that they're often implemented is as class methods, and they're more or less interchangeable. How do you feel about that kind of use of class methods on an ActiveRecord object? Does that violate some of the ideas that we've been talking about? Does it sort of fit in? AJI: I think when reaching for that sort of need, I sort of fall into the camp of making a class method rather than using a scope. It feels a little less like extending some basic Rails functionality or implying that it's part of the inherent framework and makes it a little more like behavior that's been added that's specific to this domain. And I think that distinction comes into my thinking there. I'm sure there are other reasons. What are your thoughts there? Maybe it'll spark an idea for me. JOËL: For me, I think I also generally prefer to write them as class methods rather than using the scope keyword, even though they're more or less the same thing. What is interesting is that, in a way, they kind of feel like alternate constructors in that they don't give you an instance; they give you back a collection of instances back. So if we bend the rules a little bit...these are not hard and fast rules but the guidelines. If we bend the guidelines a little bit, they kind of fit under the general categories for best uses of class method that we discussed earlier. AJI: Yeah, I can definitely see that. I tend to think, or at least I think when you had first brought up the term of alternate constructors, my first thought was of one instance; you ask for a thing, and it gives you this thing back. But it's the same sort of idea with that collection because you're not getting just one instance; you're getting many instances. But it's the same kind of idea. You've asked the larger concept of the thing, the class, to give you back individuals of that class. So that totally falls in line with how I think about acceptable uses of these class methods the way that we've been talking about them. JOËL: Rails is something really interesting where a lot of the logic that pertains to a single item will live at the instance level. And then logic that pertains to a group of items will live at the class level. So you almost have like two categories of operations that you can run that semantically live either at the class or the instance level. Have you ever noticed that separation before? AJI: I think that separation feels natural to me because I came into programming through Rails. And I might have been colored in my thinking about this by the framework. The way that I conceptualize what a class is being sort of this blueprint or platonic ideal of what an individual might be and sort of describing the potential behaviors of such an individual. Having that kind of larger concept be able to work across multiple instances feels, yeah, it feels sort of natural. Like, if you were to think about this idea of a chair, then if you went in and modified what a chair is to mean, then any chair that you asked for later on would kind of come with that behavior along with it. Or if you ask for several chairs, they would all sort of have that idea. JOËL: I think similar to you; I had that outlook on that's almost like a natural structuring of things. And then, years ago, I got into the hot, new JavaScript framework that was Backbone.js. And it actually separates...it has like a model for individual instances, and then a separate kind of model thing for collections. And that kind of blew my mind. But what was interesting, then, is that you effectively have instance methods that can deal with all things collection-related, any sort of filtering, any sort of transformations. All of those are done, which you have an instance of a collection, basically, that you act on. And I guess if we were trying to translate that into Rails, that's almost like the concept of a query object. AJI: Hmm, it's sort of an interesting way to think about that. And Backbone, I feel like I did a day of that in bootcamp. But it has been some time, so I'm not sure that I've worked with that pattern specifically. But it does sort of bring up the idea of how much do you want to be in one model class? And do you want it to contain both of these concepts? If you have a lot of complex logic that is going to be dealing with a collection, rather than putting that in your model, I think I would probably reach for something like a service object that is going to be specifically doing that and sort of more along that Backboney approach maybe like a query object or something like that. JOËL: Interesting. When you use the term service object, do you mean something that's not a Rails model, just in general? Or are you talking specifically about one of these objects that can respond to call and is... I've heard them sometimes called Command objects or method objects. AJI: Yeah, that's an overloaded term certainly in the real space, isn't it? Service object, and what does that mean? I think generally, when I say it, I'm meaning just a plain, old Ruby object like something that is doing its one thing. You're going to use it to do its implementation details. They're all kind of hidden behind in private methods and return you something useful that you can then plug into what you were doing or what you need going on in some other place in your app. So it, to me, doesn't imply any specific implementation of, like, do you have call? Do you use it this way? Do you use it that way? But it's something that's kind of outside of it is either a model, a view, a controller, and it encapsulates some kind of behavior. So whether that, like we're saying, is a filtering or, you know, it's going to wrap that up. JOËL: I see. So, for you, a query object would be a service object. AJI: Yeah, I think so. You know, maybe this is one of the reasons why I generally don't like the overuse of the term service object in our space. I don't know if that's a hot take, and I'm going to get emails for this. But -- JOËL: Everybody send your angry tweets @Aji. AJI: Yeah, do it to @Aji on Twitter because I've been trying to get that three-letter handle for years. No, but if you want to talk to me, I'm @DoodlingDev. But, yeah, certainly, it does feel sometimes like an overloaded term, and I just want to go back to talking about plain, old Ruby objects. JOËL: So, service object is definitely an overloaded term. It's used for a lot of things. One thing that I've often seen it referring to are objects that respond to call. And just to keep away the confusion, maybe let's call them Command objects for the purposes of this conversation. AJI: Sounds good. JOËL: I commonly see them done where the implementation is done with a class method named call. Sometimes it delegates to an instance that also has call. Sometimes it's all implemented as a class method. How do you feel about that pattern? AJI: I don't mind the idea of a thing that responds to call. It, in a way, sort of implies that the class is sort of named as an action, which I don't like. It has an er name, and that kind of has a class named as a pattern. And that always sort of bugs me a little bit. But what I hope for when I open up one of those sorts of classes or objects is that it's going to delegate to an instance because then you're, again, picking up all of those wonderful benefits of the instance-level programming. JOËL: You keep mentioning the wonderful benefits of instance-level programming. What are some of those benefits? AJI: One of the ones that sort of strikes me most visibly or kind of viscerally when I see it is that they're very easy to understand. You can extract methods pretty easily that don't turn into kind of clumsy code of a bunch of different class methods that all have four arguments passed in because they're all operating on the same context. And when you're all operating on the same context, you have really a shared state. And if you're just passing that shared state around, it just gets super confusing. And you get into the order of your arguments, making a big impact on how you are interacting with these different things. And so I think that's sort of the first thing that comes to mind is just visually noisy, which for me is super hard to get my head around, like, well, how am I supposed to use this thing? Can I extend it? JOËL: Yeah, I would definitely say that if you have a group of class methods that all take, commonly, it's the first argument, the same piece of data and tries to operate on it, that's probably a code smell that points to the fact that these things want to be an instance that lives around it. This could be a form of primitive obsession if you're passing around, let's say, a hash, all of these, and maybe what you really want is to sort of reify that hash into an object. And then all these class methods that used to operate on the hash can now become instance methods on your richer domain object. AJI: Yeah. What do you say to the folks that come from maybe a more functional mindset or are kind of picking up on the wave of functional programming that's out there in the ethos that say that you've got a bunch of side effects when you don't have everything that your method is operating on, being passed on or passed in? JOËL: I think side effect is a broad term. You could refer to it as modifying the internal state of an object. Technically, mutation is a side effect. And then you have things like doing effects out in the outside world, like making an HTTP query, printing to the screen, things like that. I think those are probably two separate concepts. Functional programming is great. I love writing functional code. When you're writing Ruby, Ruby is primarily an object-oriented language with some functional aspects brought in. In my opinion, it's very, you know, a great combination of the two. I think they've gotten the balance well so that the two paradigms play nicely together rather than competing. But I think it's an object-oriented language first with some functional added in. And so you're not going to be, I mean, I guess you could; there is a way to write Ruby where everything is a lambda or where everything is a class method that is pure and takes in inputs. But that's not the idiomatic way to write Ruby. Generally, you're creating objects that have some state. That being said, if an object is mutating a lot of global state, that's going to become problematic. With regards to its internal state, though, because it is very much localized and it's private, nobody else gets to see it; in many ways, an object can mutate itself, and that chain stays pretty local. AJI: Yeah, absolutely. You've tripped onto another one of my favorite rabbit holes of idiomatic code, and, like, what does that mean, and why should we strive for that? But I absolutely agree that when Ruby is written to conform to other paradigms that aren't mostly object-oriented is when it starts to get hard to use. It starts to feel a little off. Maybe it has code smells around it. It's going to give me the heebie-jeebies, whatever that might mean for you or for different developers. I think we all have our things that are sort of this doesn't feel right. And you kind of dig into it, and you can sort of back that up. And whenever Ruby starts to look like something that isn't lots of little objects sending messages, is when I start to get a little on edge, maybe. JOËL: It is worth, I think, calling out the fact that Ruby is a very expressive language. And there are effectively many...you could call them dialects of it. You have sort of your pure sort of OO approach. You have what's typically written in Rails, which has some OO things. But Rails is also, in many ways, it's very DSL-heavy and, in some ways, very class method-heavy. So writing Rails is sort of its own twist on Ruby. And then, some people will try to completely retrofit a functional approach onto Ruby, and that's also a way that some people like to write their code. And some of these, you can't necessarily say they're not valid, but they're not what you'll mostly see in the wild. And they're not necessarily the approach that I would recommend. AJI: Yeah, that's the blessing, and the curse of both programming in general and such an expressive language like Ruby is that there are many different valid ways to do it. And what are your trade-offs going to be when you make those choices? I think that falls kind of smack dab into that idiomatic conversation. And it comes up for me, too, as a consultant because I try to tend towards that idiomatic, those common patterns and practices because I'm not going to live with this code forever. I need to hand this off. And the closer it is to what you might see out there in the wild more commonly, the easier it will be for the next Ruby developer to come pick it up and extend it. JOËL: So you'd mentioned earlier some of the benefits of instance programming. One of the things that I find is maybe a little bit weird when you go heavily into the class method approach is that there is only one instance of the class, and it is globally available. AJI: Are you talking about a singleton there? JOËL: Yes. And, in fact, your class is effectively a singleton, potentially with globally mutable state. I hope not, but potentially with all of the gotchas and warnings that that entails. And so, if you think of your user instance, you need a reference to it, and there can be multiple of them, and you can call methods on them. If everything is happening at the class level, there is a single user class in memory shared by anyone who wants to use it. It's globally accessible. You can all call methods on it. Yeah, in many ways, it does act like a singleton. AJI: And let's not even get into the Ruby chestnut of everything's an object. So it is an instance of a class in and of itself. JOËL: Yes. AJI: But, absolutely, it can start to act that way. But the singleton it's enshrined in the Gang of Four book of patterns. Like, so what's wrong about a singleton? I hope you can understand over the airwaves the devil's advocate that I'm playing here. [laughs] JOËL: Yes. There are little horns that have sprouted on your head right now. I think part of the problem with singletons is that, generally, they are globally accessible. There's the problem of global mutable state again. There was a time, I think, when the OO community went pretty wild with singletons, and people realized that this was not great. And so, over time, a consensus evolved that singletons are a pattern that, while useful, should be used rarely and in moderation. And a lot of warnings have been shared in the community, like, be careful not to overuse the singleton pattern or don't build your system out of singletons. And maybe that's what feels so weird about a system that's built primarily in terms of class methods for me is that it feels like it's built out of singletons. AJI: Yeah. When I think of object-oriented programming, I kind of fall back to maybe one of the ideals of it is that it represents the world more accurately or maybe more understandably. And that sort of idea doesn't fit that paradigm, does it? If you're a factory that is making widgets, there's not the one canonical widget that all of your customers are going to be talking to and using. They are going to each have their own individual widgets. And those customers can be thought of like the consumers of your methods, your objects. JOËL: The idea being the real-world thing you're simulating normally, there are multiple actors of every type rather than a single sort of generic one that stands in for everybody. AJI: If this singleton is going to be your interface or the way that you interact with each of these things that are conceptually different, like a user or something like that, then differentiating between which user becomes a lot harder to do. It takes a lot more setup and involved process in referring to this user when and that kind of thing and creating the little instances. Then you've got more kind of direct reference to a single concept, a single individual. JOËL: So what you've described is a very sort of classic OO mindset. You find the data and the behaviors that go together. You try to oftentimes simulate the world, model it in terms of actors that give and receive messages. In many ways, though, I think when you're building a system out of class methods, you're thinking about the world in an almost different paradigm. In many ways, it feels almost procedural. What are the behaviors that need to happen in my app? What are the things that need to be done? You'd mentioned earlier that oftentimes these classes or the methods on them will end up with E-R; they're all verbs. You have a thing-doer, a thing executor, thing manager. They all do things rather than having domain concepts extracted and pulled out. Would you say that that feels somewhat procedural to you as well? AJI: Yeah. I think a great way to divide it is the way that you have right there; it's these sorts of mindsets. Do you have collections of things that have behaviors, or do you have collections of behaviors that might refer to things? And where you're approaching the design of a system, either from that behavior side or from that object side, is going to be a different mindset. Procedural being more focused on that kind of behavior and telling it what to do rather than putting... I think this is probably a butchered Sandi Metz example, but putting your roommate who hates cats and a cat that doesn't want its tail stepped on in one room, and eventually, things will happen accordingly. And those two mindsets are going to end up with very different architectures, very different designs, very different ways of building these applications that we make. And, again, does that come back to...Ruby, potentially to a lesser extent but still in the same camp, is object-oriented language, and it sort of functions best when considered and then constructed in that mindset. And I often wonder sometimes if language developers and language designers make anti-patterns sort of purposefully awkward to use. Like, if you want to hide a lot of class methods, you can do the class shovels self version of things or have privateclassmethod littered all the way through your file. And it seems to me like that might be a little bit of a flag that, like, hey, you're working against the system here. You're trying to make it do a thing that it doesn't naturally want to do. JOËL: Yeah, because you'd mentioned this private_class method thing because, by default, it's hard to get class methods to be private. You have to use a special keyword. You can't just write private in the class and then assume that the methods below it are going to be private because that does not apply to class methods. AJI: Exactly. And that friction to making an object that has a smaller interface, that kind of hides its implementation, seems as though it's a purposeful way that Ruby itself was designed to maybe nudge us, developers, into a certain way of working or suggesting a certain mindset. JOËL: There's a classic Code Climate article titled Class Methods Resist Refactoring. And it mentions different ways that when you're relying heavily on class methods, it's harder to do some of the traditional refactors things like just extract method because it is clunkier because you can't have private methods as easily. You can't share state, so you have to thread variables through. I guess, technically, you can share state with things like class variables and class instance variables, but if you do that, you will probably be very sad. AJI: [laughs] Yeah, you're opening yourself up to a whole world of hurt there, aren't you? And, yeah, you're opening yourself up to a whole world of hurt there with that, aren't you? Sort of sharing data so dangerously around your app. JOËL: So I'm a big fan of test-driven development. And one of the things that TDD believes in is that test pain should help guide the design of your system and that, generally, things that are easier to test are better designed. AJI: Yeah. JOËL: It's often easier to test class methods because they are globally available singletons. I can easily stub a class. Whereas if I need to stub an instance, I need to do some uglier things like stub any instance of or stub the constructor to return a double, or do some other kind of dirty tricks like that. Does that mean that TDD would prefer a class method-based approach to writing code? AJI: I think that a surface-level reading of that might say that it does. And I think that maybe the first pass on things, if you're thinking about I want to get this thing done that's right in front of me right now and just move forward, might kind of imply that. But if you start to think about or have come back to something that was implemented in that way, anytime that sort of behavior is going to grow or change, then it's going to start to...the number of backflips that you have to do become a lot more complicated and a lot higher when you've got class methods. Because I find that, yes, you might have to stub out or pass in a created object or something like that. But if you've got a class method, especially if it is calling other class methods inside it, then all of a sudden, you have in your test this setup that looks completely unrelated to anything that you're running and testing, that you have to have all of this insight or knowledge of what those classes are doing just to set up your test framework before you can even run that. Another thing that is looked to as an axiom when writing tests that can imply this class approach is that you shouldn't change your code just for the test. If you're doing dependency injection or something like that, passing around little objects, then you're making your code more complicated to make your tests look a certain way. JOËL: That's interesting. So maybe I'm reacting to some test pain by trying to change my tests first. So I'm trying to deal with some collaborators, and it is tricky to do. And so I decide, well, the thing I want to do is I want to reach for stubbing. But then that's hard to do because it's instances. So in order to make already that compromise in my test work better, now I change the code to be nicer for the test to use mostly classes because those are global. Whereas maybe the correct path to take initially is, say, oh, there isn't test pain here because I'm trying to isolate an object from its collaborators. Maybe we need to pass an object in as an argument rather than hard coding it inside the class. AJI: Yeah, absolutely. JOËL: So I guess you follow the test pain, but maybe the problem is that you've already kind of gone down a path that might not be the best before you got to the point where you decided that you needed a class method. AJI: And I think that idea of following the test pain can be, again, there are only shades of gray; there is no black and white. It can be sort of taken in a lot of different ways. And the way that I think about it is that test pain is also sort of an early warning sign that there's going to be pain if you want to reuse this class or these behaviors somewhere else. And if it was useful somewhere, it's likely it's going to be useful in another place. And there are many different kinds of tests pain. The testing is a little easier with a class method because you're not stubbing out any instance of. You're just stubbing; really, what's the difference between stubbing out any instance of or stubbing out the class? Is that just a semantic difference? Is that -- JOËL: Because someone on the internet said that stubbing any instance of is bad. AJI: Ooh, right, the internet. I should have read that one. The thing that you can do with passing around instances or sending messages to instances as you do when you're calling a method is that you can easily swap in a different object if you need to stub it. It's similar to how you can change the implementation under the hood of an object and pass in an object that responds to the same messages and kind of keep moving forward with your duck typing. If you can go into your tests and pass it sort of an object that's always going to return a thing...because we're not testing what that does; we just need a certain response so that we can move forward with the pathway that is under test. You can do that in so many different ways. You could have FactoryBot, for instance, give you a certain shape of a thing. You can create a tiny, little class right there in your tests that does something specific, that can be easily understood what's going on under the hood here. And instead of having to potentially stub out or create all of these pathways that need to be followed that are overwriting logic that's happening in different class methods or different places otherwhere in the application, you can just pass in this one simplified thing to keep your tests sort of smaller and easier to wrap your head around all in just one go. JOËL: I think what I'm getting here is that when you design your code around instances, you're more likely to build it in a modular way where you pass objects to other objects. And when you build your code using class methods, you're more likely to write it in a hard-coded way. Because you have that globally available class, you just hard-code it and then call it directly rather than passing things in. And so things end up more coupled and, therefore, high coupling leads to more test pain. AJI: Yeah, I think you've really kind of hit on something here that the approach of using class methods is locking that class into kind of a single context or use case. Usually, it is this global thing that is this one way, and that's even kind of backed up by the fact that class methods are load-time logic instead of run-time logic. And it really kind of not only couples but it makes it more brittle and less amenable to kind of reuse. JOËL: That's a really interesting distinction. I often tend to think of runtime versus load time in terms of composition versus inheritance. Composition, you can combine objects together at runtime and get behaviors built on the fly as the code is executing, whereas inheritance sort of inherently freezes you into a particular combination of behaviors at the time of loading the code. It's something that the programmers set up, and so it is much less flexible. And that is one of the arguments why the Gang of Four patterns book recommends composition over inheritance in many situations is because of that runtime versus load time dichotomy. And I hadn't made that connection for class methods versus instance methods, but I think there's a parallel there. AJI: Yeah, absolutely. The composition versus inheritance thing, I think, goes very hand in hand with the conversation that we're having about putting your behavior on a class versus an instance because...and I don't know if this is again yielding my thoughts to 'the internet said' in that composition is preferable to inheritance. But without unpacking that right there, that is certainly something that I strive for as well. And while it might have, much like TDD, some kind of superficial, short-term complexity, it has long-term payoff in that flexibility and that reuse, and that extensibility, and all of those other buzzwords that we developers like to throw around. JOËL: So you've shared a lot of thoughts on the use of class methods. I think this could branch into so many other aspects of object-oriented design that we haven't looked at or that we could go deeper, things like TDD. We could look into how it works with the solid principles, all sorts of things. But I think the big takeaway for me is that class methods are very useful, but it's easy to use them as our single hammer to every problem being a nail. And it's good to diversify your toolset. And some tools are specialized; they're good to be used in very specific situations that don't come across very often, and others are used every day. And maybe class methods are the former. AJI: Absolutely. That hammer-and-nail metaphor was right where I was headed for too. Love it. JOËL: Well, thank you so much, Aji, for joining the conversation today. Where can people find you online? AJI: Yeah, anywhere you want to look for me: Instagram, GitHub, Twitter. I'm @DoodlingDev, so just send all your angry emails that way. JOËL: And with that, let's wrap up. The show notes for this episode can be found at bikeshed.fm. This show is produced and edited by Mandy Moore. If you enjoyed listening, one really easy way to support the show is to leave us a quick rating or even a review in iTunes. It really helps other folks find the show. If you have any feedback, you can reach us at @_bikeshed, or reach me at @joelquen on Twitter, or at hosts@bikeshed.fm via email. Thank you so much for listening to The Bike Shed, and we'll see you next week. Byeeeeee!!!!!!! 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.

Kinda Jaded
#30 - Normalize Being Hot w/ Mallrat

Kinda Jaded

Play Episode Listen Later Sep 14, 2022 54:14


OMG our 30th episode! The hottest, most talented, most lovely Mallrat joined us this week to discuss her new album Butterfly Blue, her songwriting process, being hot, Azaelia Banks, Australia, raising doves, country music, her lost MMA career, and soooo much more. Join us next week for another iconic episode. Rate and review us. Tell us you love us. Share us with your friends and family. ok Byeeeeee! --- Support this podcast: https://anchor.fm/kinda-jaded/support

The Bike Shed
354: The History of Computing

The Bike Shed

Play Episode Listen Later Sep 13, 2022 31:16


Why does the history of computing matter? Joël and Developer at thoughtbot Sara Jackson, ponder this and share some cool stories (and trivia!!) behind the tools we use in the industry. This episode is brought to you by Airbrake (https://airbrake.io/?utm_campaign=Q3_2022%3A%20Bike%20Shed%20Podcast%20Ad&utm_source=Bike%20Shed&utm_medium=website). Visit Frictionless error monitoring and performance insight for your app stack. Sara on Twitter (https://twitter.com/csarajackson) UNIX philosophy (https://en.wikipedia.org/wiki/Unix_philosophy) Hillel Wayne on why we ask linked list questions (https://www.hillelwayne.com/post/linked-lists/) Transcript: JOËL: Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Joël Quenneville. And today, I'm joined by fellow thoughtboter, Team Lead, and Developer Sara Jackson. SARA: Hello, happy to be here. JOËL: Together, we're here to share a little bit of what we've learned along the way. So, Sara, what's new in your world? SARA: Well, Joël, you might know that recently our team had a small get-together in Toronto. JOËL: And our team, for those who are not aware, is fully remote distributed across multiple countries. So this was a chance to get together in person. SARA: Yes, correct. This was a chance for those on the Boost team to get together and work together as if we had a physical office. JOËL: Was this your first time meeting some members of the team? SARA: It was my second, for the most part. So I joined thoughtbot, but after thoughtbot had already gotten remote. Fortunately, I was able to meet many other thoughtboters in May at our summit. JOËL: Had you worked at a remote company before coming to thoughtbot? SARA: Yes, I actually started working remotely in 2019, but even then, that wasn't my first time working remotely. I actually had a full year of internship in college that was remote. JOËL: So you were a pro at this long before the pandemic made us all try it out. SARA: I don't know about that, but I've certainly dealt with the idiosyncrasies that come with remote work for longer. JOËL: What do you think are some of the challenges of remote work as opposed to working in person in an office? SARA: I think definitely growing and maintaining a culture. When you're in an office, it's easy to create ad hoc conversations and have events that are small that build on the culture. But when you're remote, it has to be a lot more intentional. JOËL: That definitely rings true for me. One of the things that I really appreciated about in-person office culture was the serendipity that you have those sort of random meetings at the water cooler, those conversations, waiting for coffee with people who are not necessarily on the same team or the same project as you are. SARA: I also really miss being able to have lunch in person with folks where I can casually gripe about an issue I might be having, and almost certainly, someone would have the answer. Now, if I'm having an issue, I have to intentionally seek help. [chuckles] JOËL: One of the funny things that often happened, at least the office where I worked at, was that lunches would often devolve into taxonomy conversations. SARA: I wish I had been there for that. [laughter] JOËL: Well, we do have a taxonomy channel on Slack to somewhat continue that legacy. SARA: Do you have a favorite taxonomy lunch discussion that you recall? JOËL: I definitely got to the point where I hated the classifying a sandwich. That one has been way overdone. SARA: Absolutely. JOËL: There was an interesting one about motorcycles, and mopeds, and bicycles, and e-bikes, and trying to see how do you distinguish one from the other. Is it an electric motor? Is it the power of the engine that you have? Is it the size? SARA: My brain is already turning on those thoughts. I feel like I could get lost down that rabbit hole very easily. [laughter] JOËL: Maybe that should be like a special anniversary episode for The Bike Shed, just one long taxonomy ramble. SARA: Where we talk about bikes. JOËL: Ooh, that's so perfect. I love it. One thing that I really appreciated during our time in Toronto was that we actually got to have lunch in person again. SARA: Yeah, that was so wonderful. Having folks coming together that had maybe never worked together directly on clients just getting to sit down and talk about our day. JOËL: Yeah, and talk about maybe it's work-related, maybe it's not. There's a lot of power to having some amount of deeper interpersonal connection with your co-workers beyond just the we work on a project together. SARA: Yeah, it's like camaraderie beyond the shared mission of the company. It's the shared interpersonal mission, like you say. Did you have any in-person pairing sessions in Toronto? JOËL: I did. It was actually kind of serendipitous. Someone was stuck with a weird failing test because somehow the order factories were getting created in was not behaving in the expected way, and we herd on it, dug into it, found some weird thing with composite primary keys, and solved the issue. SARA: That's wonderful. I love that. I wonder if that interaction would have happened or gotten solved as quickly if we hadn't been in person. JOËL: I don't know about you, but I feel like I sometimes struggle to ask for help or ask for a pair more when I'm online. SARA: Yeah, I agree. It's easier to feel like you're not as big of an impediment when you're in person. You tap someone on the shoulder, "Hey, can you take a look at this?" JOËL: Especially when they're on the same team as you, they're sitting at the next desk over. I don't know; it just felt easier. Even though it's literally one button press to get Tuple to make a call, somehow, I feel like I'm interrupting more. SARA: To combat that, I've been trying to pair more frequently and consistently regardless of if I'm struggling with a problem. JOËL: Has that worked pretty well? SARA: It's been wonderful. The only downside has been pairing fatigue. JOËL: Pairing fatigue is real. SARA: But other than that, problems have gotten solved quickly. We've all learned something for those that I've paired with. It goes faster. JOËL: So it was really great that we had this experience of doing our daily work but co-located in person; we have these experiences of working together. What would you say has been one of the highlights for you of that time? SARA: 100% karaoke. JOËL: [laughs] SARA: Only two folks did not attend. Many of the folks that did attend told me they weren't going to sing, but they were just going to watch. By the end of the night, everyone had sung. We were there for nearly three and a half hours. [laughs] JOËL: It was a good time all around. SARA: I saw a different side to Chad. JOËL: [laughs] SARA: And everyone, honestly. Were there any musical choices that surprised you? JOËL: Not particularly. Karaoke is always fun when you have a group of people that you trust to be a little bit foolish in front of to put yourself out there. I really appreciated the style that we went for, where we have a private room for just the people who were there as opposed to a stage in a bar somewhere. I think that makes it a little bit more accessible to pick up the mic and try to sing a song. SARA: I agree. That style of karaoke is a lot more popular in Asia, having your private room. Sometimes you can find it in major cities. But I also prefer it for that reason. JOËL: One of my highlights of this trip was this very sort of serendipitous moment that happened. Someone was asking a question about the difference between a Mac and Linux operating systems. And then just an impromptu gathering happened. And you pulled up a chair, and you're like, gather around, everyone. In the beginning, there was Multics. It was amazing. SARA: I felt like some kind of historian or librarian coming out from the deep. Let me tell you about this random operating system knowledge that I have. [laughs] JOËL: The ancient lore. SARA: The ancient lore in the year 1969. JOËL: [laughs] And then yeah, we had a conversation walking the history of operating systems, and why we have macOS and Linux, and why they're different, and why Windows is a totally different kind of family there. SARA: Yeah, macOS and Linux are sort of like cousins coming from the same tree. JOËL: Is that because they're both related through Unix? SARA: Yes. Linux and macOS are both built based off of different versions of Unix. Over the years, there's almost like a family tree of these different Nix operating systems as they're called. JOËL: I've sometimes seen asterisk N-I-X. This is what you're referring to as Nix. SARA: Yes, where the asterisk is like the RegEx catch-all. JOËL: So this might be Unix. It might be Linux. It might be... SARA: Minix. JOËL: All of those. SARA: Do you know the origin of the name Unix? JOËL: I do not. SARA: It's kind of a fun trivia piece. So, in the beginning, there was Multics spelled M-U-L-T-I-C-S, standing for the Multiplexed Information and Computing Service. Dennis Ritchie and Ken Thompson of Bell Labs famous for the C programming language... JOËL: You may have heard of it. SARA: You may have heard of it maybe on a different podcast. They were employees at Bell Labs when Multics was being created. They felt that Multics was very bulky and heavy. It was trying to do too many things at once. It did have a few good concepts. So they developed their own smaller Unix originally, Unics, the Uniplexed Information and Computing Service, Uniplexed versus Multiplexed. We do one thing really well. JOËL: And that's the Unix philosophy. SARA: It absolutely is. The Unix philosophy developed out of the creation of Unix and C. Do you know the four main points? JOËL: No, is it small sharp tools? It's the main one I hear. SARA: Yes, that is the kind of quippy version that has come out for sure. JOËL: But there is a formal four-point manifesto. SARA: I believe it's evolved over the years. But it's interesting looking at the Unix philosophy and seeing how relevant it is today in web development. The four points being make each program do one thing well. To this end, don't add features; make a new program. I feel like we have this a lot in encapsulation. JOËL: Hmm, maybe even the open-closed principle. SARA: Absolutely. JOËL: Similar idea. SARA: Another part of the philosophy is expecting output of your program to become input of another program that is yet unknown. The key being don't clutter your output; don't have extraneous text. This feels very similar to how we develop APIs. JOËL: With a focus on composability. SARA: Absolutely. Being able to chain commands together like you see in Ruby all the time. JOËL: I love being able to do this, for example, the enumerable API in Ruby and just being able to chain all these methods together to just very nicely do some pretty big transformations on an array or some other data structure. SARA: 100% agree there. That ability almost certainly came out of following the tenets of this philosophy, maybe not knowingly so but maybe knowingly so. [chuckles] JOËL: So is that three or four? SARA: So that was two. The third being what we know as agile. JOËL: Really? SARA: Yeah, right? The '70s brought us agile. Design and build software to be tried early, and don't hesitate to throw away clumsy parts and rebuild. JOËL: Hmmm. SARA: Even in those days, despite waterfall style still coming on the horizon. It was known for those writing software that it was important to iterate quickly. JOËL: Wow, I would never have known. SARA: It's neat having this history available to us. It's sort of like a lens at where we came from. Another piece of this history that might seem like a more modern concept but was a very big part of the movement in the '70s and the '80s was using tools rather than unskilled help or trying to struggle through something yourself when you're lightening a programming task. We see this all the time at thoughtbot. Folks do this many times there is an issue on a client code. We are able to generalize the solution, extract into a tool that can then be reused. JOËL: So that's the same kind of genesis as a lot of thoughtbot's open-source gems, so I'm thinking of FactoryBot, Clearance, Paperclip, the old-timey file upload gem, Suspenders, the Rails app generator, and the list goes on. SARA: I love that in this last point of the Unix philosophy, they specifically call out that you should create a new tool, even if it means detouring, even if it means throwing the tools out later. JOËL: What impact do you think that has had on the way that tooling in the Unix, or maybe I should say *Nix, ecosystem has developed? SARA: It was a major aspect of the Nix environment community because Unix was available, not free, but very inexpensively to educational institutions. And because of how lightweight it was and its focus on single-use programs, programs that were designed to do one thing, and also the way the shell was allowing you to use commands directly and having it be the same language as the shell scripting language, users, students, amateurs, and I say that in a loving way, were able to create their own tools very quickly. It was almost like a renaissance of Homebrew. JOËL: Not Homebrew as in the macOS package manager. SARA: [laughs] And also not Homebrew as in the alcoholic beverage. JOËL: [laughs] So, this kind of history is fun trivia to know. Is it really something valuable for us as a jobbing developer in 2022? SARA: I would say it's a difficult question. If you are someone that doesn't dive into the why of something, especially when something goes wrong, maybe it wouldn't be important or useful. But what sparked the conversation in Toronto was trying to determine why we as thoughtbot tend to prefer using Macs to develop on versus Linux or Windows. There is a reason, and the reason is in the history. Knowing that can clarify decisions and can give meaning where it feels like an arbitrary decision. JOËL: Right. We're not just picking Macs because they're shiny. SARA: They are certainly shiny. And the first thing I did was to put a matte case on it. JOËL: [laughs] So no shiny in your office. SARA: If there were too many shiny things in my office, boy, I would never get work done. The cats would be all over me. MID-ROLL AD: Debugging errors can be a developer's worst nightmare...but it doesn't have to be. Airbrake is an award-winning error monitoring, performance, and deployment tracking tool created by developers for developers, that can actually help cut your debugging time in half. So why do developers love Airbrake? It has all of the information that web developers need to monitor their application - including error management, performance insights, and deploy tracking! Airbrake's debugging tool catches all of your project errors, intelligently groups them, and points you to the issue in the code so you can quickly fix the bug before customers are impacted. In addition to stellar error monitoring, Airbrake's lightweight APM helps developers to track the performance and availability of their application through metrics like HTTP requests, response times, error occurrences, and user satisfaction. Finally, Airbrake Deploy Tracking helps developers track trends, fix bad deploys, and improve code quality. Since 2008, Airbrake has been a staple in the Ruby community and has grown to cover all major programming languages. Airbrake seamlessly integrates with your favorite apps to include modern features like single sign-on and SDK-based installation. From testing to production, Airbrake notifiers have your back. Your time is valuable, so why waste it combing through logs, waiting for user reports, or retrofitting other tools to monitor your application? You literally have nothing to lose. Head on over to airbrake.io/try/bikeshed to create your FREE developer account today! JOËL: So we've talked a little bit about Unix or *Nix, this evolution of systems. I've also heard the term POSIX thrown around when talking about things that seem to encompass both macOS and Linux. How does that fit into this history? SARA: POSIX is sort of an umbrella of standards around operating systems that was based on Unix and the things that were standard in Unix. It stands for the Portable Operating System Interface. This allowed for compatibility between OSs, very similar to USB being the standard for peripherals. JOËL: So, if I was implementing my own Unix-like operating system in the '80s, I would try to conform to the POSIX standard. SARA: Absolutely. Now, not every Nix operating system is POSIX-compliant, but most are or at least 90% of the way there. JOËL: Are any of the big ones that people tend to think about not compliant? SARA: A major player in the operating system space that is not generally considered POSIX-compliant is Microsoft Windows. JOËL: [laughs] It doesn't even try to be Unix-like, right? It's just its own thing, SARA: It is completely its own thing. I don't think it even has a standard necessarily that it conforms to. JOËL: It is its own standard, its own branch of the family tree. SARA: And that's what happens when your operating system is very proprietary. This has caused folks pain, I'm sure, in the past that may have tried to develop software on their computers using languages that are more readily compatible with POSIX operating systems. JOËL: So would you say that a language like Ruby is more compatible with one of the POSIX-compatible operating systems? SARA: 100% yes. In fact, to even use Ruby as a development tool in Windows, prior to Windows 10, you needed an additional tool. You needed something like Cygwin or MinGW, which were POSIX-compliant programs that it was almost like a shell in your Windows computer that would allow you to run those commands. JOËL: Really? For some reason, I thought that they had some executables that you could run just on Windows by itself. SARA: Now they do, fortunately, to the benefit of Ruby developers everywhere. As of Windows 10, we now have WSL, the Windows Subsystem for Linux that's built-in. You don't have to worry about installing or configuring some third-party software. JOËL: I guess that kind of almost cheats by just having a POSIX system embedded in your non-POSIX system. SARA: It does feel like a cheat, but I think it was born out of demand. The Windows NT kernel, for example, is mostly POSIX-compliant. JOËL: Really? SARA: As a result of it being used primarily for servers. JOËL: So you mentioned the Ruby tends and the Rails ecosystem tends to run better and much more frequently on the various Nix systems. Did it have to be that way? Or is it just kind of an accident of history that we happen to end up with Ruby and Rails in this ecosystem, but just as easily, it could have evolved in the Windows world? SARA: I think it is an amalgam of things. For example, Unix and Nix operating systems being developed earlier, being widely spread due to being license-free oftentimes, and being widely used in the education space. Also, because it is so lightweight, it is the operating system of choice. For most servers in the world, they're running some form of Unix, Linux, or macOS. JOËL: I don't think I've ever seen a server that runs macOS; exclusively seen it on dev machines. SARA: If you go to an animation company, they have server farms of macOS machines because they're really good at rendering. This might not be the case anymore, but it was at one point. JOËL: That's a whole other world that I've not interacted with a whole lot. SARA: [chuckles] JOËL: It's a fun intersection between software, and design, and storytelling. That is an important part for the software field. SARA: Yeah, it's definitely an aspect that deserves its own deep dive of sorts. If you have a server that's running a Windows-based operating system like NT and you have a website or a program that's designed to be served under a Unix-based server, it can easily be hosted on the Windows server; it's not an issue. The reverse is not true. JOËL: Oh. SARA: And this is why programming on a Nix system is the better choice. JOËL: It's more broadly compatible. SARA: Absolutely. Significantly more compatible with more things. JOËL: So today, when I develop, a lot of the tooling that I use is open source. The open-source movement has created a lot of the languages that we know and love, including Ruby, including Rails. Do you think there's some connection between a lot of that tooling being open source and maybe some of the Unix family of operating systems and movements that came out of that branch of the operating system family tree? SARA: I think that there is a lot of tie-in with today's open-source culture and the computing history that we've been talking about, for example, people finding something that they dislike about the tools that are available and then rolling their own. That's what Ken Thompson and Dennis Ritchie did. Unix was not an official Bell development. It was a side project for them. JOËL: I love that. SARA: You see this happen a lot in the software world where a program gets shared widely, and due to this, it gains traction and gains buy-in from the community. If your software is easily accessible to students, folks that are learning, and breaking things, and rebuilding, and trying, and inventing, it's going to persist. And we saw that with Unix. JOËL: I feel like this background on where a lot of these operating systems came but then also the ecosystems, the values that evolved with them has given me a deeper appreciation of the tooling, the systems that we work with today. Are there any other advantages, do you think, to trying to learn a little bit of computing history? SARA: I think the main benefit that I mentioned before of if you're a person that wants to know why, then there is a great benefit in knowing some of these details. That being said, you don't need to deep dive or read multiple books or write papers on it. You can get enough information from reading or skimming some Wikipedia pages. But it's interesting to know where we came from and how it still affects us today. Ruby was written in C, for example. Unix was written in C as well, originally Assembly Language, but it got rewritten in C. And understanding the underlying tooling that goes into that that when things go wrong, you know where to look. JOËL: I guess that that is the next question is where do you look if you're kind of interested? Is Wikipedia good enough? You just sort of look up operating system, and it tells you where to go? Or do you have other sources you like to search for or start pulling at those threads to understand history? SARA: That's a great question. And Wikipedia is a wonderful starting point for sure. It has a lot of the abbreviated history and links to better references. I don't have them off the top of my head. So I will find them for you for the show notes. But there are some old esoteric websites with some of this history more thoroughly documented by the people that lived it. JOËL: I feel like those websites always end up being in HTML 2; your very basic text, horizontal rules, no CSS. SARA: Mm-hmm. And those are the sites that have many wonderful kernels of knowledge. JOËL: Uh-huh! Great pun. SARA: [chuckles] Thank you. JOËL: Do you read any content by Hillel Wayne? SARA: I have not. JOËL: So Hillel produces a lot of deep dives into computing history, oftentimes trying to answer very particular questions such as when and why did we start using reversing a linked list as the canonical interview question? And there are often urban legends around like, oh, it's because of this. And then Hillel will do some research and go through actual archives of messages on message boards or...what is that protocol? SARA: BBS. JOËL: Yes. And then find the real answer, like, do actual historical methodology, and I love that. SARA: I had not heard of this before. I don't know how. And that is all I'm going to be doing this weekend is reading these. That kind of history speaks to my heart. I have a random fun fact along those lines that I wanted to bring to the show, which was that the echo command that we know and love in the terminal was first introduced by the Multics operating system. JOËL: Wow. So that's like the most common piece of Multics that as an everyday user of a modern operating system that we would still touch a little bit of that history every day when we work. SARA: Yeah, it's one of those things that we don't think about too much. Where did it come from? How long has it been around? I'm sure the implementation today is very different. But it's like etymology, and like taxonomy, pulling those threads. JOËL: Two fantastic topics. On that wonderful little nugget of knowledge, let's wrap up. Sara, where can people find you online? SARA: You can find me on Twitter at @csarajackson. JOËL: And we will include a link to that in the show notes. SARA: Thank you so much for having me on the show and letting me nerd out about operating system history. JOËL: It's been a pleasure. The show notes for this episode can be found at bikeshed.fm. This show is produced and edited by Mandy Moore. 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. It really helps other folks find the show. If you have any feedback, you can reach us at @_bikeshed or reach me @joelquen on Twitter or at hosts@bikeshed.fm via email. Thank you so much for listening to The Bike Shed, and we'll see you next week. Byeeeeee!!!! 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.

Welcome to Provincetown
10. Bye Bitches

Welcome to Provincetown

Play Episode Listen Later Aug 10, 2022 30:18


Ethan and Kristen reflect on the summer, and check off one last item on their Provincetown bucket list. The town comes together for a fashion show, and Mitra walks the runway. Qya sends us off with a song. BYEEEEEE!

Talk The Talk
STUNNIN'

Talk The Talk

Play Episode Listen Later Jun 28, 2022 2:03


B$&&H, I'm back. I know you probably want longer sh!t but “you get what you get and you don't have a fit”. Love y'all lovely B**ches. Byeeeeee

love bh byeeeeee
Otto Talks Stuff
ep6 The PLUSHIE BLANKET

Otto Talks Stuff

Play Episode Listen Later Apr 1, 2022 21:52


today I am going to be talking about various things with my friend Moo! Check out their podcast called "milk from a barn". it is such a great podcast! I hope you guys enjoy this episode! BYEEEEEE!

The Big One
Phoenix - March 2022

The Big One

Play Episode Listen Later Mar 19, 2022 41:33


Apologies for the delay in getting this uploaded! New Guy had a date, and BBoy didn't know the password - a CLASSIC combo of fun and frivolity. I guess there's an episode going on, and we talk about how New Guy didn't get to watch the race because he was hanging out with his sister, but still has things to say about the race. Also it's the start of the F1 season coming up! Also we lie about Hendrick (no s!) Motorsports racing at Le Mans this year - it's actually next year. Anyway, it's like 11 am and my mcdonald's breakfast (bacon, egg, and cheese biscuit, along with a sasuage mcmuffin - no egg, and a hashbrown) is starting to get cold. I hope you have a nice day and if you choose to listen toi the episode, well, we all have to live with the consequences of our decisions.BYEEEEEE

The Big One
Phoenix - March '22

The Big One

Play Episode Listen Later Mar 19, 2022 41:33


Apologies for the delay in getting this uploaded! New Guy had a date, and BBoy didn't know the password - a CLASSIC combo of fun and frivolity. I guess there's an episode going on, and we talk about how New Guy didn't get to watch the race because he was hanging out with his sister, but still has things to say about the race. Also it's the start of the F1 season coming up! Also we lie about Hendrick (no s!) Motorsports racing at Le Mans this year - it's actually next year. Anyway, it's like 11 am and my mcdonald's breakfast (bacon, egg, and cheese biscuit, along with a sasuage mcmuffin - no egg, and a hashbrown) is starting to get cold. I hope you have a nice day and if you choose to listen toi the episode, well, we all have to live with the consequences of our decisions.BYEEEEEE

Craftsmen Cooking
Porchetta

Craftsmen Cooking

Play Episode Listen Later Feb 13, 2022 63:19


 This was a big one for the gang. We have talked about this item for a while now and what better time than the start of Season 2.  The Porchetta is an Italian dish that has certainly been a fan favorite of ours and many alike. Traditionally it is a pork belly with the loin still attached, scored, and seasoned with garlic, rosemary, thyme, crushed red pepper, and orange zest. We could not locate a belly still attached, so we did it with two separate pieces.  The belly was laid out and scored on both sides, the meat side we seasoned with the traditional seasonings and the fat side with just salt. Then we butterflied the loin and seasoned it with salt and pepper then rolled the loin inside the belly and tied it off with butchers twine.  Now being who we are and the love we have for sous vide, we thought it only natural for us to try it that way. So we bagged this monster up and cooked it at 74 degrees celsius or 165 f. This went for 24 hours and let me tell you, this place smelled amazing. Next, we removed it from the bag and let it rest for about 2 hours before placing it in the oven at 425 for 45 min or until golden brown. Remove it from the oven and let rest for 20 min.  Now we made all the side items to go with our porchetta. Sous vide fingerling potatoes and green beans.  both with very light seasoning but the right pairing for the pork.  Salt, pepper, garlic powder, and thyme.  We also made a roasted poblano and corn puree, which is crazy simple.  We have to say that this was the way we wanted to kick off season 2. The pork was perfectly cooked and the sides really brought the dish together.  We hope you enjoy it as much as we did.   Until then STAY HUNGRY, LIVE HOW YOU SAY IT, BYEEEEEE

FANCY Fantasy Football Podcast
Episode 56 - Groundhog Day (First Time Through)

FANCY Fantasy Football Podcast

Play Episode Listen Later Feb 2, 2022


Episode Notes Join me as I try to continue my streak of holiday-themed movie discussions with what is arguably one of the best, most consistent holiday genres--Groundhog Day movies. I am joined by good friend and fellow time loop fan Johnny Rhoads and we . . . pretty much never stop talking about Groundhog Day and time loop media in general. Our conversation went so long that this very long podcast is not even close to the whole discussion, and I will be putting out part two soon. In the meantime, happy Groundhog Day, and go watch Groundhog Day! As always the theme is a modified version of Reflections by Anti-Pop Consortium. Clips from Groundhog Day and the Making of Groundhog Day are my attempts at fair use. Byeeeeee!

reflections groundhog day clips byeeeeee anti pop consortium
That Green Vegan
Are you S.A.D?

That Green Vegan

Play Episode Listen Later Dec 19, 2021 19:00


Today we are covering the topic of S.A.D, (Seasonal Affective Disorder). It's also known as seasonal depression. It's shocking how many suffer in silence not knowing what is going on with them. It is reported an estimated 35 million have this disorder. We are going to look into ways to help, if you are someone you know may have this condition you're not alone. There are things you can do to feel better. As always I love you and will see you on the other side. Byeeeeee

Gems From The Glenn
Maybe It Was All A Big Misunderstanding

Gems From The Glenn

Play Episode Listen Later Oct 21, 2021 13:30


In today's episode, I wanted to give you 5 ways to cope and move on when you've misunderstood a person's character or a situation. Matthew 7:6 says, " Do not give dogs what is sacred; do not throw your pearls to pigs. If you do, they may trample them under their feet, and turn and tear you to pieces". So please always remember what you deem valuable may not seam of value to others so be careful who you throw your pearls to. Until next time.... Be great. Byeeeeee! --- This episode is sponsored by · Anchor: The easiest way to make a podcast. https://anchor.fm/app Support this podcast: https://anchor.fm/gems-from-the-glenn/support

That Green Vegan
Is older "Cookie" better?

That Green Vegan

Play Episode Listen Later Aug 8, 2021 30:35


Today I have the pleasure of talking to a dear friend of mine. Preston, the creator of "Inside the mind of a young Black man" has graced my episode to tell his story of dating older women. This week we dive into May - December romance. Let's explore, have fun and see how similar we are at all ages. Feel free to reach out on all platforms, IG, Facebook, YouTube and Twitter @Thatgreenvegan. You can also reach out on my email Thatgreenvegan@gmail.com. Thank you for listening and I will see you on the other side. Much love....Byeeeeee

That Green Vegan
Stay out!!

That Green Vegan

Play Episode Listen Later Jul 10, 2021 14:50


In this episode I will talk about staying in safe spaces to protect your peace. I will also dive into why do people troll and how to deal with it. At the end of the day, you control or allow what you bring in your space. Make good choices, drink lots of water and love yourself. See you on the other side, Byeeeeee.

byeeeeee
That Green Vegan
Can we have a Hot Girl summer in 2021?

That Green Vegan

Play Episode Listen Later Jun 27, 2021 25:44


I have the pleasure in speaking with my dear friend Triche. We will unwrap the long awaited question: Can we have a hot girl summer in 2021? We discuss relationship and taking care of yourself. If you can't get enough, you can always check us out on YouTube @Cougardiaries. We always have fun feel free to join us. Thank you for tuning in and follow me on all platforms @thatgreenvegan and as always, I love you and Byeeeeee.

Wings Of Fire Nerds
Wings Of Fire DRAGON TRIBES!!!

Wings Of Fire Nerds

Play Episode Listen Later Jun 26, 2021 11:48


These are the tribes of the dragons in Pantala and Phyria! Hope you enjoy! Thats all for now BYEEEEEE

wings tribes fire dragon byeeeeee pantala
Kickin’ it with Cassie
Kickin' it trailer.

Kickin’ it with Cassie

Play Episode Listen Later Jun 21, 2021 5:47


Here's a little taste of the vibes intended for Kickin' it with Cassie. While we love good vibes we also intend to keep it real on the hard to handle topics as well. Hope everyone enjoys, more to come soon!!! BYEEEEEE *guests will be random for the time being* --- Send in a voice message: https://anchor.fm/cassie-gresham/message

kickin byeeeeee
That Green Vegan
Control your "ish"!

That Green Vegan

Play Episode Listen Later Jun 4, 2021 17:08


In this episode I want to talk about and give some real life situations on controlling your emotions. Sometimes we get upset which is natural, but when it gets to the point where we can't turn it off it becomes problematic and we need to find out why. Relax and chill and lets talk about it. Feel free to support "That green vegan" on all platforms IG, Facebook and YouTube. See you on the other side. Byeeeeee..... --- This episode is sponsored by · Anchor: The easiest way to make a podcast. https://anchor.fm/app

relax byeeeeee
All About Hasi
The things I hate about my face!!!

All About Hasi

Play Episode Listen Later May 28, 2021 28:27


Hey guys its me hasini!!! Today we're going to be talking about the things I hate about my face i sm sure that everyone has something that they hate about their faces so yeah!!! But....wait! You can look like anything but i adore you so yeah i hope you enjoyed the episode have a nice day and a nice week! Byeeeeee!!!

Creep Cafe Podcast
Ep 36 - Drake Killed DeeDee Blanchard

Creep Cafe Podcast

Play Episode Listen Later May 21, 2021 72:11


For legal reasons this title is alleged- Happy Friday! Hope your week was super spicey, just like this episode is about to be. Alivia covers everyone’s favorite case- Gypsy Rose & DeeDee Blanchard & Marisa covers the intriguing (and weirdly coincidental) 27 Club, let’s hope we don’t get added to the list. Byeeeeee! Follow us on all social media platforms @creepcafepod or email us creepcafepodcast@gmail.com --- Support this podcast: https://anchor.fm/creep-cafe/support

It's Tanya Time
Tanya makes music

It's Tanya Time

Play Episode Listen Later May 19, 2021 2:34


I hope y'all like the I love y'all so much. Thanks for listening. Stay safe stay healthy. Byeeeeee! --- This episode is sponsored by · Anchor: The easiest way to make a podcast. https://anchor.fm/app Support this podcast: https://anchor.fm/its-tanya-time/support

music byeeeeee
The UnMascing Podcast
Generational Divide w/ John Dorris: Mondale, Carter, Then Here Comes Reagan

The UnMascing Podcast

Play Episode Listen Later May 7, 2021 42:05


This week, we welcome friend of the pod and kickball / dodgeball / softball / bowling (the list goes on...) teammate, John Dorris! John chats with Mick and Austin about his experiences being a gentleman ~of a certain age~ in the queer community and his thoughts on a wide range of topics. Growing up in Miami, how was the move to Indiana for young, queer, John? What happened when he tried to give out condoms to his high school biology class during the HIV/AIDS crisis in the late 80s? John also gives us his thoughts on cyclical trends in the queer community and where LGBTQ+ peeps have gotten it right and broken some nasty cycles.To keep up with John, you can find him on Instagram at @aurora_radagast. If you haven't already, give US a follow at @unmascingpod while you're at it! BYEEEEEE!!!

All About Hasi
The Magic 8 ball

All About Hasi

Play Episode Listen Later May 6, 2021 38:31


Hey guys its me hasini!! In this episode i am going to talk about the history and my experience with the magic 8 ball so yeah hope you like this episode see you later!! Byeeeeee!!!!!!!

Babbles Nonsense
Staying Sober w/ Monty Burks

Babbles Nonsense

Play Episode Play 30 sec Highlight Listen Later Apr 6, 2021 44:36


In this episode, I get to sit down with my friend Monty Burks who has been helping addicts find their place in the world after they decide to get sober. We discuss how Monty became sober, the reality of addiction, how it relates with mental disorders,  why there is not much help for those seeking it, plus so much more!Monty has given many speeches  (some in front of Presidents), and he has helped thousands of people with their sobriety all on his free time. It takes a special type of person to be able to do the work that he does. If you know any one who is struggling with their sobriety or addiction, Monty has given me his phone number for those to reach out for help. Reach Monty at: https://www.instagram.com/grownmenfellowship/Email: grownmenfellowship@outlook.comText or call: 615-785-6063As always, you can reach me at:https://www.babblesnonsense.comhttps://www.instagram.com/babbles_nonsense/babblesnonsense@gmail.comDon't forget to like, rate, and share this podcast to get into the world and into the ears of others listeners! If you are listening on iTunes, feel free to leave me a little review as it helps others find my podcast as well!Until next time ..... BYEEEEEE!

Joeleneschoice Podcast
Special EP. Happy International Women's Day

Joeleneschoice Podcast

Play Episode Listen Later Mar 8, 2021 5:29


Hey guys! As my mini way of celebrating International Women's Day on 8 March 2021, I wanted to be your personal hype-friend and giving you encouragement through quotes inspired from Pinterest hahahah Hope it made your day. Byeeeeee

It's Tanya Time
Tanya sings songs by Taylor Swift part 1

It's Tanya Time

Play Episode Listen Later Mar 5, 2021 13:34


Hi guys! If you guys want me to sing any songs. Remember clean songs only send me a voice message. Stay safe and stay healthy. I love you guys so much. Byeeeeee!!!! --- This episode is sponsored by · Anchor: The easiest way to make a podcast. https://anchor.fm/app Support this podcast: https://anchor.fm/its-tanya-time/support

Soul Sistah Corner
Now I'm just sayin'..

Soul Sistah Corner

Play Episode Listen Later Dec 29, 2020 31:12


Tune in as Ebi gets straight to the truth on holding yourself accountable in the New year! BYEEEEEE 2020 hahah! •email: soul.sistah.corner@gmail.com • IG: soulsistah_corner_podcast •• thank you for your listening ears

ebi byeeeeee
The Show
‘DA BILLS

The Show

Play Episode Listen Later Dec 22, 2020 98:07


Hey guys. Been going all day so I don't have a recap planned for this, but if I don't post it, you get mad at me, so here's today's show with no description. Byeeeeee!

bills byeeeeee
Cognac & Chemistry
CC2: Let Me Talk My Shit: Part 1

Cognac & Chemistry

Play Episode Listen Later Sep 24, 2020 57:45


Yerrrrr! Welcome back to another episode. Today Ki (@_majorki) and Marty (@o.g.marty) chat and vent about topics from relationships to sex to coworkers etc. Sit back and enjoy the vent session. Byeeeeee.

shit yerrrrr byeeeeee
Thinking Out Loud
10 Paranormal Mysteries That Are Not Paranormal Mysteries

Thinking Out Loud

Play Episode Listen Later Mar 28, 2020 55:27


HIIIII!!! hope you guys have been having a nice and relaxing quarantine, just remember to stay safe, stay clean, and most importantly, stay home during a time like this. In case this quarantine is getting a little bit boring for any of you, this episode is about 10 paranormal mysteries that were actually either debunked, or fabricated to some extent. if you want to check out the article used for this episode, here is the link,https://listverse.com/2020/01/25/10-paranormal-mysteries-that-are-not-paranormal-mysteries/ I hope you guys stay safe, and stay healthy out there, BYEEEEEE!!!!

Thinking Out Loud
The Messed up Origins of Snow White, Cinderella, Aurora, and Ariel

Thinking Out Loud

Play Episode Listen Later Nov 23, 2019 35:06


in this episode I, very quietly, tell of the original stories behind Disney's first four princesses, each with many different versions, and some more gruesome than the others. props to Disney on making these stories from gruesome, to child friendly. If you want to check out the website I used in this episode for yourself, use this URL https://the-artifice.com/history-behind-disney-princesses/ as always, have a great day, a great life, a great whatever, stay safe out there, and I'll see you next time, BYEEEEEE!!!!!