Podcasts about Emscripten

  • 21PODCASTS
  • 25EPISODES
  • 1h 6mAVG DURATION
  • ?INFREQUENT EPISODES
  • Oct 26, 2023LATEST

POPULARITY

20172018201920202021202220232024


Best podcasts about Emscripten

Latest podcast episodes about Emscripten

The top AI news from the past week, every ThursdAI

ThursdAI October 26thTimestamps and full transcript for your convinience## [00:00:00] Intro and brief updates## [00:02:00] Interview with Bo Weng, author of Jina Embeddings V2## [00:33:40] Hugging Face open sourcing a fast Text Embeddings## [00:36:52] Data Provenance Initiative at dataprovenance.org## [00:39:27] LocalLLama effort to compare 39 open source LLMs +## [00:53:13] Gradio Interview with Abubakar, Xenova, Yuichiro## [00:56:13] Gradio effects on the open source LLM ecosystem## [01:02:23] Gradio local URL via Gradio Proxy## [01:07:10] Local inference on device with Gradio - Lite## [01:14:02] Transformers.js integration with Gradio-lite## [01:28:00] Recap and bye byeHey everyone, welcome to ThursdAI, this is Alex Volkov, I'm very happy to bring you another weekly installment of

Future of Coding
Amjad Masad: Replit

Future of Coding

Play Episode Listen Later Aug 27, 2021 120:38


The name Replit will be familiar to regular listeners of our show. The backstory and ambitions behind the project, however, I bet will be news to you. Amjad Masad, the founder and first programmer of Replit, is interviewed by Steve Krouse in this episode from the vault — recorded back in 2019, released for the first time today. Amjad shares the stories of how he taught himself to use a computer by secretly observing his father, his early experiments with Emscripten building VMs for the web, the founding of Replit, and how their community has exploded in popularity in recent years. Some of the conceptual discussions touch on Scheme, potential futures of visual programming, Sketchpad, and GRAIL. The transcript for this episode was sponsored, as ever, by Replit. The show notes and transcript are available right here: https://futureofcoding.org/episodes/052 See omnystudio.com/listener for privacy information.

Greater Than Code
247: Approaching Learning and Content Creation with Sy Brand

Greater Than Code

Play Episode Listen Later Aug 25, 2021 54:23


02:01 - Sy's Superpower: Making Complex Topics Digestible * Sy on YouTube: "Computer Science Explained with my Cats" (https://www.youtube.com/SyBrandPlusCats) 06:28 - Approaching Learning to Code: Do Something That Motivates You * Greater Than Code Episode 246: Digital Democracy and Indigenous Storytelling with Rudo Kemper (https://www.greaterthancode.com/digital-democracy-and-indigenous-storytelling) * Ruby For Good (https://rubyforgood.org/) * Terrastories (https://terrastories.io/) 11:25 - Computers Can Hurt Our Bodies! * Logitech M570 Max (https://www.amazon.com/Logitech-M570-Wireless-Trackball-Mouse/dp/B0043T7FXE) * Dvorak Keyboard (https://www.dvorak-keyboard.com/) 13:57 - Motivation (Cont'd) * Weekend Game Jams * The I Do, We Do, You Do Pattern (https://theowlteacher.com/examples-of-i-do-you-do-we-do/) 22:15 - Sy's Content (Cont'd) * Sy on YouTube: "Computer Science Explained with my Cats" (https://www.youtube.com/SyBrandPlusCats) * Content Creation and Choosing Topics 33:58 - Code As Art * code:art (https://code-art.xyz/) / @codeart_journal (https://twitter.com/codeart_journal) * trashheap (https://trashheap.party/) / @trashheapzine (https://twitter.com/trashheapzine) * Submission Guidelines (https://trashheap.party/submit/) * Casey's Viral TikTok! (https://www.tiktok.com/@heycaseywattsup/video/6988571925811367173?lang=en&is_copy_url=1&is_from_webapp=v1) 41:34 - #include <C++> (https://www.includecpp.org/) * Lessons learned creating an inclusive space in a decades old community (Sy's Talk) (https://developerrelations.com/community/lessons-learned-creating-an-inclusive-space-in-a-decades-old-community) * QueerJS (https://queerjs.com/) * Emscripten (https://emscripten.org/) * Graphiz it! (http://graphviz.it/#/gallery) Reflections: Mandy: Digging into Sy's videos. Casey: Working within content creation constraints. Sy: Make a video on register allocation. This episode was brought to you by @therubyrep (https://twitter.com/therubyrep) of DevReps, LLC (http://www.devreps.com/). To pledge your support and to join our awesome Slack community, visit patreon.com/greaterthancode (https://www.patreon.com/greaterthancode) To make a one-time donation so that we can continue to bring you more content and transcripts like this, please do so at paypal.me/devreps (https://www.paypal.me/devreps). You will also get an invitation to our Slack community this way as well. Transcript: Software is broken, but it can be fixed. Test Double's superpower is improving how the world builds software by building both great software and great teams and you can help. Test Double is looking for empathetic senior software engineers and dev ops engineers. We work in JavaScript, Ruby, Elixir, and a lot more. Test Double trusts developers with autonomy and flexibility at a 100% remote employee-owned software consulting agency. Are you trying to grow? Looking for more challenges? Enjoy lots of variety in projects working with the best teams in tech as a developer consultant at Test Double. Find out more and check out remote openings at link.testdouble.com/join. That's link.testdouble.com/join. MANDY: Hello and welcome to Greater Than Code, Episode 247. My name is Mandy Moore and I'm here with my friend, Casey Watts. CASEY: Hi, I'm Casey, and we're both here with our guest today, Sy Brand. SY: Hey, everyone! CASEY: Sy is Microsoft's C++ Developer Advocate. Their background is in compilers and debuggers for embedded accelerators. They're particularly interested in generic library design, making complex concepts understandable, and making our communities more welcoming and inclusive. They can usually be found on Twitter, playing with their three cats, writing, or watching experimental movies. Hi, Sy! Good to have you. SY: Hey, thanks for having me on. CASEY: The first question we like to ask, I think you're prepared for it, is what is your superpower and how did you acquire it? SY: Yeah, so very topically, I think one of my superpowers is forgetting what topics I want to talk about when recording podcasts and that, I acquired through having ADHD and forgetting to write things down. But I did write things down this time so maybe that won't be too much of a problem. But I think one of my other ones is making complex topics digestible, trying to take computer science topics and distill them down into things which are understandable without necessarily having a lot of the background knowledge, the resources you'd expect. I gained that mostly through my background in computer science and then my interest in public speaking and communication and performance poetry, trying to blend those together to make things easier to understand, lower the barrier for entry. CASEY: I love it. Making complex topics digestible. That's definitely a skill we need more of in the world. MANDY: Absolutely. So Casey told me you are a bit of a teacher and you do a lot of teaching on, is it YouTube? So making things easier to digest. Like I said, during the preshow, I've been trying to learn to code on and off for 12 years, as long as I've had this career, and I've started and stopped, gotten frustrated and stopped, and I've tried different things. I've had mentors and I feel like I've let my mentors down and I've tried this and that. I've tried the code academy and I don't know. So how do you do it? Can you tell us a little bit about how you do that? SY: Sure. So most of the topics that I am interested in teaching is, because I come from a background of compilers and debuggers and very low-level systems, those are the things that I want people to get excited about because I think people look at compilers, or C++, or low-level programming and think, “Oh, this is not very interesting,” or new, or it's too complex, or it requires too much of a degree, or whatever. But none of that is true. You can write a compiler without having to have a lot of the background knowledge you might expect and you can learn C++ without having to – it can be a lot easier than people make art. So I want to make these concepts seem interesting and understandable because they're deeply interesting to me and they've been working on them for a large part of my life and I still love it and find them fascinating. So I want to share that with people. CASEY: What's your motivation when you're working on these? Is it to understand things that are complex, or are you solving problems you have, or other people have, or maybe a blend, or other motivations? I'm wondering what gets you so pumped about it. SY: Yeah, so I think it's a few different things. I make videos on Twitter, or YouTube, things like that of explaining concepts that I'm already familiar with and it's pretty much stuff that I could write an entire video off the top of my head without having to do any research. So I've done videos on explaining what a compiler is and all the stages of compilation, or a video on higher cash performance works, or [in audible 05:48] cash configurancy, garbage collection. These are all things I could just sit down and write something on and don't have to do a lot of research. Then there's the more exploratory stuff. I've been live streaming the development of a Ranges library for C++, which is being able to compose operations, building up a pipeline of operations for your data and then declarative manner so that you don't have to deal with a lot of memory allocations and moving data, or a range yourself. You just say, “Here's all the steps that I want to occur,” and then someone who has written all of these pipeline operations deals with how that actually happens. I've been developing that library live and trying to teach myself hired to do all of these things as while also teaching other people at the same time. MANDY: So is it right to assume that maybe I've been going about learning to code in all the wrong ways and that I've just picked a language and tried to dive in, or did I miss some of the conceptual stuff? And if so, as I suspect, a lot of the conceptual stuff has gone over my head. So where do you suggest, if you were giving me advice, which yes, you are giving me advice. [laughter] Where would you suggest, as a brand-new beginner coder, what kind of software concepts I need to research and understand before actually diving into an actual programming language? SY: Honestly, I don't think that there's a single answer there and I don't think there's a lot of wrong answers there. From my perspective, the best way to learn how to code is doing something that motivates you and that gets you excited because coding is hard and when you hit those bumps and things are going wrong, if you don't have that motivation to keep going, then it's very easy to stop. I know I've done it in trying to learn certain concepts and things like that before, because I felt like, “Oh, I should learn this thing, but I wasn't really interested in it,” and then I find out it was hard and stopped. The best way that I learn is finding something where I'm like, “Hey, I want to build this thing,” or “I want to understand this because I want to solve this problem,” or “because I want to dove on that knowledge with something else.” It's always the motivation, but then I'm coming from if you're someone with ADHD, or something like me, then it's pretty much impossible to do anything without [chuckles] having a strong motivation behind it. So that kind of comes into my way of learning as well. MANDY: That's super interesting. Actually, the last episode we did was with Rudo Kemper and he did a project with Ruby for Good. I went to that and I actually got really excited, intrigued, and wanted to get involved and learn how to code because I was really interested and passionate about the project that he presented, which was Terrastories, which was handing down indigenous knowledge technologically so that stories aren't lost in just having oral traditions, that these stories are actually being recorded and are living somewhere on the internet. So that's really interesting. I went to that and then of course, pandemic happened. It didn't happen again last year, but I'm thinking about going back this year. I'm hoping maybe I can be on a team with somebody that could just shadow and sit there and maybe Casey would let me be that person because rumor has it, Casey is going to be there. Ruby for Good on the East Coast in the fall. CASEY: Yeah, I'll be there. I'd be happy to have you shadow me. Also, my role lately has been a higher level. Last time I was a product manager for the team not coding and this year I'm going to be helping the teams be happy and effective across the board because there's always a team, or two that need some alignment work so that they can be productive the whole weekend. MANDY: That's interesting. Okay. Well, I'm sure I'll find somebody who wouldn't mind me doing a kind of shadow. CASEY: For sure. MANDY: Yeah, cool. CASEY: That's the kind of environment it is. MANDY: Absolutely. CASEY: Yeah. SY: That definitely sounds like the right kind of thing like something where you hear about something, or you look at this project and you think, “Hey, I want to get involved. I want to contribute to this.” That's what can drive a positive learning experience, I think it's that motivation and that motivation could just be, “Hey, I want to get into the tech industry because it pays well and we need money to live because capitalism.” That's like totally legit as well. Whatever you find motivates you to work. MANDY: Yeah, that's why I'm here. I had to find a way for my daughter and I to live. SY: Yeah. MANDY: So I got into tech and podcasts and then I'm working for all these people who I always considered so much smarter than me. I was like, “I could never learn that. I'm not good enough.” But now since joining the podcast as a host and coming on here, I'm feeling more and more like I am smart enough, I could do the thing and so, I'm actually really getting into it more. But it's just that being on the computer for so many hours doing the work stuff makes it hard to also break into the wanting to do the learning outside of my work hours – [overtalk] SY: Right, yeah. MANDY: Because it's so much computering. SY: Yeah, or just split the good screen from bad screen. CASEY: I've been computering so much, I have a tendonitis in my right pinky now from using the arrow keys on the keyboard too much, I think and bad posture, which I've been working on for years. Computers can hurt our bodies. SY: Yeah, definitely. I use the Logitech M570 mouse, which I switched to a number of years ago and was one of the best changes I ever made for using the computer and also, switching to Dvorak for keyboard layout. CASEY: Okay. I use that, too. SY: Nice! CASEY: Dvorak. It's not better, but I learned it. [laughter] It might be more better for my health maybe, but I'm not faster. That's what people always ask. SY: I'm definitely – [overtalk] CASEY: Instead of ASDF, it's a AOEU under your fingers; the common letters right at your fingertips. You don't need the semicolon under your right pinky. [laughter] Why is that there? SY: Yeah. MANDY: Yeah. I was going to ask for us what you were even talking about there. So it's just basically reconfiguring your keyboard to not be QWERTY thing? SY: Yeah, exactly. MANDY: Okay. SY: That means you have to completely relearn how to type, which can take a while. Like when I completely stopped using QWERTY at all and just switched to Dvorak, I didn't even buy a Dvorak keyboard, I just printed out the keyboard layout and stuck it to my monitor and just learned. For the first while, it's excruciating because you're trying to type an email and you're typing 15 words per minute, or something. That's bad. I did definitely did get faster shifting to Dvorak. Before I think I used to type at like 70, 80; I type around a 100 words per minute so it changed my speed a bit. But to be fair, I don't think I typed properly on QWERTY. I switched 10 years ago, though so I can't even remember a whole lot. [chuckles] MANDY: That's interesting, though. That gives me something I want to play around with right there and it's not even really coding. [laughter] It's just I'll be just trying to teach myself to type in a different way. That's really interesting. Thank you. [chuckles] CASEY: Yeah. It was fun for when I learned it, too. I think I learned in middle school and I was I practiced on AIM, AOL Instant Messenger, and RuneScape. SY: Nice. CASEY: I didn't dare practice while I had essays due and I had to write those up. That was too stressful. [laughter] CASEY: Summer was better for me. SY: Yeah, I switched during a summer break at university. CASEY: Low stakes. I needed the low stakes for that to succeed. SY: [laughs] Yeah. CASEY: We were talking about what motivates you to learn programming and I wrote up a story about that for me actually recently. SY: Okay. CASEY: At the highest level, my first programming class, we modeled buoys and boats and it was so boring. I don't know why we were doing it. It didn't have a purpose. There was no end goal, no user, nobody was ever going to use the code. It was fine for learning concepts, I guess, but it wasn't motivated and I hated it and I stopped doing CS for years until I had the opportunity to work on an app that I actually used every day. I was like, “Yeah, I want to edit that.” I just want to add this little checkbox there. Finally, I'll learn programming for that and relearn programming to do useful things for people. Motivation is key. SY: Yeah. I think because I started doing programming when I was quite young, I knew it was definitely the classic video games, wanting to learn how to make video games and then by the time I actually got to university, then I was like, “Yeah, don't want go into the games industry.” So didn't end up doing that. But I still enjoy game jams and things like that. If you're not again. CASEY: That's another thing you might like, Mandy. It's a weekend game jam. MANDY: Hm. CASEY: I don't know how into gaming you are, but it's also fun, lower stakes. People are just partying. Not unlike Ruby for Good. They happen more often and I like how it feels at a game jam, a little better than a hackathon because you're building something fun and creative instead of using a company's API because they told you to. SY: [laughs] Yeah. MANDY: Yeah, I was honestly never exposed to video games as a child. They were a no-no in my household and that's one of the things that I always cursed my parents for is the fact that I am the worst gamer. [laughs] My daughter makes fun of me. I'll sit down and like try to – she's 12 and I'll try to do something. She'll be like, “Wow, this is hurting me to watch you, Mom,” [laughs] and I'm like – [overtalk] CASEY: Ouch. MANDY: No, she called me a try hard and I was like, “Yeah, I'm trying really hard to just go forward.” Like I'm trying really hard to just jump over this object, [chuckles] I was like, “If that makes me a try hard well, then yes, I'm trying very hard. Thank you.” SY: Yeah. My 6-year-old has now got to the point where he can beat me at Super Smash Brothers so I'm not feeling too good about that. [laughs] CASEY: Yeah. My 6-year-old nephew beat us all in Mario Kart a couple weeks. SY: Yeah. [laughs] I can still beat in the Mario Kart. That, I could do. [laughs] MANDY: Yeah. A lot of the games she does looks fun, though so it's something I would be interested in, it's just something that I haven't been exposed to. I'm really excited now that—I don't want to say the pandemic is nearing an end because it seems to be not happening, but I'm excited – [overtalk] CASEY: True. Things are opening up. MANDY: Right now. Until they start closing down again. CASEY: Yeah. MANDY: Because I'm so excited for things like Ruby for Good, driving down to D.C. and seeing some of my friends, and I would be interested in going to one of those game things, as long as people are just like, “Oh yeah, we can be patient with her because she's never done a game before.” [laughs] CASEY: Yeah. My last game jam had eight people on the team and zero had ever done game development before. We figured something out. SY: [chuckles] Yeah. MANDY: Oh, that's fun. SY: Like muddle along. CASEY: Yeah. Somebody did like level design. They did a title map. Someone did sprites. They were like, “I'm going to do a sprite tutorial now.” Sprite is moving like a walking character. We had learned all the terms for it. We didn't know the terms either, but it was a good environment to learn. MANDY: It seems it. It seems like if you have a happy, healthy environment. For me, it was just, I was becoming stressed out. I had a standing meeting once a week with a really, really awesome person and it felt like it was more of like, I was like, “Oh my gosh, I have to work this into my already busy workweek and if I don't, then I'm completely wasting their time,” and I started to feel guilty to the point it brought me down. I was just like, “I don't think this is good for either one of us right now” because I'm feeling too much pressure, especially with the once-a-week thing and it's like to get through this chapter and then get through this chapter, and then I'd have a question and I'm not good at writing things down and then I'd forget. It seems like that might be more of a strategy to learn for me. I think a lot of people, there's different strategies like you have your visual learners, or you have your audio learners and I think for me, it would be cool just like I said, shadowing somebody. Like, if I just like sat there and it wasn't weird for me just to watch it over somebody's shoulder while they're doing this thing, that would a more conducive environment to the way I learn. CASEY: Yeah. I like the pattern, You do, We do, I do. Have you heard of that one? MANDY: No. CASEY: Or I do, We do, You do depending on the perspective. So it's like shadowing first and then doing it together where you're both involved and then you can do it on your own. It's a three-step process to make it a little bit easier to learn things from other people. SY: Yeah, that makes sense. MANDY: Yeah, that sounds like how kids learn. It's how we teach our children like I do, now we're going to do it together, now you do it. Yeah, I definitely have used that with my kid. [chuckles] CASEY: And it's just completely reasonable to do that as adults. That's how human brains work. MANDY: Yeah. No, I don't feel – that's the thing I would have to not almost get over, but just be like, “Oh my gosh, I'm 2 years old. I'm learning like I'm a toddler and that's so embarrassing.” But I think that that is a great way to learn and a great way to approach learning in general. I just started a book on learning more about crystals and it's the beginner's guide and she said, “You read this book and then you can move on to reading this other 700-page book that I've authored, but you should probably read this concise guide first.” I think a lot of people feel the pressure to dive into the super smart, or what they perceive as being the super smart way of diving in like, picking up the Ruby book, or the books that everyone talks about when there's so many other great resources exist that break it into smaller, bite-sized, digestible chunks. I think there's no shame in learning like that and I think a lot of people think that they just need to dive right in and be like, “Oh, this is the hard book, I'm going to go for the hard book first.” Like no, start with the easiest, start small. SY: Yeah. I think as you say, it definitely depends on how you learn what kind of resources you find interesting and engaging. CASEY: I've heard a similar story from a lot of friends, Mandy, where they really want to learn something, maybe programming in general, or a language, and then they psych themselves out, or they don't have the bandwidth in the first place, but they don't realize it and they struggle through that and the guilt because they want to, but they don't have time, or energy, which you also need. It's really common. A lot of people that I know are really motivated to do a lot of stuff; they want to do everything. I know some people who are fine not doing everything and that's great because they're probably more grounded. [chuckles] [laughter] But a lot of people I know really want to learn at all and it's a tension; you don't have infinite time and energy. SY: Yeah. I definitely fall into wanting to learn absolutely everything and right now. MANDY: So what kind of things are you teaching right now, Sy? What kind of content are you putting out there? SY: Yeah. So like I said, a lot of it's to do with low-level programming, like how memory actually works on a computer and how it affects how we program things. Because for a lot of people, if you come from a higher-level programming background, you're used to memory being abstracted away from what you do. You deal with variables, you deal with objects, and the implementation of the programming language deals with how that actually maps onto the underlying hardware. But if you really need to get the most performance you possibly can out of your system and you're using a little bit lower-level language like C, or C++, or Rust, or Swift, or something, then you need to understand how your processor is actually handling the instructions and that is actually handling your memory accesses in order for your performance to actually be good. Some of it is not obvious as well and does not match with how you might think memory works because the processors which we're using today are based in so much history and legacy. A lot of the time, they're essentially trying to mimic behavior of older processors in order to give us a programming model, which we can understand and work with, but then that means that they have to work in certain ways in order to actually get performance for the high-performance modern systems we need. So having an understanding of how our caches work, how instruction pipelines work, and things like that can actually make a really big difference down with the low-level programming. MANDY: Okay. So I'm looking at your Twitter and then looking at your pinned tweet, it says, “I made a YouTube channel for my ‘Computer Science Explained with my Cats' videos.” How do you explain computer science with your cats? Because that's something I could probably get into. SY: Yeah. So I have three cats and – [overtalk] MANDY: I've got you beat by one. SY: Nice. What were your cats called? MANDY: I have four. I have Nicks after Stevie Nicks. I have Sphinx because he looks so regal and I have Chessy and I have Jolie. SY: Cool. Mine are Milkshake, Marshmallow, and Lexical Analysis cat. MANDY: [laughs] Cool. SY: [chuckles] Yeah. So the things explained with my cats, it's mostly I wanted to explain things with my cats and random things, which I find around my house. So I remember I have a Discord server, which I help to moderate called #include , which is a welcoming inclusive organization for the C++ community. We were talking about hash maps and how hash maps are actually implemented, and I realized that there's a lot of different design areas in hash maps, which can be difficult to understand. I wanted to try and explain it using boxes and teddies and my cats so I set up a bunch of boxes. These are all of the buckets, which your items could go into it and then there's some way to map a given teddy to a given box. Let's say, it could be how cute it is. So if it's super cute and it goes in the west most box, and if it's kind of cute, then it goes into the box after that and so on and so forth. That's kind of how hash maps work. They have a bunch of memory, which is allocated somewhere, a bunch of boxes, and they have some way of mapping given items to a given box, which is called a hash function. In this case, it was how cute they are and then you have some way of what happens if two teddies happened to be as cute as each other, how do you deal with that? There's a bunch of different ways that you could handle that and that's called hash collision. Like, what do you do with collisions? Do you stick them in the same box and have a way of dealing with that, or do you just put them in the next box up, or a few boxes up, or something like that? There's whole decades worth of research and designing, which go into these things, but the concepts map quite nicely onto boxes and teddies and how cute they are. [chuckles] MANDY: I love that. SY: They are also explaining how caching works with chocolate, like the intuition with memory access is you ask for some chunk of memory and you get that chunks. You ask for a single chunk of chocolate and you get that chunk of chocolate, but in reality, that's not what happens in most cases. In most cases, you're actually going to get back a whole row of chocolate because it's most likely that if you're going to get a bit of chocolate, you're probably going to be accessing the bits which are right next to it. Like, if you have an array and you're processing all of the elements in that array, then you're just going to be stepping along all of those elements. So it's much faster to bring all of those elements would be right into memory at once. That's what happens in modern processors. Without you having to ask for it, they just bring in that whole row of chocolate. So I tried to – [overtalk] CASEY: That's so polite. [laughs] When your friend asks for a single chip, or a single piece of chocolate, you know what they want more. SY: [laughs] Yeah. CASEY: How generous of you to give them the whole bag. [laughs] Whether they want it, or not though. SY: Yeah. MANDY: So are these videos relatively short, or are they more long-form videos? SY: Yeah, they are 2 minutes long. MANDY: Oh, cool. SY: I try and keep them within the video limit for Twitter videos, which is 2 minutes, 20 seconds. MANDY: Okay, cool. See, that's something I could probably commit to is watching one of those videos not even maybe once a day because sometimes that's a little bit, much pressure every day. So maybe I try to work out three to four times a week. So saying I'm going to do this three to four times a week and I'm going to not stress on I'm going to do this every Monday. Generally three to four times a week, I think that's something I could, could commit to. SY: Yeah. Trying to get them within 2 minutes, 20 seconds can be really tough sometimes. Like it's quite – [overtalk] MANDY: Do you do a lot of editing? SY: Yeah. I would sit down and I'll write the whole episode, or video, or whatever and just get in all of the content that I want, just put it onto a text document and then I'll start filming it in whatever order I want, and then I start editing and then quite often, I realized that I've got 2 minutes, 40 seconds worth of content, or something and I can't quite cut it down and I have to reshoot something and then reedit it. I try to get it all done within a single day because if I don't get it done in a single day, then it ends up taking even longer because I get distracted and things like that. I need to focus just getting this one thing done. MANDY: So you're doing these within hours? SY: Yeah. MANDY: From start to finish, how many hours would you say you invest in these videos? SY: Start to finish, about 5, 6 hours, something like that. Like I said, I don't really have to do a lot of research for them because they're things I know very well, so I can pretty much sit down and just write something and then most of the time is spent in editing and then captioning as well. MANDY: Very cool. CASEY: I've been doing a bit of video editing lately and it takes so long. SY: Yeah, it really does. CASEY: I'm not surprised it takes 5, or 6 hours. [laughter] MANDY: No, I'm not either. I do all the podcasts editing. For those of you listening, who do not know, I edit all these podcasts and it takes roughly even 5 to 6 hours for audio, because I also put other work into that, like doing the show notes and getting the transcripts. Now I have those outsourced because I don't have enough hours in the day, but there's a lot of different parts to editing, podcasting, screen casting, and stuff that I don't think a lot of people know that these 2-minute videos that you do really do take 5 to 6 hours and you're putting these out there for free? SY: Yeah. MANDY: Wow. That's amazing. I assume you have a full-time job on top of that. SY: Yeah. Because my position is a developer advocate, I can count that as is doing work so I don't have to do that in my own time. MANDY: Very cool. Yeah, that's cool. I love DevRel so working in DevRel, I do that, too. I'm a Renaissance woman, basically. Podcast editing, DevRel conference organizing, it's a lot. SY: Yeah. MANDY: So I give you mad props for putting stuff out there and just giving a shout out to people who might not be aware that content creation is not easy and it does take time. So thank you. Thank you for that. Because this seems like the kind of stuff I would be able to ingest. SY: Yeah, thanks. MANDY: And that's cool. CASEY: I'm especially impressed, Sy that you have these interests that are complex would expand and you can explain the well and you find the overlap with what people want to know about. [chuckle] I think maybe in part from the Discord, you hear people asking questions. Can you tell us a little bit about what that's like? How do you decide what's interesting? SY: Yeah. I ask people on Twitter what they would find it interesting, but I also, because right now I'm not really going to conferences, but previously I'd go to a lot of conferences and people would come up to me and if I give a talk on compilers, for example, come and say like, “Oh hey, I never knew how register allocation worked. It was super interesting to know.” So I don't think I've done a video on register allocation yet actually. I should do one of those. MANDY: Write that down. SY: [laughs] Yeah. That's the kind of thing. Just because I spent a lot of time in communities, conferences, Discords, on Twitter, you get a feel for the kind of topics which people find interesting and maybe want to know how they work under the covers and just haven't found a good topic. Even function calls like, how does a function call work in C at the hardware level? If you call a function, what's actually happening? I did a video on that because it feels like such a fundamental thing, calling a function, but there's a lot of magic which goes into it, or it can seem like a lot of magic. It's actually, I want to say very well-defined, sometimes less so, but [laughs] they are real so there is random reason. MANDY: Very cool. I want to talk about the other content creation that you do. So code art journal and trashheap zine, do you want to talk about those a minute? SY: Sure. So code art was an idea that I had. It's a journal of code as art. I'd hear a lot of people saying, “Oh, coding is an art form.” I'd be like, “Okay. Yes. Sometimes, maybe. When is it an art form? When is it not? What's the difference between these?” Like, I spent a lot of time thinking about art because I'm a poet and I spend most of my free time researching and watching movies. Code as art is something which really interested me so I made this journal, which is a collection of things which people send in of code which they think is art and sometimes, it's something you might immediately see and look at it and think, “Okay, right, this is code and it's fulfilling some functional purpose,” and maybe that functional purpose gives it some artistic qualities just by how it achieved something, or if it does something in a very performant manner, or a very interesting manner. Other times, you might look at it and say, “Okay, well, this is code, but it's more aesthetic than functional.” And sometimes it's things which you might look at and think, “Okay, is this even code?” Like there was someone sent in a program written in a language called Folders, which is a esoteric programming language entirely programmed using empty folders on your hard drive, which I absolutely love. I'm super into esoteric programming languages so I absolutely loved that one. [chuckles] But yeah, so the – [overtalk] CASEY: That sounds so cool. Where can people find it? Is it online also? SY: Yes, it's in print and there's also, you can get the issues online for free in PDF form. There is a third issue, which is pretty much fully put together on my machine, I just haven't done the finishing touches and it's been one of those things that's just sat, not doing anything for months and I need to get finished. [chuckles] And then trashheap zine is another thing that I co-edit, which is just utter trash, because as much as I love more explicitly artistic films and writing and things like that, I also have a deep love of utter, utter trash. So this is the trashiest stuff that we could possibly find, even the submission guidelines that I wrote for that is essentially a trash pond, but random submission guidelines. So if you have trash, please send our way. MANDY: Yeah. I was going to say, what you consider trash? What trashiest [laughs] enough to be in these zines? SY: I can read out, where's my submission guidelines? The URL for the zine is trashyheap.party, which I was very, very pleased with and the website looks awful. I spent a lot of time making it as awful as I possibly could. Things like any kind of – [overtalk] CASEY: I love the sparkles. SY: Yes! CASEY: When the mouse moves, it sparkles. SY: Isn't it the best, seriously? Yeah. CASEY: Every website should have that. SY: Yeah, totally. Like texts you sent your crush at 4:00 AM while drunk where you misspelled their name and they never spoke to you again, or draft tweets which you thought better of sending, purely Photoshop pictures of our website. [laughter] A medically inaccurate explanation of the digestive system of raccoon dogs. All good stuff. MANDY: That's amazing. CASEY: I know a lot of people who would be cracking up reading this together. [laughter] CASEY: That sounds great. There's so much treasure in this trash heap. MANDY: Yeah. Don't worry, folks, we'll put links in the show notes. CASEY: Oh, yeah. SY: Yeah. One of my favorite things with it was when we'd get all of the submissions, we would get together and just project them up on a wall and read them together and so much so bad, it's hilarious in the most wonderful way. CASEY: That sounds like a party itself. SY: It is, yes. CASEY: The be trashheap party. SY: Absolutely. CASEY: It's kind of taking me back to early pre-YouTube internet when we watch flash cartoons all the time and a lot of those were terrible, but we loved them. SY: Yes. I made some as well, they were so bad. [laughter] I remember getting a very non legal version of flash and making the worst stick flash renovations I possibly could. CASEY: Oh, speaking of content creation, I've been learning some animation and 3D modeling animation lately. I had my first ever viral TikTok; it had over 9,000 views. SY: Wow! Nice. CASEY: And so when I look at my phone, if it's not the notifications muted, it's annoying. I have to turn it off. [laughter] SY: Yeah – [overtalk] MANDY: Congratulations! [laughs] CASEY: Thank you. So the video is a USB thumb drive that won't insert, even though you flip it over. That's been done before, but what I added was misheard lyrics by the band Maroon 5. Sugar! USB! That's what I hear every time. Mandy, have you done any art? MANDY: Have I done any art? CASEY: Lately? MANDY: Oh. Yeah. Well, actually – [overtalk] CASEY: You've been doing some home stuff, I know. MANDY: Yeah. I've been doing plant stuff, gardening, but this weekend, I actually took my daughter to a workshop. It was called working with resin—epoxy. SY: Oh, cool. MANDY: And we got to make coasters. The teacher brought stickers, feathers, and crystals and it was like a 3-hour workshop and I think my daughter had extra resin. Her birthday is on Thursday this week and I noticed she was making kind of the same ones and I said, “What are you doing?” And she said, “I'm making gifts for my friends that come to my birthday party.” I just thought it was so sweet that I was like – [overtalk] SY: Oh, so sweet. MANDY: Usually birthday parties, you receive gifts, or whatever and she's like, “No, I would like to give them gifts for my birthday,” and I was like, “Oh, that's adorable.” So I've been trying to do more things with my hands and get off the screens more, which has been the major thing keeping me back from being on code. I've made a strict weekend policy where I do not touch my computer from Friday evening to Monday morning, unless it's an absolute dumpster fire, I need to do something, or if a takeout menu looks better on my computer than it does on my phone. [laughter] Then I'll pop it open, but I won't read the email, or do the Slack. And then this Saturday I'm taking a course in astrology. It's all-day workshop so I'm excited to kind of dive into that stuff a little bit more. CASEY: So cool. It's hard to believe we can do these in person again. I'm not over it. MANDY: I know. I'm so afraid to get excited over it and then have it be taken away again. CASEY: Yeah. Sy, tell us a little more about #includes . I've actually heard of it. It's a little bit famous online. It's an inclusive community, I know from the name. SY: Yes. CASEY: Tell us more about it. SY: So it actually started off on Twitter as a half joke; Guy Davidson tweeted being like, “Hey, so why isn't there a diversity and inclusion organization for C++ called #include?” Because #include is it's like a language concept in C and C++ and people were like, “Hahaha yeah, you're right,” and then Kate Gregory was like, “You're right. We should make one.” So we did [chuckles] and we started off with like six of us in a Slack channel and then ended up moving to Discord and starting our own server there and now we are a few thousand members. Back when we had in-person conferences, we would have a booth at pretty much every major C++ conference, we had scholarships, which we would send people on, we got conferences to improve by having live captioning and wheelchair accessible stages and gender-neutral bathrooms instituting and upholding code of conduct, things like that. We started off thinking, “Hey, if we could get some conferences to have a code of conduct or something that would be great,” and then it ended up being way, way, way bigger than any of us thought it would become, which is amazing to see. CASEY: That's so cool. What a success story. SY: Yeah. CASEY: How long has it been going on now? SY: I guess about 3, or 4 years. Yeah, probably closer to 4 years. My sense of time is not good the best of times, but something around 4 years. CASEY: I'm curious if another language community wanted to do something similar if they're inspired. Is there a writeup about what y'all have done? 
SY: I've given talks. CASEY: That we can point people to. We can put that in the show notes. SY: Yeah. I've given a couple of talks, as I said. CASEY: Talks, that would be good. SY: Other people have given talks as well. I gave a slightly longer form talk DevRelCon, London in 2019, I think, which was on the lessons which we learned through trying to build a welcoming and inclusive community. Community which has already been around for decades because C++ was first standardized in 1998 so it's been around for quite a long time and has a lot of history. CASEY: That sounds great. I can't wait to watch it. SY: Yeah. I know that there's other languages. You have JavaScript, QueerJS, which is a really cool community and I'm sure there are other languages which have similar things going as well. CASEY: I had never heard of QueerJS. I'm queer and JS. SY: Yeah. CASEY: I'm glad I had this moment just now. SY: It's cool. They have a Discord and I can't remember how active the Discord is, but they would have meetups across the world, they have one in London and in Berlin and bunch of other places, and talks and community. It seems really cool. CASEY: That's awesome. SY: I wanted to give a talk about C++ and JavaScript because you could link target JavaScript with C++ these days, which is kind of cool. CASEY: I've used Emscripten before. SY: Yeah. CASEY: I didn't use it directly, other people did. It turned Graphviz into a JavaScript. A program that runs in JavaScript instead of normally, it's just CSS. So I could draw circles pointing to other circles in the browser, which is what I always wanted to do. Graphviz.it, that “it” is my favorite Graphviz editor. It's online. SY: Cool. I like Graphviz a lot. Emscripten is really cool, though. Basically a way of compiling C++ plus to JavaScript and then having the interoperation with the browser and the ecosystem that you might want to be able to call JS functions from C++, or other way around, and do things which seem operating systems E, but have to be mapped inside the browser environment. CASEY: That's powerful. I'm also glad I've never had to use it directly. Other people made libraries doing it what I needed. Thank goodness. [chuckles] Abstraction! SY: Yeah. I've not used a whole lot, but I did find it fairly nice to work with when I did. I made a silly esoteric programming language called Enjamb, which is a language where the programs are cones and it runs on a stack-based abstract machine and the interpreter for it is written in C++. I wrote a command line driver for it and also, a version which runs in the browser and that compiles using Emscripten. It was really cool and I picked it all up with CMake, which is the main C++ build systems that you could just say, “Hey, I want to build the combine line version for my platform” like Windows, or Mac, or Linux, or whatever, or “Hey, I want to build it for the web,” and it would build the JavaScript version in HTML page and things like that. It's pretty cool. I recently made another esoteric programming language, which you program using MS Paint. You literally make shapes with MS Paint and you give the compiler an image file, and then it uses OCR and computer vision in order to parse your code and then generate C from that. [laughs] It's pretty ridiculous, but I had so much fun with it. CASEY: OCR is Optical Character Recognition? SY: Yes, exactly. CASEY: So I'm picturing if I wrote a program on a napkin and a computer could maybe OCR that into software. SY: Yeah. So it uses OCR for things like function names because it supports function calls and then uses shapes for most things. It has things like a plus sign, which means increment what it's currently being pointed to, or right, or left, or up, or down arrow is for moving things around. You would actually make an image file with those symbols and then I used OpenCV for working out what the shapes were. It was the first time I've ever done any kind of image recognition stuff. It was a lot easier than I expected it to be; I thought we'd have to write a lot of code in order to get things up and running and to do image detection. But most of the simple things like recognizing hey, this is a triangle, or this is a plus sign, or this is a square, and things like that were pretty, you don't need a lot of code in order to do them. That was mostly when you had to say like, “Okay, this is a triangle, but which direction is it pointing in?” It got a little bit more complicated; I had to do some maths and things like that and I'm terrible at maths. [chuckles] So that was a little bit more difficult, but it was a lot fun to get started with and I had a much lower barrier to entry than I expected. CASEY: Now I want to play with OCR and image recognition. I haven't done that for 10 years. It was not easy when I tried it last time with whatever tool that was. SY: [chuckles] Yeah, I did it – [overtalk] CASEY: For the future! SY: [laughs] Definitely. Yeah. I did it with Python and Python has fairly nice OpenCV bindings and there's a ton of resources out there for predicting most of the basic stuff that you would expect. So there's a lot of learning resources and decent library solutions out there now. CASEY: Cool. All right. We're getting near the end of time. At the end, we like to go through reflections, which is what's something interesting that stood out to you, something you'll take with you going forward from our conversations today. MANDY: I really am excited to dig into Sy's videos. They seem, like I said earlier in the show, something I could commit to a few times a week to watching these videos especially when they are concepts that seem so much fun, like cats, teddy bears, cuteness levels, and things like that. I think that would be a great start for me just to in the morning while I'm still drinking tea just before I even dive into my email, check out one of those videos. So I think I'll do that. SY: Thanks. CASEY: Sy, I liked hearing about your process side with your constraints like 2 minutes, 20 seconds on Twitter, that's such a helpful constraint to make sure it's really polished and dense. It takes you 5 to 6 hours and you make things that people ask about, that they're interested in. That whole process is fascinating to me as I try to make more viral TikToks. [laughter] Or whatever I'm making at the time. SY: Yeah. CASEY: I always wondered how you made such good stuff that got retweeted so often. Cool things of insight. SY: Yeah. Mostly just time. [laughs] I guess, it makes me remember that I definitely want to make a video on register allocation because I love register allocation. It's such a cool thing. For those who don't know, it's like if you have a compiler which takes your code and maps it onto the hardware, your hardware only has a certain number of resources so how do you work out how to use those resources in the best manner? It maps onto some quite nice computer science algorithms like graph coloring, which means it maps quite nicely visually, I could probably make a pretty cool graph coloring visualization with some random things I have strewn around my room. CASEY: I can't imagine this yet, but I will understand that clearly soon I bet. MANDY: That's awesome. Well, I just want to wrap up by saying thank you so much for joining us today, Sy. This has been a really awesome conversation. And to folks who have been listening, thank a content creator. It takes time. It takes energy. It's a lot of work that I don't think a lot of people, unless you've done it, really understand how long and in-depth of a process it is. So thank one of us content creators, especially when we're putting this content out for you for free. To do that for us Greater Than Code, we do a Patreon page and we will invite Sy to join us and we would like you to join us as well. If you are able to donate on a monthly basis, it's awesome. It's patreon.com/greaterthancode. All episodes have show notes and transcripts, and we do a lot of audio editing. So join us if you're able. If you are still a person who is greater than code and cannot afford a monthly commitment, you are still welcome to join us in our Slack community. Simply send a DM to one of the panelists and we will let you in for free. So with that, thank you so much, Casey. Thank you again, Sy. And we'll see you all next week. Special Guest: Sy Brand.

Python en español
Python en español #25: Tertulia 2021-03-23

Python en español

Play Episode Listen Later Jun 9, 2021 91:58


Pattern Matching en Python 3.10, Sans IO y Encuesta mundial de programadores Python https://podcast.jcea.es/python/25 Participantes: Jesús Cea, email: jcea@jcea.es, twitter: @jcea, https://blog.jcea.es/, https://www.jcea.es/. Conectando desde Madrid. Felipem, conectando desde Cantabria. Jesús, conectando desde Ferrol. Víctor Ramírez, twitter: @virako, programador python y amante de vim, conectando desde Huelva. Eduardo Castro, email: info@ecdesign.es. Conectando desde A Guarda. Audio editado por Pablo Gómez, twitter: @julebek. La música de la entrada y la salida es "Lightning Bugs", de Jason Shaw. Publicada en https://audionautix.com/ con licencia - Creative Commons Attribution 4.0 International License. [00:52] Advertencia de que el audio tiene lagunas y puede ser difícil seguir el hilo. [01:07] Conecta gente nueva y cambio de horario. ¡Queremos que las tertulias sean más cortas! [04:57] Python 3.10: ¿Mandar y cómo mandar deberes? ¿Probar las novedades cuando se anuncian o esperar a que entren en producción? [08:19] Presentaciones. [10:32] Jesús Cea ha enviado ya el parche para el bug que se discutió en navidades: Issue35930: Raising an exception raised in a "future" instance will create reference cycles https://bugs.python.org/issue35930. [11:12] Los que se autodenominan novatos también tienen mucho que aportar. [12:21] Unpacking en bucles for: PEP 3132 -- Extended Iterable Unpacking: https://www.python.org/dev/peps/pep-3132/. Busca en Internet: "Python tuple unpacking". PEP 448 -- Additional Unpacking Generalizations: https://www.python.org/dev/peps/pep-0448/. [15:57] Python Packaging: Lo estás haciendo mal https://www.youtube.com/watch?v=OeOtIEDFr4Y. https://github.com/astrojuanlu/charla-python-packaging. https://nbviewer.jupyter.org/format/slides/github/astrojuanlu/charla-python-packaging/blob/main/Charla%20Python%20packaging.ipynb#/ [18:07] Machete Mode: https://nedbatchelder.com/blog/202103/machete_mode_tagging_frames.html. [18:42] Pattern Matching en Python 3.10: PEP 622 -- Structural Pattern Matching https://www.python.org/dev/peps/pep-0622/. PEP 634 -- Structural Pattern Matching: Specification https://www.python.org/dev/peps/pep-0634/. PEP 635 -- Structural Pattern Matching: Motivation and Rationale https://www.python.org/dev/peps/pep-0635/. PEP 636 -- Structural Pattern Matching: Tutorial https://www.python.org/dev/peps/pep-0636/. Tema recurrente: ¿Compensa complicar la sintaxis del lenguaje? [22:27] ¡Combina todo eso con el Walrus operator (operador morsa)!: PEP 572 -- Assignment Expressions https://www.python.org/dev/peps/pep-0572/. Presentación en vídeo: Pattern Matching in Python 3.10: https://morioh.com/p/aa1e6d5352c3, minuto 8:47. [24:32] Temas recurrentes de Jesús Cea: complejidad accidental del lenguaje. ¿Python ha perdido el rumbo? Guido van Rossum https://es.wikipedia.org/wiki/Guido_van_Rossum está apoyando muchos cambios polémicos en Python. El principio del fin fue la implementación de async/await y dividir Python en dos mundos: síncrono y asíncrono. [27:02] Código que puede funcionar tanto en el mundo síncrono y asíncrono. Biblioteca asyncio: https://docs.python.org/3/library/asyncio.html. Biblioteca unsync: https://pypi.org/project/unsync/. inspect.iscoroutinefunction(object): https://docs.python.org/3/library/inspect.html#inspect.iscoroutinefunction. inspect.iscoroutine(object): https://docs.python.org/3/library/inspect.html#inspect.iscoroutine. inspect.isawaitable(object): https://docs.python.org/3/library/inspect.html#inspect.isawaitable. inspect.isasyncgenfunction(object): https://docs.python.org/3/library/inspect.html#inspect.isasyncgenfunction. inspect.isasyncgen(object): https://docs.python.org/3/library/inspect.html. [29:12] Lo bueno de tener dificultad para mezclar el mundo síncrono y el mundo asíncrono es que ha surgido un movimiento para desvincular los protocolos del propio medio de comunicación. Sans IO: https://sans-io.readthedocs.io/. Máquina de estados: https://es.wikipedia.org/wiki/M%C3%A1quina_de_estados. [33:15] How to write obfuscated python https://archive.org/details/pyvideo_398___how-to-write-obfuscated-python. [33:52] Seguridad en PyPI https://pypi.org/: New packaging security funding & NYU https://discuss.python.org/t/new-packaging-security-funding-nyu/7792. PEP 458 -- Secure PyPI downloads with signed repository metadata https://www.python.org/dev/peps/pep-0458/. Permite meter espejos de PyPI https://pypi.org/ sin tener que confiar en ellos. [36:27] Encuesta mundial de programadores Python: Python Developers Survey 2020 Results https://www.jetbrains.com/lp/python-developers-survey-2020/. Aquí no vamos a describir cada respuesta de la encuesta en las notas de la tertulia, pero listamos puntos y enlaces que pueden ser de interés. [40:32] Usar Python en el navegador web: Brython http://www.brython.info/. [44:42] ¿No molaría poder mezclar código Python y Javascript y poder llamarse mutuamente? [45:42] Precendente: Python y Java: Jython https://www.jython.org/. WAR: https://en.wikipedia.org/wiki/WAR_(file_format). [47:42] Python soportado en los navegadores. PyXPCOM: https://developer.mozilla.org/pl/docs/PyXPCOM. WebAssembly: https://es.wikipedia.org/wiki/WebAssembly. asm.js: https://en.wikipedia.org/wiki/Asm.js. Emscripten: https://emscripten.org/. Javascript en javascript: Polyfill https://en.wikipedia.org/wiki/Polyfill_(programming). Pyodide https://pyodide.org/en/stable/index.html. [59:37] Aún hay mucha documentación online sin actualizar, con ejemplos en Python 2. [01:00:42] Corte de conexión. Se supone que había un más gente grabando la tertulia, pero luego resultó que no. [01:04:12] pipenv https://pypi.org/project/pipenv/. [01:09:22] Las características deseadas de Python chocan con lo que más se valora en él... [01:11:32] La documentación de FastAPI https://fastapi.tiangolo.com/ es fantástica y puedes aprender muchísimos conceptos web. REST: https://en.wikipedia.org/wiki/Representational_state_transfer. [01:18:07] Libro "Modern Tkinter for Busy Python Developers" https://tkdocs.com/book.html. [01:19:12] En la escuesta no salen librerías de generación de PDFs https://es.wikipedia.org/wiki/PDF. Se sugieren algunas: Reportlab https://pypi.org/project/reportlab/. PyPDF3 https://pypi.org/project/PyPDF3/. weasyprint https://pypi.org/project/weasyprint/. [01:21:52] No hay representación de tecnologías de persistencia de datos en los resultados de la encuesta. [01:22:22] Tortoise ORM https://tortoise-orm.readthedocs.io/en/latest/index.html es asíncrona. [01:22:47] SQLite https://sqlite.org/ es perfecta si quieres SQL https://es.wikipedia.org/wiki/SQL, pero solo hay un programa usando la base de datos. [01:26:42] Map/Reduce https://es.wikipedia.org/wiki/MapReduce. Manta: Triton's object storage and converged analytics solution https://apidocs.joyent.com/manta/. [01:27:32] Lo dejamos en la mitad de la encuesta: Technologies and Cloud. [01:28:22] Intentamos coordinar el acceso a la segunda captura de audio de la tertulia. Lamentablemente la cosa no funcionó. [01:29:22] Queda pendiente comentar cómo va la publicación de las tertulias en formato podcast. [01:30:17] ¡Nuevo horario! [01:31:05] Final.

Kodsnack
Kodsnack 421 - Molnsvacka

Kodsnack

Play Episode Listen Later Jun 8, 2021 57:27


Fredrik och Kristoffer snackar webbkontainrar och boktips. Men först: en liten uppvärmning om maskrosvin och andra kul saker man kan brygga hemma. Det första huvudämnet är alltså webbkontainrar, ett koncept som presenterats i ett blogginlägg från företaget Stackblitz. De vill lösa alla våra problem med lokala utvecklingsmiljöer genom att tvinga in Node, Visual studio code, och precis allting annat i stacken i webbläsaren. Vi är … milt skeptiska. Hade man inte kunnat lösa många problem med lokala installationer genom att lägga två år på dem istället för detta? Men idén om att kunna köra hela operativsystemet i webbläsaren - och kanske allra helst i molnet - lever och återupptäcks med lite nya etiketter. Förresten, hur gick det till när Visual studio code blev den enda texteditorn? Är detta problemen vi faktiskt har att lösa? Vore bättre beroendehygien en enklare lösning? Är distribution av mjukvara det outtalade tredje svåra problemet inom utveckling? Är vi inne i en molnsvacka, eller kommer det snart en? Cloud Slack, nästa stora tjänst? Lösningen på att Slack slöar ner din dator är givetvis tjänsten att köra din Slack-session i ett datacenter och strömma resultatet till dig! Avsnittets andra halva är diskussion utifrån den väldigt läsvärda boken Laziness does not exist av Devon Price, om hur många av oss svalt lögnen att man hela tiden borde jobba och vara produktiv för att nå sin fulla potential. Fredrik läser, gillar, och hittar mycket mer att tänka på än han väntat sig från början. Som avslutning lite mer tangentbordssnack. Fredrik fuskar alldeles för mycket med sina handpositioner och tjuvkikande på tangenterna. Ett stort tack till Cloudnet som sponsrar vår VPS! Ett enormt tack till Daniel Nyström för alltför vänlig assistans med mastringen av avsnittet! Har du kommentarer, frågor eller tips? Vi är @kodsnack, @tobiashieta, @oferlund, och @bjoreman på Twitter, har en sida på Facebook och epostas på info@kodsnack.se om du vill skriva längre. Vi läser allt som skickas. Gillar du Kodsnack får du hemskt gärna recensera oss i iTunes! Du kan också stödja podden genom att ge oss en kaffe (eller två!) på Ko-fi, eller handla något i vår butik. Länkar Maskrosvin Manchurisk valnöt Älggräs Kristofers lag Tuppöl Tidigare snack om öl Webbkontainrar Stackblitz Stackblitz repon på Github - som deras Visual studio code-baserade IDE och dokument om arbetet med webbkontainrar Webassembly Mighty Dum terminal Emscripten - kompilerar andra språk till Javascript och Webassembly Oxide computer Bryan Cantrill Jessie Frazelle Molnets kostnader - artikel från Andreesen-Horowitz Kubernetes bottom - Rust-implementation av top Rachel Nabors Laziness does not exist Devon Price Kristoffers snack om att jobba hemifrån Work - av James Suzman Bushmen Preonic Kyria Foss-north Alla presentationer från Foss-north 2021 Snacket om öppna skolplattformen E-ink Titlar Apropå att lukta på blommorna Motsatsen till en snabb feedbackloop Full mumma Ölgräs Kristofers lag Introducera dina kontainrar Blitza stacken Jobbigt att sätta upp en lokal utvecklingsmiljö Någon browsar åt dig En så kallad dum terminal Alla sina ägg hos någon annan Den enda texteditorn Beroendehygien Vilken otrolig inlåsning Om man tänker i dollartecken Jag har implementerat min databas med ett Bash-skript Molnsvacka Fyra feta valar Illusionen av enkelhet Vi har byggt det vi hade, fast lite sämre Cloud Slack Lathetslögnen Om man hela tiden springer hinner man aldrig stanna upp Rädsla för att verka lat

Python en español
Python en español #16: Tertulia 2021-01-19

Python en español

Play Episode Listen Later May 13, 2021 143:23


Polémica Frameworks, compilación al vuelo, compiladores y rendimiento Python, scraping web y la persistencia vuelve a la carga https://podcast.jcea.es/python/16 Participantes: Jesús Cea, email: jcea@jcea.es, twitter: @jcea, https://blog.jcea.es/, https://www.jcea.es/. Conectando desde Madrid. Eduardo Castro, email: info@ecdesign.es. Conectando desde A Guarda. Javier, conectando desde Madrid. Víctor Ramírez, twitter: @virako, programador python y amante de vim, conectando desde Huelva. Dani, conectando desde Málaga, invitado por Virako. Javier, conectando desde Sevilla, también invitado por Virako. Antonio, conectado desde Albacete. Jorge Rúa, conectando desde Vigo. Audio editado por Pablo Gómez, twitter: @julebek. La música de la entrada y la salida es "Lightning Bugs", de Jason Shaw. Publicada en https://audionautix.com/ con licencia - Creative Commons Attribution 4.0 International License. [01:17] Event sourcing y nieve. Borrasca Filomena: https://es.wikipedia.org/wiki/Borrasca_Filomena. [03:52] Los comentarios legales habituales para poder grabar la tertulia. [04:47] Presentaciones varias, dinámica y motivación de las tertulias. [11:22] Los problemas logísticos de Jesús Cea con sus charlas. [12:52] Debate: Frameworks y cómo condicionan el conocimiento del lenguaje y la forma de desarrollar código. Mucha tela que cortar. [30:22] Conexión con el mundo asyncio. [34:12] Digresión: ¿Cómo funciona la protección CSRF? https://es.wikipedia.org/wiki/Cross-site_request_forgery. Diferencia semántica entre verbos HTTP: GET y POST https://en.wikipedia.org/wiki/POST_(HTTP). Algunos recursos de seguridad web (no exhaustivo, la lista es infinita): CSRF: https://es.wikipedia.org/wiki/Cross-site_request_forgery. Cross-Origin Resource Sharing (CORS) https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS. Content Security Policy Reference https://content-security-policy.com/. La documentación de FastAPI https://fastapi.tiangolo.com/ tiene mucho de seguridad: CORS (Cross-Origin Resource Sharing): https://fastapi.tiangolo.com/tutorial/cors/. OAuth2 with Password (and hashing), Bearer with JWT tokens https://fastapi.tiangolo.com/tutorial/security/oauth2-jwt/. About HTTPS https://fastapi.tiangolo.com/deployment/https/. [39:52] Proyecto ItsNat https://en.wikipedia.org/wiki/ItsNat. Estado en el servidor y el cliente solo gestiona eventos y actualizaciones del DOM que le envía el servidor. Se está moviendo otra vez la inteligencia del navegador al servidor. [44:42] ¿Realmente es imprescindible usar Javascript si tu interfaz es el navegador? Brython: https://brython.info/. Pyjs (antiguo Pyjamas): https://en.wikipedia.org/wiki/Pyjs. Emscripten: https://emscripten.org/. [48:57] ¡Compilación al vuelo! Versionado de diccionarios. PEP 509 Add a private version to dict: https://www.python.org/dev/peps/pep-0509/. Compilación al vuelo: Pyjion: https://pyjion.readthedocs.io/en/latest/index.html. Conflicto con la portabilidad del intérprete. numba: https://numba.pydata.org/. Hay pocos "core developers" y heredar código avanzado que luego hay que mantener es un problema. LLVM: https://en.wikipedia.org/wiki/LLVM. [01:04:27] Los lenguajes de programación deben ser conservadores porque no tienes ni idea de lo que están utilizando los programadores. [01:05:32] Si la documentación se ha actualizado, más vale que hayas actualizado tu código a "cómo se hacen ahora las cosas". [01:06:47] Tema recurrente: ¿Es mejor estar dentro o fuera de la biblioteca estándar? Boost: https://www.boost.org/. [01:09:12] Compiladores de Python: Cython: https://cython.org/. Rendimiento y ofuscación. nuitka: https://nuitka.net/. numba: https://numba.pydata.org/. PyPy: https://www.pypy.org/. [01:10:42] Mejoras recientes en la implementación de Python: Issue 26647: ceval: use Wordcode, 16-bit bytecode: https://bugs.python.org/issue26647. Issue 9203: Use computed gotos by default: https://bugs.python.org/issue9203. [01:14:52] Psyco https://en.wikipedia.org/wiki/Psyco. [01:16:22] Etiquetado de tipos para ayudar a los JIT. Cython: https://cython.org/. MYPY: http://mypy-lang.org/. MYPYC: https://mypyc.readthedocs.io/en/latest/index.html. Especialización. [01:22:37] GHC (The Glasgow Haskell Compiler): https://www.haskell.org/ghc/. [01:25:07] Memoria transaccional https://en.wikipedia.org/wiki/Transactional_memory. Implementaciones en Python: Sistemas de persistencia como Durus https://www.mems-exchange.org/software/DurusWorks/ o ZODB http://www.zodb.org/. Mecanismos de resolución de conflictos. [01:34:32] Más sobre optimizaciones y guardas. Mucha discusión sobre el GIL: https://en.wikipedia.org/wiki/Global_interpreter_lock. La atomicidad de operaciones no está documentada en ningún sitio. [01:42:02] Ejemplo de bytecode: >>> def rutina(n): ... n += 1 ... n = n + 1 ... >>> dis.dis(rutina) 2 0 LOAD_FAST 0 (n) 2 LOAD_CONST 1 (1) 4 INPLACE_ADD 6 STORE_FAST 0 (n) 3 8 LOAD_FAST 0 (n) 10 LOAD_CONST 1 (1) 12 BINARY_ADD 14 STORE_FAST 0 (n) 16 LOAD_CONST 0 (None) 18 RETURN_VALUE [01:45:02] Cuando haces cosas muy avanzadas que usan cosas no definidas formalmente, mejor verificar las suposiciones. [01:46:47] La ventaja de probar cosas en proyectos personales: ¿Por qué Jesús Cea se ha hecho su propio scraper web? "Maldades". scrapy: https://scrapy.org/. [01:49:22] Migración de versiones en sistemas de persistencia. [02:05:07] Event sourcing. Event sourcing: https://dev.to/barryosull/event-sourcing-what-it-is-and-why-its-awesome. Logs de modificaciones. [02:08:07] Ventajas de haber usado scrapy: https://scrapy.org/. Concurrencia. tarpit. Problemas habituales: Normalización de URLs. Webs mal formadas. [02:13:47] Módulos de scraping: newspaper3k: https://pypi.org/project/newspaper3k/. [02:15:02] Recapitulación. Pyjion: https://pyjion.readthedocs.io/en/latest/index.html. MYPYC: https://mypyc.readthedocs.io/en/latest/index.html. [02:16:02] Compilación de módulos de Python para MS Windows. Generar un wheel. Aprovechar sistemas de integración continua que levantan máquinas virtuales. [02:22:21] Final.

Vhite Rabbit Podcast
Episode 021: WebGPU

Vhite Rabbit Podcast

Play Episode Listen Later Jan 26, 2020 9:01


WebGPU exposes an API for websites to interact with the GPU to perform rendering or machine learning. Jonathan explains the many advantages of this upcoming standard and how it can benefit your future projects. Links: - https://gpuweb.github.io/gpuweb/ WebGPU spec - https://github.com/VhiteRabbit/emscripten-webxr WebXR library for Emscripten on Github - https://forms.gle/ZX49HXQXJsTWtNTc8 Feedback poll

api github gpu emscripten
Kodsnack in English
Kodsnack 328 - Cacophonous, but beautiful at the same time, with Nolan Lawson

Kodsnack in English

Play Episode Listen Later Sep 3, 2019 61:26


Fredrik talks to Nolan Lawson - web performance expert, Mastodon instance maintainer, creator of a highly accessible Mastodon web client, and more. We discuss, among other things, the joys of distributed social media, where unlike centralized places like Twitter nobody can stop innovation when it comes to clients and interfaces and ways of use. Nolan talks about how and why he built Pinafore - his Mastodon client. We touch on the different experiences people have and want out of social media, digital wellness, and how caring about performance cam be an act of empathy. Thank you Cloudnet for sponsoring our VPS! Comments, questions or tips? We are @kodsnack, @tobiashieta, @oferlund and @bjoreman on Twitter, have a page on Facebook and can be emailed at info@kodsnack.se if you want to write longer. We read everything we receive. If you enjoy Kodsnack we would love a review in iTunes! You can also support the podcast by buying us a coffee (or two!) through Ko-fi. Links Nolan Lawson Salesforce Pouchdb Mastodon Open source maintainer guilt Toot.cafe - the Mastodon server Nolan runs Ruby Brent Simmons Glitch Darius Kazemi Hometown - Darius' fork Eugen Rochko - creator and maintainer of Mastodon Mastodon terminology and ways of working Ruby on rails React Webpack How to write a carousel Van Halen’s M&M rider clause Built-in modules Curl Pinafore Progressive web apps Service workers Cross-origin resource sharing - CORS Gilbert and Sullivan - and their Pinafore Tweetdeck Blurhash - and on Github OCR - optical character recognition Tesseract.js WASM - Webassembly Emscripten Wellness settings in Pinafore Emoji mart - the emoji picker library Svelte Vue Babel JSX Rollup Accurately measuring layout on the web requestAnimationFrame High-performance input handling on the web Browsers, input events, and frame throttling Pointer events Local storage Indexeddb Intersection observer Resize observer Titles I was really excited Falling in and out of it Tweets are toots The goal of a lot of web standards I really mistrust a library I believe in the open web Eugene had already thought about this Mixed degrees of success My preference is single column She’s on weird Mastodon It’s all kind of cacophonous, but it’s beautiful at the same time Every component has a bit of Svelte in it It’s really based on empathy

Kodsnack in English
Kodsnack 324 - Any error message that's confusing is a bug, with Steve Klabnik

Kodsnack in English

Play Episode Listen Later Aug 6, 2019 31:45


Recorded at Øredev 2018, Fredrik talks to Steve Klabnik about Rust and Webassembly. We talk a lot about error messages, based on Steve’s talk on how Rust handles and displays error messages. We discuss Rust’s error messages thinking an handling, but also error messages more in general, such how to think in order to produce error messages both developers and end users have a chance of understanding. Steve explains how and why the Rust compiler is switching from a pass-based compilation approach to a query-based approach to better facilitate partial recompilation upon smaller code changes. We also talk about Rust 2018, how Rust puts out new releases and what major features are on their way. We then switch to talking about Webassembly. We discuss how Webassembly is moving along, among other things how it is getting better at playing well with others, enabling people to rely on Webassembly code without necessarily even needing to know about it. Thank you Cloudnet for sponsoring our VPS! Comments, questions or tips? We are @kodsnack, @tobiashieta, @oferlund and @bjoreman on Twitter, have a page on Facebook and can be emailed at info@kodsnack.se if you want to write longer. We read everything we receive. If you enjoy Kodsnack we would love a review in iTunes! You can also support the podcast by buying us a coffee (or two!) through Ko-fi. Links Steve Klabnik Steve was also in episode 245, talking about Rust, why the lucky stiff and a lot more Mozilla Rust Steve’s presentation about error messages in Rust Steve’s second presentation, about Webassembly Rust’s Github label for diagnostics/confusing error messages ICE - internal compiler error AST - abstract syntax tree IR - intermediate representation Linkchecker The Rust book Rust by example Async/await for Rust Webassembly Emscripten Wasmpack - bundles Webassembly code as a npm package - and puts it on npm Spectre and Meltdown The host bindings proposal The DOM Wasm-bindgen Polyfill Ethereum’s work with Webassembly SIMD - Single instruction multiple data SIMD-support in Webassembly webassembly.org The Webassembly spec C and C++ through Emscripten Blazor - C# to Webassembly Yes, there was a talk about Blazor by Steve Sanderson Spidermonkey - Mozilla’s Javascript engine Titles Something that should not be an afterthought Hard actual work What messages to give or how to give them Any error message that’s confusing is a bug Git blame always returns your own name The internal deadline is tomorrow The harder problem The real test of being usable More useful to more people Broader than just the DOM A host can do these things The design is sort of not there We need more teachers and explainers

The Bike Shed
195: WebAssembly & WASI (Lin Clark & Till Schneidereit)

The Bike Shed

Play Episode Listen Later Apr 19, 2019 37:01


On this week's episode, Chris is joined by Lin Clark and Till Schneidereit of Mozilla to discuss all things WebAssembly. Lin and Till are helping to lead the development and advocacy around WebAssembly and in this conversation they discuss the current state of WASM, new developments like the WebAssembly System Interface (WASI), and the longer term possibilities and goals for WASM. Lin Clark Till Schneidereit Code Cartoons WebAssembly Rust TC39 JavaScript committee W3C WebAssembly WebIDL Rust wasm toolchain Babel Emscripten Asm.js Figma WASI Web Assembly System Interface wasmtime Fastly CDN Lucet - Fastly's WASM Runtime Solomon Hykes tweet re: Docker & WASM+WASI The Birth & Death of JavaScript Lin's post on Post MVP future for WASM Mozilla hacks blog WebAssembly's Post MVP Future talk by Lin Clark and Till Schneidereit

The Changelog
Wasmer is taking WebAssembly beyond the browser

The Changelog

Play Episode Listen Later Apr 12, 2019 54:45 Transcription Available


We’re talking with Syrus Akbary about WebAssembly and Wasmer — a standalone just in time WebAssembly runtime aiming to be fully compatible with Emscripten, Rust, and Go. We talked about taking WebAssembly beyond the browser, universal binaries, what’s an ABI?, running WebAssembly from any language, and what a world might look like with platform independent universal binaries powered by WebAssembly.

Changelog Master Feed
Wasmer is taking WebAssembly beyond the browser (The Changelog #341)

Changelog Master Feed

Play Episode Listen Later Apr 12, 2019 54:45 Transcription Available


We’re talking with Syrus Akbary about WebAssembly and Wasmer — a standalone just in time WebAssembly runtime aiming to be fully compatible with Emscripten, Rust, and Go. We talked about taking WebAssembly beyond the browser, universal binaries, what’s an ABI?, running WebAssembly from any language, and what a world might look like with platform independent universal binaries powered by WebAssembly.

The Yak Shave
6: The Podcast After the Last Podcast

The Yak Shave

Play Episode Listen Later Oct 23, 2018 34:23


This week Sean is joined by former cohost Derek Prior. After a brief reflection on the end of The Bike Shed, we discuss WebAssembly and what it means for the future of the web as well as native sandboxing. Finally, we catch up on what Derek has been doing since leaving The Bike Shed. Corrections from this episode: Emscripten and the LLVM backend were mixed up. Emscripten is not part of LLVM, and Rust moved from Emscripten to the LLVM backend. Virtually every time Sean said "unprivileged" he meant to say "privileged" Show notes: WebAssembly Asm.js Parcel Meltdown and Spectre Lua Rust Elm Exploring how Elm can target WebAssembly Shopify Careers

Devchat.tv Master Feed
AiA 206: The Origin of JavaScript with Brendan Eich

Devchat.tv Master Feed

Play Episode Listen Later Sep 11, 2018 103:45


Panel Brendan Eich Joe Eames Aaron Frost AJ ONeal Jamison Dance Tim Caswell Charles Max Wood Discussion 01:57 – Brendan Eich Introduction JavaScript [Wiki] Brendan Eich [Wiki] 02:14 – Origin of JavaScript Java Netscape Jim Clark Marc Andreesen NCSA Mosaic NCSA HTTPd Lynx (Web Browser) Lou Montulli Silicon Graphics Kernel Tom Paquin Kipp Hickman MicroUnity Sun Microsystems Andreas Bechtolsheim Bill Joy Sun-1 Scheme Programming Language Structure and Interpretation of Computer Programs – 2nd Edition (MIT Electrical Engineering and Computer Science) by Harold Abelson, Gerald Jay Sussman & Julie Sussman Guy Steele Gerald Sussman SPDY Rob McCool Mike McCool Apache Mocha Peninsula Creamery, Palo Alto, CA Main () and Other Methods (C# vs Java) Static in Java, Static Variables, Static Methods, Static Classes 10:38 – Other Languages for Programmers Visual Basic Chrome Blacklist Firefox 12:38 – Naming JavaScript and Writing VMs Canvas Andrew Myers 16:14 – Envisioning JavaScript’s Platform Web 2.0 AJAX Hidaho Design Opera Mozilla Logo Smalltalk Self HyperTalk Bill Atkinson HyperCard Star Wars Trench Run 2.0 David Ungar Craig Chambers Lars Bak Strongtalk TypeScript HotSpot V8 Dart Jamie Zawinski 24:42 – Working with ECMA Bill Gates Blackbird Spyglass Carl Cargill Jan van den Beld Philips Mike Cowlishaw Borland David M. Gay ECMAScript Lisp Richard Gabriel 31:26 – Naming Mozilla Jamie Zawinski Godzilla 31:57 – Time-Outs 32:53 – Functions Clojure John Rose Oracle Scala Async.io 38:37 – XHR and Microsoft Flash Hadoop Ricardo Jenez Ken Smith Brent Noorda Ray Noorda .NET Shon Katzenberger Anders Hejlsberg NCSA File Formats 45:54 – SpiderMonkey Chris Houck Brendan Eich and Douglas Crockford – TXJS 2010 Douglas Crockford JavaScript: The Good Parts by Douglas Crockford TXJS.com ActionScript Flex Adobe E4X BEA Systems John Schneider Rhino JScript roku Waldemar Horwat Harvard Putnam Math Competition Chris Wilson Silverlight Allen Wirfs-Brock NDC Oslo 2014 JSConf Brendan JSConf Talks 59:58 – JavaScript and Mozilla GIP SSLeay Eric A. Young Tim Hudson Digital Styles Raptor Gecko ICQ and AIM PowerPlant CodeWarrior Camino David Hyatt Lotus Mitch Kapor Ted Leonsis Mitchell Baker David Baren Phoenix Tinderbox Harmony 1:14:37 – Surprises with Evolution of JavaScript Ryan Dahl node.js Haskell Elm Swift Unity Games Angular Ember.js Dojo jQuery react ClojureScript JavaScript Jabber Episode #107: ClojureScript & Om with David Nolen MVC 01:19:43 – Angular’s HTML Customization Sweet.js JavaScript Jabber Episode #039: Sweet.js with Tim Disney TC39 Rick Waldron 01:22:27 – Applications with JavaScript SPA’s Shumway Project IronRuby 01:25:45 – Future of Web and Frameworks LLVM Chris Lattner Blog Epic Games Emscripten Autodesk PortableApps WebGL 01:29:39 – ASM.js Dart.js John McCutchen Monster Madness Anders Hejlsberg, Steve Lucco, Luke Hoban: TypeScript 0.9 – Generics and More (Channel 9, 2013) Legacy 01:32:58 – Brendan’s Future with JavaScript Picks hapi.js (Aaron) JavaScript Disabled: Should I Care? (Aaron) Aaron’s Frontend Masters Course on ES6 (Aaron) Brendan’s “Cool Story Bro” (AJ) [YouTube] Queen – Don't Stop Me Now (AJ) Trending.fm (AJ) WE ARE DOOMED soundtrack EP by Robby Duguay (Jamison) Hohokum Soundtrack (Jamison) Nashville Outlaws: A Tribute to Mötley Crüe (Joe) Audible (Joe) Stripe (Chuck) Guardians of the Galaxy (Brendan)

future young evolution microsoft blog sun web spa flash platform panel origin structure godzilla logo galaxy bill gates opera audible guardians oracle guardians of the galaxy surprises swift applications camino adobe computer science trending flex interpretation aim chrome scheme steele java mosaic small talk epic games lotus canvas philips ajax static stripe dart javascript palo alto rhino functions frameworks apache blackbird blacklist firefox raptor hotspot programmers dojo lynx mozilla ws elm scala v8 creativeasin autodesk power plants haskell angular kernel mocha gecko john schneider netscape asm sun microsystems chris wilson typescript marc andreessen mvc jquery icq timeouts james h lisp hadoop tinderbox async spy glass borland gip clojure jim clark spider monkeys generics stop me now visual basic ken smith silverlight ted leonsis richard p webgl es6 llvm silicon graphics ecmascript chris lattner ecma john rose other languages monster madness hypercard brendan eich marc andreesen tim hudson cool story bro actionscript andrew myers tc39 ryan dahl computer programs charles max wood clojurescript mitch kapor bill joy jsconf bill atkinson bea systems anders hejlsberg beld douglas crockford unity games mitchell baker aaron frost strongtalk spdy jsconf eu joe eames tim disney emscripten xhr we are doomed portableapps javascript the good parts richard gabriel david nolen lars bak jamison dance ncsa mosaic ndc oslo javascript jabber episode tim caswell andy bechtolsheim jscript hypertalk codewarrior david ungar chris houck craig chambers rick waldron txjs hgzgwkwlmgm robby duguay jamie zawinski ironruby julie sussman aj oneal mozilla projects spidermonkey allen wirfs brock frontend masters course e4x david m gay
All Angular Podcasts by Devchat.tv
AiA 206: The Origin of JavaScript with Brendan Eich

All Angular Podcasts by Devchat.tv

Play Episode Listen Later Sep 11, 2018 103:45


Panel Brendan Eich Joe Eames Aaron Frost AJ ONeal Jamison Dance Tim Caswell Charles Max Wood Discussion 01:57 – Brendan Eich Introduction JavaScript [Wiki] Brendan Eich [Wiki] 02:14 – Origin of JavaScript Java Netscape Jim Clark Marc Andreesen NCSA Mosaic NCSA HTTPd Lynx (Web Browser) Lou Montulli Silicon Graphics Kernel Tom Paquin Kipp Hickman MicroUnity Sun Microsystems Andreas Bechtolsheim Bill Joy Sun-1 Scheme Programming Language Structure and Interpretation of Computer Programs – 2nd Edition (MIT Electrical Engineering and Computer Science) by Harold Abelson, Gerald Jay Sussman & Julie Sussman Guy Steele Gerald Sussman SPDY Rob McCool Mike McCool Apache Mocha Peninsula Creamery, Palo Alto, CA Main () and Other Methods (C# vs Java) Static in Java, Static Variables, Static Methods, Static Classes 10:38 – Other Languages for Programmers Visual Basic Chrome Blacklist Firefox 12:38 – Naming JavaScript and Writing VMs Canvas Andrew Myers 16:14 – Envisioning JavaScript’s Platform Web 2.0 AJAX Hidaho Design Opera Mozilla Logo Smalltalk Self HyperTalk Bill Atkinson HyperCard Star Wars Trench Run 2.0 David Ungar Craig Chambers Lars Bak Strongtalk TypeScript HotSpot V8 Dart Jamie Zawinski 24:42 – Working with ECMA Bill Gates Blackbird Spyglass Carl Cargill Jan van den Beld Philips Mike Cowlishaw Borland David M. Gay ECMAScript Lisp Richard Gabriel 31:26 – Naming Mozilla Jamie Zawinski Godzilla 31:57 – Time-Outs 32:53 – Functions Clojure John Rose Oracle Scala Async.io 38:37 – XHR and Microsoft Flash Hadoop Ricardo Jenez Ken Smith Brent Noorda Ray Noorda .NET Shon Katzenberger Anders Hejlsberg NCSA File Formats 45:54 – SpiderMonkey Chris Houck Brendan Eich and Douglas Crockford – TXJS 2010 Douglas Crockford JavaScript: The Good Parts by Douglas Crockford TXJS.com ActionScript Flex Adobe E4X BEA Systems John Schneider Rhino JScript roku Waldemar Horwat Harvard Putnam Math Competition Chris Wilson Silverlight Allen Wirfs-Brock NDC Oslo 2014 JSConf Brendan JSConf Talks 59:58 – JavaScript and Mozilla GIP SSLeay Eric A. Young Tim Hudson Digital Styles Raptor Gecko ICQ and AIM PowerPlant CodeWarrior Camino David Hyatt Lotus Mitch Kapor Ted Leonsis Mitchell Baker David Baren Phoenix Tinderbox Harmony 1:14:37 – Surprises with Evolution of JavaScript Ryan Dahl node.js Haskell Elm Swift Unity Games Angular Ember.js Dojo jQuery react ClojureScript JavaScript Jabber Episode #107: ClojureScript & Om with David Nolen MVC 01:19:43 – Angular’s HTML Customization Sweet.js JavaScript Jabber Episode #039: Sweet.js with Tim Disney TC39 Rick Waldron 01:22:27 – Applications with JavaScript SPA’s Shumway Project IronRuby 01:25:45 – Future of Web and Frameworks LLVM Chris Lattner Blog Epic Games Emscripten Autodesk PortableApps WebGL 01:29:39 – ASM.js Dart.js John McCutchen Monster Madness Anders Hejlsberg, Steve Lucco, Luke Hoban: TypeScript 0.9 – Generics and More (Channel 9, 2013) Legacy 01:32:58 – Brendan’s Future with JavaScript Picks hapi.js (Aaron) JavaScript Disabled: Should I Care? (Aaron) Aaron’s Frontend Masters Course on ES6 (Aaron) Brendan’s “Cool Story Bro” (AJ) [YouTube] Queen – Don't Stop Me Now (AJ) Trending.fm (AJ) WE ARE DOOMED soundtrack EP by Robby Duguay (Jamison) Hohokum Soundtrack (Jamison) Nashville Outlaws: A Tribute to Mötley Crüe (Joe) Audible (Joe) Stripe (Chuck) Guardians of the Galaxy (Brendan)

future young evolution microsoft blog sun web spa flash platform panel origin structure godzilla logo galaxy bill gates opera audible guardians oracle guardians of the galaxy surprises swift applications camino adobe computer science trending flex interpretation aim chrome scheme steele java mosaic small talk epic games lotus canvas philips ajax static stripe dart javascript palo alto rhino functions frameworks apache blackbird blacklist firefox raptor hotspot programmers dojo lynx mozilla ws elm scala v8 creativeasin autodesk power plants haskell angular kernel mocha gecko john schneider netscape asm sun microsystems chris wilson typescript marc andreessen mvc jquery icq timeouts james h lisp hadoop tinderbox async spy glass borland gip clojure jim clark spider monkeys generics stop me now visual basic ken smith silverlight ted leonsis richard p webgl es6 llvm silicon graphics ecmascript chris lattner ecma john rose other languages monster madness hypercard brendan eich marc andreesen tim hudson cool story bro actionscript andrew myers tc39 ryan dahl computer programs charles max wood clojurescript mitch kapor bill joy jsconf bill atkinson bea systems anders hejlsberg beld douglas crockford unity games mitchell baker aaron frost strongtalk spdy jsconf eu joe eames tim disney emscripten xhr we are doomed portableapps javascript the good parts richard gabriel david nolen lars bak jamison dance ncsa mosaic ndc oslo javascript jabber episode tim caswell andy bechtolsheim jscript hypertalk codewarrior david ungar craig chambers chris houck rick waldron txjs hgzgwkwlmgm robby duguay jamie zawinski ironruby julie sussman aj oneal mozilla projects spidermonkey allen wirfs brock frontend masters course e4x david m gay
Adventures in Angular
AiA 206: The Origin of JavaScript with Brendan Eich

Adventures in Angular

Play Episode Listen Later Sep 11, 2018 103:45


Panel Brendan Eich Joe Eames Aaron Frost AJ ONeal Jamison Dance Tim Caswell Charles Max Wood Discussion 01:57 – Brendan Eich Introduction JavaScript [Wiki] Brendan Eich [Wiki] 02:14 – Origin of JavaScript Java Netscape Jim Clark Marc Andreesen NCSA Mosaic NCSA HTTPd Lynx (Web Browser) Lou Montulli Silicon Graphics Kernel Tom Paquin Kipp Hickman MicroUnity Sun Microsystems Andreas Bechtolsheim Bill Joy Sun-1 Scheme Programming Language Structure and Interpretation of Computer Programs – 2nd Edition (MIT Electrical Engineering and Computer Science) by Harold Abelson, Gerald Jay Sussman & Julie Sussman Guy Steele Gerald Sussman SPDY Rob McCool Mike McCool Apache Mocha Peninsula Creamery, Palo Alto, CA Main () and Other Methods (C# vs Java) Static in Java, Static Variables, Static Methods, Static Classes 10:38 – Other Languages for Programmers Visual Basic Chrome Blacklist Firefox 12:38 – Naming JavaScript and Writing VMs Canvas Andrew Myers 16:14 – Envisioning JavaScript’s Platform Web 2.0 AJAX Hidaho Design Opera Mozilla Logo Smalltalk Self HyperTalk Bill Atkinson HyperCard Star Wars Trench Run 2.0 David Ungar Craig Chambers Lars Bak Strongtalk TypeScript HotSpot V8 Dart Jamie Zawinski 24:42 – Working with ECMA Bill Gates Blackbird Spyglass Carl Cargill Jan van den Beld Philips Mike Cowlishaw Borland David M. Gay ECMAScript Lisp Richard Gabriel 31:26 – Naming Mozilla Jamie Zawinski Godzilla 31:57 – Time-Outs 32:53 – Functions Clojure John Rose Oracle Scala Async.io 38:37 – XHR and Microsoft Flash Hadoop Ricardo Jenez Ken Smith Brent Noorda Ray Noorda .NET Shon Katzenberger Anders Hejlsberg NCSA File Formats 45:54 – SpiderMonkey Chris Houck Brendan Eich and Douglas Crockford – TXJS 2010 Douglas Crockford JavaScript: The Good Parts by Douglas Crockford TXJS.com ActionScript Flex Adobe E4X BEA Systems John Schneider Rhino JScript roku Waldemar Horwat Harvard Putnam Math Competition Chris Wilson Silverlight Allen Wirfs-Brock NDC Oslo 2014 JSConf Brendan JSConf Talks 59:58 – JavaScript and Mozilla GIP SSLeay Eric A. Young Tim Hudson Digital Styles Raptor Gecko ICQ and AIM PowerPlant CodeWarrior Camino David Hyatt Lotus Mitch Kapor Ted Leonsis Mitchell Baker David Baren Phoenix Tinderbox Harmony 1:14:37 – Surprises with Evolution of JavaScript Ryan Dahl node.js Haskell Elm Swift Unity Games Angular Ember.js Dojo jQuery react ClojureScript JavaScript Jabber Episode #107: ClojureScript & Om with David Nolen MVC 01:19:43 – Angular’s HTML Customization Sweet.js JavaScript Jabber Episode #039: Sweet.js with Tim Disney TC39 Rick Waldron 01:22:27 – Applications with JavaScript SPA’s Shumway Project IronRuby 01:25:45 – Future of Web and Frameworks LLVM Chris Lattner Blog Epic Games Emscripten Autodesk PortableApps WebGL 01:29:39 – ASM.js Dart.js John McCutchen Monster Madness Anders Hejlsberg, Steve Lucco, Luke Hoban: TypeScript 0.9 – Generics and More (Channel 9, 2013) Legacy 01:32:58 – Brendan’s Future with JavaScript Picks hapi.js (Aaron) JavaScript Disabled: Should I Care? (Aaron) Aaron’s Frontend Masters Course on ES6 (Aaron) Brendan’s “Cool Story Bro” (AJ) [YouTube] Queen – Don't Stop Me Now (AJ) Trending.fm (AJ) WE ARE DOOMED soundtrack EP by Robby Duguay (Jamison) Hohokum Soundtrack (Jamison) Nashville Outlaws: A Tribute to Mötley Crüe (Joe) Audible (Joe) Stripe (Chuck) Guardians of the Galaxy (Brendan)

future young evolution microsoft blog sun web spa flash platform panel origin structure godzilla logo galaxy bill gates opera audible guardians oracle guardians of the galaxy surprises swift applications camino adobe computer science trending flex interpretation aim chrome scheme steele java mosaic small talk epic games lotus canvas philips ajax static stripe dart javascript palo alto rhino functions frameworks apache blackbird blacklist firefox raptor hotspot programmers dojo lynx mozilla ws elm scala v8 creativeasin autodesk power plants haskell angular kernel mocha gecko john schneider netscape asm sun microsystems chris wilson typescript marc andreessen mvc jquery icq timeouts james h lisp hadoop tinderbox async spy glass borland gip clojure jim clark spider monkeys generics stop me now visual basic ken smith silverlight ted leonsis richard p webgl es6 llvm silicon graphics ecmascript chris lattner ecma john rose other languages monster madness hypercard brendan eich marc andreesen tim hudson cool story bro actionscript andrew myers tc39 ryan dahl computer programs charles max wood clojurescript mitch kapor bill joy jsconf bill atkinson bea systems anders hejlsberg beld douglas crockford unity games mitchell baker aaron frost strongtalk spdy jsconf eu joe eames tim disney emscripten xhr we are doomed portableapps javascript the good parts richard gabriel david nolen lars bak jamison dance ncsa mosaic ndc oslo javascript jabber episode tim caswell andy bechtolsheim jscript hypertalk codewarrior david ungar chris houck craig chambers rick waldron txjs hgzgwkwlmgm robby duguay ironruby jamie zawinski julie sussman aj oneal mozilla projects spidermonkey allen wirfs brock frontend masters course e4x david m gay
Cross Cutting Concerns Podcast
Podcast 063 - Ted Neward on Transpilers

Cross Cutting Concerns Podcast

Play Episode Listen Later Oct 15, 2017 27:14


Ted Neward is transpiling other languages to JavaScript. Show Notes: CFront, a C++ to C transpiler. I found an interview with Bjarne Stroustrup (archive.org link) that mentions CFront on its 30 year anniversary Emscripten / asm.js WebAssembly CoffeeScript / Ruby on Rails Microsoft and Google collaborate on Angular 2 Anders Hejlsberg Kotlin can transpile to JavaScript (check out Episode 057 with Michael Yotive on Kotlin) Fantom Dart NaCl (and PNaCl) for Chrome TypeScript Smartsheet (Smartsheet Developer Portal) Book: Compilers: Principles, Techniques, & Tools (aka "The Dragon Book") ANTLR Ted Neward is on Twitter. Want to be on the next episode? You can! All you need is the willingness to talk about something technical. Theme music is "Crosscutting Concerns" by The Dirty Truckers, check out their music on Amazon or iTunes.

CodeLunch.fm
8. Julia comes here at 2015!

CodeLunch.fm

Play Episode Listen Later Feb 22, 2015 39:19


今回は@iizukakが2015年の気になる技術(Julia, FirefoxOS, Emscripten, Nix)について話をしました。 Julia Firefox OS Emscripten Nix 喜嶋先生の静かな世界

firefox os emscripten
CodeLunch.fm
8. Julia comes here at 2015!

CodeLunch.fm

Play Episode Listen Later Feb 21, 2015 39:19


今回は@iizukakが2015年の気になる技術(Julia, FirefoxOS, Emscripten, Nix)について話をしました。

nix firefox os emscripten
Control Structure
Control Structure #78: Refill My Windows

Control Structure

Play Episode Listen Later Jan 28, 2015 68:00


Steve and Andrew talk about Chris, gaming, Windows, Firefox, networking, Verizon, EFF, Emscripten, vacuums, and podcast feedback.

Lostcast
Lostcast 94: Topicast

Lostcast

Play Episode Listen Later Oct 20, 2014 59:50


Geoff 'n Matt talk about Steam death threats, Humble Mozilla Bundle, Emscripten, and more.

games indie steam geoff gamedev html5 emscripten lostcast lost decade games
Hanselminutes - Fresh Talk and Tech for Developers
sass.js - An Emscripten Experiment with Rodney Rehm

Hanselminutes - Fresh Talk and Tech for Developers

Play Episode Listen Later Jan 30, 2014 30:46


We have more interesting tools available to us than we realize. When asked if there was a JavaScript version of the Sass CSS library, Rodney Rehm and his friend Sebastian decided to see if they could use Emscripten to compile the existing C/C++ one into JavaScript. Because, why not?

Podcast JavaScriptCast
Vale a pena pagar por ferramentas sofisticadas de desenvolvimento? - JavaScriptCast episódio 4

Podcast JavaScriptCast

Play Episode Listen Later May 15, 2012


Vale a pena pagar por ferramentas sofisticadas de desenvolvimento? - JavaScriptCast episódio 4 Por Manuel Lemos e Jean (Suissa) Nascimento A recente polêmica sobre a questão de usar, ou não, ponto e vírgula para demarcar o fim de comandos de JavaScript veio para questionar um mau hábito que muitos desenvolvedores têm ao programar nesta linguagem e não percebem do problema que ele pode causar.Este foi um dos principais temas da discussão do 5º episódio do JavaScriptCast, apresentado por Manuel Lemos e Jean (Suissa) Nascimento, que receberam Ciro Nunes, desenvolvedor de front-end, como convidado para ampliar o debate sobre estes e outros tópicos de interesse do mundo de JavaScript.Este foi o primeiro episódio gravado em vídeo e transmitido ao vivo para todo o público - graças a um novo recurso do Google Hangouts On Air, que permite que qualquer pessoa possa participar e assistir à gravação de hangouts, que são disponibilizados depois no YouTube.Siga a conta do Twitter @jsclassesearly para saber quando o próximo episódio vai ser gravado! Confira agora abaixo o vídeo deste episódio ou escute a versão em audio, se preferir.Eles também comentaram sobre os seguintes tópicos:Série de artigos de Ciro Nunes sobre uso frameworks MVC e aplicação de design patterns em JavaScript, que serão disponibilizados em breve no portal JavaScriptBrasil;API de JavaScript para integração do Google Hangouts no seu site;Processamento de linguagem natural usando a biblioteca Node Natural;Projeto Emscripten para conversão de código C/C++ em JavaScript, que foi usado para criar SQL.js, que é a versão em JavaScript da biblioteca SQLite;Framework Meteor para construção de aplicações em JavaScript usando Node.js;O pesadelo do tratamento de datas passadas por JSON;A polêmica do uso de ponto e vírgula para terminar comandos de JavaScript.Por fim, eles também comentaram sobre algumas das últimas classes de JavaScript publicadas no site JSClasses, incluindo a classe Smooth Progress Bar, de Manuel Lemos, para mostrar barras de progresso que avançam suavemente; a classe LZF da Alex Znaev da Rússia, para compressão e descompressão de dados e a classe CDA Cross Domain AJAX, para carregar código JavaScript de forma assíncrona a partir de domínios de sites separados.Assista aqui ao vídeo do podcast gravado. Também assine o canal de vídeos do PHP Classes e JS Classes no YouTube.

Working Draft » Podcast Feed
Revision 45: H.264 in JS, jQuery Standards Team & OccupyHTML5!

Working Draft » Podcast Feed

Play Episode Listen Later Nov 3, 2011 76:39


Frostig war es draußen, und Vollmond womöglich auch, als sich Schepp mit Marc Hinse, aka @MadeMyDay, und Hans Reinl, aka @drublic und Frontendentwickler aus Freiburg, ans virtuelle Kaminfeuer setzte und mit ihnen zusammen die Woche revuepassieren ließ. Schaunotizen [00:00:50] Broadway: An H.264 Decoder in JavaScript Running at 30fps Endlich hat jemand mit Emscripten einen H.264-Polyfill […]

Working Draft » Podcast Feed
Revision 37: speak.js, Native Client und JS-MVC-Frameworks

Working Draft » Podcast Feed

Play Episode Listen Later Aug 25, 2011 97:55


Peter war wieder auf Achse und so haben wir uns diesmal Marc Hinse und Khalil Lechelt als Fachleute dazugeholt. Schaunotizen [00:02:06] speak.js – Text-To-Speech on the Web Wieder einmal wurde dank Emscripten etwas nach JavaScript portiert. Und diesmal ist es was sehr Praktisches: ein Text-zu-Audio-Synthesizer. Damit lassen sich endlich Vorlese-Dienste quelloffen umsetzen, wie sie bislang […]