Podcasts about bdfl

  • 31PODCASTS
  • 41EPISODES
  • 59mAVG DURATION
  • ?INFREQUENT EPISODES
  • Apr 6, 2025LATEST

POPULARITY

20172018201920202021202220232024


Best podcasts about bdfl

Latest podcast episodes about bdfl

Software Sessions
Brandon Liu on Protomaps

Software Sessions

Play Episode Listen Later Apr 6, 2025 59:57


Brandon Liu is an open source developer and creator of the Protomaps basemap project. We talk about how static maps help developers build sites that last, the PMTiles file format, the role of OpenStreetMap, and his experience funding and running an open source project full time. Protomaps Protomaps PMTiles (File format used by Protomaps) Self-hosted slippy maps, for novices (like me) Why Deploy Protomaps on a CDN User examples Flickr Pinball Map Toilet Map Related projects OpenStreetMap (Dataset protomaps is based on) Mapzen (Former company that released details on what to display based on zoom levels) Mapbox GL JS (Mapbox developed source available map rendering library) MapLibre GL JS (Open source fork of Mapbox GL JS) Other links HTTP range requests (MDN) Hilbert curve Transcript You can help correct transcripts on GitHub. Intro [00:00:00] Jeremy: I'm talking to Brandon Liu. He's the creator of Protomaps, which is a way to easily create and host your own maps. Let's get into it. [00:00:09] Brandon: Hey, so thanks for having me on the podcast. So I'm Brandon. I work on an open source project called Protomaps. What it really is, is if you're a front end developer and you ever wanted to put maps on a website or on a mobile app, then Protomaps is sort of an open source solution for doing that that I hope is something that's way easier to use than, um, a lot of other open source projects. Why not just use Google Maps? [00:00:36] Jeremy: A lot of people are gonna be familiar with Google Maps. Why should they worry about whether something's open source? Why shouldn't they just go and use the Google maps API? [00:00:47] Brandon: So Google Maps is like an awesome thing it's an awesome product. Probably one of the best tech products ever right? And just to have a map that tells you what restaurants are open and something that I use like all the time especially like when you're traveling it has all that data. And the most amazing part is that it's free for consumers but it's not necessarily free for developers. Like if you wanted to embed that map onto your website or app, that usually has an API cost which still has a free tier and is affordable. But one motivation, one basic reason to use open source is if you have some project that doesn't really fit into that pricing model. You know like where you have to pay the cost of Google Maps, you have a side project, a nonprofit, that's one reason. But there's lots of other reasons related to flexibility or customization where you might want to use open source instead. Protomaps examples [00:01:49] Jeremy: Can you give some examples where people have used Protomaps and where that made sense for them? [00:01:56] Brandon: I follow a lot of the use cases and I also don't know about a lot of them because I don't have an API where I can track a hundred percent of the users. Some of them use the hosted version, but I would say most of them probably use it on their own infrastructure. One of the cool projects I've been seeing is called Toilet Map. And what toilet map is if you're in the UK and you want find a public restroom then it maps out, sort of crowdsourced all of the public restrooms. And that's important for like a lot of people if they have health issues, they need to find that information. And just a lot of different projects in the same vein. There's another one called Pinball Map which is sort of a hobby project to find all the pinball machines in the world. And they wanted to have a customized map that fit in with their theme of pinball. So these sorts of really cool indie projects are the ones I'm most excited about. Basemaps vs Overlays [00:02:57] Jeremy: And if we talk about, like the pinball map as an example, there's this concept of a basemap and then there's the things that you lay on top of it. What is a basemap and then is the pinball locations is that part of it or is that something separate? [00:03:12] Brandon: It's usually something separate. The example I usually use is if you go to a real estate site, like Zillow, you'll open up the map of Seattle and it has a bunch of pins showing all the houses, and then it has some information beneath it. That information beneath it is like labels telling, this neighborhood is Capitol Hill, or there is a park here. But all that information is common to a lot of use cases and it's not specific to real estate. So I think usually that's the distinction people use in the industry between like a base map versus your overlay. The overlay is like the data for your product or your company while the base map is something you could get from Google or from Protomaps or from Apple or from Mapbox that kind of thing. PMTiles for hosting the basemap and overlays [00:03:58] Jeremy: And so Protomaps in particular is responsible for the base map, and that information includes things like the streets and the locations of landmarks and things like that. Where is all that information coming from? [00:04:12] Brandon: So the base map information comes from a project called OpenStreetMap. And I would also, point out that for Protomaps as sort of an ecosystem. You can also put your overlay data into a format called PMTiles, which is sort of the core of what Protomaps is. So it can really do both. It can transform your data into the PMTiles format which you can host and you can also host the base map. So you kind of have both of those sides of the product in one solution. [00:04:43] Jeremy: And so when you say you have both are you saying that the PMTiles file can have, the base map in one file and then you would have the data you're laying on top in another file? Or what are you describing there? [00:04:57] Brandon: That's usually how I recommend to do it. Oftentimes there'll be sort of like, a really big basemap 'cause it has all of that data about like where the rivers are. Or while, if you want to put your map of toilets or park benches or pickleball courts on top, that's another file. But those are all just like assets you can move around like JSON or CSV files. Statically Hosted [00:05:19] Jeremy: And I think one of the things you mentioned was that your goal was to make Protomaps or the, the use of these PMTiles files easy to use. What does that look like for, for a developer? I wanna host a map. What do I actually need to, to put on my servers? [00:05:38] Brandon: So my usual pitch is that basically if you know how to use S3 or cloud storage, that you know how to deploy a map. And that, I think is the main sort of differentiation from most open source projects. Like a lot of them, they call themselves like, like some sort of self-hosted solution. But I've actually avoided using the term self-hosted because I think in most cases that implies a lot of complexity. Like you have to log into a Linux server or you have to use Kubernetes or some sort of Docker thing. What I really want to emphasize is the idea that, for Protomaps, it's self-hosted in the same way like CSS is self-hosted. So you don't really need a service from Amazon to host the JSON files or CSV files. It's really just a static file. [00:06:32] Jeremy: When you say static file that means you could use any static web host to host your HTML file, your JavaScript that actually renders the map. And then you have your PMTiles files, and you're not running a process or anything, you're just putting your files on a static file host. [00:06:50] Brandon: Right. So I think if you're a developer, you can also argue like a static file server is a server. It's you know, it's the cloud, it's just someone else's computer. It's really just nginx under the hood. But I think static storage is sort of special. If you look at things like static site generators, like Jekyll or Hugo, they're really popular because they're a commodity or like the storage is a commodity. And you can take your blog, make it a Jekyll blog, hosted on S3. One day, Amazon's like, we're charging three times as much so you can move it to a different cloud provider. And that's all vendor neutral. So I think that's really the special thing about static storage as a primitive on the web. Why running servers is a problem for resilience [00:07:36] Jeremy: Was there a prior experience you had? Like you've worked with maps for a very long time. Were there particular difficulties you had where you said I just gotta have something that can be statically hosted? [00:07:50] Brandon: That's sort of exactly why I got into this. I've been working sort of in and around the map space for over a decade, and Protomaps is really like me trying to solve the same problem I've had over and over again in the past, just like once and forever right? Because like once this problem is solved, like I don't need to deal with it again in the future. So I've worked at a couple of different companies before, mostly as a contractor, for like a humanitarian nonprofit for a design company doing things like, web applications to visualize climate change. Or for even like museums, like digital signage for museums. And oftentimes they had some sort of data visualization component, but always sort of the challenge of how to like, store and also distribute like that data was something that there wasn't really great open source solutions. So just for map data, that's really what motivated that design for Protomaps. [00:08:55] Jeremy: And in those, those projects in the past, were those things where you had to run your own server, run your own database, things like that? [00:09:04] Brandon: Yeah. And oftentimes we did, we would spin up an EC2 instance, for maybe one client and then we would have to host this server serving map data forever. Maybe the client goes away, or I guess it's good for business if you can sign some sort of like long-term support for that client saying, Hey, you know, like we're done with a project, but you can pay us to maintain the EC2 server for the next 10 years. And that's attractive. but it's also sort of a pain, because usually what happens is if people are given the choice, like a developer between like either I can manage the server on EC2 or on Rackspace or Hetzner or whatever, or I can go pay a SaaS to do it. In most cases, businesses will choose to pay the SaaS. So that's really like what creates a sort of lock-in is this preference for like, so I have this choice between like running the server or paying the SaaS. Like businesses will almost always go and pay the SaaS. [00:10:05] Jeremy: Yeah. And in this case, you either find some kind of free hosting or low-cost hosting just to host your files and you upload the files and then you're good from there. You don't need to maintain anything. [00:10:18] Brandon: Exactly, and that's really the ideal use case. so I have some users these, climate science consulting agencies, and then they might have like a one-off project where they have to generate the data once, but instead of having to maintain this server for the lifetime of that project, they just have a file on S3 and like, who cares? If that costs a couple dollars a month to run, that's fine, but it's not like S3 is gonna be deprecated, like it's gonna be on an insecure version of Ubuntu or something. So that's really the ideal, set of constraints for using Protomaps. [00:10:58] Jeremy: Yeah. Something this also makes me think about is, is like the resilience of sites like remaining online, because I, interviewed, Kyle Drake, he runs Neocities, which is like a modern version of GeoCities. And if I remember correctly, he was mentioning how a lot of old websites from that time, if they were running a server backend, like they were running PHP or something like that, if you were to try to go to those sites, now they're like pretty much all dead because there needed to be someone dedicated to running a Linux server, making sure things were patched and so on and so forth. But for static sites, like the ones that used to be hosted on GeoCities, you can go to the internet archive or other websites and they were just files, right? You can bring 'em right back up, and if anybody just puts 'em on a web server, then you're good. They're still alive. Case study of news room preferring static hosting [00:11:53] Brandon: Yeah, exactly. One place that's kind of surprising but makes sense where this comes up, is for newspapers actually. Some of the users using Protomaps are the Washington Post. And the reason they use it, is not necessarily because they don't want to pay for a SaaS like Google, but because if they make an interactive story, they have to guarantee that it still works in a couple of years. And that's like a policy decision from like the editorial board, which is like, so you can't write an article if people can't view it in five years. But if your like interactive data story is reliant on a third party, API and that third party API becomes deprecated, or it changes the pricing or it, you know, it gets acquired, then your journalism story is not gonna work anymore. So I have seen really good uptake among local news rooms and even big ones to use things like Protomaps just because it makes sense for the requirements. Working on Protomaps as an open source project for five years [00:12:49] Jeremy: How long have you been working on Protomaps and the parts that it's made up of such as PMTiles? [00:12:58] Brandon: I've been working on it for about five years, maybe a little more than that. It's sort of my pandemic era project. But the PMTiles part, which is really the heart of it only came in about halfway. Why not make a SaaS? [00:13:13] Brandon: So honestly, like when I first started it, I thought it was gonna be another SaaS and then I looked at it and looked at what the environment was around it. And I'm like, uh, so I don't really think I wanna do that. [00:13:24] Jeremy: When, when you say you looked at the environment around it what do you mean? Why did you decide not to make it a SaaS? [00:13:31] Brandon: Because there already is a lot of SaaS out there. And I think the opportunity of making something that is unique in terms of those use cases, like I mentioned like newsrooms, was clear. Like it was clear that there was some other solution, that could be built that would fit these needs better while if it was a SaaS, there are plenty of those out there. And I don't necessarily think that they're well differentiated. A lot of them all use OpenStreetMap data. And it seems like they mainly compete on price. It's like who can build the best three column pricing model. And then once you do that, you need to build like billing and metrics and authentication and like those problems don't really interest me. So I think, although I acknowledge sort of the indie hacker ethos now is to build a SaaS product with a monthly subscription, that's something I very much chose not to do, even though it is for sure like the best way to build a business. [00:14:29] Jeremy: Yeah, I mean, I think a lot of people can appreciate that perspective because it's, it's almost like we have SaaS overload, right? Where you have so many little bills for your project where you're like, another $5 a month, another $10 a month, or if you're a business, right? Those, you add a bunch of zeros and at some point it's just how many of these are we gonna stack on here? [00:14:53] Brandon: Yeah. And honestly. So I really think like as programmers, we're not really like great at choosing how to spend money like a $10 SaaS. That's like nothing. You know? So I can go to Starbucks and I can buy a pumpkin spice latte, and that's like $10 basically now, right? And it's like I'm able to make that consumer choice in like an instant just to spend money on that. But then if you're like, oh, like spend $10 on a SaaS that somebody put a lot of work into, then you're like, oh, that's too expensive. I could just do it myself. So I'm someone that also subscribes to a lot of SaaS products. and I think for a lot of things it's a great fit. Many open source SaaS projects are not easy to self host [00:15:37] Brandon: But there's always this tension between an open source project that you might be able to run yourself and a SaaS. And I think a lot of projects are at different parts of the spectrum. But for Protomaps, it's very much like I'm trying to move maps to being it is something that is so easy to run yourself that anyone can do it. [00:16:00] Jeremy: Yeah, and I think you can really see it with, there's a few SaaS projects that are successful and they're open source, but then you go to look at the self-hosting instructions and it's either really difficult to find and you find it, and then the instructions maybe don't work, or it's really complicated. So I think doing the opposite with Protomaps. As a user, I'm sure we're all appreciative, but I wonder in terms of trying to make money, if that's difficult. [00:16:30] Brandon: No, for sure. It is not like a good way to make money because I think like the ideal situation for an open source project that is open that wants to make money is the product itself is fundamentally complicated to where people are scared to run it themselves. Like a good example I can think of is like Supabase. Supabase is sort of like a platform as a service based on Postgres. And if you wanted to run it yourself, well you need to run Postgres and you need to handle backups and authentication and logging, and that stuff all needs to work and be production ready. So I think a lot of people, like they don't trust themselves to run database backups correctly. 'cause if you get it wrong once, then you're kind of screwed. So I think that fundamental aspect of the product, like a database is something that is very, very ripe for being a SaaS while still being open source because it's fundamentally hard to run. Another one I can think of is like tailscale, which is, like a VPN that works end to end. That's something where, you know, it has this networking complexity where a lot of developers don't wanna deal with that. So they'd happily pay, for tailscale as a service. There is a lot of products or open source projects that eventually end up just changing to becoming like a hosted service. Businesses going from open source to closed or restricted licenses [00:17:58] Brandon: But then in that situation why would they keep it open source, right? Like, if it's easy to run yourself well, doesn't that sort of cannibalize their business model? And I think that's really the tension overall in these open source companies. So you saw it happen to things like Elasticsearch to things like Terraform where they eventually change the license to one that makes it difficult for other companies to compete with them. [00:18:23] Jeremy: Yeah, I mean there's been a number of cases like that. I mean, specifically within the mapping community, one I can think of was Mapbox's. They have Mapbox gl. Which was a JavaScript client to visualize maps and they moved from, I forget which license they picked, but they moved to a much more restrictive license. I wonder what your thoughts are on something that releases as open source, but then becomes something maybe a little more muddy. [00:18:55] Brandon: Yeah, I think it totally makes sense because if you look at their business and their funding, it seems like for Mapbox, I haven't used it in a while, but my understanding is like a lot of their business now is car companies and doing in dash navigation. And that is probably way better of a business than trying to serve like people making maps of toilets. And I think sort of the beauty of it is that, so Mapbox, the story is they had a JavaScript renderer called Mapbox GL JS. And they changed that to a source available license a couple years ago. And there's a fork of it that I'm sort of involved in called MapLibre GL. But I think the cool part is Mapbox paid employees for years, probably millions of dollars in total to work on this thing and just gave it away for free. Right? So everyone can benefit from that work they did. It's not like that code went away, like once they changed the license. Well, the old version has been forked. It's going its own way now. It's quite different than the new version of Mapbox, but I think it's extremely generous that they're able to pay people for years, you know, like a competitive salary and just give that away. [00:20:10] Jeremy: Yeah, so we should maybe look at it as, it was a gift while it was open source, and they've given it to the community and they're on continuing on their own path, but at least the community running Map Libre, they can run with it, right? It's not like it just disappeared. [00:20:29] Brandon: Yeah, exactly. And that is something that I use for Protomaps quite extensively. Like it's the primary way of showing maps on the web and I've been trying to like work on some enhancements to it to have like better internationalization for if you are in like South Asia like not show languages correctly. So I think it is being taken in a new direction. And I think like sort of the combination of Protomaps and MapLibre, it addresses a lot of use cases, like I mentioned earlier with like these like hobby projects, indie projects that are almost certainly not interesting to someone like Mapbox or Google as a business. But I'm happy to support as a small business myself. Financially supporting open source work (GitHub sponsors, closed source, contracts) [00:21:12] Jeremy: In my previous interview with Tom, one of the main things he mentioned was that creating a mapping business is incredibly difficult, and he said he probably wouldn't do it again. So in your case, you're building Protomaps, which you've admitted is easy to self-host. So there's not a whole lot of incentive for people to pay you. How is that working out for you? How are you supporting yourself? [00:21:40] Brandon: There's a couple of strategies that I've tried and oftentimes failed at. Just to go down the list, so I do have GitHub sponsors so I do have a hosted version of Protomaps you can use if you don't want to bother copying a big file around. But the way I do the billing for that is through GitHub sponsors. If you wanted to use this thing I provide, then just be a sponsor. And that definitely pays for itself, like the cost of running it. And that's great. GitHub sponsors is so easy to set up. It just removes you having to deal with Stripe or something. 'cause a lot of people, their credit card information is already in GitHub. GitHub sponsors I think is awesome if you want to like cover costs for a project. But I think very few people are able to make that work. A thing that's like a salary job level. It's sort of like Twitch streaming, you know, there's a handful of people that are full-time streamers and then you look down the list on Twitch and it's like a lot of people that have like 10 viewers. But some of the other things I've tried, I actually started out, publishing the base map as a closed source thing, where I would sell sort of like a data package instead of being a SaaS, I'd be like, here's a one-time download, of the premium data and you can buy it. And quite a few people bought it I just priced it at like $500 for this thing. And I thought that was an interesting experiment. The main reason it's interesting is because the people that it attracts to you in terms of like, they're curious about your products, are all people willing to pay money. While if you start out everything being open source, then the people that are gonna be try to do it are only the people that want to get something for free. So what I discovered is actually like once you transition that thing from closed source to open source, a lot of the people that used to pay you money will still keep paying you money because like, it wasn't necessarily that that closed source thing was why they wanted to pay. They just valued that thought you've put into it your expertise, for example. So I think that is one thing, that I tried at the beginning was just start out, closed source proprietary, then make it open source. That's interesting to people. Like if you release something as open source, if you go the other way, like people are really mad if you start out with something open source and then later on you're like, oh, it's some other license. Then people are like that's so rotten. But I think doing it the other way, I think is quite valuable in terms of being able to find an audience. [00:24:29] Jeremy: And when you said it was closed source and paid to open source, do you still sell those map exports? [00:24:39] Brandon: I don't right now. It's something that I might do in the future, you know, like have small customizations of the data that are available, uh, for a fee. still like the core OpenStreetMap based map that's like a hundred gigs you can just download. And that'll always just be like a free download just because that's already out there. All the source code to build it is open source. So even if I said, oh, you have to pay for it, then someone else can just do it right? So there's no real reason like to make that like some sort of like paywall thing. But I think like overall if the project is gonna survive in the long term it's important that I'd ideally like to be able to like grow like a team like have a small group of people that can dedicate the time to growing the project in the long term. But I'm still like trying to figure that out right now. [00:25:34] Jeremy: And when you mentioned that when you went from closed to open and people were still paying you, you don't sell a product anymore. What were they paying for? [00:25:45] Brandon: So I have some contracts with companies basically, like if they need a feature or they need a customization in this way then I am very open to those. And I sort of set it up to make it clear from the beginning that this is not just a free thing on GitHub, this is something that you could pay for if you need help with it, if you need support, if you wanted it. I'm also a little cagey about the word support because I think like it sounds a little bit too wishy-washy. Pretty much like if you need access to the developers of an open source project, I think that's something that businesses are willing to pay for. And I think like making that clear to potential users is a challenge. But I think that is one way that you might be able to make like a living out of open source. [00:26:35] Jeremy: And I think you said you'd been working on it for about five years. Has that mostly been full time? [00:26:42] Brandon: It's been on and off. it's sort of my pandemic era project. But I've spent a lot of time, most of my time working on the open source project at this point. So I have done some things that were more just like I'm doing a customization or like a private deployment for some client. But that's been a minority of the time. Yeah. [00:27:03] Jeremy: It's still impressive to have an open source project that is easy to self-host and yet is still able to support you working on it full time. I think a lot of people might make the assumption that there's nothing to sell if something is, is easy to use. But this sort of sounds like a counterpoint to that. [00:27:25] Brandon: I think I'd like it to be. So when you come back to the point of like, it being easy to self-host. Well, so again, like I think about it as like a primitive of the web. Like for example, if you wanted to start a business today as like hosted CSS files, you know, like where you upload your CSS and then you get developers to pay you a monthly subscription for how many times they fetched a CSS file. Well, I think most developers would be like, that's stupid because it's just an open specification, you just upload a static file. And really my goal is to make Protomaps the same way where it's obvious that there's not really some sort of lock-in or some sort of secret sauce in the server that does this thing. How PMTiles works and building a primitive of the web [00:28:16] Brandon: If you look at video for example, like a lot of the tech for how Protomaps and PMTiles works is based on parts of the HTTP spec that were made for video. And 20 years ago, if you wanted to host a video on the web, you had to have like a real player license or flash. So you had to go license some server software from real media or from macromedia so you could stream video to a browser plugin. But now in HTML you can just embed a video file. And no one's like, oh well I need to go pay for my video serving license. I mean, there is such a thing, like YouTube doesn't really use that for DRM reasons, but people just have the assumption that video is like a primitive on the web. So if we're able to make maps sort of that same way like a primitive on the web then there isn't really some obvious business or licensing model behind how that works. Just because it's a thing and it helps a lot of people do their jobs and people are happy using it. So why bother? [00:29:26] Jeremy: You mentioned that it a tech that was used for streaming video. What tech specifically is it? [00:29:34] Brandon: So it is byte range serving. So when you open a video file on the web, So let's say it's like a 100 megabyte video. You don't have to download the entire video before it starts playing. It streams parts out of the file based on like what frames... I mean, it's based on the frames in the video. So it can start streaming immediately because it's organized in a way to where the first few frames are at the beginning. And what PMTiles really is, is it's just like a video but in space instead of time. So it's organized in a way where these zoomed out views are at the beginning and the most zoomed in views are at the end. So when you're like panning or zooming in the map all you're really doing is fetching byte ranges out of that file the same way as a video. But it's organized in, this tiled way on a space filling curve. IIt's a little bit complicated how it works internally and I think it's kind of cool but that's sort of an like an implementation detail. [00:30:35] Jeremy: And to the person deploying it, it just looks like a single file. [00:30:40] Brandon: Exactly in the same way like an mp3 audio file is or like a JSON file is. [00:30:47] Jeremy: So with a video, I can sort of see how as someone seeks through the video, they start at the beginning and then they go to the middle if they wanna see the middle. For a map, as somebody scrolls around the map, are you seeking all over the file or is the way it's structured have a little less chaos? [00:31:09] Brandon: It's structured. And that's kind of the main technical challenge behind building PMTiles is you have to be sort of clever so you're not spraying the reads everywhere. So it uses something called a hilbert curve, which is a mathematical concept of a space filling curve. Where it's one continuous curve that essentially lets you break 2D space into 1D space. So if you've seen some maps of IP space, it uses this crazy looking curve that hits all the points in one continuous line. And that's the same concept behind PMTiles is if you're looking at one part of the world, you're sort of guaranteed that all of those parts you're looking at are quite close to each other and the data you have to transfer is quite minimal, compared to if you just had it at random. [00:32:02] Jeremy: How big do the files get? If I have a PMTiles of the entire world, what kind of size am I looking at? [00:32:10] Brandon: Right now, the default one I distribute is 128 gigabytes, so it's quite sizable, although you can slice parts out of it remotely. So if you just wanted. if you just wanted California or just wanted LA or just wanted only a couple of zoom levels, like from zero to 10 instead of zero to 15, there is a command line tool that's also called PMTiles that lets you do that. Issues with CDNs and range queries [00:32:35] Jeremy: And when you're working with files of this size, I mean, let's say I am working with a CDN in front of my application. I'm not typically accustomed to hosting something that's that large and something that's where you're seeking all over the file. is that, ever an issue or is that something that's just taken care of by the browser and, and taken care of by, by the hosts? [00:32:58] Brandon: That is an issue actually, so a lot of CDNs don't deal with it correctly. And my recommendation is there is a kind of proxy server or like a serverless proxy thing that I wrote. That runs on like cloudflare workers or on Docker that lets you proxy those range requests into a normal URL and then that is like a hundred percent CDN compatible. So I would say like a lot of the big commercial installations of this thing, they use that because it makes more practical sense. It's also faster. But the idea is that this solution sort of scales up and scales down. If you wanted to host just your city in like a 10 megabyte file, well you can just put that into GitHub pages and you don't have to worry about it. If you want to have a global map for your website that serves a ton of traffic then you probably want a little bit more sophisticated of a solution. It still does not require you to run a Linux server, but it might require (you) to use like Lambda or Lambda in conjunction with like a CDN. [00:34:09] Jeremy: Yeah. And that sort of ties into what you were saying at the beginning where if you can host on something like CloudFlare Workers or Lambda, there's less time you have to spend keeping these things running. [00:34:26] Brandon: Yeah, exactly. and I think also the Lambda or CloudFlare workers solution is not perfect. It's not as perfect as S3 or as just static files, but in my experience, it still is better at building something that lasts on the time span of years than being like I have a server that is on this Ubuntu version and in four years there's all these like security patches that are not being applied. So it's still sort of serverless, although not totally vendor neutral like S3. Customizing the map [00:35:03] Jeremy: We've mostly been talking about how you host the map itself, but for someone who's not familiar with these kind of tools, how would they be customizing the map? [00:35:15] Brandon: For customizing the map there is front end style customization and there's also data customization. So for the front end if you wanted to change the water from the shade of blue to another shade of blue there is a TypeScript API where you can customize it almost like a text editor color scheme. So if you're able to name a bunch of colors, well you can customize the map in that way you can change the fonts. And that's all done using MapLibre GL using a TypeScript API on top of that for customizing the data. So all the pipeline to generate this data from OpenStreetMap is open source. There is a Java program using a library called PlanetTiler which is awesome, which is this super fast multi-core way of building map tiles. And right now there isn't really great hooks to customize what data goes into that. But that's something that I do wanna work on. And finally, because the data comes from OpenStreetMap if you notice data that's missing or you wanted to correct data in OSM then you can go into osm.org. You can get involved in contributing the data to OSM and the Protomaps build is daily. So if you make a change, then within 24 hours you should see the new base map. Have that change. And of course for OSM your improvements would go into every OSM based project that is ingesting that data. So it's not a protomap specific thing. It's like this big shared data source, almost like Wikipedia. OpenStreetMap is a dataset and not a map [00:37:01] Jeremy: I think you were involved with OpenStreetMap to some extent. Can you speak a little bit to that for people who aren't familiar, what OpenStreetMap is? [00:37:11] Brandon: Right. So I've been using OSM as sort of like a tools developer for over a decade now. And one of the number one questions I get from developers about what is Protomaps is why wouldn't I just use OpenStreetMap? What's the distinction between Protomaps and OpenStreetMap? And it's sort of like this funny thing because even though OSM has map in the name it's not really a map in that you can't... In that it's mostly a data set and not a map. It does have a map that you can see that you can pan around to when you go to the website but the way that thing they show you on the website is built is not really that easily reproducible. It involves a lot of c++ software you have to run. But OpenStreetMap itself, the heart of it is almost like a big XML file that has all the data in the map and global. And it has tagged features for example. So you can go in and edit that. It has a web front end to change the data. It does not directly translate into making a map actually. Protomaps decides what shows at each zoom level [00:38:24] Brandon: So a lot of the pipeline, that Java program I mentioned for building this basemap for protomaps is doing things like you have to choose what data you show when you zoom out. You can't show all the data. For example when you're zoomed out and you're looking at all of a state like Colorado you don't see all the Chipotle when you're zoomed all the way out. That'd be weird, right? So you have to make some sort of decision in logic that says this data only shows up at this zoom level. And that's really what is the challenge in optimizing the size of that for the Protomaps map project. [00:39:03] Jeremy: Oh, so those decisions of what to show at different Zoom levels those are decisions made by you when you're creating the PMTiles file with Protomaps. [00:39:14] Brandon: Exactly. It's part of the base maps build pipeline. and those are honestly very subjective decisions. Who really decides when you're zoomed out should this hospital show up or should this museum show up nowadays in Google, I think it shows you ads. Like if someone pays for their car repair shop to show up when you're zoomed out like that that gets surfaced. But because there is no advertising auction in Protomaps that doesn't happen obviously. So we have to sort of make some reasonable choice. A lot of that right now in Protomaps actually comes from another open source project called Mapzen. So Mapzen was a company that went outta business a couple years ago. They did a lot of this work in designing which data shows up at which Zoom level and open sourced it. And then when they shut down, they transferred that code into the Linux Foundation. So it's this totally open source project, that like, again, sort of like Mapbox gl has this awesome legacy in that this company funded it for years for smart people to work on it and now it's just like a free thing you can use. So the logic in Protomaps is really based on mapzen. [00:40:33] Jeremy: And so the visualization of all this... I think I understand what you mean when people say oh, why not use OpenStreetMaps because it's not really clear it's hard to tell is this the tool that's visualizing the data? Is it the data itself? So in the case of using Protomaps, it sounds like Protomaps itself has all of the data from OpenStreetMap and then it has made all the decisions for you in terms of what to show at different Zoom levels and what things to have on the map at all. And then finally, you have to have a separate, UI layer and in this case, it sounds like the one that you recommend is the Map Libre library. [00:41:18] Brandon: Yeah, that's exactly right. For Protomaps, it has a portion or a subset of OSM data. It doesn't have all of it just because there's too much, like there's data in there. people have mapped out different bushes and I don't include that in Protomaps if you wanted to go in and edit like the Java code to add that you can. But really what Protomaps is positioned at is sort of a solution for developers that want to use OSM data to make a map on their app or their website. because OpenStreetMap itself is mostly a data set, it does not really go all the way to having an end-to-end solution. Financials and the idea of a project being complete [00:41:59] Jeremy: So I think it's great that somebody who wants to make a map, they have these tools available, whether it's from what was originally built by Mapbox, what's built by Open StreetMap now, the work you're doing with Protomaps. But I wonder one of the things that I talked about with Tom was he was saying he was trying to build this mapping business and based on the financials of what was coming in he was stressed, right? He was struggling a bit. And I wonder for you, you've been working on this open source project for five years. Do you have similar stressors or do you feel like I could keep going how things are now and I feel comfortable? [00:42:46] Brandon: So I wouldn't say I'm a hundred percent in one bucket or the other. I'm still seeing it play out. One thing, that I really respect in a lot of open source projects, which I'm not saying I'm gonna do for Protomaps is the idea that a project is like finished. I think that is amazing. If a software project can just be done it's sort of like a painting or a novel once you write, finish the last page, have it seen by the editor. I send it off to the press is you're done with a book. And I think one of the pains of software is so few of us can actually do that. And I don't know obviously people will say oh the map is never finished. That's more true of OSM, but I think like for Protomaps. One thing I'm thinking about is how to limit the scope to something that's quite narrow to where we could be feature complete on the core things in the near term timeframe. That means that it does not address a lot of things that people want. Like search, like if you go to Google Maps and you search for a restaurant, you will get some hits. that's like a geocoding issue. And I've already decided that's totally outta scope for Protomaps. So, in terms of trying to think about the future of this, I'm mostly looking for ways to cut scope if possible. There are some things like better tooling around being able to work with PMTiles that are on the roadmap. but for me, I am still enjoying working on the project. It's definitely growing. So I can see on NPM downloads I can see the growth curve of people using it and that's really cool. So I like hearing about when people are using it for cool projects. So it seems to still be going okay for now. [00:44:44] Jeremy: Yeah, that's an interesting perspective about how you were talking about projects being done. Because I think when people look at GitHub projects and they go like, oh, the last commit was X months ago. They go oh well this is dead right? But maybe that's the wrong framing. Maybe you can get a project to a point where it's like, oh, it's because it doesn't need to be updated. [00:45:07] Brandon: Exactly, yeah. Like I used to do a lot of c++ programming and the best part is when you see some LAPACK matrix math library from like 1995 that still works perfectly in c++ and you're like, this is awesome. This is the one I have to use. But if you're like trying to use some like React component library and it hasn't been updated in like a year, you're like, oh, that's a problem. So again, I think there's some middle ground between those that I'm trying to find. I do like for Protomaps, it's quite dependency light in terms of the number of hard dependencies I have in software. but I do still feel like there is a lot of work to be done in terms of project scope that needs to have stuff added. You mostly only hear about problems instead of people's wins [00:45:54] Jeremy: Having run it for this long. Do you have any thoughts on running an open source project in general? On dealing with issues or managing what to work on things like that? [00:46:07] Brandon: Yeah. So I have a lot. I think one thing people point out a lot is that especially because I don't have a direct relationship with a lot of the people using it a lot of times I don't even know that they're using it. Someone sent me a message saying hey, have you seen flickr.com, like the photo site? And I'm like, no. And I went to flickr.com/map and it has Protomaps for it. And I'm like, I had no idea. But that's cool, if they're able to use Protomaps for this giant photo sharing site that's awesome. But that also means I don't really hear about when people use it successfully because you just don't know, I guess they, NPM installed it and it works perfectly and you never hear about it. You only hear about people's negative experiences. You only hear about people that come and open GitHub issues saying this is totally broken, and why doesn't this thing exist? And I'm like, well, it's because there's an infinite amount of things that I want to do, but I have a finite amount of time and I just haven't gone into that yet. And that's honestly a lot of the things and people are like when is this thing gonna be done? So that's, that's honestly part of why I don't have a public roadmap because I want to avoid that sort of bickering about it. I would say that's one of my biggest frustrations with running an open source project is how it's self-selected to only hear the negative experiences with it. Be careful what PRs you accept [00:47:32] Brandon: 'cause you don't hear about those times where it works. I'd say another thing is it's changed my perspective on contributing to open source because I think when I was younger or before I had become a maintainer I would open a pull request on a project unprompted that has a hundred lines and I'd be like, Hey, just merge this thing. But I didn't realize when I was younger well if I just merge it and I disappear, then the maintainer is stuck with what I did forever. You know if I add some feature then that person that maintains the project has to do that indefinitely. And I think that's very asymmetrical and it's changed my perspective a lot on accepting open source contributions. I wanna have it be open to anyone to contribute. But there is some amount of back and forth where it's almost like the default answer for should I accept a PR is no by default because you're the one maintaining it. And do you understand the shape of that solution completely to where you're going to support it for years because the person that's contributing it is not bound to those same obligations that you are. And I think that's also one of the things where I have a lot of trepidation around open source is I used to think of it as a lot more bazaar-like in terms of anyone can just throw their thing in. But then that creates a lot of problems for the people who are expected out of social obligation to continue this thing indefinitely. [00:49:23] Jeremy: Yeah, I can totally see why that causes burnout with a lot of open source maintainers, because you probably to some extent maybe even feel some guilt right? You're like, well, somebody took the time to make this. But then like you said you have to spend a lot of time trying to figure out is this something I wanna maintain long term? And one wrong move and it's like, well, it's in here now. [00:49:53] Brandon: Exactly. To me, I think that is a very common failure mode for open source projects is they're too liberal in the things they accept. And that's a lot of why I was talking about how that choice of what features show up on the map was inherited from the MapZen projects. If I didn't have that then somebody could come in and say hey, you know, I want to show power lines on the map. And they open a PR for power lines and now everybody who's using Protomaps when they're like zoomed out they see power lines are like I didn't want that. So I think that's part of why a lot of open source projects eventually evolve into a plugin system is because there is this demand as the project grows for more and more features. But there is a limit in the maintainers. It's like the demand for features is exponential while the maintainer amount of time and effort is linear. Plugin systems might reduce need for PRs [00:50:56] Brandon: So maybe the solution to smash that exponential down to quadratic maybe is to add a plugin system. But I think that is one of the biggest tensions that only became obvious to me after working on this for a couple of years. [00:51:14] Jeremy: Is that something you're considering doing now? [00:51:18] Brandon: Is the plugin system? Yeah. I think for the data customization, I eventually wanted to have some sort of programmatic API to where you could declare a config file that says I want ski routes. It totally makes sense. The power lines example is maybe a little bit obscure but for example like a skiing app and you want to be able to show ski slopes when you're zoomed out well you're not gonna be able to get that from Mapbox or from Google because they have a one size fits all map that's not specialized to skiing or to golfing or to outdoors. But if you like, in theory, you could do this with Protomaps if you changed the Java code to show data at different zoom levels. And that is to me what makes the most sense for a plugin system and also makes the most product sense because it enables a lot of things you cannot do with the one size fits all map. [00:52:20] Jeremy: It might also increase the complexity of the implementation though, right? [00:52:25] Brandon: Yeah, exactly. So that's like. That's really where a lot of the terrifying thoughts come in, which is like once you create this like config file surface area, well what does that look like? Is that JSON? Is that TOML, is that some weird like everything eventually evolves into some scripting language right? Where you have logic inside of your templates and I honestly do not really know what that looks like right now. That feels like something in the medium term roadmap. [00:52:58] Jeremy: Yeah and then in terms of bug reports or issues, now it's not just your code it's this exponential combination of whatever people put into these config files. [00:53:09] Brandon: Exactly. Yeah. so again, like I really respect the projects that have done this well or that have done plugins well. I'm trying to think of some, I think obsidian has plugins, for example. And that seems to be one of the few solutions to try and satisfy the infinite desire for features with the limited amount of maintainer time. Time split between code vs triage vs talking to users [00:53:36] Jeremy: How would you say your time is split between working on the code versus issue and PR triage? [00:53:43] Brandon: Oh, it varies really. I think working on the code is like a minority of it. I think something that I actually enjoy is talking to people, talking to users, getting feedback on it. I go to quite a few conferences to talk to developers or people that are interested and figure out how to refine the message, how to make it clearer to people, like what this is for. And I would say maybe a plurality of my time is spent dealing with non-technical things that are neither code or GitHub issues. One thing I've been trying to do recently is talk to people that are not really in the mapping space. For example, people that work for newspapers like a lot of them are front end developers and if you ask them to run a Linux server they're like I have no idea. But that really is like one of the best target audiences for Protomaps. So I'd say a lot of the reality of running an open source project is a lot like a business is it has all the same challenges as a business in terms of you have to figure out what is the thing you're offering. You have to deal with people using it. You have to deal with feedback, you have to deal with managing emails and stuff. I don't think the payoff is anywhere near running a business or a startup that's backed by VC money is but it's definitely not the case that if you just want to code, you should start an open source project because I think a lot of the work for an opensource project has nothing to do with just writing the code. It is in my opinion as someone having done a VC backed business before, it is a lot more similar to running, a tech company than just putting some code on GitHub. Running a startup vs open source project [00:55:43] Jeremy: Well, since you've done both at a high level what did you like about running the company versus maintaining the open source project? [00:55:52] Brandon: So I have done some venture capital accelerator programs before and I think there is an element of hype and energy that you get from that that is self perpetuating. Your co-founder is gungho on like, yeah, we're gonna do this thing. And your investors are like, you guys are geniuses. You guys are gonna make a killing doing this thing. And the way it's framed is sort of obvious to everyone that it's like there's a much more traditional set of motivations behind that, that people understand while it's definitely not the case for running an open source project. Sometimes you just wake up and you're like what the hell is this thing for, it is this thing you spend a lot of time on. You don't even know who's using it. The people that use it and make a bunch of money off of it they know nothing about it. And you know, it's just like cool. And then you only hear from people that are complaining about it. And I think like that's honestly discouraging compared to the more clear energy and clearer motivation and vision behind how most people think about a company. But what I like about the open source project is just the lack of those constraints you know? Where you have a mandate that you need to have this many customers that are paying by this amount of time. There's that sort of pressure on delivering a business result instead of just making something that you're proud of that's simple to use and has like an elegant design. I think that's really a difference in motivation as well. Having control [00:57:50] Jeremy: Do you feel like you have more control? Like you mentioned how you've decided I'm not gonna make a public roadmap. I'm the sole developer. I get to decide what goes in. What doesn't. Do you feel like you have more control in your current position than you did running the startup? [00:58:10] Brandon: Definitely for sure. Like that agency is what I value the most. It is possible to go too far. Like, so I'm very wary of the BDFL title, which I think is how a lot of open source projects succeed. But I think there is some element of for a project to succeed there has to be somebody that makes those decisions. Sometimes those decisions will be wrong and then hopefully they can be rectified. But I think going back to what I was talking about with scope, I think the overall vision and the scope of the project is something that I am very opinionated about in that it should do these things. It shouldn't do these things. It should be easy to use for this audience. Is it gonna be appealing to this other audience? I don't know. And I think that is really one of the most important parts of that leadership role, is having the power to decide we're doing this, we're not doing this. I would hope other developers would be able to get on board if they're able to make good use of the project, if they use it for their company, if they use it for their business, if they just think the project is cool. So there are other contributors at this point and I want to get more involved. But I think being able to make those decisions to what I believe is going to be the best project is something that is very special about open source, that isn't necessarily true about running like a SaaS business. [00:59:50] Jeremy: I think that's a good spot to end it on, so if people want to learn more about Protomaps or they wanna see what you're up to, where should they head? [01:00:00] Brandon: So you can go to Protomaps.com, GitHub, or you can find me or Protomaps on bluesky or Mastodon. [01:00:09] Jeremy: All right, Brandon, thank you so much for chatting today. [01:00:12] Brandon: Great. Thank you very much.

Engineering Kiosk
#163 Benevolent Dictator for Life (BDFL)

Engineering Kiosk

Play Episode Listen Later Dec 12, 2024 13:18


Benevolent Dictator for Life (BDFL): Was ist das? Wer ist das? Ist dies was gutes?Im Engineering Kiosk Adventskalender 2024 sprechen befreundete Podcaster⋅innen und wir selbst, Andy und Wolfi, jeden Tag kurz & knackig innerhalb von wenigen Minuten über ein interessantes Tech-Thema.Unsere aktuellen Werbepartner findest du auf https://engineeringkiosk.dev/partnersDas schnelle Feedback zur Episode:

The Changelog
Rails is having a moment (again) (Interview)

The Changelog

Play Episode Listen Later Oct 31, 2024 122:12


(Includes expletives) David Heinemeier Hansson (DHH), creator of Ruby on Rails and co-owner of 37signals, joined the show to discuss this Rails moment and renewed excitement for Rails. We discuss hard opinions, developers being cooked too long in the JavaScript soup, finding developer joy, the pros and cons of the BDFL, the ongoing WordPress drama with WP Engine, and what's to come in Rails 8.

Changelog Master Feed
Rails is having a moment (again) (Changelog Interviews #615)

Changelog Master Feed

Play Episode Listen Later Oct 31, 2024 122:12


(Includes expletives) David Heinemeier Hansson (DHH), creator of Ruby on Rails and co-owner of 37signals, joined the show to discuss this Rails moment and renewed excitement for Rails. We discuss hard opinions, developers being cooked too long in the JavaScript soup, finding developer joy, the pros and cons of the BDFL, the ongoing WordPress drama with WP Engine, and what's to come in Rails 8.

A Bootiful Podcast
GraalVM founder and BDFL Thomas Wuerthinger on GraalPy, GraalVM, and so much more

A Bootiful Podcast

Play Episode Listen Later Oct 24, 2024 56:02


Hi, Spring fans! In this installment I talk to GraalVM founder and benevolent dictator for life Thomas Wuerthinger, recorded live from Devoxx Belgium 2024!

Cup o' Go

Cup o' Go

Play Episode Listen Later Aug 3, 2024 26:18 Transcription Available


For Patreon, Swag, past episodes, and more, visit https://cupogo.dev/!

The Changelog
Where DOESN'T curl run (Friends)

The Changelog

Play Episode Listen Later Jun 21, 2024 101:27


Daniel Stenberg shares his guiding principles for BDFL'ing curl, gives us his perspective on the state of the internet, talks financial independence, ensuring curl won't be the next XZ & more!

Changelog Master Feed
Where DOESN'T curl run (Changelog & Friends #49)

Changelog Master Feed

Play Episode Listen Later Jun 21, 2024 101:27


Daniel Stenberg shares his guiding principles for BDFL'ing curl, gives us his perspective on the state of the internet, talks financial independence, ensuring curl won't be the next XZ & more!

Les Cast Codeurs Podcast
LCC 313 - 313 CCL

Les Cast Codeurs Podcast

Play Episode Listen Later Jun 15, 2024 79:45


Katia, Guillaume, Emmanuel et Antonio discutent Kotlin, Micronaut, Spring Boot, Quarkus, Langchain4j, LLMs en Java, builds reproductible et la question AMA du jour, comment fait-on carrière de dev à 40 ans ? Enregistré le 14 juin 2024 Téléchargement de l'épisode LesCastCodeurs-Episode-313.mp3 News Langages Android avec Kotlin Multiplatform our Flutter avec Dart ? https://developers.googleblog.com/en/making-development-across-platforms-easier-for-developers/ Des licenciements ont continué chez Google et l'équipe Flutter/Dart comme plein d'autres ont été touchées, mais sur les réseaux sociaux les gens ont pensé que Google désinvestissait dans Flutter et Dart. Par ailleurs, côté Android, ils poussent plutôt du côté de Kotlin et KMP, mais naturellement aussi les gens se sont demandé si Google avait pris parti pour pousser plus Kotlin/KMP plutôt que Flutter/Dart. Pour essayer de mieux faire comprendre aux développeurs l'intérêt des deux plateformes, et leurs avantages et inconvénients, les directeurs des deux plateformes ont rédigé un article commun. Si l'on souhaite une expérience plus proche du hardware et des dernières nouveautés d'Android, et d'avoir aussi une UI/UX vraiment native Android, mieux vaut aller du côté de Kotlin/KMP. Si l'on souhaite par contre une expérience multiplateforme Web, mobile, desktop avec une UX commune cross-plateforme, avec également le partage de business logic à partir d'une même base de code, Flutter et Dart sont plus adaptés. Recap de KotlinConf https://x.com/gz_k/status/1793887581433971083?s=46&t=C18cckWlfukmsB_Fx0FfxQ RPC multiplatform la pres Grow with the flow montrant la reecriture en kotlin plus simple que des solutions complexes ailleurs power-assert pour ecrire des tests Kotlin 2.0 et les evolutions majeures Kotlin multiplatforme mainteant stable Kotlin Compose Multiplatform continue a amturer Retour d'experience de la migration d'android jetpack vers Kotlin Multiplatform use cases de coroutines et scope Librairies Quarkus veut aller dans une fondation https://quarkus.io/blog/quarkus-in-a-foundation/ ameliorer l'adoption (encore plus), ameliorer la transparence, et la collaboration, encourager la participatiopn multi vendeur Premiere etape : une gouvernance plus overte Deuxieme etape: bouger dans uen foundation Echange avec la communaute sur la proposition et les fondations cibles Des criteres pour al foudnation (notamment la rapidite de delivery Quarkus 3.11 https://quarkus.io/blog/quarkus-3-11-0-released/ Websocket.next en cours Dev services pour observabilite (grafana, jaegel, open telemetry extension infinispan cache #38448 - Observability extensions - Dev Services, Dev Resources, LGTM #39836 - Infinispan Cache Extension #40309 - WebSockets Next: client endpoints #40534 - WebSockets Next: initial version of security integration #40273 - Allow quarkus:run to launch Dev Services #40539 - Support for OIDC session expired page #40600 - Introduce OidcRedirectFilter LangChain4j 0.31 est sorti https://github.com/langchain4j/langchain4j/releases/tag/0.31.0 Recherche Web pour le RAG avec Google et Tavily RAG avec les bases de données SQL (expérimental) Récupération des resources remontées par le RAG lorsque AiServices retourne un Result Observabilité LLM pour OpenAI pour être notifié des requêtes, réponses et erreurs Intégration de Cohere (embedding), Jina (embedding et re-ranking scoring), Azuere CosmosDB comme embedding store Mise à jour de Gemini avec le parallel function calling et les instructions système Spring Boot 3.3.0 est sorti https://spring.io/blog/2024/05/23/spring-boot-3-3-0-available-now support Class Data Sharing Micrometer sipport de spantag etc Amelioration Spring Security comme JwtAuthenticationCovnerter support docker compose pour les images container bitnami Virtual thread pour les websockets Support sBOM via an actuator SNI for embedded web servers une nouvelle doc via antora Micronaut 4.5 est sortie https://github.com/micronaut-projects/micronaut-platform/releases/tag/v4.5.0 Le serveur basé sur Netty inclus la détection d'opération bloquante et les modules l'utilisant indiqueront à l'utilisateur quand certaines opérations peuvent être redirigée plutôt sur un virtual thread ou dans le thread pool IO Micronaut Data inclus le support de la multitenance avec partitionnement par discriminateur pour JDBC et R2DBC Micronaut Data rajoute le pagination par curseur pour JDBC et R2DBC (important aussi pour Jakarta Data) Support des annotations Jakarta Servlet pour configurer par exemple les servelet filters Support virtual thread et HTTP/2 Un nouveau module JSON Schema pour générer des JSON Schemas pour les records Java Un nouveau module Source Gen pour faire de la génération de source pour Java et Kotlin cross-language Un nouveau module Guice pour importer des modules Guice existants Web Angular 18 est sorti https://blog.angular.dev/angular-v18-is-now-available-e79d5ac0affe Support expérimental pour la détection de changement sans zone Angular.dev est désormais le nouveau site pour les développeurs Angular Material 3, les “deferrable views”, le “built-in control flow” sont maintenant stables et intègrent une série d'améliorations Améliorations du rendu côté serveur telles que le support de l'hydratation i18n, un meilleur débogage, le support de l'hydratation dans Angular Material, et la event replay qui utilise la même bibliothèque que Google Search. Data et Intelligence Artificielle Une version pure Java du LLM Llama3 de Meta https://github.com/mukel/llama3.java/tree/main utilise la future API Vector de Java JLama, un moteur d‘exécution de LLM en Java avec l'api vector https://www.infoq.com/news/2024/05/jlama-llm-inference-java/ basé sur llama.c qui est un moteur d'inference de LLM (l'execution des requetes) jlama implementé avec vector APIs et PamanaTensorOperations plusisures alternatives (native binding, iml0ementation pure en java, scala, kotlin) Target Speech Hearing https://www.infoq.com/news/2024/05/target-speech-hearing/ Nouveau algo Deep Learning de l'Université de Washington permet d'écouter une seule personne de ton choix et effacer tout le bruit autour le système nécessite que la personne portant les écouteurs appuie sur un bouton tout en regardant quelqu'un parler ou simplement en le fixant pendant trois à cinq secondes Permet à un modèle d'apprendre les schémas vocaux du locuteur et de s'y attacher pour pouvoir les restituer à l'auditeur, même s'il se déplace et cesse de regarder cette personne. Selon les chercheurs, cela constitue une avancée significative par rapport aux écouteurs à réduction de bruit existants, qui peuvent annuler efficacement tous les sons, mais ne peuvent pas sélectionner les locuteurs en fonction de leurs caractéristiques vocales. Actuellement, le système ne peut enregistrer qu'un seul locuteur à la fois. Une autre limitation est que l'enregistrement ne réussira que si aucune autre voix forte ne provient de la même direction. L'équipe a mis en open source leur code et leur jeu de données afin de faciliter les travaux de recherche futurs pour améliorer l'audition de la parole cible. Outillage Utiliser LLM pour migrer du framework de testing https://www.infoq.com/news/2024/06/slack-automatic-test-conversion/ Slack a migré 15.000 tests de Enzyme à React Testing Library avec un succès de 80% Migration nécessaire pour le manque de support de Enzyme pour React 18 L'équipe a essayé d'automatiser la conversion avec des transformations AST, mais n'a atteint que 45 % de succès à cause de la complexité des méthodes d'Enzyme et du manque d'accès aux informations contextuelles du DOM. L'équipe a utilisé Claude 2.1 pour la conversion, avec des taux de réussite variant de 40 % à 60 %, les résultats dépendant largement de la complexité des tâches. Suite aux résultats insatisfaisants, l'équipe a décidé d'observer comment les développeurs humains abordaient la conversion des tests unitaires. Les développeurs humains utilisaient leurs connaissances sur React, Enzyme et RTL, ainsi que le contexte du rendu et les conversions AST de l'outil initial pour mieux convertir les tests unitaires. Finalement les ingénieurs de Slack ont combiné transformations AST et LLM en intégrant des composants React rendus et des conversions AST dans les invites, atteignant un taux de réussite de 80 % démontrant ainsi la complémentarité de ces technologies. Claude 2.1 est un modèle de langage de grande taille (LLM) annoncé en novembre 2023 par Anthropic. Il inclut une fenêtre contextuelle de 200 000 tokens, des réductions significatives des taux d'hallucination du modèle, des invites système et permet l'utilisation d'outils. Depuis, Anthropic a introduit la famille de modèles Claude 3, composée de trois modèles distincts, avec des capacités multimodales et une compréhension contextuelle améliorée. Un arbre de syntaxe abstraite (AST) est une représentation arborescente de la structure syntaxique abstraite du code source écrit dans un langage de programmation. Chaque nœud de l'arbre représente une construction du code source. Un arbre de syntaxe se concentre sur la structure et le contenu nécessaires pour comprendre la fonctionnalité du code. Les AST sont couramment utilisés dans les compilateurs et les interpreters pour analyser et examiner le code, permettant diverses transformations, optimisations et traductions lors de la compilation. IDE de test de JetBrains https://blog.jetbrains.com/qa/2024/05/aqua-general-availability/ Aqua, le premier IDE conçu pour l'automatisation des tests, supporte plusieurs langages (Java, Python, JavaScript, TypeScript, Kotlin, SQL) et frameworks de tests (Selenium, Playwright, Cypress). Pourquoi ? Les tests d'applications nécessitent des compétences spécifiques. Aqua, un IDE adapté, est recommandé par les ingénieurs en automatisation des tests. Aqua propose deux plans de licence : un gratuit pour les usages non commerciaux et un payant pour les usages commerciaux. cam me parait un peu contre intuitif a l'heure du devops et du TDD de faire des outils dédiés et donc des equipes ou personnes dédiées Méthodologies Les 10 principes à suivre, selon le créateur de cURL, pour être un bon BDFL (Benevolent Dictator For Life) https://daniel.haxx.se/blog/2024/05/27/my-bdfl-guiding-principles/ Être ouvert et amical Livrer des produits solides comme le roc Être un leader de l'Open Source Privilégier la sécurité Fournir une documentation de premier ordre Rester indépendant Répondre rapidement Suivre l'actualité Rester à la pointe de la technologie Respecter les retours d'information Dans un vieil article de Artima, Guido Van Rossum, le créateur de Python et premier BDFL d'un projet, se remémore un échange de 1995 qui est à l'origine de ce concept https://www.artima.com/weblogs/viewpost.jsp?thread=235725 Guido Van Rossum a été le premier à endosser ce “rôle” Un site compréhensif sur les build reproductibles https://reproducible-builds.org longue doc de la definition aux méthodes pour resoudre des problèmes spécifiques Masterclass de Fabien Olicard: Le Palais Mental https://www.youtube.com/watch?v=u6wu_iY4xd8 Technique pour retenir de l'information plus longtemps que dans sa mémoire courte Les APIs web ne devraient pas rediriger HTTP vers HTTPS https://jviide.iki.fi/http-redirects grosso modo le risque majeur est d'envoyer des données confidentielles en clair sur le réseau le mieux serait de ne pas rediriger vers HTTPS, mais par contre de retourner une vraie erreur explicite notamment les clés d'API et c'est facile de ne pas le,voir vu les redirects. Sécurité Blog de GitHub sur la provenance et l'attestation https://github.blog/2024-04-30-where-does-your-software-really-come-from/ Discute les concepts de securisation de chainne d'approvisionnement de sogiciel et comment elles s'articulent entre elle. A haut niveau discute les hash pour garantir le meme fichier La signature asymetrique pour prouver que j'ai signé (e.g. le hash) et donc que je garantis. L'attenstation qui declare des faits sur un artifact attestation de provenance: source code et instructions de build (SLSA provenance) mais il faut garantir les signature avec une autorite de certification et avec des certificats a courte vide idealement, c'est sigstore MEtionne aussi The Update Framework pour s'appuyer sur cela et garantir des undates non compromis Keycloak 25 est sorti https://www.keycloak.org/2024/06/keycloak-2500-released.html Argon2 pour le hashing de mots de passe Depreciation des adaptateurs (Tomcat, servlet etc) Java 21 et depreciation de Java 17 session utilisatur persistente meme pour les instances online (pour survivre a une rotation de keycloak ameliorations autour des passkeys management et health endpoint sur un port different Et plus Demande aux cast codeurs A 40 ans, tu peux encore être codeur reconnu ? Conférences La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs : 12-14 juin 2024 : Rencontres R - Vannes (France) 13-14 juin 2024 : Agile Tour Toulouse - Toulouse (France) 14 juin 2024 : DevQuest - Niort (France) 18 juin 2024 : Mobilis In Mobile 2024 - Nantes (France) 18 juin 2024 : BSides Strasbourg 2024 - Strasbourg (France) 18 juin 2024 : Tech & Wine 2024 - Lyon (France) 19-20 juin 2024 : AI_dev: Open Source GenAI & ML Summit Europe - Paris (France) 19-21 juin 2024 : Devoxx Poland - Krakow (Poland) 26-28 juin 2024 : Breizhcamp 2024 - Rennes (France) 27 juin 2024 : DotJS - Paris (France) 27-28 juin 2024 : Agi Lille - Lille (France) 4-5 juillet 2024 : Sunny Tech - Montpellier (France) 8-10 juillet 2024 : Riviera DEV - Sophia Antipolis (France) 6 septembre 2024 : JUG Summer Camp - La Rochelle (France) 6-7 septembre 2024 : Agile Pays Basque - Bidart (France) 17 septembre 2024 : We Love Speed - Nantes (France) 17-18 septembre 2024 : Agile en Seine 2024 - Issy-les-Moulineaux (France) 19-20 septembre 2024 : API Platform Conference - Lille (France) & Online 25-26 septembre 2024 : PyData Paris - Paris (France) 26 septembre 2024 : Agile Tour Sophia-Antipolis 2024 - Biot (France) 2-4 octobre 2024 : Devoxx Morocco - Marrakech (Morocco) 7-11 octobre 2024 : Devoxx Belgium - Antwerp (Belgium) 8 octobre 2024 : Red Hat Summit: Connect 2024 - Paris (France) 10 octobre 2024 : Cloud Nord - Lille (France) 10-11 octobre 2024 : Volcamp - Clermont-Ferrand (France) 10-11 octobre 2024 : Forum PHP - Marne-la-Vallée (France) 11-12 octobre 2024 : SecSea2k24 - La Ciotat (France) 16 octobre 2024 : DotPy - Paris (France) 17-18 octobre 2024 : DevFest Nantes - Nantes (France) 17-18 octobre 2024 : DotAI - Paris (France) 30-31 octobre 2024 : Agile Tour Nantais 2024 - Nantes (France) 30-31 octobre 2024 : Agile Tour Bordeaux 2024 - Bordeaux (France) 31 octobre 2024-3 novembre 2024 : PyCon.FR - Strasbourg (France) 6 novembre 2024 : Master Dev De France - Paris (France) 7 novembre 2024 : DevFest Toulouse - Toulouse (France) 8 novembre 2024 : BDX I/O - Bordeaux (France) 13-14 novembre 2024 : Agile Tour Rennes 2024 - Rennes (France) 20-22 novembre 2024 : Agile Grenoble 2024 - Grenoble (France) 21 novembre 2024 : DevFest Strasbourg - Strasbourg (France) 27-28 novembre 2024 : Cloud Expo Europe - Paris (France) 28 novembre 2024 : Who Run The Tech ? - Rennes (France) 3-5 décembre 2024 : APIdays Paris - Paris (France) 4-5 décembre 2024 : DevOpsDays Paris - Paris (France) 4-5 décembre 2024 : Open Source Experience - Paris (France) 6 décembre 2024 : DevFest Dijon - Dijon (France) 22-25 janvier 2025 : SnowCamp 2025 - Grenoble (France) 16-18 avril 2025 : Devoxx France - Paris (France) Nous contacter Pour réagir à cet épisode, venez discuter sur le groupe Google https://groups.google.com/group/lescastcodeurs Contactez-nous via twitter https://twitter.com/lescastcodeurs Faire un crowdcast ou une crowdquestion Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs Tous les épisodes et toutes les infos sur https://lescastcodeurs.com/

Tech AI Radio
SerenityOS創設者、LadybirdをフォークしBDFLから退任

Tech AI Radio

Play Episode Listen Later Jun 3, 2024


Technik vor Taktik
#178 Technik BDFL Fortbildung - mit Markus Steffen

Technik vor Taktik

Play Episode Listen Later Mar 12, 2024 8:44


Am 15.03 und 16.03.2024 findet der nächste Online-Trainer-Kongress des BDFL statt. Bei den Vorträgen geht es um „Technik- und positionsspezifisches Training“. Ich werde am Samstag einen Vortrag zum Thema „Entwicklung technik-intelligenter Spieler*innen“ halten. Außerdem gibt es einen Zusatzvortrag zum Thema Flugball. In dieser Folge rede ich über den Kongress und mein Techniktrainer-Zertifikat. Wir sprechen zusätzlich über zwei fehlende Folgen Technik vor Taktik und ein neues Format auf YouTube. Viel Spaß beim Hören! Ihr findet Technik vor Taktik auf Spotify und allen gängigen Podcastplayern. NEU:NEU: Techniktrainerzertifikat für 2024 terminiert! 07.06-09.06.2024 in Ochtrup! Auch online verfügbar! Anmeldung unter www.m-steffen.com Und vieles mehr! Schaut doch mal auf meine Internetseite www.m-steffen.com Ihr habt Lust auf ein Techniktrainer-Zertifikat? Dann meldet euch unter info@m-steffen.com Aufgepasst! Ich biete für euch als Trainer/in oder für eure Mannschaft bzw. Verein verschiedene Workshops an. - 2 Std Workshops für Vereine / Trainer/innen - Trainingstage und Schulung für eure Mannschaft - Trainerausbildung zum Techniktrainer - Fußtechniken für Torhüter als Workshop Ihr wollt ein professionelles Techniktraining buchen? Dann schaut auf meinen Seiten vorbei und kontaktiert mich. Instagram: MSIndividual Instagram: technikvortaktik Internet: www.m-steffen.com #trainingsinhalte #techniktraining #jugendfussballtraining #technikvortaktik #1bundesliga #2bundesliga #dfbpokal #trainerausbildung #fussballtraining #scouting #techniktraining #bundesliga #profis #athlet #fussballpodcast #bundesliga #content #nlz #coach #coaching #podcast #nachwuchsleistungszentrum #trainer #trainerpersönlichkeit #ausbildung #jugend #athleten

Tech Over Tea
BDFL Of curl & libcurl | Daniel Stenberg

Tech Over Tea

Play Episode Listen Later Sep 15, 2023 117:48


Curl is such an important project to the Linux world and today we have the one and only Daniel Stenberg the BDFL of the project here to talk about it and how we got to where we are today. ==========Guest Links========== Website: https://curl.se/ Blog: https://daniel.haxx.se/ Twitter: https://twitter.com/bagder Mastadon: https://mastodon.social/@bagder ==========Support The Show========== ► Patreon: https://www.patreon.com/brodierobertson ► Paypal: https://www.paypal.me/BrodieRobertsonVideo ► Amazon USA: https://amzn.to/3d5gykF ► Other Methods: https://cointr.ee/brodierobertson =========Video Platforms==========

Oxide and Friends
Open Source Anti-Patterns with Kelsey Hightower

Oxide and Friends

Play Episode Listen Later Aug 29, 2023 98:44


Kelsey Hightower joined Bryan and Adam to revisit a topic Bryan had spoken about a decade ago: corporate open source anti-patterns. Kelsey brought his typical sagacity to a complex and fraught topic.We've been hosting a live show weekly on Mondays at 5p for about an hour, and recording them all; here is the recording from August 28th, 2023.In addition to Bryan Cantrill and Adam Leventhal, we were joined by Kelsey Hightower.Here is the (lightly edited) live chat from the show: xxxxbubbler: https://www.youtube.com/watch?v=Pm8P4oCIY3g here is Bryan's talk from 1 decade ago, for reference rolipo.li: web3 is going great rolipo.li: https://web3isgoinggreat.com/ ahl0003: Last time Kelsey joined us for predictions blainehansen: "Governance orgies" happen when the governance mechanisms aren't well-designed ha. If they are well-designed then governance is good! jbk: opsware maybe? or tivoli? uptill3: hp openview was one as well sevanj: "they've got us working for trinkets" sevanj: this was mentioned on the bugzilla anouncement regarding funded staff being pulled from working on project in the last 3 years. blainehansen: All open source problems are secretly public goods problems haha carpetbomberz.com: Hashicorp DID do a "thing" blacksmithforlife: Just like taxes fund roads, we should have a internet usage tax that then funds these open source projects that everyone finds value in. The person taxed should get to decide which open source project gets the money kaliszad: The problem is, you can help other people, but first you have to sustain yourself.

Technik vor Taktik
#120 Eindrücke Internationaler Trainerkongress in Bremen - mit Julian Hasselberg und Markus Steffen

Technik vor Taktik

Play Episode Listen Later Aug 14, 2023 35:19


Der Bund der deutschen Fußballlehrer organisiert jedes Jahr den Internationalen Trainerkongress. Dieses Jahr war die Veranstaltung in Bremen. Ich war mit Julian Hasselberg vor Ort und wir reden über unsere Eindrücke der Fortbildungsveranstaltung. Wie haben uns die Bühnengespräche mit Hansi Flick und Ralf Rangnick gefallen? Wie waren die Vorträge strukturiert und welche Eindrücke haben sie hinterlassen? Wir reden drüber! Wie fandet Ihr den ITK in Bremen? Welche Eindrücke konntet ihr sammeln? Lasst gerne Kommentare da! Viel Spaß beim Hören! Aufgepasst! Ich biete für euch als Trainer/in oder für eure Mannschaft bzw. Verein verschiedene Workshops an. - Fußtechniken für Torhüter als Workshop - 2 Std Workshops für Vereine / Trainer/innen - Trainingstage und Schulung für eure Mannschaft - Trainerausbildung zum Techniktrainer Und vieles mehr! Schaut doch mal auf meine Internetseite www.m-steffen.com Ihr wollt mehr über den ITK und die BDFL erfahren? https://www.bdfl.de/ https://www.bdfl.de/fortbildung/trainerkongress.html Ihr habt Lust auf ein Techniktrainer-Zertifikat? Dann meldet euch unter info@m-steffen.com Ihr wollt ein professionelles Techniktraining buchen? Dann schaut auf meinen Seiten vorbei und kontaktiert mich. Instagram: MSIndividual Internet: www.m-steffen.com Blog: www.fussballtechnik.com #bdfl #itk #itkbremen #itk23 #talentförderung #talenttraining #techniktraining #jugendfussballtraining #technikvortaktik #1bundesliga #2bundesliga #dfbpokal #trainerausbildung #fussballtraining #scouting #techniktraining #bundesliga #profis #athlet #fussballpodcast #bundesliga #content #nlz #coach #coaching #podcast #nachwuchsleistungszentrum #trainer #trainerpersönlichkeit #ausbildung #jugend #athleten

Tech Over Tea
Chatting PopOS, COSMIC And RedoxOS | Jeremy Soller

Tech Over Tea

Play Episode Listen Later Aug 11, 2023 127:22


Today we have the one, the only, Jeremy Soller of System76 and the BDFL of RedoxOS on the show. He's had his fair share of drama with the libadwaita stuff but he's been around in the FOSS world for a long time so I was very curious to hear his take on certain things especially involving PopOS. ==========Guest Links========== Website: https://soller.dev/ Twitter: https://twitter.com/jeremy_soller Mastodon: https://fosstodon.org/@soller PopOS Website: https://pop.system76.com/ Redox OS Website: https://www.redox-os.org/ ==========Support The Show========== ► Patreon: https://www.patreon.com/brodierobertson ► Paypal: https://www.paypal.me/BrodieRobertsonVideo ► Amazon USA: https://amzn.to/3d5gykF ► Other Methods: https://cointr.ee/brodierobertson =========Video Platforms==========

Python People
Paul Everitt - Early Python, Coaching

Python People

Play Episode Listen Later Jul 18, 2023 39:39


Paul Everitt is a developer advocate for JetBrains and PyCharm. Covered topics include:The transition of Python from BDFL to steering committeeBrainstorming topics for this podcastDjango, function based vs class based views, and Nancy PelosiCoaching Lacrosse, "we're not in the lacrosse business, we're in the leadership business"Sports, if done the right way, can be a positive influenceWe don't need heroes, we need the next generation of heroesVolunteering work is a lot like open sourceSkateboarding and collaboration over competition The Complete pytest CourseLevel up your testing skills and save time during coding and maintenance.Check out courses.pythontest.com ★ Support this podcast on Patreon ★

Technik vor Taktik
#048 Bund Deutscher Fußball-Lehrer - mit Benno Möhlmann

Technik vor Taktik

Play Episode Listen Later Sep 27, 2022 16:40


Heute ist Benno Möhlmann bei Technik vor Taktik zu Gast. Der ehemalige Bundesliga-Profi und Trainer ist nun Präsident des BDFL und berichtet über die Aufgabengebiete und Themenfelder des BDFL. Viel Spaß beim Hören! Ihr wollt mehr über den Bund Deutscher Fußball-Lehrer erfahren? Internet: https://www.bdfl.de/ Instagram: https://www.instagram.com/bdfl/ LinkedIn: https://www.linkedin.com/company/bund-deutscher-fu%C3%9Fball-lehrer-e.v./about/ Youtube: https://www.youtube.com/channel/UCIMmx-du2U6HjErnPxGBsvQ Ihr wollt ein professionelles Techniktraining buchen? Dann schaut auf meinen Seiten vorbei und kontaktiert mich. Instagram: MSIndividual Internet: www.m-steffen.com Blog: www.fussballtechnik.com #fussballtraining #techniktraining #bdfl #bunddeutscherfussballlehrer #dfb #nlz #coach #trainer #coaching #Bundesliga #coach #podcast #individualtaktik #nachwuchsleistungszentrum #coaching #2bundesliga #fussballlehrer #trainer #trainerpersönlichkeit #trainerfortbildung

Things Worth Learning
Neovim, with Jess Archer

Things Worth Learning

Play Episode Listen Later Aug 19, 2022 59:50


Jess Archer's Twitter - https://twitter.com/jessarchercodesJess Archer's GitHub - https://github.com/jessarcherJess Archer's GitHub dotfiles - https://github.com/jessarcher/dotfilesJess Archer's Website - https://jessarcher.comJess Archer's Youtube - https://www.youtube.com/channel/UCrk0VncCvtJUtAVEdwYIE-AHow to turn Vim into a powerful and beautiful IDE | Jess Archer, Vimconf 2021 - https://www.youtube.com/watch?v=434tljD-5C8Airlume - https://airlume.app/Neovim - https://neovim.io/Neovim GitHub - https://github.com/neovimSponsor Neovim - https://github.com/sponsors/neovimVim - https://www.vim.org/vi - https://en.wikipedia.org/wiki/ViVimtutor - https://web.archive.org/web/20100107121743/http://linuxcommand.gds.tuwien.ac.at/man_pages/vimtutor1.htmlVisual Studio Code - https://code.visualstudio.com/PhpStorm - https://www.jetbrains.com/phpstorm/Markdown - https://www.markdownguide.org/Matt's Book - https://mattstauffer.com/laravel-up-and-running/GitHub dotfiles - https://github.com/topics/dotfilesVimConf - https://vimconf.org/Jeffrey Way's Twitter - https://twitter.com/jeffrey_way?lang=enJeffrey Way's GitHub - https://github.com/JeffreyWayKinesis Advantage2 - https://kinesis-ergo.com/shop/advantage2/Bram Moolenaar's Website - https://moolenaar.net/Lua - https://www.lua.org/Practical Vim - http://vimcasts.org/publications/Drew Neil - http://drewneil.com/Taylor Otwell's Twitter - https://twitter.com/taylorotwellTaylor Otwell's GitHub - https://github.com/taylorotwellTailwind - https://tailwindcss.com/

Oxide and Friends
Across the Chasm with Rust

Oxide and Friends

Play Episode Listen Later Jul 19, 2022 104:23


Oxide and Friends Twitter Space: July 18th, 2022Across the Chasm with RustWe've been holding a Twitter Space weekly on Mondays at 5p for about an hour. Even though it's not (yet?) a feature of Twitter Spaces, we have been recording them all; here is the recording for our Twitter Space for July 18th, 2022.In addition to Bryan Cantrill and Adam Leventhal, our special guests were Steve Klabnik and Luqman Aden. Other speakers included Dan Cross, Tim McNamara, and others. (Did we miss your name and/or get it wrong? Drop a PR!)Some of the topics we hit on, in the order that we hit them: @0:27 let_chains are stable in Rust 1.64 Adam's tweet The stabilization PR, with the full saga leading up to stabilization As Steve mentions, the feature dates all the way back to 2017 and extends the Swift-inspired if let expressions Rust has had for a while Some Rust features, like async functions in traits, are huge rabbit holes Discussion about Rust's commitment to stability and how it's enforced with things like crater As an example of the process leading to burnout in programming language communities: Guido stepping down as BDFL after PEP 572 (Assignment Expressions, "the walrus operator") Discussion about Ruby also taking stability seriously: flip-flops weren't removed in Ruby 2.0 in part because of this pretty incredible snippet from Yusuke Endoh Quines and variations, Yusuke Endoh's Qlobe (reproduced here), their infamous quine-relay, and their other projects The G-Portugol programming language The unstable features mechanism in Rust ("first class support for experimental features") and how this allows for user experimentation Exclusive range patterns in Rust and some of their perils, specifically in tock Contrasting the Rust unstable feature mechanism with Haskell language pragmas: the former requires a nightly compiler to use, the latter does not @18:20 Discussion about the Rust process; going from RFC to stable Rust The Rust inline assembly feature (tracking issue) The Rust RFC repo The Generic Associated Types (GATs) Rust RFC hubris is on nightly Rust but with an allow list of features Naked functions in Rust (tracking issue), Destructuring assignments, #[cmse_nonsecure_entry] Talking about LWN-style reports and curation as a way to lessen the pain of using Zulip style chat platforms for discussion LWN is hiring, looking for someone to keep up with Rust development, among other things [[partial notes]]

The Hacks
The Dictators Handbook to Open Source

The Hacks

Play Episode Listen Later Dec 8, 2021 53:59


A story has been playing out in the media recently that Chunga calls his "nightmare scenario". It's happening with a popular programming language and open source community called "Rust". a few days ago, the entire Rust open source moderation team resigned--all at once. The reason for this is they claim that the Rust core team has no accountability and can basically do whatever they want without any checks and balances. Tom says when things like this happen, it's complicated and it's almost always because the open source entity is operating from a "foundational" business model, rather than from a BDFL model. What does BDFL mean?  Listen now to learn about the key differences! Lean more about the Salt Project

Software at Scale
Software at Scale 35 - Maintaining Git with Johannes Schindelin

Software at Scale

Play Episode Listen Later Oct 20, 2021 55:40


Johannes Schindelin is the maintainer (BDFL) of Git for Windows.Apple Podcasts | Spotify | Google PodcastsGit is a fundamental piece of the software community, and we get to learn the history and inner workings of the project in this episode. Maintaining a widely-used open source project involves a ton of expected complexity around handling bug reports, deprecations, and inclusive culture, but also requires management of inter-personal relationships, ease of contribution, and other aspects that are fascinating to learn about.Highlights00:06 - How did Johannes end up as the maintainer of Git for Windows?06:30 - The Git community in the early days. Fun fact: Git used to be called `dircache`08:30 - How many downloads does Git for Windows get today?10:15 - Why does Git for Windows a separate project? Why not make improvements to Git itself?24:00 - How do you deprecate functionality when there are millions of users of your product and you have no telemetry?30:00 - What does being the BDFL of a project mean? What does Johannes day-to-day look like?33:00 - What is GitGitGadget? How does it make contributions easier?41:00 - How do foster an inclusive community of an open-source project?50:00 - What’s next for Git? Get on the email list at www.softwareatscale.dev

Fußballmanagement by Felix
Was wollen Trainer? Interview mit BDFL-Präsident Lutz Hangartner

Fußballmanagement by Felix

Play Episode Listen Later May 24, 2021 42:16


Moin liebe Fußballmanager und Fußballmanagement-interessierte, In dieser Saison haben viele Trainer von ihren Ausstiegsklauseln Gebrauch gemacht. Zudem werden die Trainer von Fußballmanagern oft als wichtigste Mitarbeiter bezeichnet. Es ist nicht zu leugnen, dass Fußballunternehmen Toptrainer für den sportlichen Erfolg brauchen. Als Fußballmanager ist es meine Aufgabe den Trainer zu führen und gemeinsam mit dem Trainer den Erfolg zu forcieren. Ich habe mich gefragt, welche Bedingungen Trainer erwarten, damit sie Ihre Verträge erfüllen. Um nicht jeden einzelnen Trainer fragen zu müssen habe ich mit dem Präsidenten vom Bund Deutscher Fußballlehrer Lutz Hangartner ein Interview geführt. Der Bund Deutscher Fußballlehrer ist der Berufsverband von Fußballlehrern und Trainer mit einer A-Lizenz. Viel Spaß beim reinhören! Viele Grüße Felix P.S.: Wenn du deine Fähigkeiten als Trainer oder Führungskraft weiter ausbauen willst, schau mal ob dieser 6-Tage Onlinekurs dich nach vorne bringen kann. Folge dem Link: https://www.digistore24.com/product/370772 und besuche meine Website: https://fussballmanagement-online-akademie.jimdosite.com

Channel 9
Q&A with Guido van Rossum, inventor of Python | Reactor

Channel 9

Play Episode Listen Later May 17, 2021 56:54


Guido van Rossum is a Dutch programmer best known as the creator of the Python programming language, for which he was the "Benevolent dictator for life" (BDFL) . Come join us for an open Q/A "Ask me Anything" to get to know how PyCon was born and Guido's amazing journeyIf you are interested in joining PyCon click here: https://us.pycon.org/2021/registration/information/ [eventID:13426]

Python en español
Python en español #12: Tertulia 2020-12-22

Python en español

Play Episode Listen Later Apr 28, 2021 117:29


Ciclos de memoria, "core developers" y dataclasses https://podcast.jcea.es/python/12 En lo que sigue, cuando se habla de CPython, se refiere al intérprete de referencia de Python, que está escrito en lenguaje C: https://www.python.org/downloads/. Participantes: Eduardo Castro, email: info@ecdesign.es. Conectando desde A Guarda. Jesús Cea, email: jcea@jcea.es, twitter: @jcea, https://blog.jcea.es/, https://www.jcea.es/. Conectando desde Madrid. Javier, conectando desde Madrid. Víctor Ramírez, twitter: @virako, programador python y amante de vim, conectando desde Huelva. Juan Carlos. 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] Seguimos hablando del bug comentado la semana pasada. bug bpo35930: "Raising an exception raised in a "future" instance will create reference cycles": https://bugs.python.org/issue35930. [02:17] El "bytecode" https://es.wikipedia.org/wiki/Bytecode que genera Python es muy mejorable. >>> import dis >>> def suma(valores): ... s=0 ... for i in valores: ... s+=i ... return s ... >>> dis.dis(suma) 2 0 LOAD_CONST 1 (0) 2 STORE_FAST 1 (s) 3 4 LOAD_FAST 0 (valores) 6 GET_ITER >> 8 FOR_ITER 12 (to 22) 10 STORE_FAST 2 (i) 4 12 LOAD_FAST 1 (s) 14 LOAD_FAST 2 (i) 16 INPLACE_ADD 18 STORE_FAST 1 (s) 20 JUMP_ABSOLUTE 8 5 >> 22 LOAD_FAST 1 (s) 24 RETURN_VALUE Inferencia de tipos: https://es.wikipedia.org/wiki/Inferencia_de_tipos. [08:32] Recogida de basuras. gc.set_threshold(): https://docs.python.org/3/library/gc.html#gc.set_threshold. gc.disable(): https://docs.python.org/3/library/gc.html#gc.disable. [11:27] Herramientas de monitorización: DTrace: http://dtrace.org/blogs/. Monitoriza el sistema operativo entero, incluyendo las aplicaciones, todo integrado, de forma segura y sin modificar el software. [13:32] Funcionalidades de auditoría de Python: PEP 551 -- Security transparency in the Python runtime https://www.python.org/dev/peps/pep-0551/. PEP 578 -- Python Runtime Audit Hooks https://www.python.org/dev/peps/pep-0578/. [16:47] Más herramientas de monitorización: SystemTap: https://es.wikipedia.org/wiki/SystemTap. eBPF: https://ebpf.io/. py-spy: https://github.com/benfred/py-spy. [17:52] Más sobre DTrace https://es.wikipedia.org/wiki/DTrace_(Sun_Microsystems) y Python: Añadir sondas DTrace al intérprete de Python: https://www.jcea.es/artic/python_dtrace.htm. [22:12] Tracemalloc. tracemalloc: https://docs.python.org/3/library/tracemalloc.html. [23:02] Seguimos hablando del bug comentado la semana pasada. bug bpo35930: "Raising an exception raised in a "future" instance will create reference cycles": https://bugs.python.org/issue35930. ¡Se ofrece una caja de cervezas! Brainstorming. Diagnóstico detallado. weakref — Weak references: https://docs.python.org/3/library/weakref.html. Se sube la apuesta a caja y media de cervezas :-). La excepción salta en un hilo y se "transporta" y almacena para que se pueda acceder desde otro hilo. Test reproducible. [36:42] Aviso legal. Machine learning para identificar los diferentes hablantes. [38:27] Las futuras notas de las grabaciones serán EXHAUSTIVAS (como estáis comprobando leyendo esto :). [39:17] Ideas para "cebar" las tertulias. Muchos temas recurrentes, se ve que hay temas "flotando" en el aire. [40:37] Cómo organizar las tertulias, diferentes intereses y profundidad. Dinámica de la tertulia. [42:32] ¿Cómo se organizan los "core developers"? El desarrollo se ha movido en github. Los bugs están a medio migrar, se va a integrar más en github. https://pyfound.blogspot.com/2020/05/pythons-migration-to-github-request-for.html PEP 581 -- Using GitHub Issues for CPython https://www.python.org/dev/peps/pep-0581/. Guía del desarrollador: https://devguide.python.org/. Backporting de bugs de cpython de la versión en desarrollo a las versiones estables. ¿Cómo se obtiene y se pierde el status de "core developer"? Steering council. PEP 8016: https://www.python.org/dev/peps/pep-8016/. Rol que cumple y cómo se elige. Desde que Guido no es BDFL, está muy activo en listas de correo y picando código. [52:22] ¡Víctor quiere más bugs para aprender! Bugs marcados como "easy", como forma de entrada a desarrolladores nuevos. [53:42] ¿Qué partes de CPython están escritas en C y cuáles en Python? Se escribe en C lo que no tiene más remedio, por rendimiento o porque interactúa con el sistema operativo. Más adelante de la conversación Jesús Cea explica cómo ver si un módulo concreto está en C o en Python sin tener que ir al código fuente. [57:32] PyPy https://www.pypy.org/. Intérprete de Python escrito en Python. RPython: https://rpython.readthedocs.io/en/latest/. [58:27] ¿Incluir otros lenguajes en la implementación de CPython? Rust: https://es.wikipedia.org/wiki/Rust_(lenguaje_de_programaci%C3%B3n). PyOxidizer: https://github.com/indygreg/PyOxidizer. Fragmentación. Jesús Cea estoy más centrado en la parte de C porque la mayor parte de los "core developers" no saben C. Añadir más lenguajes reduce el grupo de gente que puede mantener esas partes. Portabilidad de C. Bootstraping de un lenguaje con el propio lenguaje. Forth: https://en.wikipedia.org/wiki/Forth_(programming_language). [01:05:02] Python 3.9. Mejoras. Dificultades para utilizar la última versión de Python, en función de lo que tenga el cliente. [01:08:07] Dataclasses: https://docs.python.org/3/library/dataclasses.html. La dificultad para tener atributos opcionales. Algunas ideas. attrs: https://www.attrs.org/en/stable/. Usar valores "sentinel". DRY: https://es.wikipedia.org/wiki/No_te_repitas. [01:20:52] Pydantic: https://pydantic-docs.helpmanual.io/. [01:23:07] Horarios de las tertulias. Mucha discusión y algunas ideas. De momento no habrá cambios. Hace falta más feedback. Se agradecería que la gente que deje las tertulias, explicase por qué se ha ido. [01:30:27] Jesús Cea explica cómo ver si un módulo concreto está en C o en Python sin tener que ir al código fuente. [01:31:18] Más sobre la dinámica de las tertulias. Debate sobre presentarse o no en tertulias abiertas, o tener la cámara apagada. Va siendo necesario tener algun repositorio para que la gente de la tertulia pueda compartir cosas. ¿Lista de correo específica para las tertulias? [01:36:42] Actas de las tertulias y publicar las grabaciones de una puñetera vez. ¿Algún ingeniero de sonido en la sala? ¿Baratito? [01:39:08] El "nivel" de las listas de correo. ¿Dónde están las conversaciones interesantes? (aparte de la tertulia semanal :-). La maldición de lo básico e "introducción a". Igual para que haya conversación interesante, hay que hacer preguntas interesantes :-). Python-Madrid antes de que llegase Meetup. Jesús Cea sugiere listas como "python-ideas": https://mail.python.org/mailman3/lists/python-ideas.python.org/. También la lista de programación Python en español: python-es@python.org. Javier tiene intereses muy extraños :-). [01:54:52] Cierre. [01:56:42] Final.

Python Bytes
#221 Pattern matching and accepting change in Python with Brett Cannon

Python Bytes

Play Episode Listen Later Feb 19, 2021 59:05


Sponsored by Datadog: pythonbytes.fm/datadog Special guest: Brett Cannon Brian #1: Keeping up with Rich Will McGugan has been building Rich It looks like it’s on its way to becoming a full fledged TUI (text user interface) December: Live view: no blog post on that, I don’t think. January: Tree view: Rendering a tree view in the terminal with Python and Rich February: Layouts: Building Rich terminal dashboards fun fullscreen.py example, uses Live view Also, python -m rich will display a demo screen that shows tons of the stuff that Rich can do Many of the features also have a stand alone demo built in, like: $ python -m rich.layout $ python -m rich.tree $ python -m rich.live Although I haven’t figured out how to kill the live demo. it doesn’t seem to time out, and it eats Ctrl-C in my terminal. I’d really like to use Rich for interactive stuff, like keyboard interrupts and arrow keys and tab and such. It’d be fun. Which brings me to the bottom right corner of the python -m rich output. It includes a GitHub Sponsor link for Will. Also, Will, unless it’s a contradiction to RTD TOS, I think you should include a Sponsor link in the Rich documentation. Let’s convince Will to make Rich a full TUI. Michael #2: 12 requests per second If you take a look around the blogosphere at various benchmarks for Python web frameworks, you might start to feel pretty bad about your own setup. The incredible work of the guys at magic stack, getting 100,000 requests per second from uvloop in a single thread. There’s the FastAPI benchmarks Even more mind-blowing is Japronto which claims an insane 1.2 million requests per-second in a single thread But what about your “boring” Flask or Django app? And how realistic are these benchmarks? Usually, not very. Here’s an article diving into this for a “proper” ORM style app. 12 - 80 requests per sec: Both our sync workers are now hitting a blazing 12 requests per second

Bosses Bundesliga Blog - Dein Fussball-Podcast
#76 Was ist der BDFL? - Gast: Lutz Hangartner (Präsident BDFL)

Bosses Bundesliga Blog - Dein Fussball-Podcast

Play Episode Listen Later Jan 20, 2021 33:38


Wie wichtig der BDFL für den deutschen Fußball ist, zeigt dieses Gespräch mit dem Präsidenten Lutz Hangartner. Vor allem die Fußball-Lehrer haben vom BDFL profitiert, haben mehr Rechte bekommen und damit auch einen höheren Stellenwert. Eine Organisation, die eher zurückhaltend und unbeachtet im Hintergrund agiert, aber für den Lizenzfußball von wichtiger Bedeutung ist.

Bosses Bundesliga Blog - Dein Fussball-Podcast
#76 Was ist der BDFL? - Gast: Lutz Hangartner (Präsident BDFL)

Bosses Bundesliga Blog - Dein Fussball-Podcast

Play Episode Listen Later Jan 20, 2021 33:39


Wie wichtig der BDFL für den deutschen Fußball ist, zeigt dieses Gespräch mit dem Präsidenten Lutz Hangartner. Vor allem die Fußball-Lehrer haben vom BDFL profitiert, haben mehr Rechte bekommen und damit auch einen höheren Stellenwert. Eine Organisation, die eher zurückhaltend und unbeachtet im Hintergrund agiert, aber für den Lizenzfußball von wichtiger Bedeutung ist.

He doesn't want it
Series 2 Episode 6 with BDFL referee Eamonn Flamer Hughes

He doesn't want it

Play Episode Listen Later Nov 18, 2020 66:04


I talk with well known Youth and Senior BDFL referee Eamonn Flamer Hughes about his career in the game and get an insight into a referees way of thinking.

Sustain
Episode 45: The Meaning of 'Tyranny of Openness' with Nathan Schneider

Sustain

Play Episode Listen Later Jul 17, 2020 37:44


Sponsored by Linode Panelists Allen "Gunner" Gunn | Eric Berry | Justin Dorfman | Pia Mancini | Richard Littauer Guest Nathan Schneider University of Colorado Boulder Show Notes Hello and welcome to Sustain! In this episode, we have special guest, Nathan Schneider, a Professor of Media Studies at CU Boulder. He also runs a new little outfit called Media Enterprise Design Lab. In today’s episode, Nathan will tell us what he does, how he got to where he is today, and he explains what he means by, The Tyranny of Openness.” We will also discuss Democratic Mediums, Platform Cooperativism, and CommunityRule. Download this episode now! [00:01:24] Nathan tells us what he does at University of Colorado, Boulder and social.coop. He’s also running Zoom right now on a Linux machine and he tells us how he got to where he is today. [00:05:03] Richard wants Nathan to describe what he means by “The Tyranny of Openness.” [00:07:33] Justin has been thinking about the Linux Kernel, Python (up until recently), Ruby, and cURL. They’re all run by BDFL and installed on billions of devices, so why is that working and in the future, how should projects at that scale work? [00:11:10] Pia asks Nathan in his wildest dreams, what would a structure like he was talking about look like and what tools should we be building? Gunner is curious and asks if the notion of governance design patterns is something that’s part of Nathan’s Meta governance? Nathan talks about an attempt he made to collect patterns, a little directory called, Democratic Mediums, which was a forerunner to some of this work. [00:17:54] Richard is curious to know what’s the split in coders like on a normal GitHub project, because there are people who would be classified as doers versus people who’d be classified as decision makers, and how does this work directly into governance? [00:21:27] Nathan talks about Platform Cooperativism as a critique of open source. [00:25:08] Nathan discusses about taking ownership, the big debates happening around Open Source right now and licensing issues. [00:29:21] Pia asks Nathan to talk about CommunityRule and his thoughts on it. [00:32:18] Nathan tells where you could find his work, where you can read his books, and how you can get involved. Spotlight [00:33:52] Justin’s spotlight is The Governance Ready Working Group. [00:34:10] Gunner’s spotlight is Gathering for Open Science Hardware. [00:34:29] Pia’s spotlight is SaveInternetFreedom.tech [00:35:11] Eric’s spotlight is Allinone.im. [00:35:27] Richard’s spotlight is Mathias Buus. [00:35:53] Nathan’s spotlights are The Ethical Source Movement and System76. Quotes [00:05:04] “You like the phrase of “The Tyranny of Openness.” [00:05:18] “I guess another annoying habit I have is that when I love something, I like to criticize it.” [00:09:13] “But there’s some sophistication there that a lot of our Open Source projects lack.” [00:09:43] “You know you’re an Admin or not. Admins can silence people, and you know, have incredible despotic control over voice.” [00:17:32] “It’s how engineers think. They want the engineered solution, but you know, politics is very good at resisting engineers.” [00:24:16] “Microsoft is stepping in and forking their code and you know, making money off of it. And they’re like, wait, what’s going on? This is not in line with our values, but it is in line with their licenses.” [00:25:59] “It’s sort of like a double-edged sword because you know with the Open Source licenses as they are defined now, they allow Amazon and Microsoft to do this.” Links Nathan Schneider (https://nathanschneider.info/) CommunityRule (https://communityrule.info/) Social.coop (https://social.coop/about) Media Enterprise Design Lab (https://www.colorado.edu/lab/medlab/) Democratic Mediums (https://democraticmediums.info/) Xkcd-A Webcomic of Romance, Sarcasm, Math, and Language (https://xkcd.com/927/) The Tyranny of Openness: What Happened to Peer Production? (https://osf.io/hnerp/?view_only=44b5c10772d5470892b701dfe4b2c833) Governance Readiness (https://sustainoss.org/working-groups/governance-readiness/) Gathering for Open Science Hardware (http://openhardware.science/) Save Internet Freedom Tech (https://saveinternetfreedom.tech/) All-in-One Messenger (https://allinone.im/) Mathias Buus GitHub (https://github.com/mafintosh) The Ethical Source Movement (https://ethicalsource.dev/) System76 (https://system76.com/) Credits Produced by Justin Dorfman (https://www.justindorfman.com/) Edited by Paul M. Bahr at Peachtree Sound (https://www.peachtreesound.com/) Show notes by DeAnn Bahr at Peachtree Sound (https://www.peachtreesound.com/) Ad Sales by Eric Berry Special Guest: Nathan Schneider.

Linux Headlines
2020-01-16

Linux Headlines

Play Episode Listen Later Jan 16, 2020 2:59


Mozilla faces difficult choices after a major layoff, a new release of PyTorch adds long-awaited Java support, GNU Guile sees a significant speedup, and the LLVM community debates the future of decision making for the project.

44BITS 팟캐스트 - 클라우드, 개발, 가젯
stdout_009.log: PEP 572, PEP 8000, Python Software Foundation

44BITS 팟캐스트 - 클라우드, 개발, 가젯

Play Episode Listen Later Dec 20, 2018 61:41


스카리 님을 모시고 PEP 572, 귀도 반 로섬 BDFL 은퇴, 귀도 반 로섬 이후의 파이썬 커뮤니티(PEP 8000-8016), 파이콘, Python Software Foundation 등에 대해서 이야기를 나눴습니다. 게스트: @scari_net 참가자: @raccoonyy, @nacyo_t, (@j2p_) Transfer of power - python-committers | The Mail Archive python-committers | The Mail Archive Benevolent dictator for life - Wikipedia PEP 0 – Index of Python Enhancement Proposals (PEPs) | Python.org 귀도 반 로섬 - 위키백과, 우리 모두의 백과사전 PEP 572 – Assignment Expressions | Python.org Guido van Rossum on Twitter: “Thanks for all the support (email and Twitter). … PEP 8000 – Python Language Governance Proposal Overview | Python.org PEP 8001 – Python Governance Voting Process | Python.org PEP 8002 – Open Source Governance Survey | Python.org Python governance vote (December 2018): Results - Committers - Discussions on Python.org PEP 8010 – The Technical Leader Governance Model | Python.org PEP 8011 – Python Governance Model Lead by Trio of Pythonistas | Python.org PEP 8012 – The Community Governance Model | Python.org PEP 8013 – The External Council Governance Model | Python.org PEP 8014 – The Commons Governance Model | Python.org PEP 8015 – Organization of the Python community | Python.org PEP 8016 – The Steering Council Model | Python.org Python Software Foundation Python Software Foundation News: CPython Core Developer Sprint 2018 501(c) organization - Wikipedia Jobs Charted by State and Salary | FlowingData PyCon APAC 2018 ConfConf 2016 - PyCon 2015 (Canada - Montréal ) by 김영근 - YouTube PyCon PH 2018 Kris Shamloo on Twitter: “Python nerds: good at programming, good at packing swag bags. … 파이콘 한국 2018 준비위원회 모집 공지 | PyCon Korea Python 3 Readiness - Python 3 support table for most popular Python packages numpy/1.16.0-notes.rst at master · numpy/numpy Django 2.0 release notes | Django documentation | Django

AWS re:Invent 2018
ARC218: Enabling a Digital Platform with Microservices Architecture

AWS re:Invent 2018

Play Episode Listen Later Nov 30, 2018 34:41


Bajaj Finserv Direct Limited (BFDL) serves millions of customers with its comprehensive portfolio and innovative offerings in financing, general insurance, life and health insurance and retirement and savings. BFDL envisioned building a cloud-native digital platform to offer an unmatched experience to its customers. In this session, hear from BDFL how they built a robust digital backbone on AWS with a scalable microservices architecture deployed using Docker containers. The session also focuses on how a scalable microservices-based architecture can be developed using various AWS services. This session is brought to you by AWS partner, Cognizant Technology Solutions US Corp.

Polemica en /var
Polémica en /var - S02E03 - La droga de entrada a sistemas

Polemica en /var

Play Episode Listen Later Aug 24, 2018 34:20


Llegó el café informativo de sysarmy. Noticias del mundo Linux, Administración de sistemas y DevOps, mezclado con novedades sobre eventos, meetups, etc. == Pedí tus remeras y merchandising de sysarmy == remeras[at]sysarmy.com.ar == Búsquedas laborales == Sysarmy en LinkedIn: https://goo.gl/1QMlCv Medallia Systems Administrator: https://jobs.lever.co/medallia/3c3f5d... Edrans - Systems Engineer: https://www.edrans.com/#/bolsa-de-tra... Mulesoft - DevOps y Devops Manager: https://www.mulesoft.com/careers/job-... == En este episodio == Discutimos de todo, arrancando por las busquedas laborales del momento, los festejos por la adminfest, las noticias del mes, en donde repasamos algunas de las ultimas caidas de grandes empresas, el partnership de Atlassian y slack, novedades del dataceter acuatico de Microsoft, los 25 años de Wine y de Slackware, vulnerabilidades en tcp y openssh, la actualidad de Python y un repaso por los proximos eventos cerrando con una mesa llena de polémica con las invitadas especiales. == Mencionados en este episodio == Encuesta de sueldo: https://goo.gl/gqESHk Atlassian + Slack: https://www.atlassian.com/blog/announ... Microsoft Datacenter submarino: https://natick.research.microsoft.com/ Wine cumplió 25 años: https://www.theregister.co.uk/2018/07... Slackware 25 años: https://opensource.com/article/18/7/s... Problemas financieros de Pat: https://www.linuxquestions.org/questi... Y: https://www.paypal.me/volkerdi TCP stack vulnerable a DDOS: https://www.kb.cert.org/vuls/id/962459 The default OpenSSH key encryption is bad: https://latacora.singles/2018/08/03/t... Guido Van Rossum se baja como BDFL de Python: https://mail.python.org/pipermail/pyt... == Eventos y meetups == nerdear.la: 30 de agosto al 1 de septiembre: https://nerdear.la/ Museo de Informatica: Sigue la muestra Gamer. NotPinkCon: Vie 24 ago. 2018 https://www.eventbrite.es/e/entradas-... Ekoparty: 26 - 28 de septiembre https://www.ekoparty.org/ == Organizaciones == Museo de Informatica: http://museodeinformatica.org.ar/ Museo de Informatica en Facebook: https://goo.gl/TaASu3 EkoSpace: http://eko.space/ EkoSpace en Facebook: https://goo.gl/VOzYle EkoSpace en Twitter: https://goo.gl/umJHVp == Encontranos en == Web: http://sysar.my Twitter: @sysarmy Facebook: https://goo.gl/tGcpcw IRC en Freenode: #sysarmy Ivoox: https://goo.gl/GtISQ9 Pocketcast: http://pca.st/D3H0 iTunes: https://goo.gl/Nrt22g == Conducen este episodio == Ariel Jolo: @ajolo Jorge Abreu: @ar_jorge1987 == Invitadas == Vero Ovando: @verovand Regina Loustau: @Rhapsody_Girl

This Week in Linux
Red Hat & WINE Turn 25, Python's BDFL Steps Down, Browsh, PacVim and more | This Week in Linux 32

This Week in Linux

Play Episode Listen Later Jul 16, 2018 30:11


On this episode of This Week in Linux, we celebrate an awesome milestone for both Red Hat and the WINE Project, both reaching their 25th Anniversary. Ubuntu shares a some news about a new Minimal ISO for Containers and the Cloud. We take a look at some cool developments from the Nouveau project and Firefox.… Read more

Hacker News Daily
Jul 13, 2018

Hacker News Daily

Play Episode Listen Later Jul 13, 2018 4:28


“I'm basically giving myself a permanent vacation from being BDFL” — and MacBook Pro with faster performance and new features for pros

Changelog Master Feed
Building a secure Operating System (Redox OS) with Rust (The Changelog #280)

Changelog Master Feed

Play Episode Listen Later Jan 19, 2018 78:46 Transcription Available


We talked with Jeremy Soller, the BDFL of Redox OS, a Unix-like Operating System written in Rust, aiming to bring the innovations of Rust to a modern microkernel and full set of applications. In this episode we talk about; OS design principals, Jeremy’s goals for Redox, why is Rust, the Micro-kernel, the Filesystem, how Linux isn’t secure enough, how he’s funding this his development, and a coding style in Rust called Safe Rust.

The Changelog
Building a secure Operating System (Redox OS) with Rust

The Changelog

Play Episode Listen Later Jan 19, 2018 78:46 Transcription Available


We talked with Jeremy Soller, the BDFL of Redox OS, a Unix-like Operating System written in Rust, aiming to bring the innovations of Rust to a modern microkernel and full set of applications. In this episode we talk about; OS design principals, Jeremy’s goals for Redox, why is Rust, the Micro-kernel, the Filesystem, how Linux isn’t secure enough, how he’s funding this his development, and a coding style in Rust called Safe Rust.

The Laravel Podcast
Interview: Mohamed Said, first employee of Laravel LLC

The Laravel Podcast

Play Episode Listen Later Oct 27, 2017 64:58


An interview with Mohamed Said, Laravel's first employee. Laravel News Interview StackOverflow interview Hurghada, Egypt Cairo, Egypt A sample diving video from Mohamed's instagram Transcription sponsored by LaraJobs Matt Stauffer: Welcome back to the Laravel podcast. This week, I'm talking with Mohamed Said, Laravel's first employee. But he's also a freediver who lives in what looks like a vacation paradise. Stay tuned to learn more! Matt Stauffer: All right, welcome back to the Laravel podcast. I'm not even going to be counting these interviews, who knows which number ... Number fifty-trillion, podcast, episode, season 3, words ... I don't even know. I've got Mohamed Said. Mohamed has done quite a few interviews, because it's really special. He's the first employee of Laravel, and Laravel is the most popular PHP framework. It's got a lot going on for it, and it's kind of like a one-man show. There's this idea of the BDFL, the "Benevolent Dictator For Life", being Taylor Orwell. We both have, first of all, the first non-Taylor person working for Laravel, who is Mohamed, but we also have the first idea where you seen an open-source framework, you're comparing to an Angular and an Ember or someone like that, who just kind of has the BDFL, and then hired an employee. Taylor created Laravel LLC, which is a company named Laravel, and that company has an employee. So, it's a little bit of a different working arrangement, and also, a lot of people hadn't heard of Mohamed when he got hired. He's actually already had an interview on the Laravel News podcast, he's already been interviewed by Stack Overflow. I'm hoping that we're going to be able to cover a little bit more, and a little bit of different things, maybe. I don't want to cover exactly the same territory, but I just wanted to point out -- if you had never heard of Mohamed before, you obviously have never put in an issue or pull request to the Laravel core, because he's really been very active in all those spaces for quite a while, together of course with a team of volunteers. He also writes on Medium, he also develops his own features, he's got a couple of other packages. Mohamed is a man around the Laravel community that has been doing a lot of stuff, so I'm really excited to get to talk to him. Before I start asking you questions, Mohamed, why don't you say hi and just give us the basic picture of who you are and what you're about, when you first meet someone, how do you tell them what you're about and what you're interested in and what you do, and where you're from and anything else? Say whatever you've got to say, and then we'll go from there. Mohamed Said: Okay. First, my name is Mohamed Said. I live in Hurghada, Egypt. Hurghada is a small city on the Red Sea. I work as a web developer at Laravel with Taylor Otwell. I've been working with Taylor for the past year or so, and that's pretty much how I describe myself to listeners about Laravel, but one of the things that I usually mention when I speak with anyone -- that I love to dive, to dive into the ocean. If I am a Laravel developer, I am also a free diver, and that's the two parts of me. That's me. Matt Stauffer: Very cool. I think that when I follow you, the three things I get about you are, I get that you love to dive. I don't know anything about that, so I definitely have some questions for you there. I know that you're married and that you'll often reference your wife. Actually, in one of your interviews, you mention that of the things you tend to do, it's program, dive, and shop with your wife. So I might go somewhere there. Programming, diving, and shopping with your wife. So, you didn't originally live in Hurghada - is Cairo, is that where you were originally, and then once you started working with him you moved to Hurghada, is that how it worked? Mohamed Said: Yeah, I am originally from Cairo. I lived there all my life until one year ago. Cairo is like a group of four large cities that grew up massively to become one large, huge city. So, you kind of find a huge crowd of people on every corner. It became very crowded, and very noisy, so me and a couple of friends, we tried to think like, other options, if we would like to live in a better place, or so. Each one of us picked one of the cities that we would like to move to, and my choice was Hurghada, because I love being around the sea, I love meeting different kinds of people, and the interesting thing about Hurghada is that it is full of foreigners, like tourists and residents who are not from Egypt. That's very interesting for me, because I get to meet people from different nationalities, and I get to make friends from different point of views, and so on. That's why I picked Hurghada, and me and my wife, we traveled to Hurghada for two weeks to test the waters. We really liked it so much, and we decided just to move. Maybe that was December 2016, around a year ago. Matt Stauffer: Okay. I love learning about where people are from, and what they're about. One of the things that I did was I opened up KAYAK for looking up flights, and I just said, you know what, if I were to leave out of Orlando, which is my closest major international airport, and I were to go to Hurghada, what would it take? What it told me was, the affordable option is around one thousand U.S. dollars. That is a multi-stage flight, with going through JFK and, I think, Cairo. It says Hurghada International Airport, but it's obviously not big enough that I could fly directly into it. But, it's a big enough airport that I could basically go out of my next major hub, which is JFK for me, and then over to Cairo, and then over to Hurghada, it would take me about nineteen hours to get there. Have you ever considered -- we'll go lots of different places -- have you ever considered pulling a Michael Durinda and all those other folks, and flying the holy over to U.S. for a Laracon? Is that something that might be in the cards for you one day? Mohamed Said: Yeah, I'd definitely do it. I tried to do that for the past couple of Laracons, but I couldn't really arrange it for myself to fly to the states. But, I will definitely do it if I get the chance. Matt Stauffer: Cool. So, Hurghada -- I love getting context about things -- Hurghada is a touristy, beach city, it's right on the Red Sea. Cairo is a big, metropolitan hub. You said it's four cities that have kind of grown up together, and it's really massive. Hurghada, does it feel very big? Mohamed Said: Hurghada, it's not very big and not very small. You can drive around Hurghada in less than thirty minutes, from the beginning of the city to the end of it, because it's two roads on the sea. If you are driving on the street that is directly on the sea, from the start to the end, you can do it in thirty minutes. Matt Stauffer: Wow. Mohamed Said: So it's not very big and not very small, but it has a lot of different kind of people from different nationalities. That makes it feel even more rich than Cairo. In Cairo, you get to meet a lot of people everywhere, it's very crowded. Hurghada is not as crowded, but with the diversity, it makes it a rich city, not just a small city that you just go and relax. There are a lot of activities, and a lot of people to meet here, and that's why I like it in the first place. Matt Stauffer: It seems like the best of both worlds, where it's both kind of small. There's only around two hundred and fifty thousand people, which, I complain about how small Gainesville is where I live, and the Gainesville metro area is over two hundred and fifty thousand people, but it's also spread out, so it's not super compact. Also, one of the problems with Gainesville is it's hard to get anywhere, and there's not as much of an international vibe, which you just mentioned. So you're getting a small, easily travelable place where the population density isn't too high, you're meeting people from all over, and ... Anybody who's listening to this, just pause for a second and go Google Hurghada, "H-u-r-g-h-a-d-a", and just go to Google images. It's just luxurious, beautiful blue and teal ocean vista after vista, it's just gorgeous. You can also just follow Mohamed on any social media platform, and you'll know. Pretty much all he's doing is just being in a vacation commercial every single day. Every picture you get is just you diving through the most beautiful water I've ever seen, it's kind of unbelievable. Mohamed Said: The water here is very amazing. Matt Stauffer: Hurghada is five hours away from Cairo, so there's a lot of people who are five hours away from just absolutely beautiful vacation destinations. There's a lot of different things that hold us back from doing what you did, pulling up your roots and moving to this beautiful place where you can do these things you want. I want to talk a little bit about some of the things that might have kept you from moving over there. For starters, is your family all still back in Cairo, and if so, has it been hard being so far away from them? Or was that a pretty easy decision to make? Mohamed Said: No, it wasn't easy, because it took us two years to make that move, because all of the family and friends are living in Cairo. Also, I had to be in Cairo for work purposes. I just started working remotely one year before the move. So, we had a lot of attachments in Cairo, either me and my wife, because she used to work at a teaching assistant in the university in Cairo. It took us around two years for us to get ready for the move, and I keep telling my friends, I keep encouraging them to get out of Cairo and try to experience other places, but I know how difficult it can be, so I just hope that people give it a chance and try to move there for a limited amount of time, not just to make the final decision. Just to try it for two weeks or three weeks or so before they can feel good about it, and can sacrifice all of the attachments that they have in Cairo and move to a new city, or it just doesn't worth it. I try to convince people to make the move, but it's not easy. I understand that. Matt Stauffer: When you decided to do that two-week trip -- I think that's a really cool idea, the going somewhere for two weeks to try it out -- were you just living in a hotel, or was it something like an Airbnb, or how were you able to move to a place for a short term? Mohamed Said: We used Airbnb to find a nice apartment. You mentioned that Hurghada is a luxurious city -- it's not. What you see on the Internet is the photos of the hotels and resorts, but actually the city is like a city in Egypt, and we can like it or not, but Egypt is a Third World country. It's not very clean, and not very well taken-care of, but it's definitely a nice, wild place on the sea. That's how I describe it, it's a wild place on the sea. When we moved there for two weeks, we tried to pick an apartment at the heart of the city, not in any of the luxurious areas or places that has lots of hotels and lots of resorts, just a place in the middle of the city itself. Just to know the people, just to know how life is in the city, the actual city, not the touristic place. That was wise, wise enough for us, to understand the actual city, not just the luxurious places if we stayed in a hotel or so. Matt Stauffer: Yeah, and I didn't say Hurghada was beautiful, I said when you look up Google images, it's beautiful, and that's exactly what you pointed out, which is that there's often a difference. The interesting thing is, the more First World it is, the more likely it is that if there is natural beauty, then the cost and also the quality of the places you can live around the beautiful thing, is more necessarily higher. There's not a lot of really, really, really beautiful beaches in the U.S., maybe none, where you can live close enough to the beach that you can walk or maybe drive for five minutes and have a place that you could describe the way you just described Hurghada. Because, if there's a beach, then that means there's -- a beautiful beach, at least -- that means there's incredibly expensive ocean high rises all along the way that are really, really, really, really costly. Anybody who has got access to a beach like that is probably paying quite a premium. I visited Miami very recently, and they're extremely expensive. I'm looking at an Airbnb in Hurghada. Literally the first result that came up, studio with free private beach. It's not a beautiful place, it can fit two people, it's probably a couple hundred square foot. It's seventeen dollars per night. If you compare what that looks like to somewhere in Florida, it's kind of mind-boggling to me. I told you before we started this call, that you have opportunity to just say, you know what, I don't want to discuss that. I'm not going to ask you how much money you're making, but I do want to ask a broader question of, does working for a U.S-based company, did that make it easier to move somewhere like Hurghada? Did that give you a little bit more financial flexibility because you're getting paid a little bit closer to American rates but living at Egyptian costs, or is the cost of living not so different that that made a big impact? Mohamed Said: Yeah, it definitely made a huge difference, like before I started working at Laravel, the decision to move to a different city not having any friends or any family around in case I needed any kind of help, that was terrifying, but the financial security that ... It gives you a feeling of security, that's how you can describe it. That you can afford living in a place like Hurghada... Even for an Egyptian having a normal Egyptian salary, Hurghada is not very expensive. What you see in Airbnb, it's like the price or the cost for foreigners. Matt Stauffer: Got it. Mohamed Said: Everything has two prices, one price for foreigners and other for Egyptians. Matt Stauffer: That's hilarious. (laughs) Mohamed Said: That's not fair, but that's how it ... Matt Stauffer: That's life. Mohamed Said: Because if I have an apartment in Hurghada, and I want to rent it to someone, if I don't rent it to Egyptians and I only put prices for where foreigners can afford, Egyptians won't ever be able to rent my apartment, and it will be empty for most of the year. So, people put prices for everything, even gifts, even in the shops, they put prices in dollars or euros, or the equivalent in Egyptian pounds, dollars, and euros, but if you're an Egyptian and you go and try to buy something, they give you a different price because they know that you can't afford that high price that they give to foreigners and tourists. Yes, Hurghada is a touristic city, but that kind of separation between foreigners and Egyptians, it made it a bit easier for me to make the decision. Like the financial security that I am having from my current job, it made a big difference, I can't deny. Matt Stauffer: You talked a little bit in one of your other interviews, and just for anybody who knows, there's two interviews that I'm referencing. He was interviewed on Laravel News podcast, and he was interviewed on the Stack Overflow blog. I'll link both of those in the show notes. Go take a look at those, because I'm not going to try and cover the same stuff that they were covering there. One of the things that you mentioned was that you had done swimming, and then your trainer pushed you a little bit too hard, and you almost had to stop swimming for a while. What was it that got you back into swimming, after you had that negative experience with it? Mohamed Said: We used to go to the sea every summer, when I was a kid, but seven years or maybe back, my father got sick and he had problems with his business, and he had to shut it down. Matt Stauffer: I'm sorry. Mohamed Said: They were tough years, so we didn't get the chance to go to the sea for a few years, but then when I first got engaged to my wife, we had a trip with her family and I joined them. It was in Hurghada here in a hotel on the beach, and we just got into the sea, and I wanted to impress my fiancée. (laughs) Matt Stauffer: That's awesome. Mohamed Said: So I tried to swim and look cool while swimming, so that she gets impressed. Matt Stauffer: Right. Mohamed Said: That's when I discovered that I need to get back to swimming, and I really like swimming, I really like the sea, and I need to get back to learning how to swim better. That's pretty much how that started. Matt Stauffer: That's cool. When did you make the switch from swimming to realizing that diving was something you were interested in? What was that like? Mohamed Said: Again, my wife was the reason, because she likes to collect seashells. I used to swim and try to dive and bring her seashells from two meters or three meters deep, and then I realized that I love diving. Because when you dive, you get closer to the fish, and get closer to the marine life, and I look cool as well. Matt Stauffer: Yeah, you sure do. That's awesome. Mohamed Said: That's again because of my wife. Matt Stauffer: That's very cool. I don't know what made me think about this, but I started wondering about the languages. I don't know what put that in my brain, but I assume that the common language that everyone speaks and everything -- oh, it's because you mentioned putting things in English and U.S. dollars in the windows -- is Arabic. What was learning English like for you? Was that something that you learned in school, or was it an intentional decision that you made? Do you speak English a lot better than the folks you know, or is your level of fluency pretty common? Mohamed Said: Well, in Egypt everybody learns English in the schools. There are two types of schools, they call the New system or the Experimental system and the Old system. The Old system is Arabic only. They only learn English when they are not very young, but the school I went to, we used to have an English class since I was five or six years old. That really helped a lot. Then, later, I kept watching a lot of T.V. movies, a lot of movies and a lot of T.V. series in English, and listened to music and songs or so. That made me collect a good amount of vocabulary. I know I have a heavy accent, and I'm not as fluent as I am while I'm writing English. I write better than speaking, because I don't get to practice English a lot. But, I think among my folks, we are all on the same level, because we all get to learn English in schools. Matt Stauffer: That's cool. Just, for what it's worth, you don't have a heavy accent. You have an accent, but you don't have a heavy accent. Further, I think there's a difference between an accent and fluency. You are extremely fluent, there is nothing that would suggest that you're having any trouble conveying your words. That often is the difference between either a school system that introduces it really early, or someone who's taken extraordinary efforts to learn the language. So that's really cool to hear that there are schools where they're starting it so early and making it so intensive. I've spoken to a lot of people about the impact that many or most programming things being in English has, and I actually asked for a while, to people, would it be worth me building into the CMS that powers my website, the ability to have a translated version into multiple translations for each of my blog posts. Of course the people that follow me are willing to speak English, because otherwise why follow me on Twitter? So I got a little bit of a biased sample because they all said don't worry, you just need to learn English to program. Have you seen any, or do you have any thoughts, about non-English programming education or anything like that, or are you in the camp that just says, you know what, if you're going to do code, you've got to learn English, that's just a part of the deal? Mohamed Said: I think that if you're going to do code, you'll have to learn English. That's why I keep telling to everyone around, because the problem is, the content of the tutorials and learning content online is all in English. If you choose not to learn English just because you don't like it or you don't think it's very important, you are missing a lot. I'm not saying that people should learn the language because it's the language of the world, and so on. People have different opinions about that around the world, but if you are a programmer, and if you don't want to learn English, you are missing a lot. The number of programmers, and the number of people who have blogs and post videos online who are willing to translate their content, is not that big. So, you definitely need to learn English to have access to all this content online. Matt Stauffer: Speaking of access to the content, I know that one of the things that impacts people's ability to learn programming, especially in our generation where there weren't a lot of resources for programming when we were a little bit younger, is when those resources and the Internet are made available in their country. I think it's a little bit more ubiquitous now than it was ten, twenty years ago. One of the things that you had mentioned was, you'd said something along the lines of, basically, when the internet became widely available in Egypt was when, I think you were twelve or thirteen or something, and you instantly latched onto Flash. You talked a little bit about your journey from Flash to HTML to PHP and WordPress, and so I don't want to double-cover that. What I'm a little more interested in, what was it like culturally to go from what was prior to that -- and I don't know what your level of access to the internet was prior -- to after that. Not even just as a programmer, but just daily life. What was that shift like, how universal and how abrupt was the shift where you felt like you did not, and then later did, have access to the internet? Mohamed Said: Well, before that, you just know people, just limited amount of people around you, and you only get to know other people or other thoughts or other experiences from T.V. The thing about T.V. is that it's all managed, it's not natural. You open a channel, and you see what the channel wants you to see. It was a bit limited, and you don't get to choose what idea you need to follow, you just open the T.V., and you see programs that you must watch, that's the only option you can have. You have to watch these programs in this sequence, and so on. After I got exposed to the Internet and I tested it the first time, actually the first few times I had to open the Internet, my father was there with me and I was sitting beside him, and he opened Yahoo! and told me how to search and write a search term, and how to find information ... Back then, I was interested in maybe animals, like I want to know more about giraffes, I want to know more about elephants, and so on. He taught me how to do search and how to find the information I need. I started getting into this world on my own, and tried to find things that I am interested in, and tried to learn more about it. Back then, there was no YouTube, and not much entertainment as far as I can remember. It wasn't like a tool for entertainment like it is now. It wasn't very, very much full of the videos and the photos like before. All websites were text-based and you just get to know information about a specific topic or so, and that's how I started. But, then I knew about chatting, and I started using Yahoo! Chat, and there was a room for web designers, and I think that this room or this period of my life where I started to chat with people, it made a huge impact on who I am right now. Because when you get to meet people from outside your world or universe, like people from different countries, and they are focused on speaking about a single topic, which is web design. It's not a general chat where everybody's talking about everything, they're just a focused room full of people from different nationalities. I was maybe thirteen or fourteen years old back then, and getting to chat with people who are much, much older than me and much more experienced, I felt like I am not very ... very amateur. I can discuss topics, and I can get into conversations, and I can have my own opinions, and that gave me a kind of confidence that I think many people, especially here in Egypt, lack. They always feel like they are not valuable enough, or not good enough to contribute or not good enough to be able to discuss a certain topic, because maybe it's their first time to ... I don't know, I can't actually explain why people think like it, but it gave me, interacting with people and speaking with them at this young age, it gave me the confidence I need. Matt Stauffer: That's really cool to hear. Let's say, whether through you sending this to all your friends or maybe just the natural reach of this podcast, let's say we got a hundred young Egyptian women and men who are hearing you saying this, and they say, I identify with everything that Mohamed just said. I feel like I don't have anything to contribute, or I don't know how to contribute or whatever. That's not how we want them to feel. That's not how you want them to feel, that's not how I want them to feel, I know it's not how Taylor or other members of the community want them to feel. We want them to feel like they, just like anybody in any other country, whether the U.S. or anywhere else, are welcome and have something to contribute. Is there something you could say to them, or some advice you could give to them, that would help them? That's not just for folks in Egypt, it's for anybody else in a similar country. Let's, for your sake, target people in Egypt, young people in Egypt who feel the same way that you just described. Where they just don't know how to contribute, or that they don't feel like they're good enough or whatever. Can you give them a piece of advice or say something to them, to help them move past that? Mohamed Said: Well, I think that if you are on an online forum where people discuss web development or the area you are interested in, and you just decided or saw a post where you have an answer, or you have a reply, or you have a point of view, and you just write on your keyboard whatever you have in mind. The problem is the click on the post bottom, that's the problem. That's what's stopping everyone. Many people, I know for sure, that they see something in Laravel or any of the other repositories, and they try to contribute or ask a question or require a change or something, and they go all the way until they even open the pull request, but they just don't publish it. They just keep it, or stop at this level. So, my advice or what I want to say, just keep it out there. Nobody will judge you. Even if you have a question, and you think it's stupid, you just have to go into the forums and see how many stupid questions are out there. I myself, I post a lot of stupid questions everywhere. The first few times, when I got hired at Laravel, I thought, I can't be an employee at Laravel and just go to the forums and ask questions about Laravel. That will make me look like I was a misfit, or it was a mistake to hire me. But then, I decided that I'll just go ahead and continue whatever I was doing, and I'll just keep posting questions, and some of these questions are really stupid. Some of them, I can really find the answer myself if I look very deep, but it's just how people are compelled to be. We are built to live together and share what we think, and just interact with each other. So, I just post it, and don't feel embarrassed or anything. Matt Stauffer: That's really great advice, and I really appreciate you sharing that. I think it's an interesting inverse, because I think a lot of people say, well, I don't know what I'm doing, and I don't want to ask a question. But it's funny, because the more your reputation grows, actually, the more you feel you don't have the freedom to ask those questions, just like you mentioned. You felt a lot more free asking questions before you had 'first employee of Laravel' next to your name, and then all of a sudden once you do you now have, 'oh, well I gotta know these things'! I remember when I signed a contract with O'Reilly to write Laravel: Up & Running, the first or one of the first Laravel books with a major tech publisher, I instantly had this feeling that, well, now I gotta do everything on my own, because I can't be seen asking these questions. And it's totally true. I think that not only the best learning, but even some of the best teaching to other people, requires us to start from a place of assuming that where we are is okay, and revealing that that's where we are is not going to hurt us. Because, often, you're ... Not even just learn, you're not capable of teaching something to other people until you reveal the fact that that's something that you just learned. Sometimes you're scared to teach something to someone, because what if they say, oh, duh, everybody knows that! Well, then, you don't share that thing. So, it doesn't just limit you from learning it, it even limits you from helping other people. You mentioned that with the pull requests and stuff. I totally affirm what Mohamed just said, which is we really welcome people to be where they are, and that's okay. I think the biggest thing, if you end up going into the Larachat Slack or Laravel IRC or the GitHub issues, or anything else like that, you'll notice that people with the simplest of questions who are kind and respectful are just helped like crazy, and people with really complicated questions who are trying to show off how much they know, who are disrespectful or unkind, aren't helped so much. It's very much like, if you treat people the way you want to be treated, as long as you're kind and as long as you're respectful, I don't think there's any such thing as a bad question in that context. Let's do a quick break before we change topics. Your Twitter handle. I have always read it as "The M Said", like "The ... M ... Said". Is that actually what it is? What is your Twitter handle and your GitHub handle actually representing? Mohamed Said: Well, my name is Mohamed Said. When I was young, I used to have all my usernames everywhere as "m-s-a-i-d", as "msaid". Then, I don't remember what happened, but for like a year or so, I stopped being interested in the Internet and stuff and I remember closing my accounts or just ignoring them until they got deactivated on their own, and then when I came back again, I tried to register accounts from the start, and the username "msaid" wasn't available, so the second option ... Matt Stauffer: Ah, the worst. Mohamed Said: Yeah! So the second option was "the-M-Said", but I pronounce it as "them-said". Matt Stauffer: That's what I was wondering. (laughs) That was my next question, was, now that I know the source of it, how do you pronounce it? So you pronounce it like it was "them". Mohamed Said: Yeah, "them-said". It's easier this way. Matt Stauffer: Yeah, that's funny. All right. So, again, I don't want to dig too far down this direction, but one of the things that I had mentioned to you before was that when there was a time, probably three to six months prior to when you got hired by Laravel, where you came out of nowhere. Nobody had really heard your name, at least not folks in the U.S. All of a sudden, you were making pull request after pull request after pull request, you were communicating extremely well, you were writing good code, they were extremely useful pull requests. We just kind of said, who is this guy, and where is he coming from? I remember that when Taylor started hiring for the first Laravel employee, one of the things I said was, this Mohamed guy is someone you want to take a look at. It wasn't my recommendation that got you the job or anything like that, but I definitely put a vote in your favor because I was so impressed with how useful your pull requests were, and how good your code was, and how well you were writing them. The way I've kind of thought about it was that you were at a job, you were using Laravel, and I think it was something about collections or paginates or something where you just had a very specific set of needs, and you just ran into situations, and you kind of have the mind to say, well, it doesn't do what I want, so I'm going to write them. Do I have the right story in my head? Is that where all that came from? You basically jumped into a new code-base that was Laravel, you found missing things, and you pull-requested them? Mohamed Said: Yeah, it was basically in the Validator, and I was working on a project where I had to do a lot of array validation, and I just discovered this tiny bug in an edge case, and I thought to myself that I can fix it, I know what went wrong, and I know how the code works internally, so I can fix it. I tried to just make the changes on my vendor's folder, just not doing anything pull requests or something, and I got it to work. I tested it on my code, and it was working. The next step, I saw that it might be useful that these changes, or these fixes that I did, to be published on Laravel so that everyone else can use them, and I just opened GitHub and read about how to open a pull request, and that's how I got my first pull request opened. It was rejected, because it was fixing something, but it was breaking another thing. Matt Stauffer: Right. Mohamed Said: After some time, I opened another pull request maybe the next day, and that one got merged. That's how it started. Matt Stauffer: So those pagination pull requests that you put in, that I watched happen, those weren't just your first pull requests to Laravel. They were your first open source GitHub pull requests ever? Mohamed Said: Yeah, I never contributed to open source before. Laravel is my first project. Matt Stauffer: All right, so there's an example of someone who had never contributed to open source before, never done a GitHub pull request before. From that to working as the first employee of Laravel within under a year if I remember correctly, and if not under a year, very close to it. There's a validation for what Mohamed was saying earlier, about just go do it, because ... Not saying that could be every person listening, but that could be! That could potentially be, you, young listener, who has never contributed to open source, who feels like you don't have the ability to do that. That's a story that could be a part of your story, whether with Laravel or with somebody else, but you need to make that first pull request before that happens. Mohamed Said: I would just go and say, if you have something, or if you have an opinion, if you have an idea, just don't be scared to share it. If you keep it to yourself, nobody is benefited. But if you just share it, it might be useful for someone else. Just let it out there. Matt Stauffer: Yeah, I like that. All right, so we're going to talk a little bit about your work, and your work with Laravel, and all that kind of stuff. A couple easy questions first that a few folks from Titan wanted me to ask you. The first one was, what is your editor of choice? Mohamed Said: PhpStorm. Matt Stauffer: All right. Did you do a transition, like a lot of folks do, where you go Sublime Text to PhpStorm, or was that just how you got started when you started writing PHP? Mohamed Said: Well, I started writing PHP on Front Page, it was Microsoft Front Page. Matt Stauffer: Yes! Oh my gosh, Microsoft Front Page! That's a throwback. Mohamed Said: Yeah. And then I moved to Dreamweaver, to Sublime, and from Sublime to NetBeans to Sublime again, and then to PhpStorm. Currently I use PhpStorm on a regular basis, but I have Sublime opened, I use it for taking screen shots, because the theme there looks cool. Matt Stauffer: (laughs) I love it. So, what is your favorite thing about PhpStorm that makes it more useful to you than Sublime? Mohamed Said: Well, I tried a lot of IDEs before, and I think PhpStorm is the fastest. If you are coming from a background where you are using Sublime for a lot of time, you think that PhpStorm is slow, but it's not. I think it's very fast, and it makes writing good easier with auto completion, and with the many helpers that the software has. I like it because it's fast. It is fast, compared to other IDEs. Don't compare it to Sublime but compare it to other IDEs, and you will find it very fast. Matt Stauffer: Right. So once you've decided you're going to use an IDE, then it becomes the best option. Mohamed Said: Yeah. Matt Stauffer: What is the most important or impactful thing you've learned from working together with Taylor? Mohamed Said: Well, there is something that I didn't learn yet, but I wish at some point I'll start to understand how he works. Being someone like Taylor Otwell, he's very successful in what he does. He did a lot of very interesting projects helping millions of people, and the two projects or the three projects that are getting him income are very successful, and he is doing really great. But, at the same time, he didn't lose motivation. It's very amazing for me. I feel like at some point, if I get a kind of success that I am recognized by a lot of people, and that my projects are being used by a lot of people, and I am doing very well financially, by this time, I think that I will start losing motivation in building other stuff. Like, I'll start just to relax and having something like an early retirement, but Taylor is constantly motivated to do other things. He wants to build other packages, he wants to enhance the existing packages, and he just keeps searching for ideas like new packages and how to enhance the current ones nonstop. That's something I really wish to learn. The thing that I really admire about Taylor and that currently I think I started to learn, is how important is details. Everyone writes code, but Taylor, he doesn't only write code, he writes beautiful code. Something that when you look at, it looks nice, it looks beautiful, it looks readable. These are the details, and he is very, very focused on details as much as he is focused on the core of the thing he is building or the thing he is working on. Matt Stauffer: Yeah, that's a really great point. One of the things that we mentioned working with Taylor, working for Laravel, has allowed you to do, was it made the move to Hurghada a little bit easier. Are there other things that working with Laravel has allowed you to do, either now or maybe that you look forward to in the future, that you think you might not have been able to do had you stayed working for the company you were before? Mohamed Said: Well, basically right now, I think, as I shared, I am most secure financially, in terms of money. But, one of the other perks that I get when I work for Laravel, is that I know a lot of people right now in different countries, so I have that plan with my wife that at some point, when we get a chance, we would love to visit a lot of countries around the world. Now I meet a lot of friends around the world, so it would be really amazing to meet all of these people in person, and get to know their life, and just not to go to the country as a tourist but knowing someone in the country gives you the chance to know the actual life of the country, not the side that tourists see. That's one thing that I find very useful. Matt Stauffer: That's very cool. If, let's say, and God forbid, let's say for some reason, in five years, you didn't work for Laravel. For whatever reason, good or bad. What would be your dream to do, if you were spun off, you were financially stable, let's say you had some savings. Are you the sort where you would want to start a consultancy, would you want to start a product? Would you just say, you know what, I hope that I would be financially stable enough that I could just retire? Outside of the job you have right now, which is really good and I don't want to suggest you leaving or anything. Let's say there was some circumstance that led you to not be working there anymore. What would be the thing that you would pursue, or do you even have anything in mind? Mohamed Said: Well, during the past few months I've been speaking with my wife regarding something like that. Before working at Laravel, I used to consider myself as a mid-level developer. I am not a professional developer, I never worked for a big company or a successful company. All my past employers were small start-ups or companies that have two or three developers or so. So, I always thought that my next level is to try to apply to bigger companies, and try to enhance myself and become a professional developer, or a senior-level developer, and then maybe a team leader. Just the regular ladder of web developer or programmer. But then, suddenly, I find myself working for Laravel, and I always thought that that's something I will reach when I am, maybe over my forties or something. To work for a big name as big as Laravel itself. So, it kind of made me a little bit confused for some time, that what's next for me? What's the next step? I am twenty-eight years old, and I don't really see myself stopping working with Laravel because I love my job very much, and I love being around with all these people. Speaking with them and interacting with them, trying to help and trying to find other ways to add to the community, so on and so forth. I don't see myself leaving this job anytime soon, but the next step, which I hope will be not before at least ten years or so, I think that I am going to try a different profession. Not even programming. The thing is, I love programming, and I've been doing it since I was very young, but moving to a city where a lot of foreigners live, I met a lot of people who just decide for like, two years, I am not going to work. I am going to live on my savings. I've met a couple of these people who just decide for a year or two, just to relax or to enjoy or to experience something different. That idea, at first, was very strange to me. If you are successful at your job and you are moving forward in your career, why would you stop and do something different in the middle of your very fruitful years? But I realized that people, when they do this, when they pause, when they get a break, when they try something different -- when they get back, they are more rich. They think of things in a different way. So, my plan is if at some point, I have to stop working for Laravel, I think that I will try to become a professional free diver. Matt Stauffer: Tell me more about that. Is that instruction? Is it competition? What does it look like to be a professional? Mohamed Said: Well, I think being in competitions is on the map, but I think that I still have a long way to go before I can go to competitions, because it's a very difficult sport and it requires a lot of training. For a free diver to be able to reach to the competition level, he have to be full time training, every day, for a long, long time. Not just ... Matt Stauffer: Wow. Mohamed Said: I go free dive once a week. That's not enough for me to reach a level where I can compete. But definitely, at some point I'd love to get certified and teach people free diving, because I like to teach people stuff. I like to see someone who is not familiar with something and I help him, and in a few months I see him doing great in the area that I try to help him with. I like that feeling, I feel like that's something that everybody likes. I think it's not something special about me. Everyone likes to see the impact of what he does on other people. I think that my next experiment would be something related to free diving. That's pretty much what it ... Matt Stauffer: That's cool. That makes a ton of sense. I mean, a lot of us, even Taylor and Jeffrey and me and Ed, a lot of us have said, what do I want to be doing when I'm forty or when I'm fifty? Do I want to be sitting down writing code? I don't know the answer. For some folks, the answer is yes. Some folks, the answer is no. Some folks, we don't know. Jeffrey and I have often joked about being goat farmers (laughs). Someday down the road. I think a lot of people who are programmers really focus on having ... And they have a higher focus than a lot of other people on having a physically creative hobby. A lot of them do carpentry or woodworking or whatever, because what we do is so much in the mind, it has so little actually practical, concrete application in the physical world, that sometimes we just feel like, I just want to go do something with my hands, and just see the result. Yours isn't exactly that, but it definitely is, it's a real-world, physical, tangible thing that you already love doing, that lines up with your desires of teaching, and stuff like that. I empathize with that so much. I don't live close enough to the water for that to be a thing, and I don't know that I'm as interested in free diving as you are, but the idea of being able to spend every day in the sea sounds pretty great to me. That makes a lot of sense. I got a couple more questions, but we're nearing the end of the interview. One of the things I wanted to ask was, we've talked a little bit about some of the different aspects of what it would look like for people's confidence level of being a programmer in Egypt. We talked a little bit about how coming up into programming might have been a little bit different, coming up into open source, about how some of your international exposure through chatrooms have changed the way you see yourself and see the world a little bit. Are there any things we haven't covered where you can say, here are some factors that make it unique to be a programmer in Egypt, that are different from what you perceive from other folks in the Laravel community, that you would want to share with us? Mohamed Said: I'm sorry, can you rephrase that question? Matt Stauffer: Yeah, yeah. Is there anything we haven't already talked about that is an interesting way that being a programmer in Egypt is different from being a programmer elsewhere, as you kind of see from the people you know? Mohamed Said: Well, I can pretty much say that before 2011, the programming scene in Egypt, it wasn't very fruitful. A lot of people, they favored other professions than programming, but after 2011, the Egyptian Revolution, a lot of changes in the country and one of the things that made programming pretty popular is that a lot of start-ups started in Egypt. And because there was cheap labor, like programmers in Egypt, their salaries were not as high as programmers in Europe -- a lot of companies in Europe, they started companies in Egypt to control the amount of expense they have to pay. So, programming became one of the professions that people look forward to, and everyone is trying to become a programmer. But, then after a few years, the curve changed and the mood changed. Because of the political instability and economic instability, a lot of companies shut down and they just left, and a lot of developers who are really good, they left their country and are now working in Europe or the States. So that leaves the scene here in Egypt as if it was like the past maybe, seven or six years, weren't there. People are starting from the beginning right now. I think that for everyone who was an Egyptian programmer who was looking forward to try to learn more and become a better programmer, I think the lessons learned from people who started early in 2010, 2011, they all have blogs online, and they have blog posts, and they talk about everything. You can just go there and read about. You will find a lot of information on these blog posts that will help you go through the journey even faster. I'm not sure that answers your question or not. Matt Stauffer: Yeah, that's a fantastic answer. Since that change has happened, where it feels like a lot of those companies, and even a lot of the more talented programmers, have left, are you in a place where you have any other programmers in town? Are there even any meet-ups that you can go to, or are you kind of getting all of your community online? Mohamed Said: Well, that might sound depressing, but all my friends during the past seven years, everyone I ever worked with who was a developer, he already left the country. Matt Stauffer: Wow. Mohamed Said: I am the only one from my group of friends who are still in Egypt. It's pretty much very, very rough now. The scene right now is like how it was before that start-up movement appeared in Egypt. Matt Stauffer: Right. That does sound a little depressing. The good thing is, you're living in that beautiful place with your wife, and getting to dive all the time. You have this great online community. I don't want to project this on you, but do you have a priority of seeing Egypt grow back in that direction, or is it like, well if it does, it does, and if it doesn't, it doesn't, and it's not too much of a bother? Mohamed Said: Well, I have mixed thoughts about that. I wake up and I think that I want to help, I want to speak with developers in Egypt and try to... Actually, most of the developers, they don't know me, they don't know I work for Laravel. They are not on Twitter, so I am not that popular here. I wake up and I think that I want to help, I want to speak with people, I want to try to make a meet-up and teach people what I know, and try to start a community, but the next day I wake up and I think that maybe it's something good, but maybe it's not someone like me who can do that. It requires a lot of energy. Yes, a lot of energy. I see Prosper and Neo and what they are doing in Nigeria, it's incredible. These guys are heroes, they are real heroes. It takes a lot of energy for you to speak with people and gather them, and try to start a community. I'm not sure if I can do it, but I definitely help anyone who is willing to do it. I can help them in any way. Matt Stauffer: That's cool. I really want to affirm what you just said, which is you can believe that the thing should happen, and still decide that you're not the person to do it. I feel that sometimes we feel the pressure that, well, it's not happening, and I value it, so maybe I should have to do it. I think that's a recipe for overcommitment and burnout. So, I applaud your wisdom in being able to recognize that even though you want that to happen, you are not necessarily the one who is supposed to be actually running it. Okay, Mohamed, I have one last question for you. As somebody who watches all the issues, all the pull requests, all the documentation, everything else that come into Laravel, is there something, maybe a technical something, but maybe just how to interact with people, that you wish people would know? Is there one main thing that you say, as I watch the issues and pull requests that come into Laravel, I wish everybody knew this one thing? Mohamed Said: I wish everybody reads the full documentation before they even start to call. A lot of people, they open issues and they try to ask questions while everything is already answered in the documentation. The thing is, people don't believe the documentation because they are used to documentation of other projects where things are not very clear, so it's easier to just ask the question on the forums or on the repository. But, for Laravel, the documentation is very, very clear. If you read the documentation, you will find a lot of gems, a lot of great stuff that you can use in your project. I advise everyone to read the documentation from page one to the last page, and they will find themselves knowing a lot of stuff that, even if you are following Laracast, even if you already read Matt Stauffer's book, the documentation is necessary. It's important because it gets updated nearly every week with new features and even warnings about edge cases and no-fixes, things that we are unable to fix. So it's important that people should follow documentation, should read it every once in a while to make sure they are on the same page with the rest of the community. Matt Stauffer: I like that. That's a very good one. I second that too. Not only are the docs always good, but Taylor has done several rounds of extensive review to make them better, clearer, more robust and easier to understand. There's as much work put into documentation, if not more, than into the actual code itself. All right, so we're basically out of time, but before we go I want to ask, are there any things that you wish we had had time to cover, whether it's technical, about Laravel, or things about you that you wish people knew or just that are interesting, that we didn't have the chance to talk about? Mohamed Said: Well, I won't feel tired for hours speaking about free diving. Maybe next time we speak on a podcast, or we meet in person, we speak about free diving a little bit more. Matt Stauffer: It's funny, because every single podcast that I've had, I tried to stop saying it so that's why I've said it a million times, but I think in my head, I could talk about this one subject for hours! I think that several times during each of these interviews, and that was one of them. I do want to ask you one question about that. You put a lot of energy, a lot of time into free diving. Now granted, there are some easy, obvious wins. You're in the sea, it's beautiful, you're seeing ocean life and all this kind of stuff, but I want to hear from your brain, what is the main aspect of free diving that makes it so compelling to you? Mohamed Said: The freedom. What I feel at the top, when you are not in the ocean, there are a lot of rules. You have to take care of how you look in front of people, how you speak, how you move, and sometimes how we think. But down under when you are into the sea, you go blank. Your mind just stop thinking, and you enjoy the freedom that you can. You don't care how you look, you don't care how you move. Even if you are swimming wrong, no one will be there to judge or tell you that you are wrong, and you can pretty much do whatever you want. There's something I really do, if I am upset or I am mad, or I don't feel quite happy. When I dive, I just go down there, maybe ten meters down, and I scream. I let it all out, until there is no air in my lungs any more, and that's the time I come up, but that feeling of being able to do whatever you want, it's freedom. That's the most incredible thing I love about free diving. Matt Stauffer: That's amazing. I'm really glad we at least went five minutes in, because like I said, I agree with you, I'd love to go for hours like that, but I don't know if I would have even begun to understand that that is a part of it because you mention that, and I've never done free diving but I've swum in the ocean, and I remember one time I went lobster hunting and it was just me, digging around and diving around, and you're right, I had no thoughts whatsoever about other people looking at me, or my gait, or my dress, or my anything. Pure focus was on what was around me. You're really right to point that there's not a lot of contexts where that's the case. I think it's probably true at least a little bit anytime we're out in nature, it's one of the reasons why people love mountains and oceans and stuff. That's really fascinating. Thanks for sharing that. Mohamed Said: Yeah, I love it so much. I'd keep speaking about it for hours. Matt Stauffer: Yeah, next time we will do that. Mohamed Said: Okay. Matt Stauffer: So, if people are going to follow you, you are on Medium, you are on GitHub, you are on website, on Twitter, and GitHub, and they're all basically, you said, "them-said" is how you say it. So, "t-h-e-m-s-a-i-d", and pretty much on all those contexts you're there. Are there any other ways people should follow you, or any other projects or anything that you want to shout out? Mohamed Said: Well I am on Twitter, and I like to speak with people, I like to get to know people, so just drop me a line and I'd love to speak with you on any topic. That's the message I want to tell everyone. Matt Stauffer: I love it, that's great. Well, I could talk for hours, but we're definitely hitting time now, so ... Mohamed, thank you so much. Thank you for your time today, thank you for sharing all this stuff with us, thank you for the hard work you put in for the Laravel community. Not just as work, but as your love for helping and teaching people, thank you for contributing that and for being a part of making the Laravel community a better place. Mohamed Said: Thank you Matt for having me, and thank you for this season three of the podcast. I've heard the past three episodes, and they were really amazing. The questions you ask and how people answer, it makes you get to know people themselves, not people as programmers, the persons. So, thank you for this. Matt Stauffer: Well, I'm overjoyed to hear that, and I look forward to hearing when everybody gets to learn about you as well. Mohamed, thank you, it was great talking to you, and I'll talk to you later. Mohamed Said: See you later, Matt.

PHP Town Hall
Episode 50: Low down on PSR-15

PHP Town Hall

Play Episode Listen Later Jun 27, 2016 3371:00


An all star cast this episode, as Ben and Phil are joined by regular guest Anthony Ferrara - thinker of good ideas and long-time part-time side-line contributor to the PHP-FIG, Woody Gilk - one-speed rider & BDFL of Kohana, and Beau Simensen - author of a bunch of stuff including StackPHP. Here we’re talking about some awesome stuff the PHP-FIG is working on: PSR-15 (HTTP Middleware). This PSR is in Draft mode, and is potentially not as well known about as some others. There was a bit of a cuffufle getting it started as before it had even passed an entrance vote there were alternatives and rewrites suggested, but now the major players are on the same page and things are moving forward. We discuss all this, and the reason PSR-7 (HTTP Message) is not enough for the ecosystem to benefit from shareable middleware. Jumping away from PSR-15 for a second there is an interesting bit of insight into why the PHP-FIG didn’t just slap a “PSR” sticker on Symfony’s HTTP Kernel or HTTP Foundation. Woody provides a bit of the decision-making process in a very tricky aspect of the FIGs job, which is: should standards be built entirely to match existing implementations, or should standards try to improve on the learnings of the existing implementations to better them all as implementations change to support the standard. It’s all a bit chicken and egg, but a very worthy discussion to have. All About Middleware - Anthony posts about PHP HTTP Middleware Why Care About PHP Middleware? - Summary of the initial Anthony vs Woody approaches and background on the HTTP middleware concept StackPHP - Composing HttpKernelInterface middlewares since 2013! Equip - Equip is a tiny and powerful PHP micro-framework created and maintained by the engineering team at When I Work

PHP Town Hall
Episode 13: PHP Internals, Service-orientated Architecture and Language Wars

PHP Town Hall

Play Episode Listen Later Oct 14, 2013 53:30


Some episodes of this show are brought to you after more beers than others. This is one of those episodes where its more, so if you don’t like swearing and listening to a slightly confused Bristolian ramble about points he occasionally forgets then you might want to skip this one. Regardless Ben, Zack K. and Phil discuss the difference between PHP’s organisational structure and lack of BDFL with that of Rails, or Linux. We then discuss service-orientated architecture a little and move onto how you should not box yourself into a single programming language - on your CV or in general as a programmer. T_PAAMAYIM_NEKUDOTAYIM v Sanity Tornado League of Extraordinary Packages