Recent submissions

Comment · 2 years ago
Do you have a recommended link to a book or tutorial that teaches one how to do composition rather than inheritance in C++ (the way you are describing)?

Thank you in advance!

Comment · 2 years ago
I'm a U.S. citizen who does 1 hour of linear algebra first thing in the morning, when I'm not getting crushed by PhD-related deadlines. Currently working through Lang's _Linear Algebra_ for a new take on the material.

(side note: for the first 5 months of 2023 I did 1.5 hours a day of real analysis. I'll probably get back to doing that after getting through most of Lang.)

Can you give me a hint of the types of employers I should be looking for who would value this? How should I go about finding them?

Comment · 3 years ago
I have worked through some of Carothers myself and like it a lot.

Are there other math books you think highly of that are similar, i.e. good for explaining why the definitions are the way they are as well as teaching the material?

Comment · 3 years ago
The major difference between the airplane flying example and the computer language reproduction model example is that we actually understand how aerodynamics and flight work, so we understand very well how an airplane flies (it doesn't just "replicate" flight).

We don't understand how the human brain works so that our minds can acquire language.

Comment · 3 years ago
I upvoted you. I have no idea why your comment received downvotes.

I responded in a similar way to a conversation about Julia less than a week ago.

For people who have trouble understanding this reasoning, a message from the GCC mailing list (https://gcc.gnu.org/legacy-ml/gcc/2014-01/msg00247.html) provides some of the explanation, which I reproduce here:

In the free software movement, we campaign for the freedom of the users of computing. The values of free software are fundamentally different from the values of open source, which make "better code" the ultimate goal. If GCC were to change from a free compiler into a platform for nonfree compilers, it would no longer serve the goal of freedom very well. Therefore, we had to take care to prevent that.

(See http://www.gnu.org/philosophy/open-source-misses-the-point.h... for more explanation of the difference between free software and open source. See also https://thebaffler.com/salvos/the-meme-hustler for Evgeny Morozov's article on the same point.)

The Clang and LLVM developers reach different conclusions from ours because they do not share our values and goals. They object to the measures we have taken to defend freedom because they see the inconvenience of them and do not recognize (or don't care about) the need for them. I would guess they describe their work as "open source" and do not talk about freedom. They have been supported by Apple, the company which hates our freedom so much that its app store for the ithings _requires_ all apps to be nonfree. (*)

The nonfree compilers that are now based on LLVM prove that I was right -- that the danger was real. If I had "opened" up GCC code for use in nonfree combinations, that would not have prevented a defeat; rather, it would have caused that defeat to occur very soon.

For GCC to be replaced by another technically superior compiler that defended freedom equally well would cause me some personal regret, but I would rejoice for the community's advance. The existence of LLVM is a terrible setback for our community precisely because it is not copylefted and can be used as the basis for nonfree compilers -- so that all contribution to LLVM directly helps proprietary software as much as it helps us.

The cause of the setback is the existence of a non-copylefted compiler that therefore becomes the base for nonfree compilers. The identity of that compiler -- whether it be LLVM, GCC, or something else -- is a secondary detail. To make GCC available for such use would be throwing in the towel. If that enables GCC to "win", the victory would be hollow, because it would not be a victory for what really matters: users' freedom.

If you think we ought to "compromise" on this point, please see http://www.gnu.org/philosophy/compromise.html.

The only code that helps us and not our adversaries is copylefted code. Free software released under a pushover license is available for us to use, but available to our adversaries just as well. If you want your work to give freedom an advantage, use the leverage available to you -- copyleft your code. I invite those working on major add-ons to LLVM to release them under GNU GPL version-3-or-later.

* If a binary is made from published source code, but you can't install your binary of a modified version of that source code, the binary is proprietary even if the source code is free. (See http://www.gnu.org/philosophy/free-sw.html.) A binary in Apple's app store may be made from published free source code, but under Apple's rules and Apple's DRM, the binary can't be free.

Comment · 3 years ago
Sorry I wasn't clear enough before. I should have said "I wish Julia worked on a compiler licensed under the GPL." The only major one I know of is GCC. This is not just a "minor" benefit. To quote from the post I linked to:

"The nonfree compilers that are now based on LLVM prove that I was right -- that the danger was real. If I had "opened" up GCC code for use in nonfree combinations, that would not have prevented a defeat; rather, it would have caused that defeat to occur very soon.

...The existence of LLVM is a terrible setback for our community precisely because it is not copylefted and can be used as the basis for nonfree compilers -- so that all contribution to LLVM directly helps proprietary software as much as it helps us."

Comment · 3 years ago
Comment · 3 years ago
My point was that the Markdown format itself is not complete enough for the task at hand i.e. making documentation. So all the people involved have to 1) learn all the customized extensions specific to this one project (and remember to differentiate them from the other custom versions for other projects, e.g. Rust's one), and 2) learn a custom deployment system.

I'd rather just learn one thing and use it for many different projects.

Comment · 3 years ago
Comment · 3 years ago
I'd like to point out two things I _don't_ like about Julia that seem to be idiosyncratic but nevertheless matter to me:

1. Rather than use something like reStructuredText or Texinfo they used Markdown, and then of course had to define a bunch of custom additional stuff to make it work for documentation, plus a custom program to publish the documentation to a limited number of formats. Unlike the two documentation languages I mentioned, the Juila "customized Markdown" isn't publishable to Info, so it can't be used in Emacs: rather, it's basically just a bunch of web pages.

2. Julia is completely dependent on LLVM. Even Rust (which was initially like that) now has a GCC-based implementation.

Comment · 4 years ago
I don't come from a poor background but I'm basically in your exact situation, but probably older and less smart with regards to studying and technical stuff than you are.

I'm doing a PhD right now. It's a pretty good experience, but it won't solve your problem of the "emptiness." In fact, it will take up a ton of your mental time: the current state you're in is good for a PhD since you have to think a lot about what you're working on.

If I were you I would question whether or not your current mindset is actually a problem. Maybe you truly like thinking about certain types of problems irrespective of external demands of an employer. If so, in my opinion that's okay. On the other hand if you decide that your current mindset is actually a problem and that you should broaden your horizons or change, you can! For example you can try new hobbies that have nothing to do with work and see how you feel doing those things (preferably join a club so you can do it with other people).

Comment · 4 years ago
Thanks for that link. Wish I could read Mandarin Chinese so I could read the original too.

Clearly a flawed person. Not sure why he blew off his family so hardcore for so many years. Too bad to hear he was arrogant as a kid too, although a lot of smart kids are. Some of them turn out to be Peter Thiel, luckily this guy just wanted to work on math.

Anyway, I wish he had been better to his parents. On the other hand, he needed that big breakthrough to save his life as a mathematician: until that point, he was just an adjunct lecturer with no stability at all. Life is weird and complicated and we don't have full control of the choices we make, some choices can seem really hard to some people. I'm not excusing his behavior toward his family but I would be interested to know why he made that choice.

Comment · 4 years ago

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton