qcoh's comments

qcoh | 4 years ago | on: Binary search with confidence

PBT is awesome but I would still like to have tests I can easily reason about when implementing a tricky algorithm. The way I see it, TDD is the specification, PBT is for finding gaps in my specification.

qcoh | 4 years ago | on: Examples of common false beliefs in mathematics

> I'd have to look up what the "/" in "M/L" means in the 5th reply (I didn't)

M/L means that M is a field-extension over L. A concrete example would be C/R (the complex numbers over the reals).

Algebraic number theory, in particular Galois theory, studies field extensions by looking at the group of symmetries: the field automorphisms of the larger field that fix the smaller field. For the concrete example above, the Galois group is a group with two elements: the identity function and the function that maps i to -i and keeps real numbers fixed. It's not a coincidence that the dimension of C as an R-vector space is the same as the size of this group (or that the degree of the polynomial that has i (and -i) as roots has degree 2).

qcoh | 4 years ago | on: The age of machine learning as code has arrived

To add to that my current struggle: Most stuff is geared towards conda and terrible engineering practices (requirements.txt and not even locked versions). If you want to actually build and deploy something on actual hardware, you are in a world of hurt. And even for training the dependency situation is so ridiculous that most repos come with their own Dockerfile.

I marvel at the cool machine learning demos but I'm kind of sick working on this stuff, tbh.

qcoh | 5 years ago | on: Ask HN: Do you think Agile/Scrum is beneficial for software delivery?

Some things I like:

* Frequent feedback from stakeholders and customers

* Retrospectives

* Standups

These can be annoying but they help make sure that the right thing is developed.

Things I don't like:

* Things get rushed to get them done before the sprint ends (even if there is no deadline pressure)

* On the other hand, everything takes at least two weeks to get done

I feel that this turns the output of a very high-performing developer into that of a mediocre developer. I'm not a 10x developer, so I can cope. ;)

Things I don't like but don't blame on Scrum:

* Jira

* Storypoints

* Estimating: All estimates beyond the current sprint are completely unreliable. Still, people use storypoints to derive release dates and worse, measure the productivity of employees using them.

FWIW, until I learn of better processes, I prefer Scrum without "buts" and with continuous deployment.

qcoh | 5 years ago | on: iOS 14 USB tethering broken on Linux: looking for docs and contact at Apple

Three reasons for me:

* It disconnects more than once per day, requiring me to enable the wifi hotspot again on the phone

* The phone gets very hot

* It is slower than usb tethering: In my measurements, I get about 4MByte/s over USB and around 2MByte/s with wifi, though I'm not too confident in the results. According to the mobile provider, I should get 10.

EDIT: A fourth one is that the wifi hotspot leaks my first name and phone brand to everyone in the vicinity.

qcoh | 5 years ago | on: Twenty Proofs of Euler's Formula: V-E+F=2

If anyone else struggles with how the formulae "V-J=1" and "1+D-F=0" are obtained: You can think of the two different ways of joining bodies of water (join two separate bodies of water (J) and join the same body of water (D)) as algorithms for computing a spanning tree in the original graph (J) and the dual graph (D).

qcoh | 6 years ago | on: Learn TLA+ (2018)

There's a paper describing the use for railway applications [0].

A few years back I had an interesting discussion with one of its authors and was shown the real model and code. Interestingly, they generated C from the TLA+ spec and this code generator was "unproven". However, the software itself had high coverage requirements and needed to be tested extensively (100% code/branch/MCD coverage, I don't quite remember).

One of the points he made was that the upfront cost pays for itself by avoiding bugs that are hard to debug.

[0]: https://drive.google.com/file/d/1rAn3N5hViv3xNe2E55lMzpFFym1...

qcoh | 6 years ago | on: Recursive Make Considered Harmful (1997) [pdf]

I tried this once with multiple components (each being built into a static library), components "exporting" public includes (with correct dependencies across component boundaries) and tests for every component (as well as integration tests) and my conclusion: cmake it is.

qcoh | 8 years ago | on: Linear logic and deep learning [pdf]

Sorry for the unrelated comment but I wanted to thank you for your nice lecture notes. I found them clear and very helpful during my studies.

qcoh | 9 years ago | on: C++11 FAQ

Thank you for the explanation! I'll have to look out for that one...

qcoh | 9 years ago | on: C++11 FAQ

Sorry, can you clarify? Adding the template argument causes a crash on idone, but I have no idea why that happens. Moreover, the output on my computer is always b\n.

EDIT: Not sure if this is it, but after some digging I've found [0] on lifetimes of temporaries. As for the lacking template argument, presumably const char* is inferred and a temporary string is constructed in main?

[0] http://stackoverflow.com/a/2784304

page 1