HNHacker News
TopNewBestAskShowJobs

daniel-levin

870 karma · joined December 8, 2012

submissionscomments
daniel-levin··on My First LLVM Compiler (2015)
I imagine it is because gcc -o is a convenient way to call the linker such that it correctly links the binary and libc. Doing this manually with ld would require several (non-portable) command line arguments that would be distracting from the main point of the post.
daniel-levin··on Google terminated our business via our Google Play Developer Account
What kind of an agreement did you sign with your developers?

IANAL. You might be able to invoke some legal means to limit your losses. The associated-account story wasn’t an act of God. You might argue the developers should have known better. I’d suggest buying an hour of a lawyer’s time to see what can be done.

daniel-levin··on Announcing Open Source of WPF, Windows Forms, and WinUI
The code has been accessible for a while now, albeit still licensed as proprietary. I went through it a few weeks ago. The Winforms code depends heavily on GDI APIs, which AFAIK are windows only and closed source
daniel-levin··on Ask HN: What is the best practice for reading large pieces of C code?
Compile it with debugging symbols and run it with gdb in tui mode. This will let you place breakpoints in source files, view back traces, find the definitions of functions, structures, macros, etc. The learning curve is a tad steep, but this video is pretty good:

https://m.youtube.com/watch?v=PorfLSr3DDI

daniel-levin··on Ask HN: How can I learn to read mathematical notation?
I think the lazy and somewhat cynical answer is also the most accurate: learn the mathematics.
daniel-levin··on Ask HN: What open source project, in your opinion, has the highest code quality?
LLVM and associated projects such as clang. Bazel is good too. OkHttp and Retrofit by Square.
daniel-levin··on Stripe Press
The chapter you're referring to is called "The Law of Line Extension". The authors call out Microsoft specifically for attempting to expand their operating system business into office software. As we now know, MS did very well by developing its own office software. The most striking counterexample is in the tech space!
daniel-levin··on Why no Easter Eggs? (2005)
What I’m most curious about is which business and governments had access to which Microsoft source code, circa 2005. Anyone care to enlighten me?
daniel-levin··on Why Crystal Is My Next Language
I think this thread has no shortage of criticisms, but too many are uninformed. The blog post doesn't mention these important things:

Package management (from [0]): "Crystal libraries are packed as Shards, and distributed via Git without needing a centralised repository. Built in commands allow dependencies to be easily specified through a YAML file and fetched from their respective repositories."

Concurrency (from [0]): "Crystal uses green threads, called fibers, to achieve concurrency. Fibers communicate with each other using channels, as in Go or Clojure, without having to turn to shared memory or locks."

[0] https://crystal-lang.org/

daniel-levin··on Ask HN: Are you working on interesting technical problems?
Absolutely, yes. Using your CS skills to write CRUD apps is the path of least resistance to create economic value. Where I live (Johannesburg), the demand for CRUD apps is so high that no single firm or group of firms can absorb it all. You can happily create a thriving software development business in Johannesburg without worrying about competition (maintaining standards and hiring well is a different story).

The most exciting thing at my old job was this DFS I had to do once.

That said, there are very interesting tech jobs out there - such as scaling boring old CRUD apps. The high frequency trading space also has many interesting problems. Imagine working on a system where you start to care about nanosecond optimizations. I interviewed (and failed at it, lol) at Optiver [0]. You should check them out.

[0] https://www.optiver.com/na/en/

daniel-levin··on Microsoft acquires Github
The MS of today has massive skin in this OSS game. They've been contributing to the Linux kernel for years now [0]. They've got over 4000 repos on GitHub. Many projects are actively developed on GH. As an example, the VS code team solicits contributions on GH [1]. It's hard to say what kind of resources have been invested in .NET core and the open source compilers (Roslyn) and the CLR. Substantial resources.

If you told me 5/10 years ago about these developments I would have never believed you.

I don't think it's fair to reason about a (40+ year old, 100k+ employees, public) company's behaviour as if it has a mind. It doesn't.

[0] https://www.zdnet.com/article/top-five-linux-contributor-mic...

[1] https://github.com/Microsoft/vscode/blob/master/CONTRIBUTING...

daniel-levin··on Unquantified
I used to be utterly obsessed with QS. I strongly believe that you can only manage what you measure. With that said, I've also found that quantification can have an emotional downside for individuals, especially when the stakes are low. However, this can be controlled or avoided. My suggestion is to passively track these things without using them as a target. That is, I recommend using only derived metrics as decision making aids. It also avoids Goodhart's Law [0]. Measures that become targets lose their value as measures. I also think that it's easy to start fetishizing the data, like becoming obsessed with small changes in weight or contributions on Github. Metrics descend to "mindless dopamine fixes" but this need not be the case. Metrics should inform decisions like "do I quit this expensive gym membership or stick it out?" or "Does a third cup of coffee in the afternoon improve my performance enough to justify the caffeine jitters?"

[0] https://en.wikipedia.org/wiki/Goodhart%27s_law

daniel-levin··on Decades-Old Graph Problem Yields to Amateur Mathematician
>> Compare this to number theory, where every interesting extant problem appears to require ten years study.

I don't often come here to comment but as someone in progress on an original research masters in number theory I can say this is utter bullshit. I assume your 'interesting' qualification (somehow) excludes obvious candidates like Landau's problems [0]. Some examples. I was taught about the ABC conjecture as an undergrad. You can easily teach the Brun sieve [1] method of working out that the sum of the reciprocal of the twin primes converges. Novel solutions to Diophantine problems are sometimes accessible to undergrads. Richard K. Guy wrote a whole book on unsolved problems in NT, some of which have been solved using undergraduate number theory and someone's upper bound you can just use (as easy as apt-get installing this_dope_bound). You can start reading papers without a PhD, never mind ten years of study. I think it's possible to get an utterly unrepresentative sample of either field by only sticking to "elementary" results. There are some extraordinarily subtle results in graph theory! Conversely, you can find NT problems amenable to elementary techniques [2].

[0] https://en.wikipedia.org/wiki/Landau%27s_problems

[1] https://en.wikipedia.org/wiki/Brun%27s_theorem

[2] https://en.wikipedia.org/wiki/Quadratic_reciprocity

daniel-levin··on The Exterior Algebra and Central Notions in Mathematics (2015) [pdf]
For a gentle appetiser, see Spivak's Calculus on Manifolds. It introduces exterior algebra as a means to and end in doing computations on (embedded) manifolds. At first, the definitions seem opaque and the formalism clunky. At the end, Spivak recovers Stokes' theorem as a computation. This was a breath of fresh air for me after I took a warped version of Calc III.
daniel-levin··on How a South African ISP Hacks Its Subscribers Each Month
Telkom has been injecting kak [0] into pages for _years_ [1], [2]. A former employee of theirs told me that at one stage they were replacing ad content with their own adverts - I would dismiss this as hearsay had I not seen it myself.

[0] South Africanism for 'shit'

[1] https://mybroadband.co.za/vb/showthread.php/704472-Telkom-In...

[2] https://www.sadev.co.za/content/telkom-using-man-middle-atta...

daniel-levin··on Microsoft's TechNet is hilariously down
There is nothing funny about a web service being down? Fuck. Everyone has downtime sometimes. 100% uptime is a fairy tale. Billion dollar businesses (like Microsoft) know this and try to hit lots of nines. This error is probably stressing the fuck out of a bunch of people right now. Someone might even lose their job. MS may have been hit by what in legal parlance is termed "an act of God". Who knows?
daniel-levin··on How the Bantu people surged across two-thirds of Africa
Nobody here calls Afrikaans anything other than Afrikaans. Certainly not 'African'. Furthermore, South Africa is a predominantly anglophone country, with 11 official languages. Afrikaans isn't even one of the top 2 mother tongues. I'm an English speaking white South African who learned Afrikaans at school. I can understand the language. I almost always default to speaking English with Afrikaans speakers. Continued use of Afrikaans is a contentious issue in South African university politics. To grotesquely oversimplify, it is perceived as the language of the oppressor, and a means of control and exclusion. See [1].

_Interestingly_, however, Paul Le Roux [0] resented having to learn Afrikaans, seeing it as a dated, dead language.

[0] https://magazine.atavist.com/he-always-had-a-dark-side

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

daniel-levin··on Root partners with Standard Bank South Africa to offer programmable bank account
This is great. I will definitely be using this soon. How long will it be before I can accept payments?
daniel-levin··on Staffjoy’s Suite – A scheduling application for hundreds of workers
Why has the Git history been squashed for security? What in the history of this repo is sensitive? Were there passwords or credentials?
daniel-levin··on Ask HN: How to learn new things better?
I would advise you to be as experimental as possible, and see what works for you. Each person learns things in their own way. Just picking a particular path (such as using Duolingo, as others have suggested) may work. It may not. I have found that this rings especially true in technical subjects.

My personal suggestions are Duolingo, and "Drawing on the Right Side of the Brain" by Betty Edwards. I went from stick men to badly-proportioned but otherwise lifelike still-lifes in a few hours with this book. I have a very strong audio memory so Duolingo works well for me. The most important aspect to getting not-terrible at anything is deliberate practice [1]. Drills, and boring exercises work very well for me.

[1] https://en.wikipedia.org/wiki/Practice_(learning_method)

daniel-levin··on I thought I was designing for SpaceX, it may have been for the Silk Road
I agree. This would be awesome if it was written up like the Paul le Roux story on The Atavist [0]. That was gripping. I'd be so excited to read the next piece each week. I want to hear the rest of this story.

[0] https://magazine.atavist.com/the-mastermind

daniel-levin··on How I use Anki to learn mathematics
I had an absolute beast of an algebra professor who impressed upon us the fact that things are defined they way they are for a reason, and we, as mathematicians must know them. It is not enough to be able to remember the definition of a normal subgroup, for instance. We must know why we define it the way we do, and what happens if the definition is altered in the slightest, weakened, strengthened, negated etc. It is not enough to know that quotient groups are defined modulo normal subgroups only. You should know why defining a quotient group modulo a non-normal subgroup is meaningless. Even for much more complicated categories, like manifolds, one must absolutely know why all the bits and pieces are needed. Why do we require the transition functions for real n-manifolds to be C^r? What if r=0? What happens if two charts on some underlying topological space are not compatible? Why do we need the atlas to be maximal? Why on earth do we need a countable base? Hausdorff? What is this business about needing manifolds to be Hausdorff? [0]. Why is it that bijective homomorphisms are the isomorphisms in the category of groups - i.e. why is it that its inverse is not required to be a homomorphism as part of the definition? Learning definitions by rote is the surest route to mathematical mediocrity.

"Don't just read it - fight it!" - P.R. Halmos.

[0] Yes, I know these can be relaxed, but this is the standard presentation in Kobayashi-Nomizu/Spivak/Lee/Tu/Barden-Thomas/Do Carmo/Petersen etc etc.

daniel-levin··on Matrix Multiplication
This is a cool example of what Bret Victor calls an "Explorable Explanation" [0]. That said, I feel that it's more important to understand how and why matrix multiplication corresponds to a composition of linear transformations than learning the actual mechanics of doing the computation. You can get good at matrix multiplication without knowing what is going on. I view that as a less valuable activity than learning about linear transformations (vector-space structure preserving mappings) between finite dimensional vector spaces.

[0] http://worrydream.com/ExplorableExplanations/

daniel-levin··on Ibuprofen May Not Be as Safe as was Thought
It could very well be [0]

[0] http://www.paulgraham.com/submarine.html

daniel-levin··on Reasons not to use Uber
It could be his way of determining his reach and effectiveness. If other people start using his original dumb, childish terms, then that might serve as a metric of some kind for him.
daniel-levin··on Akamai takes Brian Krebs’ site off its servers after ‘record’ cyberattack
Maybe because of the scale of this attack, relative to the business value Krebs provides Akamai? Shedding an attack of this magnitude (by dumping Krebs) was probably well worth the PR hit Akamai took.
daniel-levin··on Show HN: Simple pendulum simulation with rational trigonometry
On the contrary - computers certainly can represent irrational numbers - but not with floating points.
daniel-levin··on Show HN: Simple pendulum simulation with rational trigonometry
If you are using floating point numbers, you are using rationals. You cannot represent an irrational number using a floating point variable. There is no getting around the fact that the real number system is an abstraction, and floating points model a very small segment of the reals (the rationals are of measure zero, and hence so are all the reals representable as floating points). There are only so many bits with which to do computations, according to the IEEE 754 scheme.

Edit: addendum

How exactly does one do ordinary calculus with only rational numbers?

daniel-levin··on Who's on call?
That is interesting. I would imagine that this leads to extremely risk averse deploys? You can't know how much downtime a particular failure will incur so one small error could easily result in expending the failure budget for a significant period of time. Also, if ~4 minutes per month is the monthly failure budget, then 1 hour of down time uses up over a year in failure budget! How can a team so heavily "in debt" ever hope to push code again?
daniel-levin··on Employers Find ‘Soft Skills’ Like Critical Thinking in Short Supply
Also, when a metric becomes a target, it ceases to be a good metric, regardless of its original efficacy. This is widely known as Goodhart's law [0]

[0] https://en.wikipedia.org/wiki/Goodhart%27s_law

← PreviousPage 2 of 7Next →