CJ: Welcome to build and learn. My name is cj.
Colin: And I'm Colin, and we're back to talk about what we're working on, what we're learning, and yeah, what's going on in Craftworkland for you.
CJ: first of all, we're hiring we just had an on site in charlotte It was awesome to see the whole team if you are a rails dev or a react native dev. We'd love to chat with you. We're building some really cool stuff a lot of boring rails, crud things, and also a lot of like very awesome machine learning stuff mixed together. And yeah, so we'd love to chat.
Colin: Yeah, we'll have to put some links in the show notes for that, but it's almost every app has some boring, crud, something in there, right? even machine learning things. you gotta put stuff in a database. You gotta read it. a pretty cool opportunity for someone if you're out there looking for a new, what's next?
CJ: Totally. Yeah. Actually, like surprisingly, some of that stuff that, many might consider boring, like just putting stuff in the database is exciting. Cause it's we get to play with all these like Postgres extensions to make Rails do really interesting things with semantic search or with, trying to get chatbots to handle automate, like automated sales and support and some other things. lots of really cool stuff we're working on right now. you're like on the edge of your seat though because of something about a school bus So yeah, curious to hear what the heck is going on.
Colin: Yeah, we're recording this. this will be time dilated a little bit, but, right now I'm the high bidder of a government auction to buy a short school bus. it's something that I've been wanting to do for a long time and, I eventually want to convert it into a little RV type thing. I have no aspirations to live in a school bus, but just the idea of like I've looked at a lot of RVs, and I am in Nevada where there's a lot of space, and we have things like Burning Man, and I think it would just be a fun project to convert it, work with my hands, not be in front of a computer, and I have gone back and forth, and everyone around me is probably sick of listening to should I buy a school bus, should I not buy a school bus, and so I, this morning, it ends in three hours, and right now I'm the high bidder, so I just, Put in a bid. I was like, you know what? I can spreadsheet this out as much as possible. I can go back and forth, but ultimately it's a reversible decision. So like it will be a school bus that I can resell if I choose not to convert it, if it's just not going to be. worth having, then I can do that. It is in LA. So if I win it, I have 10 business days to go get it, drive back. so I'm going to have to do some gymnastics with my schedule if I get it. So if we get it, we'll do an update and it'll be part of the building and learning
Colin: side projects for the future.
CJ: Nice. Man, this sounds awesome for you because you camp so much and you go out and do stuff outdoors so much that it'll be amazing to just pull up to any campsite anywhere in Northern Nevada, Northern California, and just have all your gear and all your stuff like ready to go.
Colin: that's the plan and hopefully it'll open up more like cold weather camping and stuff because we like to If we get this, it's going to be like, we have to use it. If we find that we don't use it, then it probably should go find a new home. But, yeah, we'll see. So I'll keep everybody updated on that.
CJ: Nice. I was surprised when we got like a utility vehicle, it actually changed our lifestyle a surprising amount. I didn't realize how much it would impact. I thought it's just Oh, it's another daily driver kind of thing. But we actually started doing bigger projects, like on the house and actually hauling, giant, Like loads of cordwood or giant things of pine needles and, sheet rock and pavers and like all this stuff that is much harder to do just in the back of your like sedan. it also like for us, for a four person family, it unlocked like longer trips because we could pack just like an ridiculous amount of stuff in the back. So we would go with the kids with. the trunk full of all the goodies and huge, ice chests full of all the food and everything that we would need to go for, big long trips. So definitely excited for you to have that sort of same experience.
Colin: Yeah. the friends who have one, they haven't converted it because what's cool about school buses is you can literally wash it out. They use it to go to the dump. They use it to move stuff. They, when they do go to Burning Man, they like throw a folding couch bed into it and they just don't convert it, which means they don't have to register it as an RV and there's like a whole world of in some States you have to convert it and turn it into an RV if you don't want it to be a commercial vehicle. this bus. in particular is actually just registered as a van. So I'm dodging a lot of headaches there with it. It's a van. It's not a school bus. It's not a commercial vehicle. So I'll share some learnings here. maybe we'll have an Instagram, a school bus Instagram or something, maybe YouTube in the future. We'll see.
CJ: nice. Very cool. Awesome. so I was on Twitter and Reddit this morning and I noticed this new flex UI library. I don't know if you've seen this. this, this rails dev is, indie hacker kind of releasing their own UI framework that is built on flex with a bunch of UI components. and yeah, I don't know. I'm not sold on it a hundred percent. I think I love the idea of flex because you don't have to write, like you can write everything with Ruby and I don't love spending time in HTML, but at the same time, there's just so many code examples and templates and other UI frameworks that come with. HTML and CSS examples that I have a hard time like just going all in on something like flex.
Colin: Yeah, there's a lot of libraries. I think you mentioned this one from ShadCN here as well, which is built on top of Radix and Tailwind. They don't build themselves as a component library, but I like this idea of reusable code snippets. It's like, how many of us have to reinvent the wheel every single time we want to do the same things? We're not. We're not at a point in web development where we're trying to reinvent the wheel. Like users know how to use things and they don't want surprises. but we also, we don't want to re implement them over and over again. So yeah, this one's pretty interesting. We've got so flexes for Ruby devs and then rails UI. Is that
CJ: Rails UI is another, it's just like another UI framework. And, yeah, I don't know how any of these are going to, how adoption is going to go for any of them. also I signed up to try to get access to v0. dev. This is ShadCN got acquired by Vercel and they've been working on a GPT tool where you can like type in what you want it to generate, and then it's supposed to generate it for you, which I think would just be mind blowing, that would be so amazing. But yeah, I haven't gotten access yet. So I'm, waiting, with bated breath to see how that's going to work out.
Colin: Awesome. Yeah. I've been looking at the Shed CN one and then the other one. I don't, are we saying that right? I think so. and then, I also, I think we're both tailwind UI customers. I love, being able to copy and paste some of those, or even just go look at okay, how did you guys build this? so
CJ: I definitely lean on Tailwind UI way hard. Drew on our team is incredibly good at Tailwind and. As both a designer and a front end engineer, he can look at something and be like, Oh yeah, that's, you just need this class here, this class here, this class here. I'm like, Whoa, how did you even do that? Cause I just,
CJ: yeah, exactly. I'm like, I just, I'm like just copying and pasting from tailwind UI and it looks good enough.
Colin: I will say it's still worth learning CSS because it's I think a lot of people are learning with tailwinds and they don't fully understand how things like the box model and stuff work. And if you do know CSS well, then you're like, Oh, I know exactly what helper classes to throw on here. And it took me a long time to come to terms with using all these class names on elements, because I'm so used to using like a descriptive ID with a very separate CSS file and all of that,
Colin: the CSS Zen garden, way of doing things, but it's hard to deny how fast and how like you don't have to maintain style sheets and stuff. It's just beautiful.
CJ: The other thing though, that we bumped up against was that. When I kicked off the Rails app, I edited the generators that, Jumpstart Pro comes with so that it would spit out, standard HTML for all of the views that we needed with a bunch of Tailwind classes. And that is not very maintainable now that we're, hundreds and... Hundreds of views deep. And so now we're starting to extract some of that into things like view components and little helpers, not just like partials, but like actually like proper components. but I don't know, is something like flex UI, if it just gave you the component and then you had to style that, would it be as easy to copy over the CSS into those versus just having some HTML and like a view component template somewhere? I don't know. not, not so not totally sold, but also not, not closing my mind to the idea that it could work out. So if anyone has strong opinions, let us know. Yeah.
Colin: Interesting. And Flex UI has an element of a premium option. paywall or something. Hey, breaking news.
CJ: Yeah. And it's also pre sale. so I think today was like the first sales were happening. So this is yeah, hot off the presses. Yeah. Breaking news. probably, I don't know, a few weeks ago, whenever this episode actually goes out, but, yeah.
Colin: Cool. shifting into a little something different, I think listeners want to hear a fitness update.
CJ: Oh yeah. Let's do it. Let's do it. So
CJ: yeah, it's going well. I'm down to 226 pounds, which is a little bit past my goal of 230, which, yeah. Thank you. It feels
Colin: horn? Insert air horn here.
CJ: the accountability like cohort thing that I did on a, which is like a group of dads on Facebook, that was huge. Just having to record every single thing that I ate and show them pictures of it. And also they could see like my workouts every day. And they, we would call each other out if someone was slacking, like, Oh, hey, where's your, pictures of your food today? Or, Hey, it looks like you took it too easy on that ride. Like, why don't you ride a little harder? so that worked really well. It ended and I've like definitely plateaued a little bit since it ended. but I'm also okay, I gotta take a little break and then. Next stop is 2. 15, so we're gonna keep going. Couple things that I learned and would recommend checking out. I have used MyFitnessPal a ton for tracking calories, but there's this other one called MacroFactor. the UI is different and, it feels a lot quicker and it's more modern. And, my buddy Jeff is having a great success with this. The way that it works is you put in the same details and as long as you're tracking correctly, it can calculate your basal metabolic rate. Based on like your weight and the calories that you're entering. So it can figure out like, Oh, here's exactly how many calories you should be eating each day. And then make recommendations automatically based on that, instead of you having to go and do research and then enter in certain things, it gives you a more intelligent of, your diet, which is cool. And I think I mentioned on the last, episode, but this book called The Ultimate Guide to Body Recomposition, which was like super dense and scientific, I really liked it, and it gave me a lot of things to chew on. I'm like definitely in the camp of More data is better and nerding out about, Oh, all the different, proteins and, the exact number of like grams of carbs that you should be eating based on your weight and based on your gender, based on your activity level, et cetera, et cetera. So that was pretty cool. yeah, it's going well.
Colin: Yeah, I've been looking at an app called chronometer. I guess I haven't talked about on the show, but I've just passed a hundred and something days of being vegan. and one of the concerns there is like making sure that you get all of your nutrients and things. And so chronometer will break down. I think my fitness pal and macro factor might do this too, but it goes really in depth that way. If you record your food, Yeah. It'll show you like this meal was like hits your targets on like certain vitamins and minerals that you need, because that's one of the concerns. There's a lot of people end up eating vegan junk food and never getting what they really need. and so things like B12, different, are you just eating salts all the time and everything's just overwhelmed with sodium. Those kinds of things are important. I think I, I was mostly doing it to just try something for consistent a hundred days and see how it goes. And now I'm waiting to, gonna do a blood test, as part of my just annual checkup at the end of November and we'll see if we'll stay on the vegan train or not. But,
CJ: How do you feel?
Colin: I feel pretty good. I haven't noticed too many things. I think for me, like my weight is more consistent and I've actually been losing weight in a, fairly healthy way without doing much workouts. and so like I have a new normal basically. but I also don't crave a lot of the stuff that I used to crave. I've really figured out how to make it easy in social situations as well as going out to eat and things like that too. yeah, we're hacking all the things over here. It sounds like both of us.
CJ: Yeah, I think it's like a good thing to experiment with your body, with your diet, , I think it also builds your confidence, if you can control what you eat, just like just being able to do that I think reflects like a certain level of discipline, which trickles down into so many other areas of your life that I don't know, it feels good.
Colin: Totally. So you guys are hiring, you've been playing with some UI stuff, what else have you been building?
CJ: Yeah, right now on the side, I started, I've just been trying to learn more and more of these, machine learning and natural language processing and GPT tools. And so I'm building a tool that will write fiction novels. Or help you write fiction novels. Obviously, you still have to be very involved in the process, but trying to use GPT to like help be a, co pilot or tailwind for authors to, to write these books. So that's been really fun. There is some tooling in the Ruby ecosystem. So there's a project called LangChain. rb that is, that's got like some stuff in the toolkit. and so what I'm finding is oh, I get to like deep dive into the approaches that these. Libraries are taking and really it's just like several interactions with different large language models to get different results. Oh, first I want you to. Do a search based on this query to find similar results from the past. And then I want you to combine those together as input into the next query and then give me the ultimate result. So combining or summarizing or splitting or thinking about or, planning or like all these different like steps that you can do in the middle. I'll share more details later, but, I heard on the radio somewhere that Amazon just changed their rules about self publishing and at some point, like you could self publish as much as you wanted on Amazon. And they recently made it so that you're only allowed to self publish three books per day because people were just like plowing. It's yeah, generating a bunch of stuff and self publishing. And I was like, huh, wouldn't it be cool if there was like a tool that helped you do that self publishing, but also like lets you edit in the process. also slightly inspired my, Nicole and my mom, went to Salem, Massachusetts. During October, which there's like all of this like crazy, tourist activity around like the witch trials and stuff. And there was a couple of really interesting, like historical figures that they learned about. And then when they came home, they were like, Oh, I wish there was a. historical fiction book about this specific person. I would love to hear and learn about their life. And maybe I should write a book that, talks about that. And in my head, I'm like, Oh my God, like I could feed all this like historical reference data to GPT and then help help be the co pilot for writing a fiction novel. And so that's a combination of several different like ideas that are plowing into that. So
Colin: Very cool.
CJ: yeah, it should be fun.
Colin: It's fun to work on something that's not work specific too.
CJ: Yeah. Yeah. I'm also like trying to be more fun with it and just like crazy colors and, move as fast as possible and, working on it with the kids. So that's always fun too.
CJ: Yeah. How's, the conference app going?
Colin: Good. Yeah, I think we've talked about this one a lot, calendars in general, but I finally decided I'm in this accountability group and we're building it. So I've got four more weeks. It might not be fully featured by then, but I'm hoping we have to do show and tell at the end. So at the end, I'll have the ability to at least have the iPad app show. And it's just going to be a react website for now. It's not going to be a native app, but, turn red and green when it's been booked and then the ability to log in. Create an account and actually click and drag and book the meetings, which I think I'm gonna look at full calendar like you mentioned last week. just because as much as I would like to use the really cool tailwind calendars. I am not building all of that.
CJ: Yeah. Yeah. I am really curious the structure for the accountability group. And like, how did you find out about it is, yeah. Like how often do you meet and how does that, yeah, how does it work?
Colin: Yeah, so we, it's part of our co working space. it's like a perk of being a member and we meet once a week for eight weeks. and I'm the facilitator for it. So I guide them through picking one project. we seem to attract very. ambitious members who they're like, I'm going to work on all three of these things and they make no headway on any of them. And so we have really tuned the project. Like we've done this probably 20 times over the last couple of years. And We've learned to really make people dial into one project, do less than you think you can do in eight weeks. Cause we're only meeting for an hour and people are probably only carving a few hours out of every week. but we have somebody who's practicing and rediscovering their love for guitar. We have someone, trying to work on a course that they're doing. someone's working on a curriculum for yoga. Academy, like there's all kinds of different things, which is really cool. and it'll be fun. Cause show and tell for the guitar person is going to be, them performing a song and then we'll see, like the conference room app and things, so yeah, it works pretty well. Cause man, eight weeks goes by so fast.
CJ: Yes, totally. Do you find that the day before you're, you meet with the other people, you're just like hustling to try to get something done to show like the next day. Yeah.
Colin: I think that helps because you have to show something and we alternate between a rose and thorn update. So something that went well this week and something that, was a challenge or a speed bump. and then sometimes it'll be like, what's the thing that you ran into that you're interested in learning more about? and so It's really nice because some of our members, they come in and they work. If you've been to a WeWork or any of these places, like you don't really get to understand what people work on, what they're doing, what their challenges are, it becomes a little bit of group therapy where everything that happens in, in, in cultivation stays in cultivation. people get a little bit vulnerable if they're a freelancer and they're like, yeah, no clients are paying me on time. What, my, sometimes that project might be. I'm just going to figure out my invoicing and billing and getting a better system in place that makes people pay me up front. And it's really helpful. Cause then there's other people who probably were in that. position in the past that they can offer some advice. So
CJ: And you said you've run it like 20 times.
Colin: yeah, we've been doing it since 2017, I think. So it's, yeah.
Colin: So we do, I think, three a year and they take about eight weeks.
CJ: Are there certain cohorts? That you remember thinking like, wow, this one was really, like good results versus others. And then maybe were there like certain things that you took away from that?
Colin: Yeah. the, it's so different how, like one year we had somebody who was running a packaged food company that was like a granola bar that people have heard of, and they're like, my goal is to hit a certain millions of dollars in revenue by the end of this program, and it's okay, I'm just wanting to just get my shit together and have a to do list by the end of this, right, So it always is so wildly different. And, but what's cool is that each member learns from a very different industry, very different type of work. cause some of them are remote employees, some are startup folks, some are freelancers, some are just striking it out on their own for the first time. And so you get. A lot of cross, cross communication and learning and those members end up knowing each other so much better too. And so outside of the program, selfishly for us too, they end up staying longer, in terms of being coworking members because they're growing as part of it. And so it's like a no brainer to stay a member, even if they don't need the physical space anymore. But yeah. anything else, what things are you digging into over
CJ: Ah, man, just so much, so much of it is around this AI stuff. You know what's been really surprising is like, how good LLMs are at giving you back JSON? So you can just be like, Hey, generate this story with 10 characters and put the characters in a JSON array that looks like this, it'll come back like super well formed. And it's almost always right, at least with GPT four. And so that has just been like mind blowing that you can Tell it to do stuff and give you back well structured data that you can use as like part of programming something and not just like making an API call to generate a name and then making an API call to generate an occupation and making an API call to generate a background. It's no, just generate a bunch of stuff for me all at once.
Colin: Yeah. We have like a. An AI discord that it's very similar to chat GPT, but like being able to say here's a bunch of country codes for localization. And I'm not going to go look up each of these country codes to see which countries they are. And I'll just say create a table with all the country names and whether or not we support. In this case like payments in that country and it just generates it for us It always you always like I feel like you need to spot check it and be like, okay Is there anything wrong? Did you hallucinate or anything? but for factual stuff like that, it's really nice. I think it's when it starts getting a little bit creative or I found that because I haven't worked with it as Directly as you have, sometimes I'll give it documents. Like I actually gave it a city council agenda and I was like, can you please just summarize this whole thing for me? And it took the densest, like when you're thinking of being like a city council representative, you would think that agenda should be approachable by the common person. And it's the exact opposite of that. It's AB four, five, six, seven. We're going to be talking about this and you're like, what the hell is that? And it went through and found. All I was like, who is in attendance of the meeting, who's presenting, which bars are asking for liquor licenses and stuff like that. So it's almost like being able to ask questions about, just a meeting, which is pretty cool. but it's sometimes forgets the context in between where they're like, Oh, we don't know who is going to be at this meeting. I was like, I just gave you. The list of people. So I'm like, Oh, my apologies. Here's the list of people. So sometimes it forgets between calls, but, I'll have to tune that a little bit and figure out how to make it remember better.
CJ: Yeah, there's a, I've been really surprised that, using Claude, like the Claude version, the context window is so much bigger, like they give you a hundred thousand, I think it's a hundred thousand tokens or something. it's ridiculous. so you can give it just like a humongous file or document it and ask questions about it versus, a GPT three or four where you're limited to like 8k or 32k tokens, in which case You might have to do like some creative approaches to like splitting up the document, generating embeddings for it, using a vector database to use semantic search to pull out like the relevant chunks of the document, and then using that to feed GPT and tell it like give me an answer based on these three sections. but yeah, it's getting really good. There's this tool inside a lang chain called the conversational. Buffer memory. They're like trying to build out these concepts of memory because you have that limited context window. So imagine you have the super long running conversation, or you try to feed it all of the meeting notes from every city council meeting ever, and then you want to talk to it, like eventually it's going to run out of that memory space. But like one of the approaches that there's, teams are starting to explore is if it's an older message. Try to keep it in the context window by summarizing the older messages and just keeping it as information dense as possible and then give me space at the bottom of the context window or whatever to ask my question and have enough left over to get a response. and so this is something I've been trying to build with Rails where it's okay, build up the memory of different characters and like the traits of different characters. And then when we're crafting a section of the story where A subset of characters are involved, pull their character traits and then also maybe a sample from their memories where it's like relevant to the part of the story that we're writing now. So it's all fun. Yeah, it's like it's so crazy to me that any of this works.
Colin: Yeah, and I was having a meeting with some folks who are trying to figure out how to make City Council be more transparent, and that's where that idea came from, and it was just interesting to see, we deal with tech all day long, and, some of these folks were past City Council members. in the 2000s. They're a little bit older. They just don't use tech as much as we do. And they're like, yeah, now they like split the agenda into multiple agendas and multiple files. And I was like, computers do not care about that. Like it makes it harder for people to follow, which is unfortunate and intentional probably. And sometimes the topics, if you're interested in a certain proposal. It might change names between councils. And it's okay, do we assume it's making it more specific? Or is this out of is this out of just like negligence or is this intention? That they intentionally don't want you to follow it. I was like, we should be able to know, and that, that memory that you're talking about, I would love to have all of the city council database, right? All of the, all of them, because I want to know not only the agenda, but also the transcript of every meeting, and say, tell me all the meetings that this person attended. Tell me, all the meetings where this topic was discussed. without having to go pay, a paralegal or somebody to go through and find all these things. And I'm sure this is helping a lot in the legal space. I know Joshua Pig, spigford on Twitter. He has been working on detangled. ai, which is pretty cool. You can give it a legal document and it spits out. the, run of the mill, give it to me straight, summary, which is awesome. I think that's pretty cool.
CJ: So for the city council stuff, would you imagine like a sort of chat with your docs type situation or like question and answer? Like you want to just ask Hey, what happened here? Or,
Colin: Yeah, their default thinking was to create yet another newspaper. And I was like, that does not scale, right? even if you had the summaries that you gave to a person to then write up the summaries and create some perspective, like almost every issue has two sides or more, so there's going to be editorial bias. And if you're in support of this thing, if we report on it. That's going to be obvious from this perspective versus I'm more interested in what's Factually happening or happened not necessarily editorializing on it I think doing questions would be interesting But I think the thing you the problem with any of these things you gotta get people to use it and I think would be more interesting to say CJ signed up for his local council watch and I see Jay live in this ward and I'm interested in these topics. Tell me any time bike infrastructure pops up on a city agenda. And then you get emails letting you know, but then we can also say this is how you can. Call in, write in or show up to a meeting based on the things you care about, because unfortunately we can't create a whole bunch of public comment off of a government website and then submit it for public comment. 'cause they'll be like, oh, these trolls on the internet. it has to go through actual government, proceedings and meetings and stuff like that.
CJ: But it could, as I think a lot of people aren't familiar, number one, like, how to call in or show up or have their voice heard, but also, it might be interesting to, give examples. To them like, okay, here's a, yeah, here's a drafted email for you to send. And here's the email address you should send it to and have the, this is how you can have your voice heard or whatever.
Colin: oftentimes you see those templates and they're exactly the same and they just get tuned out by staff. But if you can regenerate the summary every time or at least give them a starting point, be like, what's your name? What do you care about? Where do you live? What ward? And then we generate a little thing that's custom to you. And with Twilio and stuff, we could even send it. yeah, it starts to get interesting. It's mostly like a civic engagement thing. It's do we just bury our faces in our phones more? Or do we use this tech to actually get people more engaged? Because people do care about where they live and the decisions being made. But like these meetings are during the middle of the day when most people can't go. and so we want to tell you like. If you're going to take time out of your work day, if you're going to call out sick or PTO, like this is, here's a letter to your boss one, to get your time off. But we want to make sure that you go to the most impactful meetings and not waste your time. I may be surprised city council in the process. You're like, you want, civic engagement. We're going to make you make people show up.
CJ: I love that idea. That's very cool. And I also hadn't thought about like a monitor. Like a GPT based monitor. That's just tell me anytime bike infrastructure comes up in these meetings and then it could parse the docs and if it, even if it says bicycle instead of bike or whatever, like bike lane, whatever, like it's not,
Colin: and in Reno, they're calling it micro mobility or multimodal. And I'm like, use the words that humans use.
Colin: these are city planning and like architecture, grad student words, which is great. But if you got an email that says come vote on micro mobility, whatever, like a lot of people are going to tune that out. but then you look at the bike organizations and they're like sending an email with save the bikes in all caps, right? One of those emails is getting open and one of them isn't and so there's these little nuances that come up and Yeah, maybe i'll have to dig into some nlp stuff here, too
CJ: sounds like a fun project. Seems like a wrap. What do you say?
Colin: yeah, I think there's Some topics here we can talk about next time, but, we've got some great shout outs for the show. So welcome to any new listeners out there and things for the shout outs, Connor and Jesper. if you've, been enjoying the show, you can also help us out by leaving us a review and whatever podcast app you're listening to. we have never really asked for this. We forgot that's a thing, podcast reviews. But it definitely helps other people who are building cool stuff, find the show. give us a review, give us a rating, share it with some friends. we're going to keep doing the show as long as people like hearing it. And we always have things to talk about, so we'll keep going.
CJ: Totally. That's all for this episode, folks. As always, you can head over to buildandlearn. dev to check out all the links and resources in the show notes. We'll see you next time.
Colin: See ya. All audio, artwork, episode descriptions and notes are property of CJ Avilla, Colin Loretz, for Build and Learn, and published with permission by Transistor, Inc. Broadcast by