Podcast appearances and mentions of justin frankel

  • 9PODCASTS
  • 10EPISODES
  • 48mAVG DURATION
  • ?INFREQUENT EPISODES
  • Jan 31, 2024LATEST

POPULARITY

20172018201920202021202220232024


Best podcasts about justin frankel

Latest podcast episodes about justin frankel

Builders Gonna Build
2. Justin Frankel, creator of Winamp and Reaper

Builders Gonna Build

Play Episode Listen Later Jan 31, 2024 54:42


Justin shares how he created Winamp and sold it to AOL at age 20 and tells us about his current project, digital audio workstation (DAW) Reaper. Segments [03:16] The genesis of Winamp [11:07] Winamp whips the llama's ass [14:06] Nullsoft [16:27] Winamp as a platform [23:16] The business side of Winamp [24:11] What was it like to work at AOL? [27:06] Why Justin doesn't use streaming services [30:03] Justin's website [32:06] Why Justin created Reaper [35:48] Shipping v1 of Reaper [37:02] Reaper is built by just a few people [38:53] Cross-platform codebase [40:48] Reaper as a platform [43:42] Future of Reaper [44:40] AI in Reaper [47:09] Questions lightning round [53:36] Book recommendations Show notes Where to find Justin Mastodon — justin@cockos.net Justin's website Ask Justin Frankel Books Masters of Doom by David Kushner Nona the Ninth by Tamsyn Muir The Three-Body Problem by Cixin Liu Catch-22 by Joseph Heller Flatland: A Romance of Many Dimensions by Edwin A. Abbott Podcasts Interview with Justin on the Internet History Podcast Software Winamp Reaper Do you love audio podcasts? Try Metacast podcast app at ⁠https://metacast.app⁠. Join our Reddit community at r/metacastapp. Get in touch! Send us an email at hello@buildersgonnabuild.com Subscribe to newsletter at ⁠https://www.buildersgonnabuild.com⁠ Metacast: Behind the scenes - "build in public" style podcast and newsletter at ⁠https://metacastpodcast.com⁠

Screaming in the Cloud
Learnings From A Lifelong Career in Open-Source with Amir Szekely

Screaming in the Cloud

Play Episode Listen Later Nov 7, 2023 38:47


Amir Szekely, Owner at CloudSnorkel, joins Corey on Screaming in the Cloud to discuss how he got his start in the early days of cloud and his solo project, CloudSnorkel. Throughout this conversation, Corey and Amir discuss the importance of being pragmatic when moving to the cloud, and the different approaches they see in developers from the early days of cloud to now. Amir shares what motivates him to develop open-source projects, and why he finds fulfillment in fixing bugs and operating CloudSnorkel as a one-man show. About AmirAmir Szekely is a cloud consultant specializing in deployment automation, AWS CDK, CloudFormation, and CI/CD. His background includes security, virtualization, and Windows development. Amir enjoys creating open-source projects like cdk-github-runners, cdk-turbo-layers, and NSIS.Links Referenced: CloudSnorkel: https://cloudsnorkel.com/ lasttootinaws.com: https://lasttootinaws.com camelcamelcamel.com: https://camelcamelcamel.com github.com/cloudsnorkel: https://github.com/cloudsnorkel Personal website: https://kichik.com TranscriptAnnouncer: Hello, and welcome to Screaming in the Cloud with your host, Chief Cloud Economist at The Duckbill Group, Corey Quinn. This weekly show features conversations with people doing interesting work in the world of cloud, thoughtful commentary on the state of the technical world, and ridiculous titles for which Corey refuses to apologize. This is Screaming in the Cloud.Corey: Welcome to Screaming in the Cloud. I'm Corey Quinn, and this is an episode that I have been angling for for longer than you might imagine. My guest today is Amir Szekely, who's the owner at CloudSnorkel. Amir, thank you for joining me.Amir: Thanks for having me, Corey. I love being here.Corey: So, I've been using one of your open-source projects for an embarrassingly long amount of time, and for the longest time, I make the critical mistake of referring to the project itself as CloudSnorkel because that's the word that shows up in the GitHub project that I can actually see that jumps out at me. The actual name of the project within your org is cdk-github-runners if I'm not mistaken.Amir: That's real original, right?Corey: Exactly. It's like, “Oh, good, I'll just mention that, and suddenly everyone will know what I'm talking about.” But ignoring the problems of naming things well, which is a pain that everyone at AWS or who uses it knows far too well, the product is basically magic. Before I wind up basically embarrassing myself by doing a poor job of explaining what it is, how do you think about it?Amir: Well, I mean, it's a pretty simple project, which I think what makes it great as well. It creates GitHub runners with CDK. That's about it. It's in the name, and it just does that. And I really tried to make it as simple as possible and kind of learn from other projects that I've seen that are similar, and basically learn from my pain points in them.I think the reason I started is because I actually deployed CDK runners—sorry, GitHub runners—for one company, and I ended up using the Kubernetes one, right? So, GitHub in themselves, they have two projects they recommend—and not to nudge GitHub, please recommend my project one day as well—they have the Kubernetes controller and they have the Terraform deployer. And the specific client that I worked for, they wanted to use Kubernetes. And I tried to deploy it, and, Corey, I swear, I worked three days; three days to deploy the thing, which was crazy to me. And every single step of the way, I had to go and read some documentation, figure out what I did wrong, and apparently the order the documentation was was incorrect.And I had to—I even opened tickets, and they—you know, they were rightfully like, “It's open-source project. Please contribute and fix the documentation for us.” At that point, I said, “Nah.” [laugh]. Let me create something better with CDK and I decided just to have the simplest setup possible.So usually, right, what you end up doing in these projects, you have to set up either secrets or SSM parameters, and you have to prepare the ground and you have to get your GitHub token and all those things. And that's just annoying. So, I decided to create a—Corey: So much busy work.Amir: Yes, yeah, so much busy work and so much boilerplate and so much figuring out the right way and the right order, and just annoying. So, I decided to create a setup page. I thought, “What if you can actually install it just like you install any app on GitHub,” which is the way it's supposed to be right? So, when you install cdk-github-runners—CloudSnorkel—you get an HTML page and you just click a few buttons and you tell it where to install it and it just installs it for you. And it sets the secrets and everything. And if you want to change the secret, you don't have to redeploy. You can just change the secret, right? You have to roll the token over or whatever. So, it's much, much easier to install.Corey: And I feel like I discovered this project through one of the more surreal approaches—and I had cause to revisit it a few weeks ago when I was redoing my talk for the CDK Community Day, which has since happened and people liked the talk—and I mentioned what CloudSnorkel had been doing and how I was using the runners accordingly. So, that was what I accidentally caused me to pop back up with, “Hey, I've got some issues here.” But we'll get to that. Because once upon a time, I built a Twitter client for creating threads because shitposting is my love language, I would sit and create Twitter threads in the middle of live keynote talks. Threading in the native client was always terrible, and I wanted to build something that would help me do that. So, I did.And it was up for a while. It's not anymore because I'm not paying $42,000 a month in API costs to some jackass, but it still exists in the form of lasttootinaws.com if you want to create threads on Mastodon. But after I put this out, some people complained that it was slow.To which my response was, “What do you mean? It's super fast for me in San Francisco talking to it hosted in Oregon.” But on every round trip from halfway around the world, it became a problem. So, I got it into my head that since this thing was fully stateless, other than a Lambda function being fronted via an API Gateway, that I should deploy it to every region. It didn't quite fit into a Cloudflare Worker or into one of the Edge Lambda functions that AWS has given up on, but okay, how do I deploy something to every region?And the answer is, with great difficulty because it's clear that no one was ever imagining with all those regions that anyone would use all of them. It's imagined that most customers use two or three, but customers are different, so which two or three is going to be widely varied. So, anything halfway sensible about doing deployments like this didn't work out. Again, because this thing was also a Lambda function and an API Gateway, it was dirt cheap, so I didn't really want to start spending stupid amounts of money doing deployment infrastructure and the rest.So okay, how do I do this? Well, GitHub Actions is awesome. It is basically what all of AWS's code offerings wish that they were. CodeBuild is sad and this was kind of great. The problem is, once you're out of the free tier, and if you're a bad developer where you do a deploy on every iteration, suddenly it starts costing for what I was doing in every region, something like a quarter of per deploy, which adds up when you're really, really bad at programming.Amir: [laugh].Corey: So, their matrix jobs are awesome, but I wanted to do some self-hosted runners. How do I do that? And I want to keep it cheap, so how do I do a self-hosted runner inside of a Lambda function? Which led me directly to you. And it was nothing short of astonishing. This was a few years ago. I seem to recall that it used to be a bit less well-architected in terms of its elegance. Did it always use step functions, for example, to wind up orchestrating these things?Amir: Yeah, so I do remember that day. We met pretty much… basically as a joke because the Lambda Runner was a joke that I did, and I posted on Twitter, and I was half-proud of my joke that starts in ten seconds, right? But yeah, no, the—I think it always used functions. I've been kind of in love with the functions for the past two years. They just—they're nice.Corey: Oh, they're magic, and AWS is so bad at telling their story. Both of those things are true.Amir: Yeah. And the API is not amazing. But like, when you get it working—and you know, you have to spend some time to get it working—it's really nice because then you have nothing to manage, ever. And they can call APIs directly now, so you don't have to even create Lambdas. It's pretty cool.Corey: And what I loved is you wind up deploying this thing to whatever account you want it to live within. What is it, the OIDC? I always get those letters in the wrong direction. OIDC, I think, is correct.Amir: I think it's OIDC, yeah.Corey: Yeah, and it winds up doing this through a secure method as opposed to just okay, now anyone with access to the project can deploy into your account, which is not ideal. And it just works. It spins up a whole bunch of these Lambda functions that are using a Docker image as the deployment environment. And yeah, all right, if effectively my CDK deploy—which is what it's doing inside of this thing—doesn't complete within 15 minutes, then it's not going to and the thing is going to break out. We've solved the halting problem. After 15 minutes, the loop will terminate. The end.But that's never been a problem, even with getting ACM certificates spun up. It completes well within that time limit. And its cost to me is effectively nothing. With one key exception: that you made the choice to use Secrets Manager to wind up storing a lot of the things it cares about instead of Parameter Store, so I think you wind up costing me—I think there's two of those different secrets, so that's 80 cents a month. Which I will be demanding in blood one of these days if I ever catch you at re:Invent.Amir: I'll buy you beer [laugh].Corey: There we go. That'll count. That'll buy, like, several months of that. That works—at re:Invent, no. The beers there are, like, $18, so that'll cover me for years. We're set.Amir: We'll split it [laugh].Corey: Exactly. Problem solved. But I like the elegance of it, I like how clever it is, and I want to be very clear, though, it's not just for shitposting. Because it's very configurable where, yes, you can use Lambda functions, you can use Spot Instances, you can use CodeBuild containers, you can use Fargate containers, you can use EC2 instances, and it just automatically orchestrates and adds these self-hosted runners to your account, and every build gets a pristine environment as a result. That is no small thing.Amir: Oh, and I love making things configurable. People really appreciate it I feel, you know, and gives people kind of a sense of power. But as long as you make that configuration simple enough, right, or at least the defaults good defaults, right, then, even with that power, people still don't shoot themselves in the foot and it still works really well. By the way, we just added ECS recently, which people really were asking for because it gives you the, kind of, easy option to have the runner—well, not the runner but at least the runner infrastructure staying up, right? So, you can have auto-scaling group backing ECS and then the runner can start up a lot faster. It was actually very important to other people because Lambda, as fast that it is, it's limited, and Fargate, for whatever reason, still to this day, takes a minute to start up.Corey: Yeah. What's wild to me about this is, start to finish, I hit a deploy to the main branch and it sparks the thing up, runs the deploy. Deploy itself takes a little over two minutes. And every time I do this, within three minutes of me pushing to commit, the deploy is done globally. It is lightning fast.And I know it's easy to lose yourself in the idea of this being a giant shitpost, where, oh, who's going to do deployment jobs in Lambda functions? Well, kind of a lot of us for a variety of reasons, some of which might be better than others. In my case, it was just because I was cheap, but the massive parallelization ability to do 20 simultaneous deploys in a matrix configuration that doesn't wind up smacking into rate limits everywhere, that was kind of great.Amir: Yeah, we have seen people use Lambda a lot. It's mostly for, yeah, like you said, small jobs. And the environment that they give you, it's kind of limited, so you can't actually install packages, right? There is no sudo, and you can't actually install anything unless it's in your temp directory. But still, like, just being able to run a lot of little jobs, it's really great. Yeah.Corey: And you can also make sure that there's a Docker image ready to go with the stuff that you need, just by configuring how the build works in the CDK. I will admit, I did have a couple of bug reports for you. One was kind of useful, where it was not at all clear how to do this on top of a Graviton-based Lambda function—because yeah, that was back when not everything really supported ARM architectures super well—and a couple of other times when the documentation was fairly ambiguous from my perspective, where it wasn't at all clear, what was I doing? I spent four hours trying to beat my way through it, I give up, filed an issue, went to get a cup of coffee, came back, and the answer was sitting there waiting for me because I'm not convinced you sleep.Amir: Well, I am a vampire. My last name is from the Transylvania area [laugh]. So—Corey: Excellent. Excellent.Amir: By the way, not the first time people tell me that. But anyway [laugh].Corey: There's something to be said for getting immediate responsiveness because one of the reasons I'm always so loath to go and do a support ticket anywhere is this is going to take weeks. And then someone's going to come back with a, “I don't get it.” And try and, like, read the support portfolio to you. No, you went right into yeah, it's this. Fix it and your problem goes away. And sure enough, it did.Amir: The escalation process that some companies put you through is very frustrating. I mean, lucky for you, CloudSnorkel is a one-man show and this man loves solving bugs. So [laugh].Corey: Yeah. Do you know of anyone using it for anything that isn't ridiculous and trivial like what I'm using it for?Amir: Yeah, I have to think whether or not I can… I mean, so—okay. We have a bunch of dedicated users, right, the GitHub repo, that keep posting bugs and keep posting even patches, right, so you can tell that they're using it. I even have one sponsor, one recurring sponsor on GitHub that uses it.Corey: It's always nice when people thank you via money.Amir: Yeah. Yeah, it is very validating. I think [BLEEP] is using it, but I also don't think I can actually say it because I got it from the GitHub.Corey: It's always fun. That's the beautiful part about open-source. You don't know who's using this. You see what other things people are working on, and you never know, is one of their—is this someone's side project, is it a skunkworks thing, or God forbid, is this inside of every car going forward and no one bothered to tell me about that. That is the magic and mystery of open-source. And you've been doing open-source for longer than I have and I thought I was old. You were originally named in some of the WinAMP credits, for God's sake, that media player that really whipped the llama's ass.Amir: Oh, yeah, I started real early. I started about when I was 15, I think. I started off with Pascal or something or even Perl, and then I decided I have to learn C and I have to learn Windows API. I don't know what possessed me to do that. Win32 API is… unique [laugh].But once I created those applications for myself, right, I think there was—oh my God, do you know the—what is it called, Sherlock in macOS, right? And these days, for PowerToys, there is the equivalent of it called, I don't know, whatever that—PowerBar? That's exactly—that was that. That's a project I created as a kid. I wanted something where I can go to the Run menu of Windows when you hit Winkey R, and you can just type something and it will start it up, right?I didn't want to go to the Start menu and browse and click things. I wanted to do everything with the keyboard. So, I created something called Blazerun [laugh], which [laugh] helped you really easily create shortcuts that went into your path, right, the Windows path, so you can really easily start them from Winkey R. I don't think that anyone besides me used it, but anyway, that thing needed an installer, right? Because Windows, you got to install things. So, I ended up—Corey: Yeah, these days on Mac OS, I use Alfred for that which is kind of long in the tooth, but there's a launch bar and a bunch of other stuff for it. What I love is that if I—I can double-tap the command key and that just pops up whatever I need it to and tell the computer what to do. It feels like there's an AI play in there somewhere if people can figure out how to spend ten minutes on building AI that does something other than lets them fire their customer service staff.Amir: Oh, my God. Please don't fire customer service staff. AI is so bad.Corey: Yeah, when I reach out to talk to a human, I really needed a human.Amir: Yes. Like, I'm not calling you because I want to talk to a robot. I know there's a website. Leave me alone, just give me a person.Corey: Yeah. Like, you already failed to solve my problem on your website. It's person time.Amir: Exactly. Oh, my God. Anyway [laugh]. So, I had to create an installer, right, and I found it was called NSIS. So, it was a Nullsoft “SuperPiMP” installation system. Or in the future, when Justin, the guy who created Winamp and NSIS, tried to tone down a little bit, Nullsoft Scriptable Installation System. And SuperPiMP is—this is such useless history for you, right, but SuperPiMP is the next generation of PiMP which is Plug-in Mini Packager [laugh].Corey: I remember so many of the—like, these days, no one would ever name any project like that, just because it's so off-putting to people with sensibilities, but back then that was half the stuff that came out. “Oh, you don't like how this thing I built for free in the wee hours when I wasn't working at my fast food job wound up—you know, like, how I chose to name it, well, that's okay. Don't use it. Go build your own. Oh, what you're using it anyway. That's what I thought.”Amir: Yeah. The source code was filled with profanity, too. And like, I didn't care, I really did not care, but some people would complain and open bug reports and patches. And my policy was kind of like, okay if you're complaining, I'm just going to ignore you. If you're opening a patch, fine, I'm going to accept that you're—you guys want to create something that's sensible for everybody, sure.I mean, it's just source code, you know? Whatever. So yeah, I started working on that NSIS. I used it for myself and I joined the forums—and this kind of answers to your question of why I respond to things so fast, just because of the fun—I did the same when I was 15, right? I started going on the forums, you remember forums? You remember that [laugh]?Corey: Oh, yeah, back before they all became terrible and monetized.Amir: Oh, yeah. So, you know, people were using NSIS, too, and they had requests, right? They wanted. Back in the day—what was it—there was only support for 16-bit colors for the icon, so they want 32-bit colors and big colors—32—big icon, sorry, 32 pixels by 32 pixels. Remember, 32 pixels?Corey: Oh, yes. Not well, and not happily, but I remember it.Amir: Yeah. So, I started just, you know, giving people—working on that open-source and creating up a fork. It wasn't even called ‘fork' back then, but yeah, I created, like, a little fork of myself and I started adding all these features. And people were really happy, and kind of created, like, this happy cycle for myself: when people were happy, I was happy coding. And then people were happy by what I was coding. And then they were asking for more and they were getting happier, the more I responded.So, it was kind of like a serotonin cycle that made me happy and made everybody happy. So, it's like a win, win, win, win, win. And that's how I started with open-source. And eventually… NSIS—again, that installation system—got so big, like, my fork got so big, and Justin, the guy who works on WinAMP and NSIS, he had other things to deal with. You know, there's a whole history there with AOL. I'm sure you've heard all the funny stories.Corey: Oh, yes. In fact, one thing that—you want to talk about weird collisions of things crossing, one of the things I picked up from your bio when you finally got tired of telling me no and agreed to be on the show was that you're also one of the team who works on camelcamelcamel.com. And I keep forgetting that's one of those things that most people have no idea exists. But it's very simple: all it does is it tracks Amazon products that you tell it to and alerts you when there's a price drop on the thing that you're looking at.It's something that is useful. I try and use it for things of substance or hobbies because I feel really pathetic when I'm like, get excited emails about a price drop in toilet paper. But you know, it's very handy just to keep an idea for price history, where okay, am I actually being ripped off? Oh, they claim it's their big Amazon Deals day and this is 40% off. Let's see what camelcamelcamel has to say.Oh, surprise. They just jacked the price right beforehand and now knocked 40% off. Genius. I love that. It always felt like something that was going to be blown off the radar by Amazon being displeased, but I discovered you folks in 2010 and here you are now, 13 years later, still here. I will say the website looks a lot better now.Amir: [laugh]. That's a recent change. I actually joined camel, maybe two or three years ago. I wasn't there from the beginning. But I knew the guy who created it—again, as you were saying—from the Winamp days, right? So, we were both working in the free—well, it wasn't freenode. It was not freenode. It was a separate IRC server that, again, Justin created for himself. It was called landoleet.Corey: Mmm. I never encountered that one.Amir: Yeah, no, it was pretty private. The only people that cared about WinAMP and NSIS ended up joining there. But it was a lot of fun. I met a lot of friends there. And yeah, I met Daniel Green there as well, and he's the guy that created, along with some other people in there that I think want to remain anonymous so I'm not going to mention, but they also were on the camel project.And yeah, I was kind of doing my poor version of shitposting on Twitter about AWS, kind of starting to get some traction and maybe some clients and talk about AWS so people can approach me, and Daniel approached me out of the blue and he was like, “Do you just post about AWS on Twitter or do you also do some AWS work?” I was like, “I do some AWS work.”Corey: Yes, as do all of us. It's one of those, well crap, we're getting called out now. “Do you actually know how any of this stuff works?” Like, “Much to my everlasting shame, yes. Why are you asking?”Amir: Oh, my God, no, I cannot fix your printer. Leave me alone.Corey: Mm-hm.Amir: I don't want to fix your Lambdas. No, but I do actually want to fix your Lambdas. And so, [laugh] he approached me and he asked if I can help them move camelcamelcamel from their data center to AWS. So, that was a nice big project. So, we moved, actually, all of camelcamelcamel into AWS. And this is how I found myself not only in the Winamp credits, but also in the camelcamelcamel credits page, which has a great picture of me riding a camel.Corey: Excellent. But one of the things I've always found has been that when you take an application that has been pre-existing for a while in a data center and then move it into the cloud, you suddenly have to care about things that no one sensible pays any attention to in the land of the data center. Because it's like, “What do I care about how much data passes between my application server and the database? Wait, what do you mean that in this configuration, that's a chargeable data transfer? Oh, dear Lord.” And things that you've never had to think about optimizing are suddenly things are very much optimizing.Because let's face it, when it comes to putting things in racks and then running servers, you aren't auto-scaling those things, so everything tends to be running over-provisioned, for very good reasons. It's an interesting education. Anything you picked out from that process that you think it'd be useful for folks to bear in mind if they're staring down the barrel of the same thing?Amir: Yeah, for sure. I think… in general, right, not just here. But in general, you always want to be pragmatic, right? You don't want to take steps are huge, right? So, the thing we did was not necessarily rewrite everything and change everything to AWS and move everything to Lambda and move everything to Docker.Basically, we did a mini lift-and-shift, but not exactly lift-and-shift, right? We didn't take it as is. We moved to RDS, we moved to ElastiCache, right, we obviously made use of security groups and session connect and we dropped SSH Sage and we improved the security a lot and we locked everything down, all the permissions and all that kind of stuff, right? But like you said, there's stuff that you start having to pay attention to. In our case, it was less the data transfer because we have a pretty good CDN. There was more of IOPS. So—and IOPS, specifically for a database.We had a huge database with about one terabyte of data and a lot of it is that price history that you see, right? So, all those nice little graphs that we create in—what do you call them, charts—that we create in camelcamelcamel off the price history. There's a lot of data behind that. And what we always want to do is actually remove that from MySQL, which has been kind of struggling with it even before the move to AWS, but after the move to AWS, where everything was no longer over-provisioned and we couldn't just buy a few more NVMes on Amazon for 100 bucks when they were on sale—back when we had to pay Amazon—Corey: And you know, when they're on sale. That's the best part.Amir: And we know [laugh]. We get good prices on NVMe. But yeah, on Amazon—on AWS, sorry—you have to pay for io1 or something, and that adds up real quick, as you were saying. So, part of that move was also to move to something that was a little better for that data structure. And we actually removed just that data, the price history, the price points from MySQL to DynamoDB, which was a pretty nice little project.Actually, I wrote about it in my blog. There is, kind of, lessons learned from moving one terabyte from MySQL to DynamoDB, and I think the biggest lesson was about hidden price of storage in DynamoDB. But before that, I want to talk about what you asked, which was the way that other people should make that move, right? So again, be pragmatic, right? If you Google, “How do I move stuff from DynamoDB to MySQL,” everybody's always talking about their cool project using Lambda and how you throttle Lambda and how you get throttled from DynamoDB and how you set it up with an SQS, and this and that. You don't need all that.Just fire up an EC2 instance, write some quick code to do it. I used, I think it was Go with some limiter code from Uber, and that was it. And you don't need all those Lambdas and SQS and the complication. That thing was a one-time thing anyway, so it doesn't need to be super… super-duper serverless, you know?Corey: That is almost always the way that it tends to play out. You encounter these weird little things along the way. And you see so many things that are tied to this is how architecture absolutely must be done. And oh you're not a real serverless person if you don't have everything running in Lambda and the rest. There are times where yeah, spin up an EC2 box, write some relatively inefficient code in ten minutes and just do the thing, and then turn it off when you're done. Problem solved. But there's such an aversion to that. It's nice to encounter people who are pragmatists more than they are zealots.Amir: I mostly learned that lesson. And both Daniel Green and me learned that lesson from the Winamp days. Because we both have written plugins for Winamp and we've been around that area and you can… if you took one of those non-pragmatist people, right, and you had them review the Winamp code right now—or even before—they would have a million things to say. That code was—and NSIS, too, by the way—and it was so optimized. It was so not necessarily readable, right? But it worked and it worked amazing. And Justin would—if you think I respond quickly, right, Justin Frankel, the guy who wrote Winamp, he would release versions of NSIS and of Winamp, like, four versions a day, right? That was before [laugh] you had CI/CD systems and GitHub and stuff. That was just CVS. You remember CVS [laugh]?Corey: Oh, I've done multiple CVS migrations. One to Git and a couple to Subversion.Amir: Oh yeah, Subversion. Yep. Done ‘em all. CVS to Subversion to Git. Yep. Yep. That was fun.Corey: And these days, everyone's using Git because it—we're beginning to have a monoculture.Amir: Yeah, yeah. I mean, but Git is nicer than Subversion, for me, at least. I've had more fun with it.Corey: Talk about damning with faint praise.Amir: Faint?Corey: Yeah, anything's better than Subversion, let's be honest here.Amir: Oh [laugh].Corey: I mean, realistically, copying a bunch of files and directories to a.bak folder is better than Subversion.Amir: Well—Corey: At least these days. But back then it was great.Amir: Yeah, I mean, the only thing you had, right [laugh]?Corey: [laugh].Amir: Anyway, achieving great things with not necessarily the right tools, but just sheer power of will, that's what I took from the Winamp days. Just the entire world used Winamp. And by the way, the NSIS project that I was working on, right, I always used to joke that every computer in the world ran my code, every Windows computer in the world when my code, just because—Corey: Yes.Amir: So, many different companies use NSIS. And none of them cared that the code was not very readable, to put it mildly.Corey: So, many companies founder on those shores where they lose sight of the fact that I can point to basically no companies that died because their code was terrible, yeah, had an awful lot that died with great-looking code, but they didn't nail the business problem.Amir: Yeah. I would be lying if I said that I nailed exactly the business problem at NSIS because the most of the time I would spend there and actually shrinking the stub, right, there was appended to your installer data, right? So, there's a little stub that came—the executable, basically, that came before your data that was extracted. I spent, I want to say, years of my life [laugh] just shrinking it down by bytes—by literal bytes—just so it stays under 34, 35 kilobytes. It was kind of a—it was a challenge and something that people appreciated, but not necessarily the thing that people appreciate the most. I think the features—Corey: Well, no I have to do the same thing to make sure something fits into a Lambda deployment package. The scale changes, the problem changes, but somehow everything sort of rhymes with history.Amir: Oh, yeah. I hope you don't have to disassemble code to do that, though because that's uh… I mean, it was fun. It was just a lot.Corey: I have to ask, how much work went into building your cdk-github-runners as far as getting it to a point of just working out the door? Because I look at that and it feels like there's—like, the early versions, yeah, there wasn't a whole bunch of code tied to it, but geez, the iterative, “How exactly does this ridiculous step functions API work or whatnot,” feels like I'm looking at weeks of frustration. At least it would have been for me.Amir: Yeah, yeah. I mean, it wasn't, like, a day or two. It was definitely not—but it was not years, either. I've been working on it I think about a year now. Don't quote me on that. But I've put a lot of time into it. So, you know, like you said, the skeleton code is pretty simple: it's a step function, which as we said, takes a long time to get right. The functions, they are really nice, but their definition language is not very straightforward. But beyond that, right, once that part worked, it worked. Then came all the bug reports and all the little corner cases, right? We—Corey: Hell is other people's use cases. Always is. But that's honestly better than a lot of folks wind up experiencing where they'll put an open-source project up and no one ever knows. So, getting users is often one of the biggest barriers to a lot of this stuff. I've found countless hidden gems lurking around on GitHub with a very particular search for something that no one had ever looked at before, as best I can tell.Amir: Yeah.Corey: Open-source is a tricky thing. There needs to be marketing brought into it, there needs to be storytelling around it, and has to actually—dare I say—solve a problem someone has.Amir: I mean, I have many open-source projects like that, that I find super useful, I created for myself, but no one knows. I think cdk-github-runners, I'm pretty sure people know about it only because you talked about it on Screaming in the Cloud or your newsletter. And by the way, thank you for telling me that you talked about it last week in the conference because now we know why there was a spike [laugh] all of a sudden. People Googled it.Corey: Yeah. I put links to it as well, but it's the, yeah, I use this a lot and it's great. I gave a crappy explanation on how it works, but that's the trick I've found between conference talks and, dare I say, podcast episodes, you gives people a glimpse and a hook and tell them where to go to learn more. Otherwise, you're trying to explain every nuance and every intricacy in 45 minutes. And you can't do that effectively in almost every case. All you're going to do is drive people away. Make it sound exciting, get them to see the value in it, and then let them go.Amir: You have to explain the market for it, right? That's it.Corey: Precisely.Amir: And I got to say, I somewhat disagree with your—or I have a different view when you say that, you know, open-source projects needs marketing and all those things. It depends on what open-source is for you, right? I don't create open-source projects so they are successful, right? It's obviously always nicer when they're successful, but—and I do get that cycle of happiness that, like I was saying, people create bugs and I have to fix them and stuff, right? But not every open-source project needs to be a success. Sometimes it's just fun.Corey: No. When I talk about marketing, I'm talking about exactly what we're doing here. I'm not talking take out an AdWords campaign or something horrifying like that. It's you build something that solved the problem for someone. The big problem that worries me about these things is how do you not lose sleep at night about the fact that solve someone's problem and they don't know that it exists?Because that drives me nuts. I've lost count of the number of times I've been beating my head against a wall and asked someone like, “How would you handle this?” Like, “Oh, well, what's wrong with this project?” “What do you mean?” “Well, this project seems to do exactly what you want it to do.” And no one has it all stuffed in their head. But yeah, then it seems like open-source becomes a little more corporatized and it becomes a lead gen tool for people to wind up selling their SaaS services or managed offerings or the rest.Amir: Yeah.Corey: And that feels like the increasing corporatization of open-source that I'm not a huge fan of.Amir: Yeah. I mean, I'm not going to lie, right? Like, part of why I created this—or I don't know if it was part of it, but like, I had a dream that, you know, I'm going to get, oh, tons of GitHub sponsors, and everybody's going to use it and I can retire on an island and just make money out of this, right? Like, that's always a dream, right? But it's a dream, you know?And I think bottom line open-source is… just a tool, and some people use it for, like you were saying, driving sales into their SaaS, some people, like, may use it just for fun, and some people use it for other things. Or some people use it for politics, even, right? There's a lot of politics around open-source.I got to tell you a story. Back in the NSIS days, right—talking about politics—so this is not even about politics of open-source. People made NSIS a battleground for their politics. We would have translations, right? People could upload their translations. And I, you know, or other people that worked on NSIS, right, we don't speak every language of the world, so there's only so much we can do about figuring out if it's a real translation, if it's good or not.Back in the day, Google Translate didn't exist. Like, these days, we check Google Translate, we kind of ask a few questions to make sure they make sense. But back in the day, we did the best that we could. At some point, we got a patch for Catalan language, I'm probably mispronouncing it—but the separatist people in Spain, I think, and I didn't know anything about that. I was a young kid and… I just didn't know.And I just included it, you know? Someone submitted a patch, they worked hard, they wanted to be part of the open-source project. Why not? Sure I included it. And then a few weeks later, someone from Spain wanted to change Catalan into Spanish to make sure that doesn't exist for whatever reason.And then they just started fighting with each other and started making demands of me. Like, you have to do this, you have to do that, you have to delete that, you have to change the name. And I was just so baffled by why would someone fight so much over a translation of an open-source project. Like, these days, I kind of get what they were getting at, right?Corey: But they were so bad at telling that story that it was just like, so basically, screw, “You for helping,” is how it comes across.Amir: Yeah, screw you for helping. You're a pawn now. Just—you're a pawn unwittingly. Just do what I say and help me in my political cause. I ended up just telling both of them if you guys can agree on anything, I'm just going to remove both translations. And that's what I ended up doing. I just removed both translations. And then a few months later—because we had a release every month basically, I just added both of them back and I've never heard from them again. So sort of problem solved. Peace the Middle East? I don't know.Corey: It's kind of wild just to see how often that sort of thing tends to happen. It's a, I don't necessarily understand why folks are so opposed to other people trying to help. I think they feel like there's this loss of control as things are slipping through their fingers, but it's a really unwelcoming approach. One of the things that got me deep into the open-source ecosystem surprisingly late in my development was when I started pitching in on the SaltStack project right after it was founded, where suddenly everything I threw their way was merged, and then Tom Hatch, the guy who founded the project, would immediately fix all the bugs and stuff I put in and then push something else immediately thereafter. But it was such a welcoming thing.Instead of nitpicking me to death in the pull request, it just got merged in and then silently fixed. And I thought that was a classy way to do it. Of course, it doesn't scale and of course, it causes other problems, but I envy the simplicity of those days and just the ethos behind that.Amir: That's something I've learned the last few years, I would say. Back in the NSIS day, I was not like that. I nitpicked. I nitpicked a lot. And I can guess why, but it just—you create a patch—in my mind, right, like you create a patch, you fix it, right?But these days I get, I've been on the other side as well, right? Like I created patches for open-source projects and I've seen them just wither away and die, and then five years later, someone's like, “Oh, can you fix this line to have one instead of two, and then I'll merge it.” I'm like, “I don't care anymore. It was five years ago. I don't work there anymore. I don't need it. If you want it, do it.”So, I get it these days. And these days, if someone creates a patch—just yesterday, someone created a patch to format cdk-github-runners in VS Code. And they did it just, like, a little bit wrong. So, I just fixed it for them and I approved it and pushed it. You know, it's much better. You don't need to bug people for most of it.Corey: You didn't yell at them for having the temerity to contribute?Amir: My voice is so raw because I've been yelling for five days at them, yeah.Corey: Exactly, exactly. I really want to thank you for taking the time to chat with me about how all this stuff came to be and your own path. If people want to learn more, where's the best place for them to find you?Amir: So, I really appreciate you having me and driving all this traffic to my projects. If people want to learn more, they can always go to cloudsnorkel.com; it has all the projects. github.com/cloudsnorkel has a few more. And then my private blog is kichik.com. So, K-I-C-H-I-K dot com. I don't post there as much as I should, but it has some interesting AWS projects from the past few years that I've done.Corey: And we will, of course, put links to all of that in the show notes. Thank you so much for taking the time. I really appreciate it.Amir: Thank you, Corey. It was really nice meeting you.Corey: Amir Szekely, owner of CloudSnorkel. I'm Cloud Economist Corey Quinn, and this is Screaming in the Cloud. If you've enjoyed this podcast, please leave a five-star review on your podcast platform of choice, whereas if you've hated this podcast, please leave a five-star review on your podcast platform of choice, along with an insulting comment. Heck, put it on all of the podcast platforms with a step function state machine that you somehow can't quite figure out how the API works.Corey: If your AWS bill keeps rising and your blood pressure is doing the same, then you need The Duckbill Group. We help companies fix their AWS bill by making it smaller and less horrifying. The Duckbill Group works for you, not AWS. We tailor recommendations to your business and we get to the point. Visit duckbillgroup.com to get started.

TechtalkRadio
EPISODE 361 – A Look Ahead and Flashback!

TechtalkRadio

Play Episode Listen Later Apr 16, 2023 55:27


This week on TechtalkRadio, Justin and Shawn are out, and host Andy Taylor speaks with James Czerniawski, who holds the position of Senior Tech and Innovation Policy Analyst at Americans for Prosperity and serves as a commentator for Young-Voices. James has written extensively on various topics such as Section 230, antitrust,commercial drones, and Spencer Cox - The Governor of Utah's recent bill proposing time limits and a digital curfew for minors. In the interview, James shares his insights on this legislation and its potential for adoption in other states. Andy recently stumbled upon a treasure trove of old TechtalkRadio Show Interviews from the time when the show was known as Techtalk with Mike and Andy in the Coachella Valley at Palm Springs. Among these archived interviews are some real gems, and Andy is excited to share a few of them with the audience. The first interview he wants to shareis with Ben Sawyer, who visited the show in 1999 to discuss his book "MP3 Power", which he co-wrote with Dave Greely and Justin Frankel, The Creator of Winamp. The book delved into the increasing use of MP3 technology and the benefits of audio compression. During the interview, the hosts also talked about Justin's creation of Winamp and Shoutcast for streaming audio content. Justin's inspiration for creating Shoutcast was his love for the KROQ Loveline Radio Show and his desire to hear it beyond the confines of LA radio. The follow-up book, "Online Broadcasting Power", even gave a nod to TechtalkRadio, as fellow host Bill Grace would stream the show across the country, making it the first in the Coachella Valley to do so. In addition, Andy shares an interview with Michael Giacchino, a prolific music composer known for his work on popular TV shows such as LOST, numerous blockbuster movies, and several beloved video games. During the interview, Michael gives insights into his creative process and even shares anecdotes about meeting legendary filmmaker Steven Spielberg. This week's episode of TechtalkRadio is full of engaging conversations and enjoyable flashbacks. Connect, Share with a Friend and subscribe with us on social media YouTube @techtalkradio Facebook @techtalkers Twitter @TechtalkRadio Instagram techtalkradio Web: TechtalkRadio.Com Subscribe and Like TechtalkRadio on iTunes, Spreaker, iHeart, Audacy, Amazon Music, Spotify, Pod Bean!

Metacast: Behind the scenes
14. Creator of Winamp and Reaper, Justin Frankel

Metacast: Behind the scenes

Play Episode Listen Later Apr 12, 2023 54:26


A conversation about early days of Winamp, Justin's time at AOL, creation of Reaper and questions from our listeners! Full show notes with links: https://newsletter.metacastpodcast.com/p/014-justin-frankel-creator-winamp-reaper We're always happy to hear back from our listeners, so don't hesitate to drop us a note! Email: hello@metacastpodcast.com Ilya's Instagram: https://instagram.com/podcasthacks Arnab's Twitter: https://twitter.com/or9ob Subscribe to our newsletter where we announce new episodes, publish key takeaways, and ramble about interesting stuff at https://newsletter.metacastpodcast.com.

Mobilize
Ninjam

Mobilize

Play Episode Listen Later May 7, 2020 14:21


Mobilize producer Cory Choy engages in a conversation with software developer/activist Justin Frankel about how one of his first programs Ninjam is facilitating remote collaborations between musicians. This episode was recorded using Ninjam. https://www.mobilizehere.com/podcast/2020-05-07-ninjam/

mobilize cory choy justin frankel
DAWbench Radio Show
Episode 02: DAW Evolution : Reaper - Past , Present , Future !

DAWbench Radio Show

Play Episode Listen Later Nov 3, 2019 110:11


DAW Evolution : Reaper - Past , Present , Future ! Hosted by Vin Curigliano of AAVIM Technology, I am joined by guest co-host Erin McKimm, and special guest Justin Frankel, the founder and lead developer of Reaper. We cover the history and ongoing development of Reaper and company culture, Justins involvement with DAWbench over the years, dive into some first hand power user application of the DAW software, revisit and expand on the challenges of navigating DAW multithreading/multiprocessor performance from both an end user and developer perspective We also continue to explore the recent ongoing curves with hybrid playback engines, cover some recent audio related fixes and features in Windows 10, touch on Linux and much more. Host & Guest Links : AAVIM Technology : www.aavimt.com.au DAWbench : www.dawbench.com Reaper : www.reaper.fm Erin McKimm : www.erinmckimm.com VO : Andrew Peters : www.andrewpetersvo.com Music Themes : Original DAWbench VI Theme Music composed by Rob John : Independent Music Productions : http://www.indmusicprods.com DAWbench Radio Show ReMix by Erin McKimm : www.erinmckimm.com All Rights Reserved : © AAVIMT 2019

The History of Computing
The History Of Streaming Music

The History of Computing

Play Episode Listen Later Jul 17, 2019 10:08


Severe Tire Damage. Like many things we cover in this podcast, the first streaming rock band on the Interwebs came out of Xerox PARC. 1993 was a great year. Mariah Carey released Dreamlover, Janet Jackson released That's The Way Love Goes. Boyz II Men released In The Still of the Nite. OK, so it wasn't that great a year. But Soul Asylum's Runaway Train. That was some pretty good stuff out of Minnesota. But Severe Tire Damage was named after They Might Be Giants and a much more appropriate salvo into the world of streaming media. The members were from DEC Systems Research Center, Apple, and Xerox PARC. All members at the time and later are pretty notable in their own right and will likely show up here and there on later episodes of this podcast. So they kinda' deserved to use half the bandwidth of the entire internet at the time.  The first big band to stream was the Rolling Stones, the following year. Severe Tire Damage did an opening stream of their own. Because they're awesome. The Stones called the stunt a “good reminder of the democratic nature of the Internet.” They likely had no clue that the drummer is the father of ubiquitous computing, the third wave of computing. But if they have an Apple Watch, a NEST, use an app to remotely throw treats to their dog, use a phone to buy a plane ticket, or check their Twitter followers 20 times a day, they can probably thank Mark Weiser for his contributions to computing. They can also thank Steve Rubin for his contributions on the 3D engine in the Mac. Or his wife Amy for her bestselling book Impossible Cure.  But back to streaming media. Really, streaming media goes back to George O Squier getting patents for transmitting music over electrical lines in the 1910s and 1920s. This became Muzak. And for decades, people made fun of elevator music. While he originally meant for the technology to compete with radio, he ended up pivoting in the 30s to providing music to commercial clients. The name Muzak was a mashup of music and Kodak, mostly just for a unique trademark. By the end of the 30s Warner Brothers had acquired Muzak and then it went private again when George Benton, the  chairman and publisher of the Encyclopædia Britannica pivoted the company into brainwashing for customers, alternating between music and silence in 15 minute intervals and playing soft tones to make people feel more comfortable while waiting for a doctor or standing in an elevator. Makes you wonder what he might have shoved into the Encyclopedia! Especially since he  went on to become a senator. At least he led the charge to get rid of McCarthy who referred to him as “Little Willie Benton.” I guess some things never change. Benton passed away in 1973, but you can stream an interview with him from archives.org ( https://archive.org/details/gov.archives.arc.95761 ). Popularity of Muzak waned over the following decades until they went bankrupt in 2009. After reorganization it was acquired in 2011 and is now Mood Media, which has also gone bankrupt. I guess people want a more democratic form of media these days. I blame the 60s.  Not much else happened in streaming until the 1990s. A couple of technologies were maturing at this point to allow for streaming media. The first is the Internet. TCP/IP was standardized in 1982 but public commercial use didn't really kick on until the late 1980s. We'll reserve that story for another episode. The next is MPEG. MPEG is short for the Moving Picture Experts Group. MPEG is a working group formed specifically to set standards for audio and video compression and the transmission of that audio and video over networks. The first meeting of the group was in 1988. The group defined a standard format for playing media on the Internet, soon to actually be a thing (but not yet). And thus the MPEG format was born. MPEG is now the international standard for encoding and compressing video images. Following the first release they moved quickly. In 1992, the MPEG-1 standard was approved at a meeting in London. This gave us MPEG Layer 3, or MP3 as well as video CDs.  At the Porto meeting in 1994, we got MPEG-2 standard, thus DVDs, DVD players and AAC standard a long standard for iTunes and used for both television and audio encoding. MPEG-4 came in 1999, and the changes began to slow as adoption increased. Today, MPEG-7 and MPEG-21 are under development. Then came the second wave of media. In 1997, Justin Frankel and Dmitry Boldyrev built WinAmp. A lot of people had a lot of CDs. Some of those people also had WinAmp or other MP3 players and rippers. By 1999 enough steam bad been built up that Sean Parker, Shawn Fanning, and John Fanning built a tool called Napster that allowed people to trade those MP3s online. At their height, 80 million people were trading music online. People started buying MP3 players, stereos had MP3 capabilities, and you could find and download any song you could think of easier and cheaper than you could get them at a music store. Brick and mortar music stores began to close their doors and record labels saw a huge drop in profits. I knew people with terabytes of music, where each song was about 3 megs.  The music industry had suffered a massive blow. After a long court battle, the RIAA obtained an injunction that forced Napster to shut down in 2001. The music industry thought maybe they were saved. But by then other sites like Limewire and many other services had popped up and to shut pandora's box, we needed innovation,   The innovation was making it simple to buy music. Sure, people could continue to steal music if they wanted, but it turned out that if a song was a buck, people were likely to just go out and buy it. Other vendors followed suit and before long the tide of stealing music was turned back.  Another innovation had occurred in 2001 but hadn't really caught steam yet. Rhapsody (originally TuneTo.com) was launched in December of 2001. Rhapsody slowly built up a catalog of 11 million songs and 750,000 subscribers. Rhapsody worked kinda' like Radio. Pandora Radio, launched in 2005, allowed users to create their own stations. With 66 million active users, Pandora was bought by Sirius XM for 3.5 Billion dollars. But if these were the only vendors that were in this space, it might not be what it is today. I remember in about 2010, I asked my niece about buying a song. She looked at me like I was stupid. Why would you buy a song. I asked her about downloading them for free. Black stare. That's when I realized the third wave of streaming music was on us. Spotify, originally created in 2006, allowed users to build their own stations of songs and now has 217 million users with nearly half paying for the subscription so they don't get ads, with revenue of nearly $6 Billion dollars. Apple Music was late to the party, arriving in 2015, because Steve Jobs wasn't into music subscription services. But since the launch they are up to 60 million users in 2019. Apple's services revenue though is over a quarter trillion dollars a year. Google has 15 million streaming subscribers and with the emergence of their Echo's Amazon is poised to garner a lot of streaming music subscribers.  Music isn't the only business that has been disrupted. You see, the innovation that iTunes and the popularization of the iPod created also made us rethink other business models. Television and movie consumption has shifted to streaming platforms. And Apps. The iOS App Store was released in 2008. The App Stores have shifted many an enterprise software into smaller workflows strung together with apps. There are now 1.8 million apps on that App Store and 2.1 available for Android users. These apps have led to ride sharing services and countless other apps displacing businesses that have operated the same way for sometimes hundreds of years. Yes, this story is about streaming music. But the movement that started with Severe Tire Damage combined with other technologies to have a resounding impact to how we live our lives. It's no wonder that their drummer, Mark Weiser, is widely considered to be the father of ubiquitous computing.   

HodlCast with Sasha Hodler
#HodlCast Episode 64 with Justin Frankel, CEO of Bayside Corp.

HodlCast with Sasha Hodler

Play Episode Listen Later Jan 29, 2019 18:25


January 29, 2019: Today I interviewed Justin Frankel, the CEO of Bayside Corp. Justin is a former derivatives trader and portfolio manager who has a keen interest in behavioral finance. He entered the Bitcoin space in 2012 and now manages a fleet of Bitcoin ATMs across the country. We discussed the regulatory and banking landscape applicable to operating Bitcoin ATMs, including Justin’s recent application for the New York Virtual Currency License. Check them out at: www.baysidecorp.com You can find Justin on Linked in - https://www.linkedin.com/in/justinfrankel/

Internet History Podcast
98. Rob Lord, Founder of the Internet Underground Music Archive

Internet History Podcast

Play Episode Listen Later Feb 24, 2016 56:55


SummaryRob Lord was the founder of the Internet Underground Music Archive all the way back in 1993. This would become the first website devoted to the distribution of music via MP3 downloads, and very much paved the way for a lot of what came later. Before almost anyone else, Rob had a vision that digital would be the future of music distribution, and he has pursued that vision throughout his career, which includes such music related startups as N2K, Muse.net and the Songbird player. We’ve actually already mentioned Rob at length in the Justin Frankel episode, as Rob joined Justin to create Nullsoft and disseminate the Winamp player. There’s some great, never-before-discussed details here, about doing business with the music industry, with Napster, and even with a young Travis Kalanick.Today, Rob is working on a new startup called Shrines, which should be in public beta shortly. See acast.com/privacy for privacy and opt-out information.

Internet History Podcast
74. Developer of Winamp, Justin Frankel

Internet History Podcast

Play Episode Listen Later Jul 19, 2015 68:19


Summary:A conversation with Justin Frankel, creator of the Winamp application, which was arguably the software package responsible for popularizing the MP3. See acast.com/privacy for privacy and opt-out information.

developers winamp justin frankel