HNHacker News
TopNewBestAskShowJobs

thinkpad20

2,032 karma · joined April 1, 2013

Software developer in Chicago. Interested in functional programming and related topics, such as logic, type theory, programming language theory, and such-like. Haskell-phile but I try not to be douchey about it :)

http://github.com/adnelson

submissionscomments
thinkpad20··on Human fossils found in Morocco challenge our understanding of evolution
Even if the findings challenge what evolution is (which doesn’t seem to be the case — the course of human evolution is only one of millions of species over the years), the wording “challenges evolution” suggests that the findings cast the theory of evolution itself into doubt, which they clearly do not.

As far as a way to save character count to include a more accurate title, eliminating the “300,000-year-old” part seems like it would work.

thinkpad20··on Uber is officially a cab firm, says European court
You couldn’t show them the address written down?
thinkpad20··on REST is the new SOAP
The article laid out a detailed explanation of shortcomings of REST. You might not agree with everything in it, but you offer no real rebuttal, instead dismissing it as a “hateful hipsteresque opinion,” without acknowledging any of the actual criticisms the author gave. This strikes me as unfair, haughty and lazy.
thinkpad20··on Finding bugs in Haskell code by proving it
> I have trouble understanding the usefulness of this.

Well for one thing, sometimes projects are just for fun, or to explore uncharted territory, without thinking about a specific use case. For another, there are definitely use cases for proofs in code, as verified software appears in a variety of domains. It’s not likely to make its way into the average CRUD app any time soon, but that doesn’t mean it’s not useful.

> Haskell is barely used in the first place, and even less for highly safety critical software.

“Barely used” is relative. Compared to java or python, sure. But there are untold millions of lines of Haskell code running in production right now. Besides, in my humble opinion Haskell should be used more, whether or not it is (right now). And in any case Haskell has had a big influence on many other more popular languages, and/or libraries, and this could one day be another example of that.

thinkpad20··on Kata Containers – The speed of containers, the security of VMs
So containers are as vulnerable as the operating system? It seems like if your kernel has been pwned you’re already SOL? Or couldn’t someone in that position just as easily pwn a VM, or run the same exploit on multiple vms? I’m not sure if I’m missing something
thinkpad20··on Kata Containers – The speed of containers, the security of VMs
> containers are not secure, anywhere. Virtual machines are.

Can you (or someone else) ELI5 what makes containers insecure? Not a low level Linux or security expert.

thinkpad20··on FCC plans to vote to overturn U.S. net neutrality rules in December
> There is an entire undeserved niche from the dialup crowd who are extremely unhappy paying more than $10 a month

A low-speed broadband plan (or even dialup) would serve those customers fine, no?

> As for caps - which do you think would sell people better: "You have full access to anything on your email" vs "You can download 500 mb of data a month"

What if those emails link to some other site on the internet? Or contain photo or video links? Does it still count as “full access” if things slow to a crawl in those cases? With email being so small anyway, how does that differ in practice from just a low speed plan? It could still be marketed as “access to everything in your email.”

> And what will happen to their service when the grand kids come over and want to watch netflix?

This question itself seems to undermine your point. What would happen in that situation, on a plan like the one you’d like to sell?

thinkpad20··on Burn the Programmer
That's exactly how I feel about express middleware...
thinkpad20··on DNAinfo and Gothamist Are Shutting Down
I suppose some of us don't have to be enthusiastic to donate a million dollars...?
thinkpad20··on Dueling Rhetoric of Clojure and Haskell
I’m not a rust user per se, but I’m surprised to see it listed alongside Python and Go as a language without a lot of depth. Rust not only has quite an advanced type system (not Haskell level, but certainly the most powerful of any other language as mainstream), but it can also teach the user a lot about memory management and other low-level aspects of programming that Haskell (and many other languages) hide. I mostly write Haskell for my own projects, but one of these days I hope to get better at Rust.
thinkpad20··on Show HN: Frappe Charts – GitHub inspired JavaScript charting with zero dependencies
Be that as it may, that doesn’t address the apparent fact that it doesn’t work in all major browsers — certainly IE11 would be considered one by most.
thinkpad20··on What is Nix and why you should try it
I don’t know when you were last looking but for as long as I’ve been using nix (since early 2015) nixpkgs has had definitions of the vast majority of commonly used software, and pre-built binaries of most of those. Definitely worth another look. Also note that you don’t have to switch distros as nix can be plugged into almost any Linux environment without conflicting with whatever else is there.
thinkpad20··on Functor-Oriented Programming
I'm not sure what you mean, or perhaps you have an incorrect understanding of how Haskell works. Of course data is still checked at runtime; for example a parser will check that a string is formatted in valid way, or a lookup in a hash table will check that a key is valid. This is done at runtime as it would be in virtually any language.

However there's no way in Haskell (short of low-level type system tricks) to check that a function with an argument of type `Int` actually receives an `Int` when it is called. There's no need to, because it is guaranteed by the type system. The strength of these guarantees, coupled with the ability to define rich, expressive types, are what makes Haskell programs very robust. For example you can represent all possible results of a valid JSON parse:

    data Value
      = Object (HashMap Text Value)	 
      | Array (Vector Value)	 
      | String Text
      | Number Float	 
      | Bool Bool	 
      | Null
Which variant of this type is actually encountered will not be determined until runtime, so the program is required to respond to the different cases; however a function which takes type `Value` will never need to worry that it doesn't actually receive one of the above variants at runtime.
thinkpad20··on Interactive Vim tutorial
I've tried learning Vim several times, but the need to switch modes and back for cursor movement has been a huge turnoff, especially considering the location of the ESC key. It seems to just conflict with the way that I type, where I am frequently jumping my cursor around in the middle of text editing, which is effortless in Emacs. Maybe mastering Vim is not just about memorizing key combos but about changing your coding workflow?
thinkpad20··on Show HN: Haskell library for pricing and information on crypto-currencies
I don't have it in front of me but I would assume the FromJSON instance for Float expects a JSON number, not a string. If the remote API makes the (puzzling) decision to put numeric values in strings, then parsing those will be necessary. Although, I agree that the 'read' function is the wrong one to use here, due to it making the function partial (consider 'readMaybe' instead?)
thinkpad20··on Sweden is close to becoming a cashless economy
The article mentions that even "homeless people promoting charity magazines" use cards, but I really wonder how the homeless population, or others who typically make money through cash such as buskers and street performers, fare in a cashless world. Having a credit card requires a bank account at the minimum, and generally being "plugged in" to the system, where disadvantaged people rarely are. Of course, Sweden's welfare state is far more developed than the US, but the overall global trend in this direction is troubling.
thinkpad20··on Rolling Your Own Blockchain in Haskell
I agree and disagree. There is nothing about the usage of Cofree and other similar concepts which is "not programming". I think it's a completely viable way to write software within a particular scope (e.g. depending on the team that will work with the internals of the code, and whether the users of the library are to be required to understand the concept). If it provides the correct abstraction and can lead to more performant, maintainable and/or readable code (which is of course subjective), then by all means.

That said, I agree that the article doesn't spend a great deal of time explaining the concepts, whether blockchain itself or the category theory it's using, leading to a sense (for me) of being overly terse and coming across as a bit pompous. Although, I realize that for a certain audience there's nothing pompous about this at all and it might seem perfectly reasonable.

thinkpad20··on We need to document macOS
I would argue that when you're talking about free software, having documentation for common problems in popular software is the only reasonable expectation. Also that many/most of the most popular Linux tools have extensive documentation of their own.
thinkpad20··on HTML5 Version of the Tron:Legacy Boardroom Scene
The term "mad skills" comes to mind. I would love to see a breakdown of some of the techniques he used to construct this.
thinkpad20··on Theranos Low on Cash After Settlement with Walgreens
The only thing that comes to mind is the sunk costs fallacy. Although it's hard to imagine Theranos ever becoming a success (and certainly, I won't be rooting for it), it might be harder for those who poured millions into the company to let go. That's my guess anyway.
thinkpad20··on Ask HN: Why is Bluetooth so unreliable?
> Driver related? Not sure.

Well, is the bluetooth as good when your wife is driving the Rav4?

thinkpad20··on Ask HN: Why is Bluetooth so unreliable?
Why is that range so popular? When presented with what appears (perhaps naively) to be a vast range of frequencies to use, why do so many wireless specs settle on the same thing?
thinkpad20··on Field Notes from my Dementia
> During the year Murdoch was diagnosed with Alzheimer’s, she composed a note that was downright ominous. “My dear,” she wrote, “I am now going away for some time. I hope you will be well . . .” She set aside the sheet, took up a second one, and wrote, “My dear, I am now going away for some time. I hope you will be well.” A third sheet consisted of pen marks that did not add up to any intelligible lines.

Reading this part sent chills down my spine. If anyone has seen the movie Antichrist, they might recall a particular scene that echoes (and was perhaps inspired by) this anecdote. I truly think losing ones mind is one of the most terrifying things to imagine -- the very fabric of reality coming apart at the seams.

thinkpad20··on Typing Nix
Really? I write almost nix every day at work and I have no problem with the syntax. I think it's pretty elegant and well-suited to its use case. There are a few minor tweaks I would make but nothing big at the syntactic level.

EDIT: probably the only gripe I would make is to have comma-separated lists instead of having to use parentheses to separate non-atomic expressions.

thinkpad20··on Netflix Leaving Battle for Net Neutrality Shows Why We Need It
This isn't a conspiracy theory; it's exactly what the article is arguing. Now that net neutrality might hurt Netflix rather than benefit them, not only are they not motivated to advocate for it (which, as the above comment pointed out, would not require any significant effort), but they are probably more inclined to advocate against it.

This is might be seen as an instance of "pulling the ladder up behind you".

thinkpad20··on Save Net Neutrality
a) It was created by a comedian, and it's an amusing name

b) It's easy to remember

c) Many people are legitimately angry about this kind of thing and using profane language (such as it were) seems warranted

thinkpad20··on There is no pass by reference in Go
This has always bugged me too. I don't understand why people make such a big deal about pass-by-value and pass-by-reference when the latter is essentially a small layer of syntactic sugar over the former. Anything you can do with reference variables can be done with pointers, with a few more characters (and arguably easier to read, if you're not used to reference variables), so from a semantic point of view it doesn't add anything new.

PBV and PBR seems to be a tiny distinction and yet, we have blog posts and interview questions and online debates about whether a language falls into the first or second category.

thinkpad20··on Show HN: Pygit – Just enough git to push itself to GitHub
Super cool project!

I hope this isn't taken as a frivolous or mean-spirited comment, but the code samples on the blog would be much more readable with some kind of syntax highlighting.

thinkpad20··on Buck – A build system developed and used by Facebook
Surprised no one else has mentioned nix, because this seems very much inspired by it. As someone who uses nix extensively this is interesting but doesn't seem as powerful or general.
thinkpad20··on Rust's Type System Is Turing-Complete: Type-Level Programming in Rust
I wasn't claiming that it makes it more safe. The implication of the post I was responding to, or at least, how I read it, was that a Turing complete type system might compromise safety.
← PreviousPage 4 of 20Next →