Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
Twisol
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
83 ms
·
811.
▲
by
Twisol
7y ago
In Rust, you can tell whether something is borrowed from the call site, without having to look at the function being called. If a function takes a reference (`&T`), then the caller must pass a reference. There's no implicit by-refe
812.
▲
by
Twisol
7y ago
I had some pretty authoritarian teachers at the Montessori school I went to. Maybe you could argue that they weren't really Montessori, but they were advertised as such and attracted families on that basis.
813.
▲
by
Twisol
7y ago
Ahh, I understand. I must have scanned right over that part. As the sibling says, it’s probably the case that terminal emulators have this historic behavior for specific combinations, and not for the more general mechanism of merely setting
814.
▲
by
Twisol
7y ago
Why's that? In my terminal emulator, CTRL-; just outputs a semicolon. Are there any cases where CTRL plus a character in the first or fourth columns has the same kind of behavior? It seems to me that it's only the elements in th
815.
▲
by
Twisol
7y ago
> A) They aren't, they're probably already programming in a functional programming style. This hasn't really been my experience. OOP in particular has a very specific design mindset, and I've seen that play out over s
816.
▲
by
Twisol
7y ago
> Though that fact that it's faster is more a novelty; what matters most to me is clarity and correctness, which is highly context dependent. We agree.
817.
▲
by
Twisol
7y ago
I think that we are subtly talking past each other, because what you're saying doesn't line up against what I thought I was saying. I'm not looking for additional type safety or security protections from this model. See my
818.
▲
by
Twisol
7y ago
> It's a limitation because there are some extremely important and common relationships (e.g. putting an object in multiple containers simultaneously) that cannot be expressed in Rust's type system without using unsafe, RC boxe
819.
▲
by
Twisol
7y ago
This jibes very well with my own experience. When working in languages like Java, I feel myself overwhelmed with keeping a grip on the runtime topology of the object graph. Who can talk to whom? Who can _affect_ whom? My usual tools for cov
820.
▲
by
Twisol
7y ago
I'm not certain, but the `extern` variant probably doesn't reserve space at compile-time; it just says "the linker will know where to find these". So resolving those symbols might need to wait until link-time. The tentat
821.
▲
by
Twisol
7y ago
I feel like you could make the same case for not loudly renouncing "Time AI". If Black Hat were to stand by this sponsor, I would wonder if other potential sponsors might actively withhold funds specifically to avoid being ass
822.
▲
by
Twisol
7y ago
Oh, definitely. My point was only that verifying semantics at a layer, and verifying faithful translation between layers, are legitimately distinct activities that benefit from being considerd separately. I would consider "faithful exe
823.
▲
by
Twisol
7y ago
You’re absolutely correct that this depends on having the concrete semantics of the compiled program line up with the abstract semantics of the source language. What you may not notice is that the source language can indeed have a platfor
824.
▲
by
Twisol
7y ago
While true, this still restricts you to learning one trace per input. With symbolic representations of a program, you can perform symbolic execution (whether in your head or using a formal tool) to understand whole classes of traces in one
825.
▲
by
Twisol
7y ago
On top of the requirements engineering that's left implicit here, there's still the matter of understanding the event trace that you're supposed to be modifying. If every patch is a transformer from traces to traces, then it
826.
▲
by
Twisol
7y ago
My takeaway was that you're always writing against a machine. The difference is whether you're writing against a physical hardware machine or an abstract virtual machine. OSes and VMs abstract over existing machines and present
827.
▲
by
Twisol
7y ago
Gwern created a similar thing, but I believe it was a different team who made the Waifu Vending Machine. Not least because there are pictures, and Gwern is quite known for their pseudonymity.
828.
▲
by
Twisol
7y ago
True! It's best to consider that kind of repo as a downstream fork, with all the responsibilities of upstreaming changes once the canonical repository comes back up.
829.
▲
by
Twisol
7y ago
For what it's worth, the "D" in "Distributed Version Control System" is useful here. You can `git init --bare foo` on your work computer, `git remote add workcomp username@hostname:path/to/foo` on your lap
830.
▲
by
Twisol
7y ago
Well, gee... my cat leans into my hand when I give him a scratch.
831.
▲
by
Twisol
7y ago
This looks amazing . Not just for the software (which itself looks very nice), but for the philosophy described in this post. Some quotables: > Abscissa applications are Rust libraries. One of our eventual goals is to allow several Absc
832.
▲
by
Twisol
7y ago
That sounds interesting too. Any chance you have a link or two handy for reference? I've seen Oleg Kiselyov's bibliography on the tagless-final style ( http://okmij.org/ftp/tagless-final/index.html ), but
833.
▲
by
Twisol
7y ago
That probably depends more on the listener than on the story! I played MUDs for several years, at the same time that I was learning the ins and outs of programming. I developed some plugins for a popular third-party client called MUSHclient
834.
▲
by
Twisol
7y ago
And unless there's another software engineer named Daniel J. Bernstein out there, he also authored RFC 1143 documenting the Q Method of TELNET Option Negotiation [1], which prevents negotiation loops and nails down (in the shape of a s
835.
▲
by
Twisol
7y ago
If you want to use completely safe Rust, you could probably get the Vec<u32> as a `&mut [u32]`, then use `.split_at()` on the slice to chop up the buffer into multiple contiguous sub-pieces for each thread. Collect up those pieces
836.
▲
by
Twisol
7y ago
Types don’t exist at runtime in the way you’re describing. It isn’t possible to express a program that asks what type a value has. Dynamic types are sometimes called “tags” to distinguish the case in which this information _does_ exist at r
837.
▲
by
Twisol
7y ago
The function definition must work unchanged for any choice of types. In order to “change” their values, it would have to know what other values are possible and how to get them. Frame it as a game: give me a function definition and I will
838.
▲
by
Twisol
7y ago
Not quite. A mixin is a piece of code written once and transcluded into another module. Traits are more related to OOP interfaces: every type implements one in its own way. The difference with interfaces is that traits can be implemented se
839.
▲
by
Twisol
7y ago
I don’t think he’s exactly advising any particular action. Rather, data structures and objects tend to be badly conflated, and there’s a lot of value in clarifying the distinction between them. You’ll use each in different circumstances, fo
840.
▲
by
Twisol
7y ago
That wasn't really Erdős' issue with the proof. Unsolved problems in mathematics are often not important merely because of other problems that depend on them; you can look at the Riemann hypothesis to see how much work has already
More ›