- 76
- 54 963
Craft vs Cruft
United States
เข้าร่วมเมื่อ 29 ก.พ. 2020
Meditations on the software quality and professionalism.
Ship value.
Engineering is social.
Correct, Clear, Concise. In that order.
All the code in the world can't fix ego.
Quality is productivity. (Gary Brown)
With patience, the most tangled cord may be undone. (Lao Tzu)
Ship value.
Engineering is social.
Correct, Clear, Concise. In that order.
All the code in the world can't fix ego.
Quality is productivity. (Gary Brown)
With patience, the most tangled cord may be undone. (Lao Tzu)
Defining Multiplication Because Terrence Howard Didn't
Craft vs Cruft: Meditations on software quality. Episode 59: Reinventing Boolean Algebra (Lean Prover)
Follow Ray Myers:
Empathy In Tech podcast: empathyintech.com
LinkedIn: www.linkedin.com/in/cadrlife
BlueSky: raymyers.bsky.social
References:
Lean Theorem Prover
lean-lang.org
Natural Number Game
adam.math.hhu.de
Software Foundations
softwarefoundations.cis.upenn.edu
Peano arithmetic
en.wikipedia.org/wiki/Peano_axioms
Angela Collier - Physics Crackpots: A Theory
th-cam.com/video/11lPhMSulSU/w-d-xo.html
Math teacher discusses Howard's argument
x.com/N0ahF3nce/status/1793400562710446189
Follow Ray Myers:
Empathy In Tech podcast: empathyintech.com
LinkedIn: www.linkedin.com/in/cadrlife
BlueSky: raymyers.bsky.social
References:
Lean Theorem Prover
lean-lang.org
Natural Number Game
adam.math.hhu.de
Software Foundations
softwarefoundations.cis.upenn.edu
Peano arithmetic
en.wikipedia.org/wiki/Peano_axioms
Angela Collier - Physics Crackpots: A Theory
th-cam.com/video/11lPhMSulSU/w-d-xo.html
Math teacher discusses Howard's argument
x.com/N0ahF3nce/status/1793400562710446189
มุมมอง: 1 045
วีดีโอ
Halting the Halting Problem
มุมมอง 14421 วันที่ผ่านมา
References: Program Proofs book on Dafny program-proofs.com AWS: Lean Into Verified Software Development aws.amazon.com/blogs/opensource/lean-into-verified-software-development/ How Amazon Web Services uses formal methods www.amazon.science/publications/how-amazon-web-services-uses-formal-methods Terrance Tao talk: Machine Assisted Proof th-cam.com/video/AayZuuDDKP0/w-d-xo.html "Scooping The Lo...
Reinventing Boolean Algebra (Lean Prover)
มุมมอง 3043 หลายเดือนก่อน
Craft vs Cruft: Meditations on software quality. Episode 57: Reinventing Boolean Algebra (Lean Prover) Follow Ray Myers: Empathy In Tech podcast: empathyintech.com LinkedIn: www.linkedin.com/in/cadrlife BlueSky: raymyers.bsky.social References: Previous video: Theorem Provers are Refactoring Tools th-cam.com/video/UdB3XBf219Y/w-d-xo.html Boolean Algebra course videos th-cam.com/play/PLTd6ceoshp...
Theorem Provers Are Refactoring Tools
มุมมอง 2783 หลายเดือนก่อน
Craft vs Cruft: Meditations on software quality. Episode 56: Theorem Provers Are Refactoring Tools Follow Ray Myers: LinkedIn: www.linkedin.com/in/cadrlife Twitter: lambdapocalypse Empathy In Tech podcast: empathyintech.com Mender.AI References: Source code: github.com/raymyers/verified-refactoring Gilded Rose kata, Emily Bache Repo github.com/emilybache/GildedRose-Refactoring-Kata ...
Core Conflicts In Reliability: Having Our Cake and Eating It
มุมมอง 1053 หลายเดือนก่อน
Craft vs Cruft: Meditations on software quality. Episode 55: Core Conflicts In Reliability: Having Our Cake and Eating It References: Beyond The Goal by Eli Goldratt www.audible.com/pd/Beyond-the-Goal-Audiobook/B002V1LYO2 Steve Tendon and TameFlow tameflow.com Karl Perry and The Conflict Club yourthinkingcoach.com It's Not Luck by Eli Goldratt www.amazon.com/Its-Not-Luck-Eliyahu-Goldratt/dp/088...
Automated Gilded Rose Refactor
มุมมอง 1864 หลายเดือนก่อน
Craft vs Cruft: Meditations on software quality. Episode 54: Automated Gilded Rose Refactor Follow Ray Myers LinkedIn: www.linkedin.com/in/cadrlife Nopilot.dev Mender.AI Twitter: lambdapocalypse Empathy In Tech podcast with Andrea Goulet empathyintech.com References: Verified Refactoring repo github.com/raymyers/verified-refactoring Gilded Rose kata collection github.com/emilybache/...
Gilded Rose with Provable Rewrites in C (Symbolic Execution)
มุมมอง 2696 หลายเดือนก่อน
Craft vs Cruft: Meditations on software quality. Episode 53: Gilded Rose with Provable Rewrites in C (Symbolic Execution) Follow Ray Myers LinkedIn: www.linkedin.com/in/cadrlife Nopilot.dev Mender.AI Twitter: lambdapocalypse References: Repo github.com/raymyers/gilded-rose-c-symbolic-execution Gilded Rose kata collection github.com/emilybache/GildedRose-Refactoring-Kata Klee klee-se...
Goal Tree | Craft vs Cruft 52
มุมมอง 1727 หลายเดือนก่อน
Follow Ray Myers LinkedIn: www.linkedin.com/in/cadrlife Nopilot.dev Mender.AI Twitter: lambdapocalypse References: Previous episodes on Theory of Constraints th-cam.com/play/PLRe4i06eNAcA6s2w9YhSz_8TCsqG_G1eU.html Goal Tree video by Bill Dettmer th-cam.com/video/6ClpgEzJxFE/w-d-xo.html Logical Thinking Process (Marris Consulting course page) logicalthinkingprocess.podia.com
NEW PODCAST
มุมมอง 977 หลายเดือนก่อน
Craft vs Cruft: Meditations on software quality. Episode 51: NEW PODCAST Follow Ray Myers LinkedIn: www.linkedin.com/in/cadrlife Nopilot.dev Mender.AI Twitter: lambdapocalypse Follow Andrea Goulet www.linkedin.com/in/andreamgoulet empathyintech.com Upcoming Conferences: Mendercon 2024 mendercon.com Artificially Intelligent Enterprise www.techstrongevents.com/the-artificially-intelli...
Substance of Success w/ Dylan Evans | Craft vs Cruft 50
มุมมอง 718 หลายเดือนก่อน
Craft vs Cruft: Meditations on software quality. Episode 50: Substance of Success Follow Dylan Evans: Simple Salt: simple-salt.com LinkedIn: www.linkedin.com/in/dylanevans-makesecuritysimple/ Follow Ray Myers LinkedIn: www.linkedin.com/in/cadrlife Nopilot.dev Mender.AI Twitter: lambdapocalypse
Dissecting Devin | Craft vs Cruft 49
มุมมอง 3258 หลายเดือนก่อน
Craft vs Cruft: Meditations on software quality. Episode 49: Dissecting Devin Nopilot Article: Dissecting Devin nopilot.dev/blog/dissecting-devin Follow Ray Myers LinkedIn: www.linkedin.com/in/cadrlife Nopilot.dev Mender.AI Twitter: lambdapocalypse References: Previous Episode: Devin Has Been Beaten th-cam.com/video/pc55pfHpigs/w-d-xo.html Previous Episode: Will AI Democratize Progr...
Devin Has Been Beaten
มุมมอง 2.7K8 หลายเดือนก่อน
New site: nopilot.dev Current presumptive leader, AutoCodeRover by Automated Program Repair @ NUS: github.com/nus-apr/auto-code-rover Previous Episode: "We Can Beat Devin" th-cam.com/video/IM5oi2ycNIY/w-d-xo.html Follow me on LinkedIn: www.linkedin.com/in/cadrlife
Decoding Democracy w/ Lucia Bourgeois | Craft vs Cruft 48
มุมมอง 988 หลายเดือนก่อน
Craft vs Cruft: Meditations on software quality. Episode 48: Decoding Democracy Follow Lucia Bourgeois www.linkedin.com/in/lucia-bourgeois/ Follow Ray Myers LinkedIn: www.linkedin.com/in/cadrlife Mender.AI Twitter: lambdapocalypse References: Missouri Startup Weekend www.mosw.io/ Previous Episode "Conflicts Don't Exist (The Evaporating Cloud)" th-cam.com/video/wP1vD2pguvs/w-d-xo.htm...
Conflict Clouds as Personal Growth w/ Karl Perry | Craft vs Cruft 47
มุมมอง 1108 หลายเดือนก่อน
Craft vs Cruft: Meditations on software quality. Episode 47: Conflict Clouds as Personal Growth Follow Karl Perry and "The Conflict Club" yourthinkingcoach.com LinkedIn: www.linkedin.com/in/karlgperry/ Follow Ray Myers LinkedIn: www.linkedin.com/in/cadrlife Mender.AI Twitter: lambdapocalypse References: Previous Episode "Conflicts Don't Exist (The Evaporating Cloud)" th-cam.com/vide...
We Can Beat Devin | Craft vs Cruft 46
มุมมอง 4098 หลายเดือนก่อน
Craft vs Cruft: Meditations on software quality. Episode 46: We Can Beat Devin Follow me on LinkedIn: www.linkedin.com/in/cadrlife Mender.AI Twitter: lambdapocalypse References: Cognition Labs Devin announcement www.cognition-labs.com/introducing-devin Past video "Will AI Democratize Programming" th-cam.com/video/7YxD8R9Q_Bo/w-d-xo.html Channel: @CanWeBeatDevin Discord: discord.gg/k...
ChatBot (STILL) Claims To Be Licensed Physician (Dr Gupta AI)
มุมมอง 1019 หลายเดือนก่อน
ChatBot (STILL) Claims To Be Licensed Physician (Dr Gupta AI)
Provable Linked Lists - Part 2 Dafny | Craft vs Cruft 45
มุมมอง 879 หลายเดือนก่อน
Provable Linked Lists - Part 2 Dafny | Craft vs Cruft 45
Provable Linked Lists - Part 1 Dafny | Craft vs Cruft 44
มุมมอง 2099 หลายเดือนก่อน
Provable Linked Lists - Part 1 Dafny | Craft vs Cruft 44
English To Theorems (Z3 + GPT-4) | Craft vs Cruft 43
มุมมอง 1699 หลายเดือนก่อน
English To Theorems (Z3 GPT-4) | Craft vs Cruft 43
Semi-Formal Methods | Craft vs Cruft 42
มุมมอง 1059 หลายเดือนก่อน
Semi-Formal Methods | Craft vs Cruft 42
AI Accountability Shield | Craft vs Cruft 41
มุมมอง 7510 หลายเดือนก่อน
AI Accountability Shield | Craft vs Cruft 41
RefactorGPT (LabLab.ai Hackathon Entry)
มุมมอง 8710 หลายเดือนก่อน
RefactorGPT (LabLab.ai Hackathon Entry)
First Order Logic | Craft vs Cruft 38
มุมมอง 8711 หลายเดือนก่อน
First Order Logic | Craft vs Cruft 38
Layoff Dodging 101 | Craft vs Cruft 37
มุมมอง 1.1K11 หลายเดือนก่อน
Layoff Dodging 101 | Craft vs Cruft 37
Refactoring With Proofs | Craft vs Cruft 36
มุมมอง 76811 หลายเดือนก่อน
Refactoring With Proofs | Craft vs Cruft 36
Metrics: Naughty or Nice? | Craft vs Cruft 35
มุมมอง 5511 หลายเดือนก่อน
Metrics: Naughty or Nice? | Craft vs Cruft 35
Coding a DSL for Theory of Constraints diagrams (TOC-Lang)
มุมมอง 147ปีที่แล้ว
Coding a DSL for Theory of Constraints diagrams (TOC-Lang)
Code With No Hands You Cowards! | Craft vs Cruft 34
มุมมอง 96ปีที่แล้ว
Code With No Hands You Cowards! | Craft vs Cruft 34
I think I would go about proving 1 x 1 = 1 by proving that 1 / 1 = 1 and 2 / 1 = 2. (1 goes into 1, one time, and 1 goes into 2, two times) If these two equalities hold, 1 x 1 can only equal 1.
Yeah 1 x 1 is just having "one of one thing" which is not a hard concept to for us to think about and as an argument it's fine. But it relies on other concepts so if we wanted to press it you can always ask: What's 2? What does "going into" actually mean? It's an exercise in first principles. Providing a foundation as I'm doing in the vid is not even how a formal computerized proof would normally be written, your approach could work just fine because the foundation it needs is already in the library.
NIce. Engaging formal demonstration of recognizing and establishing first principles - and of recognizing what is often inherently assumed.
I don't think its possible to write bug free code . You can just move the bugs out of your release code bu writing test code . So you can prove code works like you say . But then you have to proove the proof . And the proove the proof of the proof . Forever and ever . And all those proofs are part of the same executable .
Thanks for the comment, Kanjicoder. You point to a legitimate concern in Formal Verification which is something called the "Trusted Computing Base". For instance we might say for a certain result to trust this program to the extent we trust the spec, the compiler, the prover core, and the hardware. That sounds like trusting a lot, but for practical purposes most of those things are pretty well battle-tested. It's a question of what level of confidence can we achieve, and is it worth the investment - an engineering tradeoff like any other. AWS case studies have great examples of navigating that. For a treatment on what it takes to theoretical cover every link in the chain, the Deep Spec project is a good example. deepspec.org/page/Research
The question begs to be asked: why hasn't a more approachable, less mathematically intensive formal specification language emerged? It feels like we're stuck in an academic bubble, prioritizing rigor over accessibility. Imagine a language with syntax closer to natural language or a widely understood programming paradigm, allowing developers to express properties and constraints in a more intuitive way. Tools could then translate these expressions into the underlying formal logic, shielding users from the complexity. If formal methods are to move beyond niche applications and become mainstream, we need to bridge this gap. A simplified, user-friendly language could be the key to unlocking the potential of formal verification for a broader audience, enabling the development of more robust and reliable software systems across the industry.
@ElinaMäkinen-k6f That's a great question, and in a sense it's happening just slower than we'd like. Languages like TypeScript have expressivity in types that would have seemed academic not mainstream 15 years ago. I find the newer prover Lean more accessible than Coq and Isabelle. Dafny even more so for "normal" coding. Fizzbee aims to be a friendlier modeling language than TLA+. But yeah, a long way to go. Research goals tend to reward complexity and novelty, we've got some hard design problems to distill it into the right package.
help me pls
Sorry, it’s not clear what you’re asking.
@craftvscruft8060 lol i need adult supervision on a project
Great video!
wow that's a pretty non constructive intro!
2024 - the year of formal methods. I like the sound of that
how do i get that ubuntu terminal in windows like the one you are using
Oh, I think at the time I was using WSL (Windows Subsystem for Linux) w/ Windows Terminal. Nowadays I use OSX with iTerm2.
Loved your video and I’d love to check out Acl2. If you’re into rewriting tools, there’s an interesting language called Maude that’s based on rewriting logic that has a lot of tools to make confluent reductions easier from the start. There’s a Church-Rosser checker, which I haven’t tried yet. I’m looking forward to your next video!
I don't think I have ever felt someone deserved my subscription and more exposure to the algorithm, thank you so much for making this! I'm looking forward to digging deep into this video tomorrow as I just laid down to sleep, and will return the generosity you have provided with feedback after I have digested it properly. Initial thoughts: The introduction daunts me but as soon as you got into coding I noticed I could follow. Appericiate the dark mode for this session and can see what you mean, while readability isn't bad it isn't emphatically good either. Name pronounciation was very acceptable, if you'd ask what I like the most are the "midas" and "made as" variant, without any hard emphasis on any vowel. Lastly, I am from a Sweden and it is 4:47 am right now, was on call this evening. Good night and thanks again!
Great examples of Conflict clouds. Loved video. Thanks for making and sharing.
I found this interesting, but am a little disappointed that the issue of choosing what rules to apply during the refactoring ended up being solved by using an existing library without (me) understanding the underlying process fully. You kind of gloss over your own knowledge there, I have no idea how you confidently defined the list of manual refactoring steps (14:23) and would love to see a video about it from your POV, be it methodology or just raw experience. Regardless, I'm glad I stumbled across your video and hope to see more of your videos in the future :)
Thanks @Maedas, this is very helpful feedback! I've been making some more advanced content this year and I'm not always very good abount saying what knowledge it depends on. I'll try and improve that going forward. I'm linking my playlist of refactoring videos and the older ones are more focused on my thought process as it occurs rather than these new techniques for tool support. Better yet, some teacher's that I look up to on this are Arlo Beshee (e.g. "Mastering Legacy Code Incrementally" talk) and Emily Bache (channel @EmilyBache-tech-coach). Cheers! th-cam.com/play/PLRe4i06eNAcDY4XjMfyEMK6hjnoIOpqk2.html
Oh, and the specific list of rules you're asking about were the same ones that I wrote in the Comby UI while inspecting the code in 9:45 - 13:00, if that helps at all. Mostly Boolean Logic simplification - might be a good topic for a followup video.
@@craftvscruft8060 Yeah the list is no problem, I saw and understood what you did I just have no idea how you came to the choices you did while doing it; If I had to build something like that it would take me 30 min and I would be very unsure about my methodology, kind of just guessing/looking at articles/asking around. A follow up on Boolean Logic simplification sounds lovely <3 I have basically a year and a half into a bachelors degree in Comp Sci but am sadly a bit averse to complex terminology; I feel a lot of jargon is thrown around unnecessarily so I tend to only learn it when I have a legitimate reason to. Given that, I do think that there is a niche on TH-cam of intermediate/advanced videos with simple terminology that really needs more creators, and this video at least was spot on there so highly enjoyable.
@@craftvscruft8060 thank you for taking my feedback correctly, I don't mean to be negative and am just straightforward in general 😅 Thank you, I'll check the playlist and the names out <3 An ending feedback also would be that the sceenshare is a bit bright; it's not something that will hinder me watching but is at the upper end of what my eyes tolerate, so I wonder if it would be possible to make it more... appealing? to dark mode users. I hope you understand what I mean and again it's very optional, but might be beneficial. Hope you have a good day :)
Wow! What if Ray solves refactoring? If teams could run an auto-refactoring tool that executes a bunch of reasonable refactoring rules in the same way they currently run their auto-formatting tool, it sort of changes everything.
Ray-Factor does have a ring to it :) I see refactoring as something where the target depends on your current goals, so I don't know if it'll ever be quite as fire-and-forget as formatting/linting. But these kinds of workflows - express one intention and 30 steps unfold - I think that's very possible. A major limiting factor is that our mainstream languages are not verification-friendly, so we either climb that analysis mountain or write more code in provable languages. Purely-functional languages might have a new secret weapon.
Excellent!
I love how you stumbled upon this... It makes total sense given the normalization / reduction steps taking place...
Absolutely, it's one of those moments when you realize you've learned the same concept twice for different reasons, it opens up possibilities. I think compiler passes are another example of this concept, semantics-preserving tree transformations. So some of the work on certified compilers should be applicable to refactoring
very cool that you can automate your own refactorings!
Great to hear from you, Emily. I think TripService kata is next! For everyone else, her channel is a great source of more refactoring content. www.youtube.com/@EmilyBache-tech-coach
17:53 Another use case is allowing an AI agent to transform code only via automated refactorings.
Yep! As we've discussed that's part of what started me down this path. I'm still not sure what the overall workflow looks like but it seems like promising area for LLMs + Tools. mender.ai/blog/turbo-refactoring
Yes! Inspiring. My mind is going in directions!
“..some really amazing things are going to be possible.” 👏😊 18:23 Workflows ❤
Promo`SM
Another interesting comparison to OKRs is Stephen Bungay's application of modern mission command to business management, as he describes in his book, The Art of Action. Goal Trees, Mission Command, and the, albeit elusive, effective implementation of OKRs all have a lot in common. One interesting thing about mission command, as Bungay describes it, is that it is explicitly intended to decentralize decision making to the people with the most situational awareness, because modern militaries realized a long time ago that centralized decision-making authority and rigid plans of execution do not scale. This decentralized decision making is another important aspect that isn't explicitly enforced in OKRs, and the reality is that the prevailing business culture isn't ready to trust "subordinates" to make decisions -- even within the scope of that employees responsibility, and even if it doesn't scale.
I still remember the first time, many years ago, I first came across CorgiBytes that I also had the reaction of, “I’m not the only one that likes fixing stuff!” The green field development mindset was so prevalent in the groups I was part of at the time.
Absolutely, I felt the same way. People like them and Arlo Belshee, Marianne Bellotti, Chelsea Troy for instance not only showed me skills, they helped me understand my identity. Such a powerful thing.
My Mind is Blown.
Update: Cognition has admitted the point about the incomplete Upwork task, I've updated the Nopilot blog entry with their remarks: nopilot.dev/blog/dissecting-devin
Great video, keet it up!
I just discovered your channel. This is cool!
It would be great if it were possible to utilize a local llm instead of chatgpt api. I'm restricted by nda right now, so I can't really work with a lot of code without it running locally :(
That's a really common issue, and nopilot.dev will also follow the local model use case. For now, I find the r/LocalLLaMA subreddit very helpful for that type of model news. The coding models are becoming usable - especially on machines that can run the bigger ones
I'm using ollama locally and privategpt looks promising too!
@@hypergraphic I'm using anythingLLM, it's has an amazing rag
@@hypergraphic Great to hear, I'll be writing about the setups people are using, let me know if you find a particular local model is working well
New episode on conflict clouds for personal growth out now with Karl Perry! th-cam.com/video/fBM1E-5Nabg/w-d-xo.html
Why don't you just ask it some medical questions both basic and advanced and then fact check the responses instead of repeatedly asking the same nonmedical questions over and over expecting a different result lol
Thanks for watching, Jarin! I don't evaluate tools in their capacity to give medical advice because I'm not a qualified medical researcher. This channel is about Software Engineering, my area of expertise. Peer reviewed studies are being done on LLMs in medicine, though I'm not aware of any formal evaluation of this product. The reason I would expect a different result a year later is that the company was made aware of the bug so it would be common practice to fix it. I was also reminded of this case due to a legal dispute involving an airline denying responsibility for what their support chatbot told a customer, covered in my episode "AI Accountability Shield" last month. th-cam.com/video/HYdzHP1eaCs/w-d-xo.html
@@craftvscruft8060 oh that's cool, I didn't know that was the case. I quickly browsed through your channel and you should make some software or a website strictly using chatgpt only with some simple and complex functions included. Id watch that.
@craftvscruft8060, that's a misguided perspective. Instead of limiting the tool to basic functions, consider using it for its intended purpose. It's like using a TI-84 calculator solely for addition and then claiming it's not worth the price because you aren't taking advantage of its advanced features.
This still reproduces today: th-cam.com/video/kOxpn_m3wIY/w-d-xo.html
Is there a way of classifying how thoroughly code has been proven?
Nice! I'd be interested in seeing a usage example that is directly applicable to some "real world" use case. The first one that comes to mind from my own career is promotional pricing systems. When working for a major retailer I encountered an overly-complicated pricing system that could have been expressed quite succinctly in predicate logic. The obvious challenge with that approach would be in creating a UX workflow that would allow (non-logician) product managers the ability to manage rules in the system. A workflow like the one you show in this video might be the solution to that UX challenge.
Thanks, Steve! Yes I think there is a powerful pattern here for as an LLM bridge to DSLs that are readable by domain experts but hard for them to precisely write. DSLs are still notoriously hard to get right but I think this could help them along if we don't forgo the quality of the abstraction
"If you don't do a good job, you're going to be left behind."
I started this video yesterday when I only had a few minutes free to watch it. I'm so glad that I came back to it today! This conversation with you and Ana has given me a lot to think about. Her perspective is immediately applicable to my current role in motivating nonprofit volunteers and computer science students.
Awesome! I was also surprised at how relevant some of her points were to daily dev life
Excited to see this!
Beautiful work! I love the focus on *suggestions*, and the way you leverage capabilities of humans, AIs and traditional software tools.
Thanks for the introduction to Z3!
Nice! I'm loving the Formal Methods series!
Thanks, Steve! I see some surprising parallels between formal methods and concept of DSLs you introduced me too way back when. I'll need to think of how to describe it but something to do with getting leverage out of clearly modeling a problem.
💕 *promosm*
Layoffs are to be expected at most companies evwntually and something everyone should plan for and hope to never experience. No matter what they say, almost no large corporation actually cares about their employees more than milking every dollar they can. They’ll actively hire more than they need in boom cycles knowing full well they’ll have to make large cuts soon down the line, but they’ll make more money if they hire now and fire later than if they have the appropriate staff. No one is safe, so plan accordingly. If I got fired I’d be more annoyed at having to interview than anything else and secondly annoyed at the lost income for however long it took to find a new job. Having half a year of income saved (I have way more) makes a layoff annoying as opposed to devastating. Forgive me for not caring when someone who makes a lot of money and blows it all due to life style inflation finds themseleves between a rock and a hard spot when they’re laid off out of no where.
Also your point of this being a leadership problem is 100% accurate and pertains not only to corporate America but to all societal structures including governance. Power structures across the board result in similar actions and is exactly why giving government more more more of everything does nothing generally except for exasperated preexisting problems. This is not a corporation phenomenon, it is a human psychological power dynamics phenomenon and will almost certainly be with us as a species in perpetuity
Thanks for the thoughtful response, apple number, I have a couple reactions. Wholeheartedly agree with "No one is safe, so plan accordingly" - that's probably my central message here as well. "Forgive me for not caring when someone who makes a lot of money [...] finds themselves between a rock and a hard spot" Maybe I've misunderstood but I feel like you might be casting casual judgement on an extremely large and varied group if you're implying no one in entire tech sector (or even beyond) would deserve sympathy upon being laid off. We're talking about hundreds of thousands of people and we can't make blanket assumptions about the options they had to do better. Of course we're not too worried about the L6 teamleads but that's beside the point.
@@apple1231230 "This is not a corporation phenomenon, it is a human psychological power dynamics phenomenon" I agree with this except where it might imply we can't improve. If we have a natural tendency to organize in power structures and then mistreat eachother that makes it all the more important learn how to temper the impact, like we would do with any other force universal even gravity. That's the philosophical argument and the empirical one is that for almost any kind of worker mistreatment we could find an example of a well-performing company that chooses to do it less. In the case of layoffs Toyota has maintained none for full-time employees for 80 years, right?
@@craftvscruft8060 I agree with you saying not to make blanket statements, and everyone has their own unique scenarios. I'm specifically refering to people who for all intents and purposes, (own a house at a good rate, make high salaries, no familial trauma and/or expensive medical needs they're having to deal with, decent mental state, and generally well off etc) are well off but still find themselves in a terrible spot upon being layed off, which is a lot of people. you can make excuses to varying degrees of validity for every problem in ones life, but at the end of the day many people would find themselves in a major pickle if laid off unexpectedly shearly for being terrible with personal finance. i don't feel bad for these people, which i would argue is probably the majority in this situation, assuming were talking corporate lay offs, not factory workers at amazon. as for your second reply i wholeheartedly agree. Im actually a closeted optimist. I think companies should and can do better, but realistically many don't, so one should plan for the worst and look for the best. If you ever find yourself privleged enough to own a company, as i hope to in the future, strive to make it a fair and valuable place to work. My philosophy will be radical transparency. We'll see how that goes.
I like you.
I saw a layoff come and go at a big co I worked for that the GM (brand new to the org with no clue who did what) based who got cut 100% on the content of voluntary feedback forms you had to find and choose to fill out. I was sending these out regularly to attempt to make a case for my getting promoted, but a guy that had been on our team 15+ years and was vital to its operation got canned because he was focused on work and wasn't sending out peer review forms. That manager was kind of a disaster and just wanted to outsource stuff to india, so I'm glad she didn't last.
Sounds like a mess glad you're on your feet thanks for the story from the trenches
"Elite and top professionals don't get fired"... that's a bit like saying good people NEVER get cheated on by their spouses. You'd expect a CTO to be a bit more clever than to see the world in non-negotiable absolutes.
Yeah it was honestly strange and if I knew them I might ask what life experience gave them the urge to jump to such a confident conclusion about a stranger in another country in defense of an as yet unnamed company. Execs may need to make snap decisions sometimes but you don't need to go out of your way to do it on your time off! Could've asked a question. I try to resist getting confrontational but that sort of thing seems important to push back on, because who knows when the next time some hiring manager like them is going to discount a candidate for getting laid off?
As you allude to in your overlay of the Federal Funds Rate and tech layoffs, we are learning just how exposed we are to cyclical risk. I probably have one more sizable economic downturn to survive before retirement, and I'm already giving considerable thought to my strategy for being better positioned for the next one.
I see that Dafny has support for bounded integer types. I wonder if ensuring the invariant "0 <= quality <= 50" would be easier with a bounded type. (Of course the fact that Sulfuras has quality = 80 makes it more complicated.)
Thanks for watching, Fin! Yes, I'm still new to this but it seems like at least it would have been more idiomatic Dafny to use "nat" or maybe a more specialized: type Quality = n: nat | n <= 80 The built in natural number type itself is really just: type nat = n: int | 0 <= n But as you point out it doesn't handle both bounds, you'd still need the pre/post conditions to check it based on the name. If I wanted to model it directly in Dafny's type constructs I think there are both OOP and FP ways: inheritance (so one Item subclass always returns 80) or even Algebraic Data Types type Quality = n: nat | n <= 50 datatype Item = Sulfuras | Item(name: string, sellIn: int, quality: Quality) Maybe a weird use of ADTs but now no behavior about Sulfuras needs to be asserted because it has no properties to change. Good luck refactoring our way there though :)
Some thoughts. Mutation testing: How would the equivalent of mutation testing look like for these proofs? Let's say you want to make sure your proof represent the current implementation in full. A mutator might mutate the code in a sandbox and validate that mutants are killed by the proofs. Refactoring: Even while relying on these proofs while refactoring, I feel we should go for something like lift up conditional and other small safe steps, instead of building up a new implementation from scratch. Thank you for these! I'm learning a lot :)
Great ideas, Nitsan. Yes, in similar ways that we can discover gaps in tests we can find gaps in specs ("underspecification"), those include review and mutation testing. Formal verification doesn't remove the need for any trust, just moves it to very well-defined areas - any problems must be either in the spec or the prover itself. Often that's a good tradeoff, I see it as a judgement call similar to filling out a test pyramid. Small steps are great as always. In a way I did develop the replacement incrementally because I specified it as equivalent for one item type at a time, but a better way to show that could have been to make the original implementation delegate to the new one for each case as I went. Since you've done TDD training you'd likely have more thoughts about the best ways to present these concepts, look forward to talking more.
Beautiful stuff!
Beautiful and inspiring!! 👏
Thanks, Nitsan! You should come on the channel sometime, maybe think about a topic you'd like
Despite some mistakes, I didn't reshoot the demo because this time the point is to embrace the disorientation of being at an early stage of practice. If you're trying follow along learning Cursorless, here's some Errata: It didn't capture "each" for "e" when I voice-typed the alphabet. A few times I used "find" instead of "fine" as the "F" phoneme, though the recognizer corrected it. When I said "delete char left fourth", I accidentally combined several ways to do it: Talon's "clear char left forth", "delete fourth" or Cursorless "chuck last four chars" would have been correct. When I "chuck line" and immediately recreated an empty line with "pour line", that's better as a single command "clear line".