Philippe Vaillancourt

1.8K posts

Philippe Vaillancourt banner
Philippe Vaillancourt

Philippe Vaillancourt

@snowfrogdev

Software developer | Teacher | Student | Master | Apprentice | #JavaScript | #TypeScript | #Angular | #nodejs | #csharp | #dotnet | https://t.co/ArL5MaHY90

Laval, Québec, Canada Bergabung Nisan 2019
1.1K Mengikuti495 Pengikut
Tweet Disematkan
Philippe Vaillancourt
Philippe Vaillancourt@snowfrogdev·
When was the last time you played a multiplayer videogame with at least 2 of your friends in the same game session? Note: This includes any videogame (console, PC, mobile), whether online or in-person. Other players may have been present. #gaming #gamer #videogames #GamerLife
English
1
1
2
153
Philippe Vaillancourt me-retweet
Steven T. Cramer #dotnet
Steven T. Cramer #dotnet@StevenTCramer·
Use launchSettings.json in Aspire orchestrated dotnet runfiles (file-based aps). #!/usr/bin/env -S dotnet run --launch-profile http --
Steven T. Cramer #dotnet tweet mediaSteven T. Cramer #dotnet tweet mediaSteven T. Cramer #dotnet tweet media
English
2
3
7
283
Philippe Vaillancourt
Philippe Vaillancourt@snowfrogdev·
@code My own experience with this kind of pattern is that it doesn't work consistently. A defined series of steps like this is an algorithm. If you want to run an algorithm consistently it makes more sense to write a computer program than it is to ask an LLM agent to follow it.
English
0
0
1
181
Visual Studio Code
Visual Studio Code@code·
GitHub Copilot Orchestra Pattern... A multi-agent orchestration system for structured, test-driven software development with AI assistance. Conductor -> Plan 🔁 ( implement -> review -> commit )
Visual Studio Code tweet media
English
9
50
408
42.2K
Philippe Vaillancourt
Philippe Vaillancourt@snowfrogdev·
@Battlefield That's great! As long as you give us the means to adjust the UI and HUD. I don't want to break my neck every time I try to glance at the minimap 4 miles away in the lower left corner of the screen.
English
0
0
0
60
Battlefield
Battlefield@Battlefield·
👀 the whole battlefield. Ultrawide monitor support comes to PC with #Battlefield6 on Oct. 10.
Battlefield tweet media
English
90
85
1.8K
156.4K
Philippe Vaillancourt
Philippe Vaillancourt@snowfrogdev·
It's been a nightmare to try to get the crew together on a semi-regular basis as we got older and busier with life. We all want to do it, but somehow it takes weeks of planning and alot of IM back and forth before we can finally settle on a date, time and game that works.
English
0
0
1
39
Philippe Vaillancourt
Philippe Vaillancourt@snowfrogdev·
When was the last time you played a multiplayer videogame with at least 2 of your friends in the same game session? Note: This includes any videogame (console, PC, mobile), whether online or in-person. Other players may have been present. #gaming #gamer #videogames #GamerLife
English
1
1
2
153
Philippe Vaillancourt me-retweet
Jason Fried
Jason Fried@jasonfried·
Working on the Second Edition of Shape Up and we want to make sure we're addressing common open questions, snags, or things people wonder about. Got any Q's you'd really like to see answered in the updated book?
English
70
9
267
43.5K
Philippe Vaillancourt
Philippe Vaillancourt@snowfrogdev·
@dhh @taavisaft Yeah, they know what it's supposed to look and taste like. They also remember they used to get them dirt cheap and there ain't no way they're going to pay 10x-20x just because you can't source the ingredients locally and have had to import all of them, down to even the water.
English
0
0
1
33
DHH
DHH@dhh·
@taavisaft America is full of Europeans. Many of them recent arrivals. I guarantee you that there are people in that country that knows what a real croissant is supposed to look, feel, and taste like.
English
3
1
43
6.7K
DHH
DHH@dhh·
One day I'm going to solve the mystery of why even the finest bakeries and hotels in America can't produce a Croissant on par with a Danish 7-11 or a Spanish gas station.
English
652
224
9.2K
971.8K
Devon Eriksen
Devon Eriksen@Devon_Eriksen_·
Ah, yes, the curation problem. To understand it, we have to have a long talk about Amazon. Amazon isn't killing the book industry. That oft-repeated allegation is completely and totally false. But it IS failing to save it. The practice at Amazon-the-large-conglomerate is have an empty chair present at every meeting, to serve as a reminder of who @JeffBezos calls "the most important person in the room". The customer. But tiny fragment of Amazon that is Amazon-the-bookseller has repeatedly failed to learn his intended lesson. You see, Amazon-the-bookseller thinks selling books is a solved problem. This is because Amazon sees the bookselling business from the perspective of Amazon-who-sells-books, not the perspective of people who like to read. An Amazon insider once told me, in all sincerity: "The book market is oversaturated. We have metrics, and we know how many unread pages people have on their Kindle devices, and what rate they read at. They have queues years long. There are no more books to be sold." This sounds superficially sensible from the perspective of a giant bookstore that sells every book in the universe, but it is wrong, wrong, wrong. The book market is not oversaturated. It is undersaturated. Less people are reading less books now. Men are barely reading at all. Why? Because they can't find anything they want to read. This is the curation problem. There are more books now than ever, but because tradpub is dying, and Amazon publishes anything, readers are now exposed directly to the slushpile. Publishers used to help readers solve the problem of what to read next by rejecting the bad and the mediocre. If you picked up a novel released by a major publishing house, it might not be to your taste, but you could be pretty sure it wasn't objectively awful. But around the same time that tradpub lost interest in what people want to read, and started publishing only what they thought people should read, Amazon started eating their lunch. Not a coincidence. But Amazon doesn't curate the slushpile. Why would it? It sells every book, ever. So why would it be interested in promoting some books over others? It gets paid regardless of which book readers buy. Amazon does not care which book you buy. Which means it doesn't care whether you buy the book you like. Which means, in turn, that it doesn't care whether you like the book you buy. In other words, Amazon-the-bookseller doesn't care about customer satisfaction. They consider that an author's responsibility. Amazon has replaced the publishers, but it does not see itself as a publisher, with any responsibility to curate, promote, or discriminate, but a neutral vendor. Amazon has been seduced by its own metrics. A metric, measures what is, and what has been. It will never tell you what could be. The book market is not saturated because it is not fixed-size. The number of people who want to read is not a fixed number. The rate at which they read books is not a fixed rate. Both these numbers are highly variable, and they are driven by one thing... customer satisfaction. Readers who can find books they love will read more books faster. The market is not a fixed size. The market can grow. But to grow the market, someone must solve the curation problem. Readers would benefit from this, but they are not in a position to do it. Authors would benefit from this, but they are not in a position to do it. Amazon would benefit from this, and they are. If Amazon were to realize that customer satisfaction matters to their bottom line, that it is in their interest to address the curation problem, just as the publishers they have replaced did, they could do it... easily. They aren't a publishing house, with experienced editors and wordsmiths who can tell the good from the bad. They do not have the ghosts of Gardner Dozois, Tom Dougherty, and Jim Baen on speed dial. They can't decide what is good or bad. But they have something else. Something just as powerful. They have data. For Amazon-the-bookseller, selling more books isn't a matter of solving the curation problem. It's a matter of doing something even better. They can solve the discovery problem. They don't need to figure out what most people will like. They can figure out what you, the individual reader, will like. They have data, and what they don't have, they can gather. They have expert software engineers and machine learning specialists. They have powerful cloud computing services. They have access to AI that didn't exist five years ago. Amazon could build the most vast, powerful, and creepily accurate book recommendation engine the world has ever seen. It could hit every Kindle owner with an endless fire hose of "something else you're gonna love". In fact, according to that same Amazon insider, it already built the tool. Years ago. According to the same Amazon insider, this tool existed. And it was good. Probably not good on the level of what could be built today, but good. Except Amazon, having this tool, saw no use for it. Because they assumed the book market was saturated. So, if you think you can't squeeze any more money out of readers, because you think they are reading as fast as they can, where you go for additional revenue? Authors. What you do is you take your recommendation engine, and you hand the keys to the advertising department. And they sell those recommendations, charging authors to be seen. There's two problems with this. First of all, storytelling is a winner-take-all game. Which means most authors are broke. Second, once a recommendation means nothing more than "this guy gave us some money", readers stop paying attention to it. And then you have to take it out behind the shed and shoot it, like a sick horse. Which is precisely what happened. So now Amazon is selling 50 million books, to fewer and fewer people, because they can't find what they actually want to read. This is the discovery problem. Tradpub failed because they stopped solving it. Amazon-the-bookseller is limping along, propped up by Amazon-the-computing-service, because it hasn't solved it either. Whoever solves it will win.
Jessica Barberi@jessica_barberi

This is something I agree with. Self-publishing is the future. The problem is how to separate the wheat from the chaft? The one "function " trad pub offered self-publishing does not have an answer for is as a quality controller to consumers. As a self-published author, I can do all the things to put out a quality product, but I will be frank – when I released my first book, I did not realize how rough it was because there is no guard rails in self-publishing – you can literally upload a file and put a book out there. Thank God I had good and honest early readers in my family that pushed me to a more thorough edit, but what if I didn't? Many consumers are going to pick up those "rough drafts" that were published and throw up their hands. The bar or entry for new writers with a quality, well edited story will be that much harder because readers who got burned simply stick to what they know. This is not enough to keep the traditional model relevant, but what is self-publishing's answer to this function?

English
87
92
790
51.3K
Philippe Vaillancourt
Philippe Vaillancourt@snowfrogdev·
@TrishaW78249585 @OnlembehKingBl You'd be surprised how many of these older folks that are getting cared for by strangers actually have kids of their own. In North America, it's no longer the norm to keep the elderly at home when they start needing the kind of care you described.
English
1
0
0
11
Trisha Williams
Trisha Williams@TrishaW78249585·
@OnlembehKingBl All great until you get old and realise someone elses kid is turning you in bed, toileting and feeding you, ckeaning your house etc. Nothing like being a user.
English
1
0
0
343
Philippe Vaillancourt
Philippe Vaillancourt@snowfrogdev·
@wenwhimsy @markinzeroland @OnlembehKingBl Yep. I think people imagine that there's only one childless couple per town or something. This is 2025... have you seen birthrate stats... we are legion 😁. I'm 45 and we have a bunch of good, childless, friends in their 20s, 30s and 40s.
English
1
0
1
16
Philippe Vaillancourt
Philippe Vaillancourt@snowfrogdev·
@Lyn37930156 @OnlembehKingBl 45, no kids. Circle of friends in their 40s, 30s and 20s that also don't want kids. We take care of each other. Have done so for over a decade. Don't see why that would stop when I hit 50 or 60.
English
0
0
0
9
Lyn
Lyn@Lyn37930156·
@OnlembehKingBl Ask people in their 50s and beyond. Travelled for years. Now what? All their friends busy with grandkids and travel and they have a future of decades with no family of their own and they chose it. I have 4 kids. Hard work but I’m certainly reaping the benefits now in my 60s.
English
1
0
0
623
Alan Shore and Raymond Reddington
@OnlembehKingBl People living in the moment, happy they can travel and do as they please. What happens as you age? When you can no longer travel? Nothing sadder than a 70 year old with no kids. Just wait and see.
English
5
0
10
4.2K
Philippe Vaillancourt
Philippe Vaillancourt@snowfrogdev·
@Jonathan_Blow How do you see these principles apply for languages with runtimes and built-in data structures with syntactic sugar that are heavily optimized at compile and runtime? Like JavaScript and C#. var list = []. Would you roll out your own list in JS?
English
0
0
0
137
Jonathan Blow
Jonathan Blow@Jonathan_Blow·
Some people might read this and think, that's just not my world, I am stuck in this world where software breaks all the time and everything I build is disposable. Even if that is kind of the case for you, there is still good news, because this isn't an all-or-nothing problem. It's a dial that can be turned; you can turn that dial in a direction that reduces flailing and results in more-stable long-term progress. You don't have to remove all the dependencies, because every dependency you remove contributes to stability. Even getting rid of 1/3 of your dependencies can do amazing things. You can look at all the things you depend on and divide them into two categories: major and minor. Major dependencies are things that, realistically, you are never going to have your own version of. I am never going to make my own graphics API, so those count as major dependencies for me (DirectX12, Vulkan, Metal, etc). I am not going to write my own CPU-side font rasterization, so anything I choose to use there (FreeType, stb_truetype) goes in that category. With Major Dependencies, you limit your contact surface with them: You call only the functions you really need, and you do this only from the surface of your program -- you don't build data structures deep into your program that propagate the particular data structures or API decisions of any of these systems. A good API author will help you do this (stb_truetype), a bad API author will be trying as hard as they can to screw you up and force you to become tied to their system forever (anything from Microsoft or Apple). Understanding that many API authors are hostile can cause a big change of perspective here, and once you see it, the correct tactics become much more obvious. So, that's the major dependencies. Minor dependencies are things that are smaller, and that you want to use much more thoroughly throughout your program: for systems programmers this might be a data structure like an expanding array or hash table, for Web, maybe there are some string or file operations that you like to do. Minor dependencies can be eliminated and it's not even hard. You just do one at a time: hey, I need this data structure, I have been importing this other code to provide that functionality, I have suffered X, Y and Z problems because of this, how about if I just implement my own simple version of this one thing? People can get scared of implementing core stuff like this, because they look at the implementation they are using now, and it looks huge and complicated and hard to reproduce. But the thing to realize is most of this implementation is spam. It is mostly doing things for people who are not you, for reasons you don't necessarily agree with, chosen by a decision-making method that is deeply flawed. Your own implementation can be cleaner and smaller, and it can give you good feelings when you go look at it. You don't need all the functionality of the thing you are importing; you only need 8% of the functionality. Implementing that is easy. Once you do this a few times, you have your own stable body of code that you bring with you from project to project. It won't break unless you mess with it. You can keep improving it if you want, incrementally over time, but the cost of this is small because this code represents stable algorithms that don't change with fashion, so work on this is never forced. Every big company has their own internal version of this, but the problem in that scenario is that a big company is full of people who want different things, and have varying levels of decision-making skill, so these usually end up not so good. But when it's your own personal thing, it can in fact be very good, and help make you happy on a daily basis. And, your software will break much less often. Which is great. @NotAShelf @ThePrimeagen x.com/Jonathan_Blow/…
English
43
183
1.6K
101.6K
Philippe Vaillancourt
Philippe Vaillancourt@snowfrogdev·
@int_16h @Jonathan_Blow You think rust is bad? You better not take a look at the JavaScript ecosystem. People bring in external libraries to do stuff like `isNumber(x) and `leftPad(x)`. It's not all that rare to see projects that have thousands of transitive dependencies when including build tools.
English
0
0
3
138
INT 16H
INT 16H@int_16h·
> minimize dependencies that are likely to change That's where I have problems with Rust. Even smallish projects tend to depend on > 200 crates. I can't comprehend that. I become anxious if I do not know precisely what each of those creates does, and if it can be replaced. I also have no way to know if the maintainer will maintain them for the next 10 years or the crate will be abandoned in a few months. I do not have any problems with the language per se, but I just can't accept the ecosystem.
English
3
0
37
4K
Jonathan Blow
Jonathan Blow@Jonathan_Blow·
I read this article about software development, which I knew about because I saw Prime reacting to it: notashelf.dev/posts/curse-of… For the most part I think it is fine: a relatively young programmer is doing the healthy work of introspecting on what he should really be doing. But there's one part of the article that I think is a deep mistake, and the author doesn't know it's so wrong because he has never experienced the alternative: "Software doesn’t stay solved. Every solution you write starts to rot the moment it exists. Not now, not later, but eventually. Libraries deprecate. APIs change. Performance regressions creep in. Your once-perfect tool breaks silently because libfoo.so is now libfoo.so.2. 2 I have had scripts silently fail because a website changed its HTML layout. I have had configuration formats break because of upstream version bumps. I have had Docker containers die because Alpine Linux rotated a mirror URL. In each case, the immediate emotional response was not just inconvenience but something that moreso resembles guilt." Yes, this is true in much of the programming world. But there is another world in which people build things that last much longer. I have done it many times. I shipped a binary for this game Braid in 2009 that you can still download and play on Steam 16 years later. If you are pretty young (like 35), you can run binaries on Windows that were compiled before you were even born, which is amazing given how hard they have been trying to f up Windows lately. On an emulator like MAME, you can play arcade games programmed in 1979. If today's software "technology" is so much better, why does it fall apart like tissue paper? The author is not wrong about the cited decay. But this decay is not inherent to the practice of software. It's due to choices made, usually foolishly, by the people designing the systems being interacted with. And, it's due to a lack of knowing better, non-exposure to the sector of programmers who are very concerned with their code lasting a long time, actually. The way you make code last a long time is you minimize dependencies that are likely to change and, to the extent you must take such dependencies, you minimize the contact surface between your program and those dependencies. The actual algorithms you program, the actual functioning machinery you build, is a mathematical object defined by the semantics of your programming language, and mathematical objects are eternal, they will last far longer than your human life. The goal then is to avoid introducing decay into the system. You must build an oasis of peace that is insulated from this constant bombardment of horrible decisions, and only hesitantly interface into the outside world. This means, for example: If you are shipping on iOS, you only reluctantly use any functions iOS gives you, because when you use them, Tim Apple will come along and break your program next year for arbitrary pointless reasons, because Tim Apple does not respect you or anyone you know. This means a program cannot last forever on iOS, because Tim Apple likes breaking your things and watching you submissively clean them up. But the core of your program, which could be 95% of the code, is fine, and you can deploy it elsewhere. This means you have to insulate from Linux userspace, because of all the jackass decision making that introduces constant incompatibilities while somehow never making the system better. Using a library dependency to do font rendering or sparse matrix math? That dependency gets checked into your source tree, a copy of exactly the version you use. Ten years later you can pull down that source and recompile, and it works, because your program is a mathematical object. If you want to upgrade to something newer that has bug fixes and so forth, you are free to do so, but you are also free not to do so, and your program still works. (And how many of these bug fixes do you really need? Your program worked correctly when you shipped it to the greatest extent you could measure, because you are a skillful software engineer who wants to ship things of a high quality). Everyone who got into programming for the joy of it knows, at some level, that the magic of programs is that they represent complexity that is replicable over time (and thus they exist outside of time). But the trashy programmer culture of the past 20 years stopped aspiring to this, and now has forgotten it is even possible. And so long as people have forgotten, decisions will continue to be made that make the problem worse. There are programmers who only write glue code, and who think that's what programming is; to these people what I have written above will not make sense. But the good news for that contingent is, they can always just stop writing glue code and start doing something else! If today's software "technology" is so good, why do you think it needs so much glue? Maybe there is a stylistic problem. So if you are looking for what to do in the world of software that can represent a lasting contribution, maybe this is food for thought. @NotAShelf @ThePrimeagen
English
127
559
3.9K
454.4K