Vincent Murphy

997 posts

Vincent Murphy

Vincent Murphy

@vdm

Katılım Haziran 2007
5.6K Takip Edilen822 Takipçiler
Vincent Murphy retweetledi
Alexander
Alexander@alexanderrX_·
the older i get the more i understand why people leave the uk for spain, portugal, south of france. i love london. but the weather is painful and i’m from scotland so the bar is already low. 2 hours on a plane and you’re back in the uk same day. if you can work remotely and you’re still here staring at grey skies you need to ask yourself why.
Alexander tweet media
English
62
9
320
44K
Charity Majors
Charity Majors@mipsytipsy·
Banger of a piece, from start to finish. 🔥 "We have handed agents the codebase, the tests, the docs, the specs, the commit history." "We haven't handed them the one artifact that actually survived — the record of what users have been asking the system to do, every day, for years." "Until agents can read that layer — not as log lines, but as behavioral contracts, as the accumulated promise a system has made to the people who depend on it —harness engineering in brownfield and blackfield will remain a human problem with an AI assistant bolted on." linkedin.com/pulse/producti…
English
13
22
254
47.1K
Igal Tabachnik
Igal Tabachnik@hmemcpy·
A few days ago, I mentioned an old talk by @gregyoung about being able to just delete code whenever you want. It's still profound even after all these years, and I highly recommend watching "The Art of Destroying Software". Which is exactly why I'm really bullish on ralph and/or whatever @GeoffreyHuntley is working on next. Having just watched @ThePrimeagen put it in (way too many) words: AI lets me quickly build things I would never have normally built... and throw them away later! We are living in the future and this is just the beginning. youtube.com/watch?v=gRi82P…
YouTube video
YouTube
English
2
5
32
11.4K
Vincent Murphy
Vincent Murphy@vdm·
@swyx "instead of logs, write to sqlite whatever you will want to query as eval"
English
0
0
0
108
swyx
swyx@swyx·
probably the single most helpful vibe coding tip i can offer that i havent seen anyone talk about yet: in development, log ~every execution step out with the idea of helping your LLM debug its own code help your LLM help you. one upfront intentional investment in logging, then you just copy paste bugs and execution traces to modify (even dynamically linked runtime) behavior with high certainty that the LLM will "get" what you need.
swyx tweet media
English
81
66
1K
98.2K
murat 🍥
murat 🍥@mayfer·
i find claude code, codex cli & gemini cli really annoying makes no sense to make a fullscreen React app in terminal that hides inputs/outputs when they fill available space these tools should be scrolling stdin/stdout tools that feed other UI wrappers that control them
English
13
2
150
20.9K
Vincent Murphy
Vincent Murphy@vdm·
sam@samgoodwin89

A post on my decade long journey with Infrastructure-as-Code, why I built my own minimal library in pure TypeScript and why I think you should at least entertain the idea of "un-bundling IaC" and returning to simplicity. I built alchemy after years of working with every other option, from CloudFormation, CDK, to Pulumi, Terraform and Kubernetes. IaC is non-negotiable in my opinion, and is one of my favorite technologies as a developer. I started with CloudFormation since I worked at Amazon and really hated that. JSON is just not expressive enough for me and debugging broken stacks was was always something I dreaded. I'm pretty sure the CFN website still squashes the whole error message into a 10 pixel wide box 😅. The CDK is an upgrade on that (because yay for TypeScript) but it is still always going to be limited by the CloudFormation service, which is very slow to change and use. Being developed by corporate giant Amazon and with the founder moved on to new ideas, you just have to accept that things will move more slowly and you have no say or control over that. It's how things are in a big centralized company. One mega wart with the CDK technically is its awful coupling to synchronous I/O, making it damn near impossible to do anything async. Every user inevitably runs into this, googles it and is met with "fuck off" in the GitHub issues. Then we're forced to hack around it, which is not pretty. Not allowing is async is basically not allowing JavaScript. I doubt it'll ever be fixed. They're also stuck on CJS. Taking a dependency on the CDK and using it anywhere other than locally will 10x the size of your app and destroy your DX. It's a tangled mess of of complicated, legacy TypeScript code generating complicated, proprietary JSON files uploaded to the complicated, opaque, proprietary CloudFormation service 🫠 Why? How does this serve the user? Later, I moved on to Pulumi, which was a nice change of pace since it runs locally and is much faster. You can cancel a deployment by hitting Ctrl+C (hallelujah!) and it also supports more than just AWS, which is great because everything should be managed sensibly in code. However, Pulumi is largely a wrapper around Terraform. If you thought you were going to escape the layers, you were sorely mistaken. That JavaScript is just lipstick on the pig that are clunky "providers" implemented with Go, running in a separate process. You can't just run Pulumi everywhere (like the browser) and it even struggles to run in AWS Lambda if you're using ESM. Pulumi Custom Resources are possible but more of an afterthought and a PITA to implement. They have many sharp edges and gotchas, like the resource code having to be serialized and their coupling to CJS - so if you import the wrong thing with ESM, it just breaks. I couldn't even use AWS SDK v3 in a simple custom resource because of how leaky these hacks are. If Pulumi bricks itself by getting into some weird state, good luck fixing it. Their state files are complicated and their providers are opaque, so you're really just stuck running `pulumi refresh` and praying, or surgically removing and restoring resources one by one. It's not transparent. I've used Terraform when I've been forced into it. It does exactly what it claims to do, but I don't love it because it's a custom DSL and a heavy toolchain. And for what? Calling a few CRUD APIs? Way overkill. If it doesn't already exist in Terraform, then just forget it. Every time I think about implementing a custom resource for Terraform, I just can't bring myself to do it. Let me just write a function in my language, please! Lately, I've been using SST because I've been doing a ton of web development. At first, I really liked SST because of its local development experience. `sst dev` gives you live deploy, a TUI multiplexer and a proxy from the cloud to your local code. This is great for building web apps in AWS. But, SST is a wrapper around Pulumi!! (which is a wrapper around terraform (which is a wrapper around the underlying SDK ( ... ( ... ( ... )))) ... Layers. Layers. Layers. When will it ever end? As my app grew, SST's bugs and opinions ate away at me. I got blocked by broken resources that have race conditions and it was impossible to work around (still is, by the way). I also wanted to deploy a nested app using another `sst.config.ts` but it conflicted with their assumptions around generated sst-env.d.ts files. Again, I was let down by the complexity and opinions(!) of my chosen IaC framework. And for what? To help me call a few CRUD APIs and track my Resources? Honestly, it just seems insane how far we've drifted away from simplicity in this area. This became even more apparent as I started using Cursor more and more to write code. You see, I've found myself doing more frontend than I've ever done before, and I'm not a good frontend developer. So, I relied on Cursor to write most of the code for me and (as many others have experienced) it totally blew my mind 🤯 Cursor is just really, really, really good at TypeScript, React and Tailwind. I've built a functioning and (if i don't say so myself) good looking SPA. It's been a blast. As a "backend guy", i feel my world has opened up. But, this got me thinking ... you know what else Cursor is really great at? Perhaps even better at? 👉 Interacting with CRUD APIs. While there's a ton of frontend training data for LLMs, there's just as much (if not more) training data for CRUD lifecycle operations. They've also ingested all of Kubernetes, Terraform, Pulumi, SST and the AWS CDK's training data. Modern LLMs know it very well. Long story short, I discovered that Cursor can pretty much one-shot the implementation of Resources. All of the resources in Alchemy are entirely generated on-demand (5 minute time investment, tops). When I run into a bug, I just explain it to Cursor who fixes it immediately. Working this way may seem like more work at first glance, but in practice I think it's not. I will never get blocked by working this way. I will never have to wait for another person to prioritize my problem, merge a fix and release the change. I will never be confused about what's actually happening under the covers. This is a game changer for me. It means we don't need tools like Terraform to build layers of "provider" suites for us. We just need the engine - the bit that tracks state and decides what to create/update/delete. The rest can be generated at near zero cost. I suspect a lot of people gripe with me on this claim of "zero cost" because they have not yet embraced the AI-generation workflow. Their instinct is right, but outdated. Before LLMs, I would agree that this was infeasible, but I think we've finally crossed the threshold where LLMs can do this work trivially and respond in real-time to your requirements. If this is not obvious to you, then I suggest forcing yourself to practice with AI code generation. When it fucks up, try blaming yourself instead of blaming and discarding the LLM. I think you're missing a skill. This is why adoption curves are a thing, do you want to be a laggard? At the end of the day, you need to realize that agency is going to matter more and more as time progresses and that shackling yourself to a mega-provider who doesn't even know your name is a ticket to inefficiency. I think we've mostly been hoodwinked into thinking that because managing infrastructure is complicated, we need complicated solutions. Now is the time for that pendulum to swing back in the other direction and "un-bundle" IaC.

QME
0
0
0
119
Mitchell Hashimoto
Mitchell Hashimoto@mitchellh·
Terraform is still the best. But I'd like to see someone replace it. The major alternatives aren't interesting to me cause they're too iterative and copycat. I want to see fundamentally new ideas take hold. IaC feels stagnant.
Adam Dingman@adam_dingman

@mitchellh If YOU had to build in the cloud today, would you pick up Terraform or something else?

English
61
31
824
155.4K
murat 🍥
murat 🍥@mayfer·
coding agents need sandboxes where they can roam freely within. in there, they can access the terminal all their behavior should be terminal commands, NOT json function calls every single tool available to the AI should be directly callable by a human in the SAME way. everything from grepping, to merging described changes into a file, to running tests, to installing dependencies, to putting DB tables into context, to scraping websites, EVERY SINGLE PIECE needs to be a stdin/stdout shell command with args the AI, instead of MCP or whatever, should be given a man page of all available cli commands, and so the human can also run these directly from the terminal this way the AI and human can share the terminal in a collaborative way as well. all sync/async behavior is also directly emergent as a result of forking processes from your shell. additionally, this needs to happen in a virtualized and snapshotted OS environment so AI can try things without asking for permission like a baby and stop nagging the human to get things done. when problems occur you can simply revert to snapshot. the virtualized OS should have the app dev env running with app changes immediately available to the user (or ai) to test anyways long story short i think im gonna do this because i've had ENOUGH with people's closed wall app environments where the best pieces can't be mixed and matched
English
28
10
246
38.8K
murat 🍥
murat 🍥@mayfer·
AI coding tooling & coding agents being packaged into products (and even worse, cloud products) is the wrong path tool use from MCP/JSON also wrong path using unix tooling, and BUILDING unix tooling is the CORRECT path (and no that doesn't mean cli GUIs) let me explain:
English
10
21
334
41.7K
Manuel Simoni
Manuel Simoni@msimoni·
"Perhaps paradoxically, the success of UNIX is largely due to the fact that it was not designed to meet any predefined objectives. … Our goals throughout the effort … have always concerned themselves with building a comfortable relationship with the machine" —Ritchie & Thompson
English
4
2
46
1.3K
Mim
Mim@mim_djo·
@vdm true
Mim tweet media
English
1
0
4
247
Mim
Mim@mim_djo·
#Powerbi compression is insane
Mim tweet media
English
4
1
31
3.1K
Vincent Murphy
Vincent Murphy@vdm·
sam@samgoodwin89

A post on my decade long journey with Infrastructure-as-Code, why I built my own minimal library in pure TypeScript and why I think you should at least entertain the idea of "un-bundling IaC" and returning to simplicity. I built alchemy after years of working with every other option, from CloudFormation, CDK, to Pulumi, Terraform and Kubernetes. IaC is non-negotiable in my opinion, and is one of my favorite technologies as a developer. I started with CloudFormation since I worked at Amazon and really hated that. JSON is just not expressive enough for me and debugging broken stacks was was always something I dreaded. I'm pretty sure the CFN website still squashes the whole error message into a 10 pixel wide box 😅. The CDK is an upgrade on that (because yay for TypeScript) but it is still always going to be limited by the CloudFormation service, which is very slow to change and use. Being developed by corporate giant Amazon and with the founder moved on to new ideas, you just have to accept that things will move more slowly and you have no say or control over that. It's how things are in a big centralized company. One mega wart with the CDK technically is its awful coupling to synchronous I/O, making it damn near impossible to do anything async. Every user inevitably runs into this, googles it and is met with "fuck off" in the GitHub issues. Then we're forced to hack around it, which is not pretty. Not allowing is async is basically not allowing JavaScript. I doubt it'll ever be fixed. They're also stuck on CJS. Taking a dependency on the CDK and using it anywhere other than locally will 10x the size of your app and destroy your DX. It's a tangled mess of of complicated, legacy TypeScript code generating complicated, proprietary JSON files uploaded to the complicated, opaque, proprietary CloudFormation service 🫠 Why? How does this serve the user? Later, I moved on to Pulumi, which was a nice change of pace since it runs locally and is much faster. You can cancel a deployment by hitting Ctrl+C (hallelujah!) and it also supports more than just AWS, which is great because everything should be managed sensibly in code. However, Pulumi is largely a wrapper around Terraform. If you thought you were going to escape the layers, you were sorely mistaken. That JavaScript is just lipstick on the pig that are clunky "providers" implemented with Go, running in a separate process. You can't just run Pulumi everywhere (like the browser) and it even struggles to run in AWS Lambda if you're using ESM. Pulumi Custom Resources are possible but more of an afterthought and a PITA to implement. They have many sharp edges and gotchas, like the resource code having to be serialized and their coupling to CJS - so if you import the wrong thing with ESM, it just breaks. I couldn't even use AWS SDK v3 in a simple custom resource because of how leaky these hacks are. If Pulumi bricks itself by getting into some weird state, good luck fixing it. Their state files are complicated and their providers are opaque, so you're really just stuck running `pulumi refresh` and praying, or surgically removing and restoring resources one by one. It's not transparent. I've used Terraform when I've been forced into it. It does exactly what it claims to do, but I don't love it because it's a custom DSL and a heavy toolchain. And for what? Calling a few CRUD APIs? Way overkill. If it doesn't already exist in Terraform, then just forget it. Every time I think about implementing a custom resource for Terraform, I just can't bring myself to do it. Let me just write a function in my language, please! Lately, I've been using SST because I've been doing a ton of web development. At first, I really liked SST because of its local development experience. `sst dev` gives you live deploy, a TUI multiplexer and a proxy from the cloud to your local code. This is great for building web apps in AWS. But, SST is a wrapper around Pulumi!! (which is a wrapper around terraform (which is a wrapper around the underlying SDK ( ... ( ... ( ... )))) ... Layers. Layers. Layers. When will it ever end? As my app grew, SST's bugs and opinions ate away at me. I got blocked by broken resources that have race conditions and it was impossible to work around (still is, by the way). I also wanted to deploy a nested app using another `sst.config.ts` but it conflicted with their assumptions around generated sst-env.d.ts files. Again, I was let down by the complexity and opinions(!) of my chosen IaC framework. And for what? To help me call a few CRUD APIs and track my Resources? Honestly, it just seems insane how far we've drifted away from simplicity in this area. This became even more apparent as I started using Cursor more and more to write code. You see, I've found myself doing more frontend than I've ever done before, and I'm not a good frontend developer. So, I relied on Cursor to write most of the code for me and (as many others have experienced) it totally blew my mind 🤯 Cursor is just really, really, really good at TypeScript, React and Tailwind. I've built a functioning and (if i don't say so myself) good looking SPA. It's been a blast. As a "backend guy", i feel my world has opened up. But, this got me thinking ... you know what else Cursor is really great at? Perhaps even better at? 👉 Interacting with CRUD APIs. While there's a ton of frontend training data for LLMs, there's just as much (if not more) training data for CRUD lifecycle operations. They've also ingested all of Kubernetes, Terraform, Pulumi, SST and the AWS CDK's training data. Modern LLMs know it very well. Long story short, I discovered that Cursor can pretty much one-shot the implementation of Resources. All of the resources in Alchemy are entirely generated on-demand (5 minute time investment, tops). When I run into a bug, I just explain it to Cursor who fixes it immediately. Working this way may seem like more work at first glance, but in practice I think it's not. I will never get blocked by working this way. I will never have to wait for another person to prioritize my problem, merge a fix and release the change. I will never be confused about what's actually happening under the covers. This is a game changer for me. It means we don't need tools like Terraform to build layers of "provider" suites for us. We just need the engine - the bit that tracks state and decides what to create/update/delete. The rest can be generated at near zero cost. I suspect a lot of people gripe with me on this claim of "zero cost" because they have not yet embraced the AI-generation workflow. Their instinct is right, but outdated. Before LLMs, I would agree that this was infeasible, but I think we've finally crossed the threshold where LLMs can do this work trivially and respond in real-time to your requirements. If this is not obvious to you, then I suggest forcing yourself to practice with AI code generation. When it fucks up, try blaming yourself instead of blaming and discarding the LLM. I think you're missing a skill. This is why adoption curves are a thing, do you want to be a laggard? At the end of the day, you need to realize that agency is going to matter more and more as time progresses and that shackling yourself to a mega-provider who doesn't even know your name is a ticket to inefficiency. I think we've mostly been hoodwinked into thinking that because managing infrastructure is complicated, we need complicated solutions. Now is the time for that pendulum to swing back in the other direction and "un-bundle" IaC.

QME
0
0
1
68
Mark Burgess
Mark Burgess@markburgess_osl·
This originally Japanese invention for single pour-over coffee is popular all over Asia. Has anyone seen them on the West? Or are we condemned to espresso here?
Mark Burgess tweet media
English
8
0
7
1.7K
@levelsio
@levelsio@levelsio·
I got this Deco WiFi mesh set up for the house It works for a few days then randomly shit just starts cutting out and goes down Is it a shit product? Or what do I do? 3 concrete floors and need WiFi everywhere, I guess wiring the mesh extenders w/ LAN is the only way? Now they extend the mesh WiFi signal through the house by extender to extender
@levelsio tweet media
English
147
1
82
94.2K
Tony Stewart
Tony Stewart@TonyLStewart·
@btaylor Random question , how do you access your old blog posts on your site ?
English
2
0
2
1.2K
adam-james
adam-james@RustyVermeer·
I'm increasingly interested in making 'bespoke CAD tools for makers'. I love #clojure for this sort of thing, but wonder if there are other companies, tools, people that are already doing this exact thing that I can learn from or connect with?
English
2
0
7
284
Henrik Mølgaard
Henrik Mølgaard@HenrikMolgard·
@stevenbjohnson What I would really love to have is sliders for: Seriousness Interruptions by the hosts Number of "Uhuhs" and "Ahas" The expert level of the hosts. Are they explaining the Neuroscience text to a Neuroscientist or a five year old. Freestyling - Sticking to sources or going rouge
English
2
1
19
1.2K
Steven Johnson
Steven Johnson@stevenbjohnson·
New feature now live at NotebookLM.google.com: "Convert notes to source." • Focus the AI on your sources and notes at the same time • Follow inline citations directly to relevant passages from your notes • Generate Audio Overviews based on your notes You'll see this feature at the top of the screen in an open notebook, right next to "Add note." By default it will give you the option to convert all of your notes into a single source. But you can also select notes manually and convert them to a source as well. Whichever option you choose, it will combine your notes into a single source, with each note separated by a divider, and it will give the source a name like "All notes 10/18/24." It's also an easy way to back up all your notes -- just select all the text in your "All notes" source and paste into an another app. FYI, any notes that you have converted to a source will not auto-update if you change the original note text. (I have basically gotten into the routine of combining all my notes into a source once a week, and then deleting the earlier compilation.) The previous mechanism for focusing the AI on your notes (by selecting notes and then using the chat) may continue to work for the next few weeks, but we are going to stop supporting that approach soon when we roll out some exciting new UI elements. More soon on that front...
Steven Johnson tweet media
English
17
54
515
57.6K
Andree Toonk
Andree Toonk@atoonk·
Ooh man, bummed to hear Equinix Metal is shutting down. I loved the original Packet service and later the @equinixmetal version. Ran many of my network perf testings and BGP anycast pet projects on their amazing infra. End of an era. 😔
English
5
5
44
4.6K
Phil Trubey
Phil Trubey@PTrubey·
The interviewer was having a hard time understanding their topology, and I don't blame him, it wasn't explained very well. Sounds like they are using 10G Ethernet from building to building with an Ethernet switching architecture in each building. Normally that would spell disaster, since Ethernet provides no effective isolation between different customers in one building, but since they make their own customer hardware, they can make it work. They also loop their building to building network into a ring, and their (again in-house developed) routers/switches can quickly fail over to sending packets in the opposite direction in the loop should a fiber cut occur. This replicates the SONNET architecture that Telcos used to have for fiber, but never get used down at the individual customer level. This is very smart since the router based fail over protocols are ridiculously complex and still routinely cause Internet outages due to misconfiguration issues. I would very much like to learn more about the details since it sounds like a very innovative Fiber To The Home architecture as compared to the GPON topology that 99% of fiber to the home networks use.
English
2
0
9
234
Christian Keil
Christian Keil@pronounced_kyle·
Somos Internet is a Y Combinator startup that lays 2 km of fiber every day in Colombia. They already have 27,000 subscribers — because people want what they offer: 100 Gbps internet connections for just $80/m. How is that possible? Somos is building a new kind of network from the ground up — plugging into transatlantic fiber, building his own backbone, connecting into apartments, and building custom routers that can handle that much throughput. Forrest (@forrestheath3) visited me at my office, and we talked through the technical details. I think you'll love it. HD Version at the link in my bio. Timestamps: 00:00 — Introducing Somos Internet 02:40 — Nobody Understands how Telco Networks Work 03:51 — How to Learn About Telco Anyways 04:53 — How Forrest Won Over the Local Drug Lords 06:50 — The Idea Maze: from Wifi to Fiber 09:25 — What Somos Internet is Building: Enterprise-Grade Fiber to Your Home 12:05 — How Telcos Work Today (and Their Fundamental Flaw) 15:46 — "The Core Innovation of Somos Is..." 17:40 — HOW IT WORKS: A Nested-Ring Topology, Not a Tree 21:43 — An End-to-End Service 23:57 — (Including Routers) 25:00 — How is 100 Gbps per Customer Possible? 31:08 — How They're Cheaper: Switches, not Routers 35:00 — Why Sell a Consumer Service? 39:40 — Why Doesn't Bell Labs Still Exist? (It's the MBAs.) 42:28 — Customer Service is Easier When You Build Everything Yourself 43:37 — Telcos Have Given Up on Innovating 47:46 — How to Build a Team Smart Enough to Execute This Vision 51:41 — Is This a Hard Idea to Pitch a VC? 55:58 — Could Somos Have Started in America, not Colombia? 59:23 — How Did Forrest Learn All of This From Zero? 1:02:36 — What Technical Challenges Are Next For Somos?
English
71
156
1.3K
269.8K