HNHacker News
TopNewBestAskShowJobs

knuthsat

774 karma · joined September 22, 2020

submissionscomments
knuthsat··on Harvard mathematician answers 150-year-old chess problem
It's little o notation. It does not depend on n.

For example x^2 is in O(x^2) but is not in o(x^2).

knuthsat··on Primel – guess a 5 digit prime number – each guess must be a prime
Or https://en.wikipedia.org/wiki/Prime-counting_function .
knuthsat··on JetBrains Mono – the free and open-source typeface for developers
Yep, blurred on one of my devices.
knuthsat··on JetBrains Mono – the free and open-source typeface for developers
I do not know why but this game makes the winning font look much better than it is when I use my code.

Whenever I try the winning font (b612, fira mono), I always go back to Liberation Mono.

knuthsat··on Google requiring all ‘G Suite legacy free edition’ users to start paying
MBAs are seen as people without skin in the game. They are rewarded if things are going well, and are not punished if things go bad. The asymmetry makes these individuals look as if they are here to leech and most of their knowledge is just how to "network". Just pick any big bank and look at how the board members rotate as time goes on.
knuthsat··on Dominant languages can spread even without coercion
I remember that a bunch of my classmates in elementary school knew German through watching Pokemon on a German cartoon channel that was broadcasted in Croatia (required no paid subscription, unlike Cartoon Network).

It was incredible, the accent was impeccable.

knuthsat··on Cannabinoids Block Cellular Entry of SARS-CoV-2 and the Emerging Variants
Any idea if amount of cannabinoids produced by our own body is high enough?
knuthsat··on From TypeScript to ReScript
I discussed it elsewhere in the thread.
knuthsat··on From TypeScript to ReScript
Yes, but the usual cases of -> "app starts -> load some state from local storage -> store it in memory for sync access -> do app" sometimes get lost due to the ease of async/await syntax.

If you have to chain network requests but each request depends on results of the former ones, then async/await makes it really pretty.

I have no idea how much async/await is too much.

What I do dislike is that storage loads, network requests and other things are tied to the same type, so when you look at code, you have no idea what's happening inside those async functions, but that story is for some other time.

knuthsat··on From TypeScript to ReScript
Sometimes you don't want to pause (with await) and give something else the chance to execute (happens a lot in UI).

When code is sloppily written you realize that at some point you can't use much of the existing code outside of async.

One nice example of polluting the codebase is having async local storage. Now everything that reads from the storage needs to be annotated async and now your initialization pipeline might be insanely async. Good way to avoid it is to read the whole local storage at the beginning (having a sync interface) and then everyone just reads without await.

From recent experience, I did exactly that with storage and ended up removing thousands of async annotations that were no longer necessary.

Similar "mistakes" happen for other things and then at some point you are putting loading guards everywhere because your async operations are always awaiting and letting the UI update when it should not.

knuthsat··on From TypeScript to ReScript
No async/await is a good thing, IMO.

Using fp-ts there is never a need for async/await and the code is still linear, (Promise is transformed to TaskEither<Error, Result>, similar to the example in the article, although you can ignore the error and just map over the result, handling the error somewhere near the end of the chain).

Problem with async/await is that the syntax is so easy that eventually the whole codebase gets polluted by it, even parts that could have been completely separated.

From the coding perspective, the problem with promises arise when there is a need to bind the intermediate results. You can either store them in an object and return that object for the next .then(fn) call, or you can nest inside a promise. I guess nesting is what annoys people the most (pyramid).

knuthsat··on How to start a successful freelance business as a software developer (2017)
Automatically evaluated leet coding session (2 hours) + Live English language check interview (15 mins) + 2 week fake template project + Live coding session (30 mins).

I was fortunate enough to pass everything without additional attempts and had no job at that time. Some of my friends got in after 1 year (after you fail at some step, 2nd attempt is delayed), some never managed to complete the whole process.

knuthsat··on How to start a successful freelance business as a software developer (2017)
This was my experience too. After the initial period where recruiters are a bit afraid to give you your first engagement everything starts flowing really smooth.

I started at Upwork and was constantly writing proposals and struggling with the search to find relevant jobs.

But on Toptal, even after an abrupt end of the contract I get something else in less than a week and it's zero effort from me and all effort from the Toptal team.

Even if I get bored and want a change, announcing the end of contract turns on the avalanche of offers from the Toptal team.

It's just insanely smooth and I had no idea I'd find something like that, initially.

knuthsat··on Donald Knuth – The Patron Saint of Yak Shaves (2017)
This is computer modern optimized for printing. It’s not bad, the pixels are constructing the glyphs in a way that makes them good for printing.

Bitmap version of the font, I guess.

knuthsat··on A neural network solves and generates mathematics problems by program synthesis
They should do this for competitive programming tasks.
knuthsat··on Why do 70% of families lose their wealth in the 2nd generation? (2018)
In Europe some families are still insanely rich from being rich 500 years ago. There's not much being written about them today as many do not seek publicity.
knuthsat··on A/B test improved your website's conversion rate? Not so fast
Yes, I saw the figure and that's why I commented that the day 2 conversions for the control are basically giving all of the information in the assumed model.

To me it just looks like a whole new batch of assumptions. Might be fictitiously valid or not.

knuthsat··on A/B test improved your website's conversion rate? Not so fast
A/B tests work fine if the signal you are measuring is strong. This is not the case here.

Is it even fine to use the distribution assumptions in the later analysis?

Looks like these assumptions combined with a higher conversion rate on day 2 for control is the main reason for the surprising result (control is obviously spread out).

knuthsat··on It's not what programming languages do, it's what they shepherd you to (2020)
I guess it depends on what OP is talking about. Async code can be written with callbacks (callback hell incoming), or with Futures/Promises, or with syntax sugar like async (do notation).

Whatever the reason is for using async, I believe that the mismatch happens not because Async is optimized for I/O bound programs but because it's insanely easy to use (in Rust, Javascript).

knuthsat··on It's not what programming languages do, it's what they shepherd you to (2020)
async, when looked at from the "writing code" perspective is horrible.

it pollutes every function with async annotation.

it allows you to quickly write the code imperatively by just annotating a function and using the async function inside it.

it results in code that is massively polluted with async when at most places you never had to use it at all (if you just restructured the code).

having async be as verbose as possible would enforce people to not use it as much and to structure their code to have async bits nicely separated from non-async bits.

knuthsat··on Best Paper Awards in Computer Science over the past 25 years
It's just amazing how DL made most work completely irrelevant.

Stuff before 2010 in natural language processing is ridiculous. Dynamic programming algorithms, beam search, dependency parsing (grammar) algorithms (going from O(n^3) to O(n) with cost-sensitive algorithms), a huge focus on lexical analysis, part-of-speech, graphical models (maximum entropy, conditional random fields, etc.).

Today all of these algorithms are completely irrelevant. No one needs part-of-speech anymore, or dependency (grammar) trees, or cost-sensitive reinforcement learning reductions.

I remember being so inspired by all of the work and learned a lot, but it's quite funny how Lindy works.

knuthsat··on Bitcoin network hash rate down 13.4% due to Kazakh protests
Obviously Chinese miners went to Kazakhstan to mine.
knuthsat··on High beef prices and the destruction of independent cattle ranching
Damn, first video I open is of castrating piglets. Can't believe it's done while the animal is awake and with no sedatives. Brutal.

I'd rather have a farm raising plants than do that kind of stuff.

knuthsat··on Building Generative Glitch Art Tools
I remember having such a nice discovery of "glitch art" when I was writing my own quantization algorithm (discrete cosine transform [and inverse]) and I had a bug but got nice looking outputs, like this one:

https://i.imgur.com/LMjg40v.png

Not sure I remember what the bug was (probably some overflow/clipping issues when dealing with 8 bit numbers) but the original image (above) was unprocessed frame from a movie (I don't remember which one).

Once the bug was fixed, there was little difference (except for the blocking effect of quantization). Was quite surprised how such a small bug creates such drastic visual difference.

knuthsat··on Ask HN: How did you move on from past experiences?
That's exactly what my wife did. College was extremely stressful and filled with suffering for her. After it ended, she never felt like it really ended.

But after we moved to a different country she is a completely new person.

knuthsat··on Ask HN: What is your spiritual practice?
I think it's a normal thing in Hinduism. There's a rituals where you offer the cooked meal to God first, then you eat. The offering is accompanied by a bell.
knuthsat··on “The Matrix Resurrections” is an excellent movie
Yeah, that's my impression too. It's unbelievable that there was right amount of everything in The Matrix.

Cloud Atlas, Sense8, and other movies Lana made after The Matrix just feel a bit cringy and off most of the time.

knuthsat··on Does the Bronze Garbage Collector Make Rust Easier to Use?
SharedMemory is a new thing in Python. Not even supported by all 3.x versions.
knuthsat··on Does the Bronze Garbage Collector Make Rust Easier to Use?
I guess the simplest example is shared memory between processes.

Even Python has it: https://docs.python.org/3/library/multiprocessing.shared_mem...

knuthsat··on Ask HN: How to optimize your career for happiness?
Yep, me and my wife have so much fun without kids. We are also not spiritually empty and we find deep meaning in things we do through our life together.
Page 1 of 13Next →