I always considered the massive digg.com revolt to be the "beginning of the end". It was between Reddit and Kuro5hin in those days. Who was going be the next "Slashdot"? It's the same story over and over though. Site reaches critical mass, it needs to afford hosting, infra, salaries.... what do they do? Monetize.
HN user
nobleach
Staff Engineer ww.com
I agree. If I pirate a book and share it on the web, and I get busted for doing so, and subsequently pay a fine, I don't get to KEEP sharing it on the web.
Now, if I license the book, I might be able to come to an agreement with the author/publisher whereby I can share some of it.
Yeah, guile has a library that looks close to what I want. The worry is that railway programming is an entire shift in error handling. Since it's not the standard that I've seen in the Lisp/Scheme world, I'd be forcing a paradigm that no one wants.
That's just crazy! (in a good way) I've been in software since 1998 and it's like I've just uncovered a whole new world.
I particpated in a Clojure reading group for "Getting Clojure" back around 2017. Having the entire JVM ecosystem available, is absolutely a great benefit. I even fooled around with ClojureScript a bit. David Nolen is great at making the case for both.
Perhaps, but Chicken? Guile? Chez? They're all pretty cool.
Since a few folks here recommended Common Lisp to me as the language that would "tick all my boxes", I've been doing a deep dive. Right now, I'm working through SICP again with DrRacket. The first time I worked through it with MIT Scheme MANY years ago. It's shocking how much I've forgotten.
What I like about this article is that it walks through the different "camps" of Lisp. Scheme is so intriguing to me because of how small it can actually be. I can build nearly any paradigm I want to exist. The problem is, if I were to actually go find a job where they were using a Lisp, (I hear those actually exist) they wouldn't want to use my "Result monad + match statement - railway pattern" that I've used from OCaml and Rust. So learning something that is truly "common" can make more sense.
As far as learning though, Scheme feels "just right". I've imposed a "no AI until I've found a working solution" rule that keeps my mind engaged. Couple that with a willingness to say, "I don't know that right now... I'll think about it throughout the day and maybe by this evening I'll have an answer".
Matrix 2 had Trinity using a well known nmap hack at the command line! I like that attention to detail.
I think people see the "pricing" and are turned off. The base is completely free! Some of the ecosystem is not. The big selling point for me, is the size of the library. HTMX and Alpine are a bit larger. The downside for me is needing to have a template type that supports streaming. (Thymeleaf in Java vs JTE) My controllers also have imperative code to support the streaming. None of this is enough of a turnoff however. For my simple apps, I'm extremely happy with how simple both HTMX and Datastar make my logic. (I replaced a React front-end and got rid of the whole build step).
We just watched this movie last night (as a tribute to Sam Neill). I loved all the SGI hardware. Although the Irix FSN file explorer scene made me cring. It was excurciating watching Lex navigate. On that era of hardware, midnight commander would have been my jam. (or honestly `ls` just like it is now). I did love seeing Dennis pounding on that Apple ADB keyboard (even though there was no way that'd be hooked to an SGI Indy unless he did serious work). Just for giggles, I hit up eBay to see what a Quadra 700 was going for. Wait, WHAT??? 1500 - 2500 USD??? For an antique that will do nothing all that useful? Wow. Wish I still had my Macintosh SE that I could sell to put my kid through college....
Yes, I've always heard it used in this context. I really believe the other use is because someone misheard "service", and it stuck.
The JS version of the book (I still bought it when it came out) is just weird. It has you writing JS in a non-idiomatic way that you'd never see (nor should you be the person introducing) in the industry. SICP teaches a very LISP-y way of thinking through problems. It's not that you CAN'T apply these tactics in other languages... they're just far more "at home" in Scheme/DrRacket/heck... even Clojure.
This is why it's so awesome watching David Malan teach Harvard CS50 (free YouTube videos). His presence, knowledge and overall enthusiasm for the topic are outstanding. If more of my college courses had that level, I'd have been far more engaged. When I look back, I realize that I paid a TON of money to have some professors basically "phone it in", yet expect me to basically teach myself their subject of expertise. "Build a compiler". Yes, I can (and did) learn that from a book. I imagine if I had someone truly engaging the room during those sessions, I'd have come away with FAR more appreciation. That could have even led to a different career path.
It's been long enough that I have nothing but rose-colored affinity for the dBase III, FoxPro and CA Clipper apps that I used to work on. In the early days, my company looked at Harbour (https://harbour.github.io/) as a "quick way" to get some of our account payable systems onto the web back in the late 90s. In the end, a full rewrite with MySQL + Perl DBI was what we chose. I remember that being far more painful. I wonder if I'll have similar rose-colored appreciation for that stack in 20 years.
I'm sure now that they've right-sized the org, the leftover engineers + AI are really gonna grind out the best features. We should be seeing 10x any day now.
I use Claude at work and Kimi for side projects. My org has LiteLLM and Kimi 2.5 enabled but it rarely works, so Claude and GPT are my main tools. I actually enjoy Kimi more as it feels like a dev in a job interview. Watching it reason through problems is a lot like I tend to explain things during whiteboarding sessions. The number of times it says, "wait", is just funny. Claude on the other hand is much more like an employee (or team of employees) that already know they have the job. It doesn't do a ton of explanation up front. (you can dig into processes if you want). It just goes along, asking questions only when it needs... and then delivers a comprehensive report or plan. OpenCode is a better harness. I don't have a direct comparison on costs, as I haven't tried to do the exact same prompt on both models. I can say that I recently had Kimi generate a wrapper around libpq for the ZenC programming language: https://github.com/nobleach/zenc-postgres and it took about an hour or so and cost around 4 dollars.
Yeah in this case, I needed to pop up a <dialog /> and take some form info, persist it via POST and then show the result of a "used" card/token. So there just wasn't a lot of need for libraries. I'm from the VERY old school so I do recall the fresh hell of including many deps via script tags (pre-Bower!)
Recently I had to migrate an old SpringBoot app that had a React front-end to a new cluster. Not wanting to mess with super-old dependencies, I opted to rewrite it on a new version of Java/SpringBoot. When it came to the frontend, I paused. I couldn't come up with a single good reason why this app needed React. I rewrote the frontend in straight HTML with a little bit of JavaScript for DOM manipulation. I literally used `var` instead of `let/const` just to drive the point home... (yes, that was overkill). But you know what I didn't need? A BUILD PROCESS! No npm deps. No vite/rsbuild/etc. It was like I had forgotten we could even DO that.
Don't get me wrong, I actually have enjoyed React over these past 10 years. But, including it blindly is just silly.
So far the place where I've seen "more code being written" having a postive effect, has been in paying down tech debt and reduction of overhead. We've rewritten services (bringing multiple microservices back under moduliths) and cut costs. But I'm talking about net-negative code. That's not the point you're making. I agree that puking out 20 new features likely wouldn't gain us more revenue.
I've loved Vite from the moment it was public. I also tried Snowpack back in the day. (fun story that Fred "fks" went on to create Astro after Snowpack didn't gain traction). The fact that we can "just forget it exists" is a major win in my case. Webpack - while maybe a win over Grunt/Gulp, was MASSIVELY complex.
I too am a bit uneasy. It's not always the case but, corporate ingestion is often where cool projects go to die. The good news about open source is that we have enough Terraform->OpenTofu & Redis->Valkey stories out there.
Sounds like something that a browser like Brave was built to combat. I haven't visited the site in question but for a lot of the ad-heavy sites I do visit, I jump over to Brave to deal with the nonsense.
And to bring it full-circle, this is the exact same thing I run into with Go. When I mention how nice it is that Lang X has feature Y, someone is quick to point out that either, "You can BUILD that in Go" or, "You don't really need feature Y". We've proven that we don't really NEED compilers either... but I would hate to have to do my job without them.
I read Hacking Exposed around that time period. Up until then, my only "hacking" experience was with AOHell and everything that came along with that. It was interesting, but I wasn't really into the idea of trying to use CreditWiz to increase my odds of prison time. (I was a kid, I thought everything would lead to prison). Back Orifice just seemed like a great sysadmin tool!
I'm gonna have to dive into a rabbit-hole! I was working on an ESRI Shapefile to GeoJson converter back in those days. But D3 and Leaflet were such cool tech! MapBox too. Linking SagaGIS with PostGIS to do pre/post wildfire analysis was my jam.
We used this extensively when I worked in this space (2010 - 2014). My favorite addition was using https://github.com/topojson/topojson to add arcs. That cut down on quite a bit of points to represent curves.
Were you expecting "Got hacked, BRB"? I'm sure that page is their default circuit breaker.
I get that folks love a good Linus rant. But as someone who's been at the end of that style of "feedback", nothing can be more humiliating or demotivating. Certainly there are contributors that are making "rookie mistakes". There are folks that aren't willing to ingest the entire context of what was tried back in 2.0.36, 2.2, 2.4... etc. And perhaps it's wise to simply stay away until you're completely certain you've got the chops to contribute. More than half the folks that enjoy that sort of abuse don't have those chops.
I can defend someone who is unwilling to yield on quality. Afterall, this truly is his baby. Issuing scathing rebukes to well-intentioned contributors is like slapping my kid when he brings me the wrong type of screwdriver.
That wasn't my experience at all. I had a recruiter screen where she asked me some technical questions. I then had a longer discussion, then a code screen, then an arch-deep-dive. The entire process was very professional and EVERY person came off like they really wanted me to succeed. (Sure it's an act but it's a very helpful act when you're in the hot seat)
My intervews were in 20202/2021. Perhaps things have changed?
Yeah, that's really the hard part of contracting. I was in my 20s and was certain I HAD to win every bid to keep feeding myself. I took longer than I should to realize that 3 worthwhile jobs is far better than 10 hassles. All clients required changes, most thought they were overpaying, and many gave me a hard time when the bill was sent. Meanwhile, when I'd toss out $20,000 as a price tag, those folks were far more serious, and they paid on time! It caused me to learn a valuable lesson. You want to quote high enough to offend the folks that aren't serious. They were gonna be such a pain.
"My nephew makes websites, and he's 14... I could just have him do it"
- Every client of mine during my contracting days. It took me way too long to reply with, "Oh that's great news! I wasn't sure of my availability, and was certain I was going to be way too expensive. Glad you got it figured out."