HNHacker News
TopNewBestAskShowJobs

DanWaterworth

2,494 karma · joined March 1, 2011

submissionscomments
DanWaterworth··on All evidence points to OOP being bullshit (2013)
I'm actually working on such a language [1]. It's OOP, but it makes a division between 'doing objects' (services) and 'being objects' (values). It's coming along, but it's still missing many vital things. It wasn't inspired by, but bares a striking resemblance to, the noop language [2].

[1] https://github.com/DanielWaterworth/plastic

[2] https://en.m.wikipedia.org/wiki/Noop

DanWaterworth··on RethinkDB 2.1 beta: automatic failover with Raft
What do you gain? Let's say that you're right and you've managed actually managed to provide the guarantees that you say you have. By adding things to Raft, you haven't made it simpler and, having implemented Raft myself recently, I can attest that it's not the simplest of things to start with.

If you're looking for different degrees of consistency, I'm fairly sure you can do that without protocol level changes to Raft.

DanWaterworth··on RethinkDB 2.1 beta: automatic failover with Raft
> We use Raft only to determine a consistent configuration. The queries themselves are executed in the same efficient way as before.

So, you've made the noob mistake in using Raft, where only configuration goes in the log and actual changes to data aren't replicated in the same manner.

DanWaterworth··on Some Functional Programmers Are Arrogant
I'm not saying that every language is the same. I'm saying it's very difficult to define styles of programming, but if you have a particular style (in this case functional), you will gravitate towards languages that facilitate that style. At the boundary, where a language doesn't have a particular leaning, the style that you will adhere to is going to be influenced much more by the community around the language than its features.
DanWaterworth··on Some Functional Programmers Are Arrogant
Well, some people write very functional javascript. I've thought of a better definition that circumvents the issue of what constitutes emphasis.

Functional languages are languages used predominantly by functional programmers.

Being functional probably has more to do with how a language is used than the set of features it boasts.

DanWaterworth··on Some Functional Programmers Are Arrogant
> I challenge you to find a definition for FP that includes Clojure, Erlang, F#, and OCaml but excludes Java, JS, Ruby, Python, C++

Challenge accepted: FP languages emphasise restriction of mutation.

DanWaterworth··on Some Functional Programmers Are Arrogant
The thing is, CPUs are designed to execute machine code. Machine code isn't memory safe. Until we see memory safety implemented at the machine layer, memory safe languages will always be somehow treated as second-class citizens in the PL world.
DanWaterworth··on Some Functional Programmers Are Arrogant
As both a vegetarian and functional programmer, I totally agree.
DanWaterworth··on The Max Headroom TV Hack
Or: https://hn.algolia.com/?query=framework&sort=byDate&prefix=f...
DanWaterworth··on Introducing s2n, a New Open-Source TLS Implementation
Here are your options:

sawn scan seen sewn shin shun sign skin soon sown span spin spun stun swan

"Yeh, we're not vulnerable, because we've been using the swan library"

DanWaterworth··on Bitcoin is Unsustainable?
There wasn't a question.
DanWaterworth··on Reality doesn’t exist until it is measured, quantum experiment finds
HN doesn't appreciate when you use words they don't recognise. It makes them feel stupid and that is a Bad Thing™.
DanWaterworth··on Bitcoin is Unsustainable?
> Until I understand how Bitcoin does that, I will not believe in it. And don't give me hand-wavy bullshit. Speak plainly.

You're probably being down-voted because that information is available to you. You just need to look for it.

DanWaterworth··on TIS-100: An emulator for a CPU that doesn't exist
It would be interesting to implement the emulator using the PyPy toolchain.
DanWaterworth··on Face It, Your Brain Is a Computer
OK, I appreciate your feedback.
DanWaterworth··on Face It, Your Brain Is a Computer
You only think that I'm making things personal because you think those questions, "what is philosophy?", "what is science?" are basic questions that it would be an embarrassment not to know the answers to.
DanWaterworth··on Face It, Your Brain Is a Computer
Do you know what philosophy is? Do you know what science is?
DanWaterworth··on Fast Reed-Solomon Coding in Go
I believe the difference is that in this case, RS is being used as an erasure code (which means, you either have the data or you don't; the drive has either failed or it hasn't). Failures are (approximately) uncorrelated (assuming different parts are stored on different hosts), so for this use case, RS approaches optimal in terms of storage used (some metadata needs to be stored, which is overhead).
DanWaterworth··on “Mostly functional” programming does not work (2014)
It's an abstraction. If it's solid, it doesn't matter what's underneath.
DanWaterworth··on “Mostly functional” programming does not work (2014)
> A functional runtime is ultimately built upon an imperative foundation.

Memory safe languages are ultimately built upon an unsafe foundation.

DanWaterworth··on UBlock Origin
> Ad blockers are just lazy activism.

Activism for the lazy; sounds like a good deal.

DanWaterworth··on Add Amazon root certificates
People having obscure knowledge never ceases to impress me.

(It's page 104 though ;P )

DanWaterworth··on Cloud Haskell
Static pointers aren't all that usable in 7.10. I wouldn't be surprised if they waited for 7.12.
DanWaterworth··on Servo: The Countdown Continues
I agree, is:

    servo = dlsym(NULL, "servo_test") != NULL;
... really too onerous?
DanWaterworth··on Nom, a byte oriented, streaming, zero copy, parser combinators library in Rust [pdf]

    Nom
    NomOm
    NomNom
    NomOmOm
    NomOmNom
    ...
DanWaterworth··on What one may find in robots.txt
Off limits to robots, hence the name.

edit: I think you edited to clarify since I commented. Thanks.

DanWaterworth··on Automatically Mimicking Unique Hand-Drawn Pencil Lines (2009) [pdf]
> (I realize my first paragraph puts a moral imperative on me posting a link to my code of this, but alas my two evenings of work on this were wiped away when I thought it would be a good idea to experiment with using Scons as a build system and then accidentally switching the order of two arguments somewhere, causing my .cpp file to be overwritten with an empty file).

I hope that has taught you to use version control.

DanWaterworth··on Why Lisp?
I'm fairly sure that Haskell had do notation before Parsec.
DanWaterworth··on Becoming Productive in Haskell
This is actually possible with the ConstraintKinds extension in GHC.

    type Mappable = Functor
    type NotScaryFluffyThing = Monad
This makes Mappable a synonym for Functor and likewise for Monad. (This is not necessarily a good idea; it goes against the principle of least surprise, but it'll work).
DanWaterworth··on Show HN: AtomPair – Pair Programming with Slack and HipChat Integration
Indeed. However, if WebRTC had been used, how would the state be synced? Having a central server vastly simplifies that problem.

Disclaimer: Pusher employee (didn't work on this project though).

← PreviousPage 6 of 24Next →