I’ll go even further.
Sometimes you want to give certain people an incentive to not be your customers because your company would be entirely better off if they were someone else’s customer.
HN user
HN Commenter
I’ll go even further.
Sometimes you want to give certain people an incentive to not be your customers because your company would be entirely better off if they were someone else’s customer.
If nobody brings forward a lawsuit in the first place, why would there be a judge?
You’re right. The problem is most local governments do not know how to enforce accountability when working with organizations that want to build data centers.
If your local government doesn’t already employ competent people that can properly regulate and oversee the infrastructure impact of a data center, they will be overwhelmed by experts who know how to steamroll them. Passing a moratorium is the right thing for that community to do because it’s clear their local government isn’t up to the task of keeping a giant corporation (that employs armies of experts) accountable.
It is safer to say no from the outset.
I’m in Ashburn Virginia and I literally live less than 1 mile from the highest concentration of data centers in the world. People are buying townhomes homes built across the street from data centers.
What you might not understand is Loudoun heavily regulates data centers in this area. All infrastructure improvements needed to power and cool the data centers are paid by service providers. The water used to cool our data centers is sourced from our wastewater which goes through a special treatment facility that was funded by the tax revenue from the data centers.
Our property taxes are lower because the tax revenue from the data centers makes up for the difference. We have excellent schools and fantastic recreation facilities.
Oh yeah, our electricity rates and water rates are competitively low too.
I’m not here to champion data centers, nor am I claiming this is what normally happens when a data center is built.
I’m trying to point out that when they are TAXED and REGULATED, they can actually be a boon the local community.
The problem you’re seeing in these other communities are local governments bending over backwards to bring in data centers to the expense of the local population. They’re paying higher rates for water and electricity because the data center wasn’t forced to pay for infrastructure upgrades upfront, so those costs get passed on to the public.
I don’t mind the data centers. I see them every day and walk past them. They don’t emit pollution and they’re quiet and I’m not interested in moving away. I like it here.
This is simply old fashioned Hollywood-level glazing, which has always made ChatGPT-level glazing look scathing by comparison.
I’m going to be around for the consequences. What do you project them to be?
I doubt this decision will age well
Honestly, I don’t think Marty’s “decision” to use generative AI to storyboard will even become a thing that ages.
But let’s say it doesn’t “age well”. What would that mean? Would it mean we’ve turned into a society that looks down on people on using AI tools at ANY stage in a creative process?
Is that where you think we’re going?
You can think of a calculus as a mathematical system one can use to define the essential computational basis for how a programming language or a runtime works mathematically.
Lambda calculus is often the foundation for functional programming languages, but lambda calculus is also a mathematical system you can calculate things with pencil and paper.
What makes lambda calculus interesting is it’s a relatively simple mathematical system where EVERYTHING is defined as a function. I’m serious. Imagine a programming language where you don’t have numbers, bools, if statements, while loops, gotos, etc.
You only have functions. All functions accept one argument (a function) and they always return functions.
Tree calculus is like lambda calculus, but it takes the idea a bit further. Not only can tree calculus do all this stuff where you create functions from other functions, tree calculus is fundamentally capable of reflecting on itself in a way that allows it to easily understand and transform its own interpreter.
In other words, if you base a programming language on tree calculus, your programming language or interpreter will allow you to create programs that can reflect on and transform other programs just like it was any other piece of data.
It’s pretty remarkable, especially when you find out how simple a core tree calculus based language can be implemented.
This introduction to this paper explains the motivation:
https://dl.acm.org/doi/pdf/10.1145/3704253.3706138
Tree Calculus is an alternative to lambda calculus that is capable of doing meta-theory without having to construct or bolt on something else entirely.
If lambda calculus provides a theoretical foundation for a language like Lisp. Tree calculus provides a theoretical foundation for a Lisp with a macro system that is fundamentally part of the core calculus.
You don’t have to write parsers and other stuff to do meta programming. It’s fundamentally built in and the paper I posted above explores how to construct type systems as a library, not as something that is outside of the runtime environment.
Here’s what’s really cool about it too: Just like lambda calculus, you can evaluate tree calculus with pencil and paper.
It’s very slick.
For people wondering what this is and whether to take this seriously, I’ll try to provide some context:
Tree Calculus is a novel alternative to lambda calculus as a minimal model of computation. Unlike most minimal systems, tree calculus is fundamentally capable of being fully reflective.
If you were ever interested in creating a programming language that could fully reflect and enhance itself with libraries, this is one of a very few number of known minimal system you can use as a starting point. Think of it as a lambda calculus with macros built into the underlying calculus, not something bolted on afterward based on a partially implemented meta-theory.
If you’re into formal proofs, you can find Rocq proofs of his work in his repo.
https://github.com/barry-jay-personal/tree-calculus
If you’re interested in how something like tree calculus can express a type system, here’s a recent ACM paper:
https://dl.acm.org/doi/pdf/10.1145/3704253.3706138
Personal context, Barry Jay is a respected academic and researcher who’s collaborated with people like Simon Peyton Jones and Eugenio Moggi. His PhD advisor was Joachim Lambek (from the Curry-Howard-Lambek correspondence). He’s not a random professor with a neat toy, Barry’s been working with many of the best minds on the foundations of computation long before most of us knew category theory existed. He’s been formalizing and defining pattern matching, higher-ordered patterns and has been searching/separating what is truly essential from what is not essential for decades.
Seriously, look at his research history on Google Scholar.
I think it will take the rest of us a while to understand and unpack the insight he’s already imbued into such a small and simple calculus.
I think people MOSTLY foresee and anticipate events in OUR training data, which mostly comprises information collected by our senses.
Our training data is a lot more diverse than an LLMs. We also leverage our senses as a carrier for communicating abstract ideas using audio and visual channels that may or may not be grounded in reality. We have TV shows, video games, programming languages and all sorts of rich and interesting things we can engage with that do not reflect our fundamental reality.
Like LLMs, we can hallucinate while we sleep or we can delude ourselves with untethered ideas, but UNLIKE LLMs, we can steer our own learning corpus. We can train ourselves with our own untethered “hallucinations” or we can render them in art and share them with others so they can include it in their training corpus.
Our hallucinations are often just erroneous models of the world. When we render it into something that has aesthetic appeal, we might call it art.
If the hallucination helps us understand some aspect of something, we call it a conjecture or hypothesis.
We live in a rich world filled with rich training data. We don’t magically anticipate events not in our training data, but we’re also not void of creativity (“hallucinations”) either.
Most of us are stochastic parrots most of the time. We’ve only gotten this far because there are so many of us and we’ve been on this earth for many generations.
Most of us are dazzled and instinctively driven to mimic the ideas that a small minority of people “hallucinate”.
There is no shame in mimicking or being a stochastic parrot. These are critical features that helped our ancestors survive.
They do.
I suspect that you are not only ignoring the existing safeguards that have already come of those discussions, but I suspect you’re also ignoring or pretending like those public discussions never happened in the first place.
Furthermore, I suspect you’re also trivializing what is and is not in contention with moral issues as these companies are trying to compete against each other.
I also think you’re probably assuming the slower options are the safer options because you haven’t really considered the risks of ceding power/investment to a less scrupulous competitor.
I’m not claiming any of these men are moral upstanding people or that they’ve done enough.
I think people should be very critical, but they should at least make the effort to ENGAGE in the moral issues and consequences.
Your cheap four word response only adds cheap rhetoric to the conversation.
If you really care about the moral issues, start typing.
Expressiveness tends to become a liability when the benefits of the expressiveness aren’t clear.
Dafny’s expressiveness tends to be more in the service of coherent specifications and less in the service of language abstraction for its own sake.
I understand and appreciate Reddit’s approach.
On the other hand, I think there might be a way to solve this problem for live anonymous chat in a way that doesn’t rely on threats of “punishment” or “banning”.
I think most people looking at this problem don’t appreciate how much realtime information can be calculated from the event stream and how that information can be leveraged toward solving it in near realtime.
I am.
While I’m not the kind of person who races to test the most triggering racial slurs, I’m actually glad Anon Pond Heron did because I thought his behavior was informative, especially as you could watch him slowly type out the beginnings of a slur.
I actually think these types of CRDTs can be enhanced with a handful of simple mechanisms to ensure a higher quality chat experience.
After watching a bunch of people use the live chat, I am not discouraged by live chat anymore.
I actually think one can make it work, one simply needs to account for moderation and flooding upfront.
The first feature you need is a way to instantly ignore people who are ruining the collective experience. I would think when a person is ignored by a certain threshold of people, their content should automatically be moderated.
The second feature that’s needed is some sort of flood protection or detection. If a user is pasting or trying to flood the chat with characters, they should be instantly hidden and their content be subject to moderation. Being able to distinguish between copying and pasting on occasion and flooding goes a long way.
This data reflects the UK, not a 3rd world country and my comments are restricted to this dataset.
Included in that same dataset are assaults and sports related injuries, which are additional risky activities.
You might argue assaults aren’t voluntary. My personal experience suggests most assaults are the result of voluntary activity rather than involuntary activity, YMMV.
I’m not being naive. I have lived in a 3rd world country where it wasn’t uncommon to see a family of 5 on a motorcycle.
I would note that you will tend to see, proportionately speaking, more women on motorcycles in those countries for the reasons you suggested.
Aren’t we being a little sensitive?
The OP didn’t say all of the reasons for male related injuries were needless, but if you look at the list, it’s dominated by activities that are inherently voluntary and risky.
Honestly, if you build transit, developers will build.
I wouldn't call it "building a city", but if you look at Northern Virginia today, you'll find that vertical districts are popping up along the Silver Line metro that now extends past Dulles airport.
At the end of the metro, there is literally a "town center" residential area on one side with buildings around 5 stories tall. On the other side of the tracks is literally fields, but the roads have been laid out like Sim City with empty plots and developers are now beginning to construct buildings starting from the outside perimeter first, working their way toward the metro station.
Throughout the DC suburbs, you will find densely populated areas with relatively tall vertical buildings (15-20 stories) that simply were not there 20 years ago. Reston is a good example. I've watched 4-6 buildings (over 10 stories) get built in Reston alone. They mostly started when the the metro line was finished.
The Github user doesn't even exist.
Who writes Lean code in the actual paper but doesn't create a repo or even a username?
Nihilism is one response to disillusionment.
Another response is to come to terms with a possibly meaningless and Sisyphean reality and to keep pushing the boulder (that you care about) up the hill anyway.
I’m glad the poster is concerned and/or disillusioned about the hype, hyperbole and deception associated with this type of research.
It suggests he still cares.
Are you saying that you’re unable to read a fluent syntax that’s been supported by most mainstream programming languages for the past 10 years?
Or are you suggesting that the majority of programmers struggle to read and understand fluent method chaining?
I don’t have a dog in this fight because this blog post is very novice oriented. I’m just genuinely confused why you think it’s unreadable or “clunky”. What is it about the fluent example that you find clunky?
Why?
Writing your own LINQ provider is a very niche activity done by people who want to translate or “transpile” C# expression trees into something else.
It is fundamentally a difficult endeavor because you’re trying to construct a mapping between two languages AND you’re trying to do it in a way that produces efficient target code/query AND you’re trying to do that in a way that has reasonable runtime efficiency.
Granted, on top of that, I’m sure LINQ provider SDKs probably add their own complexity, but this isn’t an activity that C# developers typically encourage.
Isn't TLA+ is more like Alloy insofar as they're thinking tools optimized for the design phase?
I'm more familiar with Alloy, which is a great tool for exploring a specification and looking for counter-examples that violate your specification.
AFAIK, none of the languages you listed above work well in conceptualization phase. Are any of them capable of synthesizing counter-examples out of the box? (Aside: I feel like Lean's meta capabilities could be leveraged to do this.)
You are absolutely correct. This article and vocal supporters are often not reasonable and I should have made that point.
I honestly found the article to be an insufferably glib and swaggering piece that was written to maximize engagement rather than to engage the subject seriously.
The author clearly values maximizing perceived value with the least amount of effort.
Frankly, I’m tired of reading articles by people who can’t be bothered to present the arguments of the people they’re disagreeing with honestly and I just gave up halfway reading it because it was so grating.
Approximately speaking, what do you want to see put up?
I ask this because it reads like you have a specific challenge in mind when it comes to generative AI and it sounds like anything short of "proof of the unlimited powers" will fall short of being deemed "useful".
Here's the deal: Reasonable people aren't claiming this stuff is a silver bullet or a panacea. They're not even suggesting it should be used without supervision. It's useful when used by people who understand its limitations and leverage its strengths.
If you want to see how it's been used by someone who was happy with the results, and is willing to share their results, you can scroll down a few stories on the front-page and check the commit history of this project:
https://github.com/cloudflare/workers-oauth-provider/commits...
Now here's the deal: These people aren't trying to prove anything to you. They're just sharing the results of an experiment where a very talented developer used these tools to build something useful.
So let me ask you this: Can we at least agree that these tools can be of some use to talented developers?
I think this proposal ultimately introduces more complexity than it solves. By automatically inserting migrations (whether at compile time or via “migration files”), you end up with a form of hidden control flow that’s arguably worse than traditional overloading or type coercion. In normal type coercion, the transformation is explicit and visible in the language syntax, whereas these “migrations” happen magically behind the scenes.
Second, database migrations are notoriously tricky for developers to manage correctly. They often require significant domain knowledge to avoid breaking assumptions further down the line. Applying that paradigm directly to compiler-managed code changes feels like it would amplify the same problems—especially in languages that rely on strong type inference. The slightest mismatch in inferred types could ripple through a large codebase in ways that are far from obvious.
While it’s an interesting idea in theory, I think the “fix your old code with a macro-like script” approach just shifts maintenance costs elsewhere. We’d still be chasing edge cases, except now they’re tucked away behind code-generation layers and elaborate type transformations. It may reduce immediate breakage, but at the expense of clarity and predictable behavior in the long run.
Preventing third parties from intercepting encrypted traffic isn’t the point of deep packet inspection (DPI).
Organizations implement DPI to PREVENT outbound encrypted connections to unknown external servers to keep internal data LEAVING the organization.
In other words, the point of DPI is to prevent unauthorized encrypted connections to unknown servers.
It doesn’t.
Many governments block TLS connections directly between a client and an external website. Instead, they’ll install a custom root certificate and all connections and intercept traffic, using the government root certificate for each TLS connection instead of the external website’s.
Seeing how we’re only a few months in, I think you’re wrong.
I can see their desire to circumvent the firewalls and monitoring infrastructure because it’s too complicated and/or they don’t know who they can trust yet.