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 Nix 2.0 Released
As a nix user for several years this is pretty exciting. I hadn’t been following the 2.0 development, but I was really hoping to see a mention of support for something like a .gitignore equivalent when hashing directories from the filesystem. Seems that that isn’t in this release :(
thinkpad20··on China's Xinjiang surveillance is the dystopian future nobody wants
That is weird, and saddening. As a lifelong city dweller (primarily Chicago) I love the character, chaos, and depth of dense cities. Visiting some of the big cities in China, I was really taken with their bustling nature, the crowded street markets, the densely packed housing, and the diverse architecture. They seem to me so much more "alive" than the sprawling, strip-mall-filled anonymity of many American cities. I had chalked it up to American's desire for personal space, proliferation of cars and scarcity of public transit options. But I hadn't really considered the effects of zoning and other legal restrictions.
thinkpad20··on Asian elephants have different personality traits
I don’t think the novelty of the research is the fact that elephants have personalities, but instead the study of the personalities themselves and how they develop and are influenced by the environment and the species. If people stopped researching after determining that “yes, in fact, other animals have personalities too”, that would be pretty boring.
thinkpad20··on China's Xinjiang surveillance is the dystopian future nobody wants
> Meanwhile over here it's taken as assumed that cities cannot and/or should not grow ever again.

How do you mean?

thinkpad20··on China's Xinjiang surveillance is the dystopian future nobody wants
> Neither do I. But that's because I love freedom.

I guess all the folks in Xinjiang just don’t love freedom as much as you do.

thinkpad20··on China's Xinjiang surveillance is the dystopian future nobody wants
Xian at least has thousands of years of history. On the bullet train in China you’ll often pass by cities of millions of people which might have been mere hamlets a generation or two ago. The size of China, its economic renaissance and the fact that good jobs in China are almost exclusively found in urban areas has led to a vast migration towards city centers which is pretty much unprecedented in human history.
thinkpad20··on China's Xinjiang surveillance is the dystopian future nobody wants
One man’s terrorist is another man’s freedom fighter. I think the parent post simply meant that they were not passing judgment on the justification of the violence.
thinkpad20··on Monadic I/O and Unix shell programming (2001)
The analogy has a couple of problems with it. There is the fact that programs can be run in parallel, with one program feeding the other output in real time. This one the article covers although I don’t completely buy their explanation.

For another example, ‘cmd | cat’ is often not the same thing as ‘cmd’, because a command can inspect whether stdout is a tty or not and alter its behavior. This is why ‘ls’ normally outputs all in one line, but changes to one-per-line when used with a pipe (e.g. grep).

The other issue that comes to mind is that bash provides multiple concepts of “monadic” sequencing; not just with pipes but with the && and || operators, if logic, for/while loops, etc, which form a more traditional “imperative programming” monad. Perhaps bash could be considered then to be a nested monad (monad transformer?) but I’m not sure how precisely you could model its semantics while keeping things elegant.

But yes, in general you can view the shell as a monad, and there are libraries in Haskell which do exactly this (Shelly and Turtle come to mind). In general, the divergences from a purely monadic model come from the fiddly bits of real-world programming which can cause edge cases.

thinkpad20··on Is Art Created by AI Really Art?
I was speaking more about the concept of art from a philosophical point of view. I don’t see how a machine can “check” if a work of art is beautiful, a necessarily subjective and human process. Certainly given detailed enough criteria an algorithm might be able to predict whether a viewer might be likely to think a work of art is beautiful, but the criteria themselves are implicitly or explicitly derived from humans — computers have no inherent sense of beauty.

The whole idea of using the terms “correct” and “check” with things like art seems flawed out of the gate.

thinkpad20··on Is Art Created by AI Really Art?
Well that’s the key word isn’t it, “meaningful”? I think what makes art interesting is the story behind it, the statement the artist is trying to make. Art made by a machine is simply following an algorithm. I can find the process itself interesting from an academic point of view, but I’d find it difficult to call it “meaningful.” AI has no idea what kind of art it’s generating, no way to discern what is beautiful or not, no understanding of its effect on the viewer, no story to tell, no emotional backdrop. This doesn’t mean the end product can’t be beautiful, but meaningful? Eh.
thinkpad20··on Python’s Weak Performance Matters
How so? Haskell has a very high performance ceiling.
thinkpad20··on Return type polymorphism in Haskell
Almost all Haskell code written these days uses at least a handful, if not a barrel-full, of extensions, and ScopedTypeVariables is one of the most common ones. Of course, you’re completely free to do whatever you’d like with your own code, but you’ll probably find it hard to avoid extensions — at the least many of them will be used by some libraries you’re depending on.
thinkpad20··on Python 1.0.0 is out (1994)
Interesting to read his description of the language, which sounds pretty much exactly like python is now. It’s a pretty good testament to why python gained and retained popularity. Though not without fault, python is certainly one of the best-designed languages ever created, in my opinion.
thinkpad20··on The Eve programming language project is winding down
> It's hard to pitch a greenfield project like Eve, because there's no real great way to quantify the benefits of a language before it's been fully realized.

Plenty of languages have been developed without major corporate backing (especially in the beginning). Off the top of my head, elm, elixir, Haskell, ML, ruby, python, coffeescript, purescript, Idris, Agda, pony and I’m sure many others were developed at least initially by hobbyists and/or academics.

I honestly don’t know a whole lot about Eve. Maybe it was too large in scope to be a side project or fully volunteer-driven. But, even if that’s the case, that’s one of the main things academia is for; perhaps Chris should go for a PhD instead of a startup. I’m sure there are plenty of schools which would give him ample time and resources to work on it for research.

thinkpad20··on Elixir on Google Cloud Platform and App Engine
Aside from both being functional languages, they have relatively little in common. Purescript has Haskell-style purity (with synchronous impurity via monads) and doesn’t have an inherent concept of processes or message passing like Elixir/Erlang do. Purescript is statically typed with no (I think?) macro system, and elixir is dynamic and makes extensive use of macros. Etc.
thinkpad20··on How Duolingo achieved a 50:50 gender ratio for new software engineer hires
I agree with aspects of what you said; in particular the observation that his would be impossible to implement everywhere due to the numbers imbalance of the talent pool. Although I think in general having more women in tech will encourage more women to enter the field (as I assume occurred in medicine and biology), so in the long run it could well be feasible.

I definitely think you could have left out the “holding the door for feminists” part though.

thinkpad20··on Gosh Darn Function Pointers
I can imagine that parsing Coq is pretty dang difficult since the user is able to essentially define and use their own syntax in the code. Also parsing Agda seems non-trivial, though likely not as hard as C++.
thinkpad20··on Yuzu – Nintendo Switch Emulator
Some of the time stamps I’m seeing on the code are on the order of two years old. How is that possible, considering how long the switch has been out? I guess they were able to reuse a lot of code?
thinkpad20··on CMU 15-721 Advanced Database Systems [video]
Yes, oddly intense. Makes it look like Mr Robot or something.
thinkpad20··on How the Scripto App Became a Fixture of Late-Night Comedy News
The way your responses read, you would think this article was some kind of hit piece on your programming skills. Not only is (to my eyes) no slandering or insults to anyone going on in this article, but the only one they call an amateur coder is Rob Dubbin. The name Jason Livesay doesn’t appear anywhere in the article.
thinkpad20··on Typesafe Neural Networks in Haskell with Dependent Types
> If this article is really meant to be readable by non-Haskell programmers, the example code snippets should also be provided in a more mainstream language with static types, such as C++, Java or perhaps JavaScript+TypeScript.

First of all, the definition of "readable by non-Haskell programmers" will always be somewhat subjective. Depending on their background, aptitude and motivation, many non-Haskell programmers can understand Haskell code just fine.

Setting that aside, the techniques described in this blog post simply wouldn't be possible to express in any of those languages. Just having static types is not sufficient. Even in vanilla Haskell, most type-level programming techniques are not possible to express, and certainly the type systems of Java etc are not capable of it (without significant extension).

thinkpad20··on Show HN: Cixl – a minimal, decently typed scripting language
Definitely. I meant that in the usage that I described (as a way to join complete sentences) you generally only see one per sentence.
thinkpad20··on Moonlight Sonata Visualized (2012) [video]
Seconded! I remember being wowed by his Debussy Arabesque visualization many years ago. Still worth a watch/listen! https://youtu.be/A6s49OKp6aE
thinkpad20··on Killing Off Wasabi (2015)
Downvotes? What did I get wrong here?
thinkpad20··on Show HN: Cixl – a minimal, decently typed scripting language
Semicolons should be used to join two complete sentences while having a “comma-like” flow (e.g. “I like cake; it tastes good”). I personally tend to use them quite a lot (despite being American). However I generally don’t put more than one in a sentence, which I think is somewhat standard. That being said, I don’t think it’s considered an error, per se, to do so.
thinkpad20··on Killing Off Wasabi (2015)
It started out as compiling VBScript but from my understanding it became its own beast, with all kinds of bells and whistles.

Yes, definitely there can be valid reasons to write your own language/compiler etc. Of course, the size of the Facebook code base, not to mention engineering team, put it in a clear class of its own. And the Hack project was run by people with extensive experience in compilers and type systems, not a summer intern... hah. But yeah, it’s not a bad idea in all cases. Facebook, google, Microsoft and many others have invented new languages and/or written compilers. And I’m sure there are valid reasons for a small organization to do it as well — but I fail to see what made it justified in this case. Then again the product didn’t go belly-up, so there’s that.

thinkpad20··on Killing Off Wasabi (2015)
Wow, that project sounds like a total dumpster fire. Not that I know any of the details, of course, but I find it hard to believe that it saved any effort to try to write a compiler and a custom language/type system/code generator/etc versus just embarking on a rewrite of the code in question. To be honest I’m surprised that even in hindsight he seems to think it was a good idea, as I read it as a cautionary tale.
thinkpad20··on I was given new hands for Christmas
She never claimed that they were equivalent. The disparity in quality of health care for transgender people in this country is well-documented and stems from many of the same reasons as the situation described in this article.
thinkpad20··on Generating inspirational quotes with Markov chains
This is pretty amazing, thanks for the share
thinkpad20··on You are listening to San Francisco
Considering all of the lack of public trust of police departments these days, I'd prefer that they don't use encryption. But, I'm sure there is more than one side to the issue.
← PreviousPage 3 of 20Next →