HNHacker News
TopNewBestAskShowJobs

mrkgnao

1,913 karma · joined March 29, 2016

submissionscomments
mrkgnao··on Immersive Linear Algebra – textbook with fully interactive figures (2015)
Wasn't he hired by Khan Academy recently? It's great if that helps a wider audience to benefit from his work.
mrkgnao··on Immersive Linear Algebra – textbook with fully interactive figures (2015)
Excellent work! I've been trying to get my mother (she's a physics teacher) to learn linear algebra properly for a long time. Artin didn't work (ha), Khan Academy moved too slow/bored her, but she seems interested in this.

It's important to appreciate how useful it might be to make math "tangible". Sure, someone who can define a manifold by saying "oh, put charts on it, locally diffeo blah blah" probably has a good set of mental models that help them find analogies and even "tangibilize" (word?) new ideas. Once you learn the way abstraction works, broadly speaking, you can take the training wheels off: but lots of people never get past that stage. On one hand, I see a lot of people on HN talk about how the complicated notation of academic math/CS keep people out (and there is an understandable amount of resentment at people keeping "outsiders" out with this), and on the other hand, I sort of reflexively bristle (it's gotten lesser now) at people integrating the notion of an inner product into a vector space, because it is important to not stumble later when you find out your basic intuition for something is broken[3]. (Of course, intuition can be incrementally "patched": Terence Tao's essay[3] talks about this, from the perspective of someone who is a brilliant educator in addition to also being one of the most versatile mathematicians around.)

Maybe presentations of basic mathematics that are

- simple

- rigorous

- free of half-truths

can be made accessible by using such visualizations and interactive techniques to decrease the perceived unfamiliarity of the ideas? I don't think there are many[2] treatments of mathematical topics that satisfy these criteria and yet manage to be approachable: one either skimps on a clean presentation (Khan Academy), or assumes a lot of mathematical maturity (shoutout to Aluffi!) from the reader. "Manipulable resources" might help fill this gap. It's an exciting time!

--

In the section where they give examples of matrix inverses, to give people a sense of how important multiplication order is, they give an example of RHR'H' (using a prime for inverse, R for a rotation matrix, and H for a shear matrix). One of the most beautiful illustrations[1] in the book follows, with the four corners of a square moving independently in circles, and then the book states that

    It is quite close, but it is not at all useful. 
While I understand the need to clarify the importance of multiplying matrices in the correct order, maybe a short aside on the unreasonable (practical!) effectiveness of commutators[0] would be useful?

[0]: https://en.wikipedia.org/wiki/Commutator

[1]: http://immersivemath.com/ila/ch06_matrices/ch06.html ("Example 6.12: Matrix Product Inverse au Faux")

[2]: Visual Complex Analysis is brilliant, though.

[3]: https://terrytao.wordpress.com/career-advice/there%E2%80%99s...

mrkgnao··on Timg – Terminal Image Viewer
It's curious how we're prepared to replace X (with people writing tiling WMs and the like that support it) but somehow the move away from xtermy things (and backwards-compatibility-all-the-way-back-to-way-back-when) hasn't really caught on much, at least on the Linux side of things yet. Any exciting work in this area? I'm aware of Black Screen and some other work on the Electron/rewrite-everything-in-JS front (Hyper, I think, is another).

I've been using Alacritty myself for a couple of weeks now. It's not too bad: the htop header bar won't render properly and catting random binary files crashes the terminal pretty quickly, but it's smooth and does everything a good "tmux VM" should do well.

I understand iterm2 on macOS is a significantly improved experience?

mrkgnao··on Building Safe AI: A Tutorial on Homomorphically Encrypted Deep Learning
Yes, but what this is is encrypting the network instead of the data. This way, when we improve the network iteratively to reduce predictive error, we can perform all the relevant calculations homomorphically.
mrkgnao··on Announcing the tokio-io Crate
Something like a -> (b -> r) -> r/the Cont monad?

E: I meant to reply to a a sibling.

mrkgnao··on Visualise all the knowledge of the world as Mind Maps
I'm really looking for something along these lines and would appreciate some input: what's a good way to externally index one's knowledge (at least the "serializable" parts)?

Right now I have a few big org files that are already surprisingly helpful: I can use ag (SPC s a p on my Spacemacs config, I haven't bothered to rebind it properly yet) to search for, say, "pigeon", which leads me to Skinner's experiment.

mrkgnao··on Enroute Airbus A380 wake flips Challenger business jet upside down
"It's Russian, hah."
mrkgnao··on Linear types make performance more predictable
There is a certain amount of familiarity expected, sure. But anyone who has read, say, the Monads chapters in Learn You A Haskell (which is about as nonintimidating as a book can get!) should be able to guess what those types - s and so on - mean. It's akin to the mClassMember/THIS_IS_STATIC_AND_PROBABLY_FINAL conventions in Java (don't quote me on that).

In other words, my thesis is that if you aren't familiar with State, both State s and State fooAppStateType are fairly opaque.

In any case, most of the time one works with a specialized instance, for instance, one might have something likr

    newtype AppState a = 
      AppState {  
        runAppState :: 
          ReaderT Config
            (StateT AppState IO) 
            a 
      }
and then there's no problem at all.

If you're trying to understand how a library works when you're not very fluent in the language, that's what the documentation is there for! Any good library (and this is an area where's lots of room for improvement) should document the types it uses and the idioms that it lends itself to, and as one accrues experience, the whole "learning to see common patterns" takes over. The great thing about a helpful compiler of the Rust/Haskell ilk is that you make fewer mistakes in between (modulo occasionally horrific error messages).

And I'm willing to vouch for this not being expert (ha) blindness - I have only recently become comfortable enough with these things to talk about them.

mrkgnao··on Linear types make performance more predictable
f for a functor is also very common, as is k for "continuations", very generally speaking (I think this is a borrowing from Lisps?): one often sees monadic bind defined as

    m >>= k = ...
In a somewhat more esoteric vein, I love the use of w for comonads: the rationale is apparently that it looks like an upside-down m.

> Of course, Edward Kmett had a story about winding up with his code telling him `i m a s t a b u`...

Is that an indexed lens ... parameterized over a monadic type? I'd like a link to the video/article.

mrkgnao··on Linear types make performance more predictable
https://github.com/tibbe/haskell-style-guide/blob/master/has...
mrkgnao··on Linear types make performance more predictable
Javadoc-like comments ("Haddocks") are pretty widely used, and Hackage (the Haskell library index) let's you browse them and so on.

See [0] for a good example of well-commented but idiomatic Haskell (a snippet from the popular Megaparsec parser library), which includes things like:

    data ParsecT e s m a
    
    ParsecT e s m a is a parser with
    custom data component of error e, 
    stream type s, underlying monad m
    and return type a.
Admitted, that is a monad transformer, but one-character type variables with human-readable docs are both good for newcomers as well as low-friction for people who are used to the library in question.

(Strawman alert.) It is significantly more work to parse (ha) something like

    ExceptT fooException (StateT fooWorldState underlyingMonad) a
when compared to

    ExceptT e (StateT s m) a
[0]: https://hackage.haskell.org/package/megaparsec-5.2.0/docs/Te...
mrkgnao··on Linear types make performance more predictable
https://xkcd.com/1312/
mrkgnao··on Generating π from 1,000 random numbers
That 6 is all I needed to see. :)
mrkgnao··on Is Facebook a Structural Threat to Free Society?
HN does have a noprocrast timeout available, although it's almost undocumented.
mrkgnao··on Ask HN: What's the most interesting URL you've seen?
The Russian Trump spammer named Vitaly Popov had the lyrics to most of Pink Floyd's Money in the URL that he spammed Google Analytics with.
mrkgnao··on Free Will
I'm very interested in math, and would say I'm fairly comfortable with abstraction (e.g. categorical thinking). I don't find philosophy of math or foundations very engaging, though.

Thanks for the recommendations!

mrkgnao··on LLVM 4.0.0
No. But that is probably two more than most other languages with a similar compilation model. (I think Rust has two IRs?)
mrkgnao··on Build a digital clock in Conway's Life
Classic Life is B3/S23, not B3/S34. Am I reading your diagrams wrong?

Also, your matrices for empty and type 1 each have an extra dot after the E on the first row (I think).

mrkgnao··on Build a digital clock in Conway's Life
I think it's interesting to note that (anecdotally, at least) things that are "less practical" attract far more in-depth SO answers than those that are more "useful in the real world" (insert connection to capitalism) - Haskell/"help me push this into the typesystem" questions tend to attract very well-thought-out answers oftentimes, and usually multiple answers at different levels of abstraction.

(Not that I'm discounting things like the excellent low-level questions on things like cache misses/alignment/"why are sorted lists faster to process", but I think they're rarer.)

If anyone here knows their way around the StackOverflow API and has some time, I think it could lead to an interesting couple of hours.

mrkgnao··on Free Will
I meant non-awkward. :(
mrkgnao··on After CIA leak, Intel Security releases detection tool for EFI rootkits
Did you mean the xkcd "crypto nerd" wrench, or is this a reference to something else?

E: ah, TIL. https://en.m.wikipedia.org/wiki/Rubber-hose_cryptanalysis

mrkgnao··on Free Will
As always when I see this kind of comment on HN: any references you recommend for someone who's looking to read some philosophy?

(Eek, weird sentence. No awkward grammar fixes welcome.)

mrkgnao··on Show HN: Sleeping Beauty, a 7-day roguelike game
"Not amused," the rats said they were

But Pavel would not be deterred

mrkgnao··on Rust's Type System Is Turing-Complete: Type-Level Programming in Rust
If you're talking about things like UndecidableInstances or FlexibleContexts, um, they are n't exactly uncommon!

In any case, saying that Haskell 98 is the One True Haskell(TM) isn't accurate. Almost all code (beyond the LYAH level) written today uses a few Haskell 2010 extensions, mostly for ergonomics (things like OverloadedStrings are a good example of this), not to mention all the extensions that make mtl let you write "lift whatever" instead of "lift . lift . lift ..." and infer how "high" you want to go up the monad transformer stack.

mrkgnao··on Rust's Type System Is Turing-Complete: Type-Level Programming in Rust
That was a fun few minutes :)

https://downloads.haskell.org/~ghc/7.0.1/docs/html/users_gui...

mrkgnao··on Unplanned Freefall? Some Survival Tips
It's more like the delta function/"function" restricted to the nonnegative reals.
mrkgnao··on Hot chillies might be good for us
My mind immediately went, "Indian cuisine is waaay too varied for generalizations like that to work..." before I realised that my corresponding mental models of, say, Chinese or Italian food probably suffer from the same problem. :)

Yogurt is usually churned into buttermilk: lassi, as it's called, is excellent, especially if you make the yogurt (dahi, or variations on that: in Bengali it's doi) at home: you take some milk, put a small amount of the yogurt you made the day before in it to "bootstrap" the culture, and off you go. But lassi going with every meal is, to my knowledge, a characteristically north Indian/Pakistani thing.

Mangoes (assuming you mean ripe ones, not green) are a summer thing, and you do find roadside stalls doing "mango lassi" as part of their lists (which are impressive for their length, in addition to being $deity-sends when preceded by a suitably exhausting experience on public transport). I have the feeling, though, that it's probably something one is more likely to find outside of India.

(I'm from Kolkata, btw. Thanks for the chance to go on this unintended happy-rant.)

mrkgnao··on Unplanned Freefall? Some Survival Tips
> If you have ever tried to keep your head when all about you are losing theirs

because there aren't any around to blame it on you? :)

mrkgnao··on Unplanned Freefall? Some Survival Tips
The measure of success as a function of how far you've fallen is basically constant throughout and then suddenly changes to 0 (or -inf, or whatever).
mrkgnao··on Emacs org-mode examples and cookbook
Nonmalicious heads-up: you're missing a couple linebreaks.
← PreviousPage 12 of 19Next →