HN user

amirkdv

741 karma

amirkdv.ca

Posts1
Comments102
View on HN

forces the other players to reduce their prices or shed customers.

Excpet they revert back to old prices once the competition is dead. This is textbook predatory pricing.

It's not like Bell, in this case, were offering 1Gbps for something absurdly below cost, like $1/mo or something just to drive the new comer out of business.

What's the significance of "absurdly below cost" here? They are doing exactly what you describe except the exact number here is not 1 but 50.

(1) Real Mathematical Analysis, by Charles Pugh is a wonderful introduction to pure mathematics for a mathematically inclined engineer. The back cover starts like this

Was plane geometry your favourite math course in high school? Did you like proving theorems? Are you sick of memorising integrals?

(2) The Man Who Mistook His Wife for a Hat, by Oliver Sacks. I think it's impossible to read this (or a number of other works of Sacks') and not be mesmerized by the workings of the human brain. Disclaimer: I wouldn't call neuroscience my "field of study" even though I did study it.

Yup. Great article overall until the bit you quoted.

Sure, it has the _potential_ to transform personal genomics, but the (insanely cool) T2T project is indeed almost exclusively an academic one.

Maybe I'm too cynical, but I think academics are wired to automatically produce such declarations of Greater Societal Impact simply because of how we, as a society, have decided to allocate resources for scientific research.

I've heard this a lot. I think there are two problems with this. First, you need massive adoption for the "social" part to be at all useful, hence only the few big social platforms can even try it. Second, even at maximum possible adoption, you'll probably run into the problem that actual human social networks have nowhere near enough branching breadth to help rank the behemoth that the web is today, i.e. for most queries and most possible hits, there's not enough signal coming from the social network.

The document you shared is a great example of the education system acting as a vessel for inculcating children with sterile, polite thoughts. I can imagine the room full of well-meaning adults who think they must protect children from dangerous ideas like racial superiority and end up building an edifice of useless ideas.

Maybe we shouldn't even try to explain such an overwhelmingly complex topic like "development of civilization" in grade 4? A charged topic where reasonable sounding yet deeply flawed ideas are known to dupe entire generations of adults.

Alas, our education culture still prefers a feeding tube of narratives over an actual education that equips children with a robust understanding of basics (history, economics, ...) and the ability to question content in front of them. The same sadly applies to science education I think, but with less dramatic effect.

A lot of morality is of course fashion (and "relative", if you want).

But failure to articulate universal moral rules concisely, doesn't mean there's no concensus.

Circumstances and relevant context can be very complicated and laborious to describe, but there are still many cases where overwhelming majority of people would agree on what's right and what's wrong.

Such obviously false statements might be treated as jokes, or at worst as evidence of insanity, but they are not likely to make anyone mad. The statements that make people mad are the ones they worry might be believed.

There's some truth to this that's worth pausing on.

But it's a fallacy (probably with a fancy name) to say "it made you mad therefore you worry it's true".

A statement could be false yet incite anger because it's demonstrably harmful.

Asking "Any Java experts around?" takes little effort

which is precisely why this is annoying: it's asking for a social commitment without putting any effort in. It also reaches for the top shelf for no reason. Does the person's question really need a Java "expert"? Probably not.

A "no" response for the first question could save you from wasting your time with the second.

Arguably if they were to find help _anywhere_ they would benefit from articulating their question in a clear and concise way. Let alone the high probability that through writing the question they might answer their own question, because we're all humans.

I've been a happy FastMail customer for 8 years now. Migration from Gmail was a breeze too!

The only feature I've missed in all this time is schedule-send which they seem to have indefinitely put on their backlog.

OP listen to this.

And go read So Good They Can't Ignore You by Cal Newport. You'll see stories of people in situations very similar to you.

Source: I rebeled in my early 20s for a more meaningful life before I had enough career capital to spend and learned a lot of lessons the hard way. My saving grace was that I already had a degree and was demonstrably good (i.e. employable) at a couple of things.

Natural selection is what stops DNA from becoming non-functional [...] Over the extremely long run regions of the genome that have no biological function should disappear, no?

If you have a sequence that's neutrally mutating with no corrective pressure it won't eventually disappear. At most it'll mutate into something unrecognizable [^1]

For example, your genome is littered with pseudogenes. These are mutated, ineffective shadows of what used to be a functioning gene. Nonetheless they're still close enough to what they used to be that you could reason about them in an evolutionary sense, eg: this one is also a pseudogene in other primates (i.e. it stopped mattering a long time ago), or this other one has a functioning homolog in non-primate vertebrates (i.e. it kept functioning in that lineage).

[^1] as a first order approximation. There are of course other structural events that can create much more change per event than your run of the mill single-point mutations that occur during every DNA replication.

as we have more and more interdisciplinary scientists jumping in at the interdisciplinary level, we're already in an era where diletanttery (especially in trendy science mashups like biophysics) is high

Once heard a bioinformatics (CS) PhD candidate say "natural selection would remove a region of the genome if it didn't have biological function". They graduated with a thesis having to do with genome evolution.

Except for PCR has been around for decades and its basic principles are taught in first year molecular biology courses.

Whereas Theranos' newfangled secret "innovation" was ... well, a secret throughout.

(Not grandparent commenter) I think you're usually right but I doubt it makes a difference at the scale of 2-5 objects created in a test case. The big game changers IME are in-memory dbs (SQLite) or parallel execution of tests.

This idea of "transaction rollback in test teardown because performance" has a life of its own. The recommended base class for django unit tests (informally recommended, via code comments, not actual docs) uses transaction rollbacks instead of table truncation [0].

On top of this, I think, db truncation gets mixed up with table truncation sometimes too. For example, from OP:

The time taken to clean the database is usually proportional to the number of tables

... only if you're truncating the whole db and re-initializing the schema, no?

And people sometimes actually do clear the whole db between tests! One unfortunate reason being functionally necessary data migrations that are mixed up with schema-producing migrations, meaning truncating tables doesn't take you back to "zero".

[0] https://docs.djangoproject.com/en/2.2/_modules/django/test/t...

There's good discussion in this thread about when and why to use attrs, pydantic, or stdlib dataclasses; I have my own thoughts too.

But all I can really feel is gratitude for all of us not having to do namedtuple/slot contortions anymore. Good riddance.

Keep a Log 5 years ago

I love this! And have been doing something like this for years.

The zero-effort part is key in my IME: if it's not zero effort, it won't stick. And if it doesn't stick, you won't reap the nonlinear long term benefits. There's the obvious benefit of magically reaching into the past and remembering things. But the hidden power that surprised me was the day-to-day experience of clearing cognitive clutter by typing things out in a place that I trust won't get lost.

Shameless plug: two years ago I hacked together a little node script to give my pile of markdown files a more friendly UI than grep: it would pass them through pandoc and massage the DOM and slap a a bit of JS on it. I've been using it everyday since and it's become my favorite productivity hack. I'm currently in the process of rewriting that ole hack in Go to make it more stable and easy to distribute (and to learn Go!): https://github.com/amirkdv/codex

Having experimented with a bunch of different ways to organize complex django settings, I think what OP suggests is a local optimum that's hard to scale and doesn't solve a bunch of important problems (eg ok, credentials are now in local.py which is not committed to git. Now how do I get it to people's dev machines / CI?)

My key observation is this: If you're actually deploying and maintaining a django app you can't escape having quite a few environment variables that control different pieces of config. Once I accept that I can't shake these off, I'd rather minimize all other complexity, including having to reason about multiple settings modules that import/override each other in creative ways.

What I've settled on is:

1. Every thing controlled by env vars, not choice of settings module

2. the one and only settings.py toggles config based on env vars, say something like this:

    STORAGE_MODE = os.environ['STORAGE_MODE']
    
    STATICFILES_STORAGE = {
       'local': '...StaticFileStorage',
       's3': '...S3Boto3Storage'
    }[STORAGE_MODE]
EDIT: wording and typos

I used to struggle with this a lot. Here are a few things that have really helped me over the past decade:

1. This is incredibly common. Some of the most productive people you know probably struggle(d) with this. And this is important to keep in mind because if you think "there's something strange and unique wrong with me" your brain will dismiss standard insights and tools.

2. Dysfunctional perfectionism is a procrastination tactic. And procrastination is a standard human coping mechanism for anxiety. These are hard facts even if they don't _feel_ real. The source of anxiety for most knowledge workers with their baisc needs satisfied is often this: the grandiosity of unrealistic dreams that have calcified as expectations. This messes with your self-esteem too

3. Echoing vesuvianvenus's comment on this thread ('scale back the dream, scale up the grind'), this Tim Minchin commencement speech [0,1] has stayed with me for years.

I never really had one of these big dreams. And so I advocate passionate dedication to the pursuit of short-term goals. Be micro-ambitious. Put your head down and work with pride on whatever is in front of you… you never know where you might end up. Just be aware that the next worthy pursuit will probably appear in your periphery.

[0] https://genius.com/Tim-minchin-commencement-speech-and-unive...

[1] https://youtube.com/watch?v=yoEezZD71sc

This so much. This would be on the syllabus of the missing Employment 101 course. Very few people I've seen try to evaluate the company as much as they're being evaluated.

We all grow up with the false, ingrained assumption that it's some sort of one-way privilege for you, the employee, to rent your time/body/mind to the employer.

Just wait for antivaxers to hear 'DNA' and go wild.

Sure the already anti-vaccination crowd will have more reasons to be peeved and more talking points to scream about. But would it mean new people would turn against vaccines because they hear "DNA"?

It seems to me like the big divide in the general population is over people who are open to their conceptions of nature be challenged and corrected (this whole pandemic has been a mini science course for a lot of people: exponential growth, conditional probability, mRNAs, to name a few) and those who just are not. Any other pre-existing opinion/ideology ("I just don't do vaccines") is probably unaffected by technical details.

it becomes a pain once you start trying to use it like a DSL or templating language.

I like YAML and use it a lot. But I'd argue the fact that it even allows/encourages you to do such things with it is a design flaw that ultimately has kept it from Do One Thing Well.

Lots of code metrics have been proposed ... But nothing works better than counting lines of code [with citations]

Here's an anecdoate, not to dispute the empirical finding.

I recently discovered McCabe (cyclomatic) complexity and found it remarkably good! In a tiny experiment, I ran it on a 50k Python code base with a threshold of 8, and the output almost exactly matched all of the already existing `FIXME: refactor this` comments. According to McCabe the threshold to look out for is 10.

---

p.s: if you write Python, you already probably have the mccabe package installed through flake8. Use it like so:

    $ python -m mccabe --min 8 foo.py

I think YAML is even worse as a serialization format than a configuration format.

This. I find YAML to be the least offensive option for configuration and one of the worst for serialization.

I might be misinformed, but I find it absurd that in 2021 we still don't have a default, universally available tool that supports the basic table stakes without headache:

1. core data types (number, string, etc)

2. lists, maps, and arbitrary nesting

3. comments

4. multiline strings

5. is acceptably readable

6. Just Works everywhere

YAML does get 1-5 right (specifically 3 and 4 that JSON doesn't and IMO better in 5). But then it adds a ton of complexity that has left us without a standard, safe, and sane parser implementation: anchors and references (& and *) , casting (via !!), custom data types (via !), loads of other things I don't understand.

But, can humans do this? I think not;

Even humans are only probably approximately correct.

Fair point. But how about this:

It's true that what John would do with the sentence is technically an "approximation" of what Alice would do because they have slightly different understandings of correct behavior. However, for humans to do what they do, they still do build an absolutely correct model of meaning in their mind wrt their (subjective) notion of correctness.

This may sound like an obtuse play with words but the point is that to even attempt to do the right kind of reasoning in NLU, you need a different framework than PAC. You can't for example approximate whether "during the Cold War" qualifies "was based in" or qualifies "an Eastern European country". You just need to decide. And once you decide, you have an absolute correct interpretation, not an approximate one.

EDIT: wording.

Yup. They shouldn't exist. It's an outrage that they do.

They don't pay the reviewers. They charge the authors (who pay the ransom typically from taxpayer funded research grants), and they charge the readers, who are either the public or said academics again.

But the reason they do exist is that they have the monopoly on issuing the only acceptable currency that dictates the life and career of academics: publishing their work in "high impact" publications.

I can't tell if this is sarcasm or not. If serious ...

This seems like a reckless way of regulating your motivation at work IMO. I don't mean to be snarky. But it really does put a lot of risk and cost on your colleagues, doubly so if you're leading a team, /and/ puts a lot of risk on your own career and reputation.

If you need to over-engineer everything to stay motivated, you need a different job. A job where the _problems_ are hard and the challenge is to find simple solutions to them, instead of the other way around.