HN user

darkkindness

310 karma

current foci: programming language theory, education, mental wellness, compilers

past foci: functional programming, category theory/abstract math, quantum computation, number theory, journaling, software testing and verification, roguelikes, microcontrollers

I like to favorite comments that clearly express problems that people in this community have had. After all, it's hard to write what you mean when the problem is complex! I do this in the hopes that I can look back on them one day and see which ones I might tackle and which ones are no longer problems :)

https://news.ycombinator.com/favorites?id=darkkindness&comments=t

Posts4
Comments116
View on HN

Thanks for the link, I was wondering if Scott touched on this. Seems to be an adjacent topic but it's relevant nonetheless.

my tldr of that post: in the context of ideological/political theory, mistake theorists are engineers who want results, conflict theorists are warmongers who want to win.

Perhaps seeing bias in everything is just one of those warmongering traits -- because trust me, it's really hard to win against a neutral point of view.

I like this. Polarization is a pretty good characterization. People are just not treating neutral views as neutral anymore.

Food for thought: perhaps people treating everything as fake news is an unfortunate adverse effect of all the messaging about the dangers of not recognizing fake news.

Thanks for your viewpoint.

As far as I understand, outrage culture is about shunning popular folks for their imperfect human morality. Could you (or someone else) elaborate on how this is related to this, well, let's call it erosion of neutrality?

meta: Over these past four years I've seen a growing number of people interpreting the most nuanced, neutral statements as 'apologist', 'biased', 'lobbying', 'spam', 'politically motivated'. I don't think this has always been the case, especially on HN.

It's not just skepticism, that's for sure. How do I put it? It's like assuming there are sides when there are no sides. I'm curious, is there a word for this?

Just for fun and to make a point, I threw your reply into Talk to Transformer.

This is something so many people miss when trying test the limitations of GPT-2. It just doesn't make sense to test it on strings of text that nobody ever writes. To me, the best way to evaluate the usefulness of GPT-2 is to compare it to some actual test that validates a lot of its claims. So... let's do just that.

It might be just chance, but gee -- is this text referring to its own generation as a test to convey a point? The self-referentiality is formidable.

Am I Unique? 6 years ago

I use Firefox on Android with NoScript and an adblocker.

Yet I'm uniquely identifiable. One culprit is screen size putting me at <0.01%.

Does that make defeating fingerprinting on mobile hopeless for the casual user?

Edit: more info. All JS is blocked, and I have privacy.resistFingerprinting. The page doesn't detect my adblocker. Still, there are just too many things I can't change:

- hardware concurrency: 1.7%

- audio formats: 0.2%

- navigator properties: 0.2%

- audio data: 0.1%

I was surprised at this one:

- Media devices: Unique

What are media device identifiers for, exactly? Why does the browser supply it without JS?

Just to support your argument further, here is a related snippet from another comment[0] by knzhou:

Students can all recite Newton's third law, but immediately afterward claim that when a truck hits a car, the truck exerts a bigger force. They know the law for the gravitational force, but can't explain what kept astronauts from falling off the moon, since "there's no gravity in space". Another common claim is that a table exerts no force on something sitting on it -- instead of "exerting a force" it's just "getting in the way".

Here is some food for thought for educators. If GPT-2 also makes sense of the world by regurgitating what it sees, perhaps this is simply the nature of learning by example, and we should accommodate for this. Perhaps it isn't so effective to give students mounds of problem sets offering clear premises and easy-to-grade answers. Unless you want your students to be GPT-2s.

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

It's really weird to evaluate GPT-2 based on its ability to say things no reasonable person would ever say. If I were born in Cleveland I wouldn't be jumping to proclaim my fluency in English. If I told you I left my keys out at the pub, I wouldn't immediately repeat myself and say that my keys are now at the pub. If I'm talking about two trophies plus another trophy, I'd probably try to end it with some punchline rather than saying there's three trophies.

A lot of the things we write assume the reader can make connections on their own. That's a writing skill. It's the reason why Hemingway's famous "For sale: baby shoes, never worn" is so impactful. As such I've found GPT-2 to be incredible at writing fanfiction.

The conversation Bill's touching on -- the tradeoffs between different notations -- is really valuable but I think it misses something a lot of us desire in a syntax: compositionality. Take the provided "onion" notation, loops, and the "new" syntax. They all look something like this:

  ┌────────┬────────────────────┐
  │myreduce│┌─────┬────────────┐│
  │        ││mymap│┌────────┬─┐││
  │        ││     ││myfilter│x│││
  │        ││     │└────────┴─┘││
  │        │└─────┴────────────┘│
  └────────┴────────────────────┘
(The math one looks more like this:)
  ┌────────┬────────────┐
  │myreduce│┌────────┬─┐│
  │        ││mymap   │x││
  │        ││        │ ││
  │        ││myfilter│ ││
  │        │└────────┴─┘│
  └────────┴────────────┘
But none of them provide the same kind of "putting pieces together" feeling as this:
  ┌────────┬─────┬────────┬─┐
  │myreduce│mymap│myfilter│x│
  └────────┴─────┴────────┴─┘
which we see in the wild as this:
  (myreduce ∘ mymap ∘ myfilter)(x)
or this:
  x | myfilter | mymap | myreduce
or this:
  myreduce mymap myfilter x

I think each one of us has a different idea what a "bullshit job" is. My favorite definition is this:

When it comes to garbage collectors, though, it’s different. Any way you look at it, they do a job we can’t do without. And the harsh truth is that an increasing number of people do jobs that we can do just fine without. Were they to suddenly stop working the world wouldn’t get any poorer, uglier, or in any way worse. Take the slick Wall Street traders who line their pockets at the expense of another retirement fund. Take the shrewd lawyers who can draw a corporate lawsuit out until the end of days. Or take the brilliant ad writer who pens the slogan of the year and puts the competition right out of business.

Instead of creating wealth, these jobs mostly just shift it around.

(the article itself[0] tells about how banks in Ireland went on strike for 6 months, but the strike was shrugged off as there was no impact)

[0] https://evonomics.com/why-garbage-men-should-earn-more-than-...

The article definitely a little confusing. It starts with an edit that gives new info about how to remove "Android/Trojan.HiddenAds.WRACT" which is auto-installed by the Settings app replacement they call "Android/Trojan.Dropper.Agent.UMX" preinstalled on the phone.

But uninstall the Settings app, and you just made yourself a pricey paper weight.

An immediate solution is to enable NoScript on all news sites. Disabling JS speeds up load times to instant and hides most of the cruft. It's working great so far for me (using Firefox on Android).

This might interest you (and anyone reading this thread): AnyDSL is a language framework that separates the concerns for both viewpoints (designing for expressivity, designing for abstracting 'complex ideas') but also that of the machine expert (designing for efficiency). I'm not affiliated with AnyDSL, I'm just parroting the blurb on its main site[0]:

When developing a DSL, people from different areas come together:

- the application developer who just wants to use the DSL,

- the DSL designer who develops domain-specific abstractions, and

- the machine expert who knows the target machine very well and how to massage the code in order to achieve good performance.

AnyDSL allows a separation of these concerns using

- higher-order functions,

- partial evaluation and,

- triggered code generation.

[0] https://anydsl.github.io/

Nice! Isn't this exactly assert in C++? (the following is from https://en.cppreference.com/w/cpp/error/assert)

    #ifdef NDEBUG
    #define assert(condition) ((void)0)
    #else
    #define assert(condition) /*implementation defined*/
    #endif

    ...
    assert(("There are five lights", 2 + 2 == 5));
    ...

    test: test.cc:10: int main(): Assertion `((void)"There are five lights", 2+2==5)' failed.
Take it as a token that you are doing something right. :)

This view might be conflating IP theft and plagiarism -- plagiarism has always had a strong regulatory regime in the form of peer review. Regulation of IP theft is a different story.

By the way, did I spot a Tom Lehrer reference?

Key insight IMO:

You can talk the talk like a champ, and be up with the latest buzz, but in some corner of your mind you may recognize that your basic skills are fundamentally lacking.

Learning for learning's sake is admirable, and it's easy to snub practical application. But it's much like how you can only read a few thousand books in your life -- the modern world is so full of novelties that you must carefully choose what you learn. There is an inherent opportunity cost in all learning.

My personal razor for deciding what's not worth learning is: if I can't justify teaching others what I've learned, it's probably not worth learning.

Python Type Hints 7 years ago

Thanks for the links! Those fully specified frankentypes are indeed atrocious, and no sane person should ever need to read them. That being said, isn't "Any" meant to act as a wildcard, used precisely for ignoring the unimportant parts of the type? Specifying huge and rigorously correct types just seem like an eager misuse of type hints to me.

At the same time, adding the capabilility for complexity the language does encourage complexity, doesn't it? (Rust comes to mind.) So I admit what I just said isn't much of an argument -- frankentype hints _will_ be written, and therefore we _will_ have to suffer them someday...

If I understand what you're suggesting, lipopolysaccharide doesn't make cells immortal. It just does the equivalent of making it not work when you hold down the power button to power cycle and force-shutdown your laptop. It lets your malware be free to run and send emails without danger of losing its environment.

Python Type Hints 7 years ago

There really is a cost, in the form of having to rerun code a dozen more times to catch unresolved type errors. But AFAIK, that's it. Can I ask what I'm missing? What cost of this (optional) static typing are folks talking about?

IMO this is worth it, since the goal is less about eliminating runtime errors or other errors, and more about encouraging documentation in code rather than in comments/docstrings. This makes reading code simpler, not less so.

The rest of the site might be nonsense to you and me, but I think this page did very well in displaying how much thought was put into ensuring reliability in the design of pocket watch mechanisms in the 1900s.

Do you believe the piece linked in the first paragraph[0] describes an outlier in terms of data collection? It shows how location data from a single low-lying location tracking company had enough pings to reliably pinpoint home and work locations of individuals, enough to de-anonymize and interview them. This does not seem like sparse data.

[0] https://www.nytimes.com/interactive/2019/12/19/opinion/locat... (discussion https://news.ycombinator.com/item?id=21833718)

My take: I don't think this is an issue. "What it is" is a sandbox for graphical K programs, which is already provided in the title. Given that K is already rather niche, and sandboxes are meant for playing with rather than general use programming, it seems like this toy isn't targeted towards a general audience and has no obligation to explain itself further than "K in your browser".