HNHacker News
TopNewBestAskShowJobs

ryandv

748 karma · joined August 23, 2023

    In the beginning were the Words,
    and the Words made the world.
    I am the Words.
    The Words are everything.
    Where the Words end the world ends.
    You cannot go forward in an absence of space.
    Repeat.

    https://txt.ryandv.me
    https://magistertempli.substack.com
submissionscomments
ryandv··on The Monks in the Casino
You can listen to what men are saying, or continue to suppress and label their speech as "bad faith" or otherwise.

When men are not heard they simply seek other audiences and other avenues. It is the incentive structures that will tell them where to go.

ryandv··on Canada loses its measles-free status, with US on track to follow
> tiered approach for transport that limits public exposure where better alternatives exist.

Travelling to a testing center almost certainly puts me within proximity of COVID patients at one point, particularly in the waiting room. Sitting in waiting rooms is how I got the case the city notified me of in the first place.

Cycling and exercise is not only a solitary activity, it is also conducted outdoors where we were told risk of airborne transmission was de minimis. It in fact limits public exposure more than travelling to a public place full of probable COVID patients.

ryandv··on Understanding Financial Functions in Excel
XIRR is laughably trivial with automatic differentiation in Haskell. Take as many iterations from the resulting [Double] as desired:

    type Cashflow = (Text, Day, Double)

    irr :: V.Vector Cashflow -> [Double]
    irr = fmap (flip findZero 0.01) npv
    
    npv :: V.Vector Cashflow -> (forall s. AD s ForwardDouble -> AD s ForwardDouble)
    npv cashflows = sum . flip discountedCashflows cashflows
      where
            discountedCashflows :: forall s. AD s ForwardDouble -> V.Vector Cashflow -> V.Vector (AD s ForwardDouble)
            discountedCashflows = fmap . presentValue

            presentValue :: forall s. AD s ForwardDouble -> Cashflow -> AD s ForwardDouble
            presentValue r (_,t,cf) = auto cf / ( (1 + r) ** numCompoundingPeriods t)

            numCompoundingPeriods t = (fromRational . toRational $ diffDays t t0) / 365.0

            t0 = maybe (toEnum 0) viewInvestmentDate $ cashflows V.!? 0

            viewInvestmentDate = view _2
ryandv··on The Manuscripts of Edsger W. Dijkstra
Dijkstra was so based.
ryandv··on Why aren't smart people happier?
This is more or less the basis of a lot of western esotericism and ceremonial magick. Consider it a weaponization of the placebo effect, or the closest thing to creatio ex nihilo one can personally experience. Dialogue with the purveyor of negative self-talk is another modality in this space.
ryandv··on No Socials November
> But the terminally-online space has seeped into real life all over the world.

That's Baudrillard's point, who popularized one sense of the term "simulacrum." Not quite real, but not quite fiction either - something that straddles the boundary between the two as "hyperreality."

ryandv··on John Carmack on mutable variables
> In practice programmers tend to avoid writing the kind of program where anything can happen.

My faith in this presumption dwindles every year. I expect AI to only exacerbate the problem.

Since we are on the topic of Carmack, "everything that is syntactically legal that the compiler will accept will eventually wind up in your codebase." [0]

[0] https://www.youtube.com/watch?v=1PhArSujR_A&t=15m54s

ryandv··on John Carmack on mutable variables
That's right - immutability enables equational reasoning, where it becomes possible to actually reason through a program just by inspection and evaluation in one's head, since the only context one needs to load is contained within the function itself - not the entire trace, where anything along the thread of execution could factor into your function's output, since anybody can just mutate anybody else's memory willy-nilly.

People jump ahead using AI to improve their reading comprehension of source code, when there are still basic practices of style, writing, & composition that for some reason are yet to be widespread throughout the industry despite already having a long standing tradition in practice, alongside pretty firm grounding in academics.

ryandv··on You already have a Git server
Filesystems and folders are foreign and elusive concepts to gen Z.

https://www.theverge.com/22684730/students-file-folder-direc...

ryandv··on The Rubygems.org takeover
People are coming to the realization that Ruby is a fundamentally insecure language. I've given my reasoning for this, though with respect to a discussion on static analysis, here [0]. Ruby, Rails, the library ecosystem, and the entire language, are actually one giant monolith, in that any one package, or really anybody with access to the runtime, can modify and monkey patch any other package. This is not a glaring security flaw at all, but rather a result of how "awesome" Ruby is in letting you make "Extensions to All Objects," [1] including core data types such as String, Array, Hash, and Integer.

Point the second: People are feeling emboldened to bypass rule of law and take matters into their own hands, up to and including taking other peoples' lives. Not only is this time fraught with political tension, it is also approaching the most crucial time of the year for ecommerce and online retailers - the holiday shopping season.

Put two and two together and it's not hard to see why people are scrambling to secure the software supply chain.

[0] https://news.ycombinator.com/item?id=45104910

[1] https://guides.rubyonrails.org/active_support_core_extension...

ryandv··on Modeling Others' Minds as Code
It is my civic duty as a citizen of this country to uphold the values of liberalism.
ryandv··on SQL Anti-Patterns
This is like saying the non-negative integers under addition, lists under append, and strings under concatenation are all just misnamings of the semigroup operator.

https://hackage.haskell.org/package/base-4.21.0.0/docs/Data-...

ryandv··on SQL Anti-Patterns
Yes, this is the implementation I have seen in other dialects.
ryandv··on SQL Anti-Patterns
PostgreSQL's `DISTINCT ON` extension is useful for navigating bitemporal data in which I want, for example, the latest recorded version of an entry, for each day of the year.

There are few other legitimate use cases of the regular `DISTINCT` that I have seen, other than the typical one-off `SELECT DISTINCT(foo) FROM bar`.

ryandv··on SQL Anti-Patterns
Set theory...

There are self-identifying "senior software engineers" that cannot understand what even an XOR is, even after you draw out the entire truth table, all four rows.

ryandv··on Ruby core team takes ownership of RubyGems and Bundler
> I don't like talking about a heterogeneous group of people

> many such people in the Ruby community.

In which case, this presumes that the values you share with the Ruby community are positive - otherwise you would be talking about this heterogeneous group in a generally negative way.

This would appear to beg the very question under contention - that the values of the Ruby community are not in fact positive, but toxic; unless you wish to argue that a community can simultaneously profess positive values and still exhibit toxic behaviour.

One position offers historical (and current) examples; the other offers an impressive feat of linguistic gymnastics.

ryandv··on No science, no startups: The innovation engine we're switching off
Obviously not [0].

[0] https://news.sky.com/story/fresh-trans-prisoner-row-as-girls...

ryandv··on Why study programming languages (2022)
> natural languages are not only not sufficient for the task of programming,

Downthread there is an example of an ICPC problem statement, [0] given as natural language, (modulo some inequalities and example program inputs/outputs) which was sufficient for Gemini to program & implement the correct solution where no other human could.

[0] https://worldfinals.icpc.global/problems/2025/finals/problem...

ryandv··on No science, no startups: The innovation engine we're switching off
> Was Rousseau part of basic or applied science?

This one is easy - neither. The term "science" has gone through semantic dilution in a manner similar to how everyone is now an engineer - software engineer, prompt engineer, sanitation engineer.

Falsifiability is one of the key distinguishing characteristics of a proper science, as famously propounded by Karl Popper.

"Gender identities" not only can not be falsified, they should not be falsified, because that would amount to transphobia; denying the existence of someone's felt and lived gender identity is the definition of transphobia.

Since they cannot be falsified, nor even directly observed, measured, nor quantified, they are not scientific notions.

The closest most well-studied analogue to the "gender identity" is the legacy religious notion of "the soul," to which you will see you can ascribe most, if not all, of the same attributes as ascribed to the "gender identity."

ryandv··on Why study programming languages (2022)
zzz..
ryandv··on Why study programming languages (2022)
I have every confidence that even current generation state-of-the-art artificial intelligence will have far superior facilities at debugging and managing the complexity of even its own bare metal programming output than humans.

Why? Consider Gemini's recent performance at the International Collegiate Programming Contest [0], in which it solved a problem that no other human team was able to solve.

Wetware intelligence is itself obsolete, at least as concerns the domain of computing.

[0] https://deepmind.google/discover/blog/gemini-achieves-gold-l...

ryandv··on Why study programming languages (2022)
They can, trivially, with tool [0] usage.

[0] https://modelcontextprotocol.io/specification/2025-06-18/ser...

ryandv··on Why study programming languages (2022)
Like real LLMs it's a bit of a slot machine, but my comment history will assure you that the jackpots are far more attainable.
ryandv··on Why study programming languages (2022)
The best way to get a strong answer is to post boldly incorrect statements. Then I get other people to write my actually-desired arguments for me.

I call it, "wetware LLM prompt engineering".

ryandv··on Why study programming languages (2022)
Programming languages are obsolete in the LLM era. What current generation AI has revealed is that English is actually the ultimate representation of computer programs and systems, which is both sufficiently terse and precise to economically describe the operation of arbitrarily complex programs.

There is no reason to study programming languages in 2025, other than as a historical curiosity - the same way one may study languages equally as pitiable as e.g. COBOL, Lisp, or MIPS assembly.

ryandv··on RubyMine is now free for non-commercial use
In a dynamic language where code that produces such a side effect is admitted by the (lack of) compiler/typechecker, sure; however a static checker would probably ensure, before runtime, that said binding indeed refers to a str, now and forever.

But I realize now the point of ancestor's comment is that you don't have such a guarantee in a dynamic language - hence the tendency to lean more on REPL-oriented development, highly interactive live runtime environments, tight TDD feedback loops, etc...

ryandv··on RubyMine is now free for non-commercial use
In a Turing complete dynamic language I believe that some properties of the runtime would be undecidable. The advantage of static typing is that many (most?) type systems are sufficiently constrained (i.e. not Turing complete) such that the typecheck procedure can be assured to terminate.

Of course, with sufficiently expressive type systems you end up with Haskell "UndecidableInstances" or Coq dependent types or C++ compile-time tetris, [0] and now you are back to the same problem as with analyzing the runtime. Otherwise you may find it difficult to encode the desired properties or invariants into your type system, for lack of expressive power... tradeoffs abound, and so on.

[0] https://news.ycombinator.com/item?id=9813800

ryandv··on Why teach calculus in the age of AI
Why are you not pasting the full sentence and blatantly strawmanning by taking my words out of context?

> high school geometry classes are just basically using cleaned up and modernized texts based on Euclid's Elements, right?

So you are admitting then that Euclid is too antiquated and required "clean up" and "modernization" to be presented to modern American audiences? Do those "cleaned up and modernized texts" still have you do compass and straightedge proofs? What about instruction in the use of an abacus?

Fuck modern mathematical algebraic notation too, let's expend paragraphs of ancient Greek to describe a mathematical object that would be one line in modern notation.

ryandv··on We already live in social credit, we just don't call it that
This is what I have been saying for years. The far-left progressives have literally raped language beyond all recognition.

War is peace. Freedom is slavery. Men are women.

ryandv··on RubyMine is now free for non-commercial use
Just paying it forward. As a visible minority in Canada, I am subjected to this kind of passive aggressive, plausibly deniable ad hominem on a regular basis - and often by the very same Canadian white progressives who claim to have been educated out of such bigotry and racism. When in Rome...
← PreviousPage 3 of 15Next →