HNHacker News
TopNewBestAskShowJobs

truly

406 karma · joined September 17, 2021

I am a tenured faculty member at a higher education institution in Europe.

My current side project is the "Truly Understanding Algorithms" YouTube channel for explaining visually fundamental algorithms and data structures.

YouTube channel: https://www.youtube.com/channel/UCuRLSWJR0wegOS_VpfvTt2A.

Associated website: trulyunderstandingalgorithms.com.

submissionscomments
truly··on Happy New Year HN! What are your plans for the new year?
Where do you work/live?

How does lecturing work out in the time of COVID?

truly··on Happy New Year HN! What are your plans for the new year?
I recommend the set of Eric Carle books. Our toddler enjoys all of them immensely.

When reading, do not multitask and try to make sure you discuss all details (how many stars, where is the moon, let's count the frogs, etc.)

truly··on Happy New Year HN! What are your plans for the new year?
Good luck! Having a math background is surely a plus!
truly··on Happy New Year HN! What are your plans for the new year?
Happy New Year!

Professionally, I plan to further my side project with educational YouTube videos on algorithms and data structures, which brings me great joy.

As I'm in higher education, which has taken a huge COVID-19 hit (not sure I will get (much) better anytime soon), I'm considering whether it is worth pivoting into an industry career.

truly··on Three sins of authors in computer science and math (1997)
In CS, another sin is that you have to "justify" the significance of the results even in theory conferences.

Hence many papers contain exaggerated claims with respect to practicality, importance and so on.

Another sin is that the results need to be "difficult" and "surprising" in order to publish. Hence, if you present your story in a simple-to-understand fashion, you run a high risk of rejection. Better not simplify your results before publishing -- keep all original notation, even if you figured out you do not need that many indices.

This has become a dogma and there is little chance of all this nonsense stopping anytime soon.

It is refreshing to read old papers that merely get to the point and are significant while being nice to read.

truly··on Ask HN: Best Resources to Learn JavaScript?
I recommend Eloquent JavaScript. It is free but very good.
truly··on Steve Yegge's Tech Talks
For anyone who does not "know" him, he has/had an excellent blog (http://steve-yegge.blogspot.com/). No updates lately, but it was very good for its time.
truly··on Ask HN: Looking for a book on algorithms and data structures
It really depends. It is a bit difficult to answer this question without understanding your background first. What CS lectures have you already taken? What related courses (e.g., math) have you done?

For example, the Stack data structure that you bring into discussion is quite simple (but interesting and important), so I am not surprised it is treated speedily. Introduction to Algorithms typically has more difficult content.

Depending on this, I could recommend for example that you follow the lectures on the excellent MIT OCW YouTube channel (https://www.youtube.com/c/mitocw). But you could also do one of the numerous algorithms and data structures courses on coursera/edx. It all depends on what you know so far and what your goal is.

truly··on Ask HN: What are good resources to learn about graphics design?
So which of the lectures in the course do you recommend?

Is this one, Fundamentals of Graphic Design, any good?

truly··on Ask HN: How to Get Better at Finishing?
Have you tried to limit the scope of the projects?

I think this is the #1 way to finish.

Once "finished", you can then iterate by adding features.

Time management techniques seem overrated to me for personal projects.

truly··on Ask HN: Starting a career as a programmer in my mid-40s
It depends.

Do you have the money? Do a full undergraduate degree in CS.

Are you scarce on money? I would recommend you develop some useful broadly useful skills (HTML/CSS/JavaScript) using any quality resource that is available to you and that suits your level. As soon as you are able to do some programming, try to land a beginner job and learn on the job. Apply for a better position. Repeat.

truly··on Ask HN: What are some of the best well-written books on computer science?
My all-time favorite is not a exactly a book, but a tutorial on compiler construction: https://compilers.iecc.com/crenshaw/

It is dated in its choice of assembly, but I really enjoyed this style of crystal-clear explanations when I was a young kid learning how to program.

Other extremely well-written books include TaPL (Types and Programming Language), by Benjamin Pierce: https://www.cis.upenn.edu/~bcpierce/tapl/.

Benjamin Pierce's writing style is very good and you can enjoy it in the free series on Software Foundations (using a theorem prover like Coq to develop programs): https://softwarefoundations.cis.upenn.edu/.

truly··on Ask HN: What do you use for programmatic drawing?
I am using Manim for animations.

However, I am also on the lookout for a good programmatic graphics editor. I am thinking of developing my own, but time is an issue.

I have successfully also used Python libraries like this one to create some graphics:

https://pypi.org/project/svgwrite/

truly··on Ask HN: What do you use for programmatic drawing?
I am also using Manim and I second the recommendation.

It works well enough for animations.

There are two versions: 3b1b and the community edition. You will most likely prefer the community edition.

Here is the quickstart tutorial:

https://docs.manim.community/en/stable/tutorials/quickstart....

truly··on Ask HN: What do you think about the no-code movement?
I think it a good answer to the wrong question.

The wrong question is: (most/many) people cannot program because it is difficult to type the right things in, so let us remove typing.

The right question should be: how can we more efficiently develop software?

No-one would ever think to start a no-write movement because people cannot write properly. We instead teach everyone to write starting from the first grade, and we build tools to help them write better (dictionaries, word processors, spell checkers).

For programming, we should also concentrate on building tools (like the awesome IDEs of today) that makes developing software more efficient. Some of the efficiency can be had by no-code (i.e., Delphi-style forms), some can be had by improvements to technology (code completion), some can be had by improved language design. We should also invest more in programming education.

Low/no code DSLs are also good (think of Excel).

But I am skeptical of general purpose no-code: if it's Turing-complete, it's just a programming language in disguise.

truly··on Making the dislike count private across YouTube
I am really just starting out my channel, so I am not sure I really understand what is the (real) purpose of this change. A dislike hurts somewhat, but it is unavoidable this to happen when you have a large public. I have not seen dislike attacks (not to say they don't exist), but I'm pretty sure they can be avoided with other tactics.

I suspect that not showing the dislikes drives up engagement, but in my experience as a user I rarely look at the number of dislikes to judge a video.

truly··on Wirth’s Law
There do seem to be inflection points where some good things happen in terms of performance:

Example 1: with SSDs, Windows starts up in a way that is not unbearably slow.

Example 2: My Mac does start lean applications (e.g., iTerm) very quickly.

Example 3: It also wakes up very quickly.

Example 4: 1+ Android phones are also okay in terms of performance.

However, most software (office apps and the like) is still slow to open and operate. Webapps are no different: gmail used to be really fast, but now it's average in terms of performance.

However, the progress that counts to me is that it is now possible to design really fast software, even if most corporations don't.

truly··on Ask HN: Could VSCode be the new Emacs?
It might very well be, except the plugins are more difficult to write in VS Code.

On the joke side, Emacs also started out as a resource hungry beast, just like VS Code now.

Emacs feels to me a bit more extensible, and does a number of things better than VS Code (e.g., can cut rectangles, better shortcuts, regexp support, and others).

truly··on Use forums rather than Slack/Discord to support developer community
The main issue with Discord/Slack is that it is difficult to get up to speed with the context of the discussion. You essentially have to read the entire history, and you might or might not be interested in every topic.

Email is much better, since only a select set of persons receive email on a given topic, making it more likely they are interested in it.

For documentation purposes, Discord and Slack are essentially completely useless, due to poor structuring of the conversations and poor search functionality. Anything with more structure would work much better.

The only case it works well is on small teams that are 100% into solving a particular problem together, and they can context switch every few minutes into the chat.

truly··on My Emacs Lisp book is finished
Congratulations!

As a curiosity, how did you set the page width?

I find it a bit wide, making it difficult to read.

truly··on Ask HN: What you up to? (Who doesn't want to be hired?)
Good luck with your interviews!

Unlikely for me to have videos in time for your interviews, though. I'm sure however that you can find other sources on the internet to learn. What have you tried?

truly··on Ask HN: What you up to? (Who doesn't want to be hired?)
Nice!

I have watched both videos and they are engaging (to me). I think they could use a little bit of more speed and some music or explanations. Also, you could show at the beginning what you are about to make.

I have recently needed to start drawing (nothing fancy) for my side project, and have found tutorials such as your first video on youtube invaluable.

truly··on Ask HN: What you up to? (Who doesn't want to be hired?)
Thanks! I'm very glad when someone finds my videos useful. There are also videos on quick-sort and merge-sort on the channel and I'm planning on doing bubble-sort, selection sort, heap-sort, and radix-sort in the future.
truly··on Ask HN: What you up to? (Who doesn't want to be hired?)
Hi! It is in my plans for the future. I'm currently concentrating on sorting and searching algorithms.

What exactly in bitwise operations would you find interesting?

truly··on Ask HN: What you up to? (Who doesn't want to be hired?)
I programatically create educational videos on fundamental algorithms and data structures, a side project that I'm very excited about. I'm creating the videos using Python and the manim library.

My latest video is on insertion sort and you can check it out here: https://www.youtube.com/watch?v=jF-8RcO_9ds.

I am still developing a recipe for the videos, but it is a definitely a lot of fun.

truly··on SoME1 results
For anyone wondering what 3Blue1Brown is, it's a top Youtube channel with very nicely made explanatory videos for math.

The videos on linear algebra in particular are worth it, especially if you do any sort of machine learning: https://www.youtube.com/watch?v=fNk_zzaMoSs.

The author of the channel is Grant Sanderson. He has recently given a talk at SIGGRAPH 2021: https://www.youtube.com/watch?v=gvck7ssg9dE.

As part of developing his Youtube channel, he has written and open-sourced manim, a library for programatically generating animations written in Python: https://github.com/ManimCommunity/manim/.

truly··on Covid-19 Mortality Risk Correlates Inversely with Vitamin D3 Status
From the second paragraph in the abstract, it seems that they adjust for age: "Mortality rates from clinical studies were corrected for age, sex, and diabetes."
truly··on Ask HN: When were the next/prev/root buttons added?
I have just noticed them today, but they are very useful!

A big "thank you!" to whomever implemented them.

truly··on Is Doing a PhD Beneficial?
It depends.

I can tell you that (1) you don't really need it for an industry career and (2) you surely need it if going into academia.

On the downsides, a PhD means a number of your best years spent with a lowish salary and without a clear career path forward. It can be frustrating to spend time on some open problem without being sure you can solve it properly. Depending on the exact place where you do your PhD, you may need to play some number games to graduate, like having a certain number of publications in certain venues.

On the plus sides, a PhD can be incredibly interesting, if you enjoy the research of your advisor. It will also develop a number of other skills, such as networking, critical thinking, reading, possibly programming, patience, which could be useful later on. After the PhD, you will have some degree of freedom to pursue your own interests in an academic position and the pay will not be bad, although nowhere near what you would get in industry. You will be in a good position to start a company, though, if your research has immediate practical applications. In certain fields (AI, vision, systems/cloud) it will be easy to get a well paying industry job afterwards.

It used to be (pre-Covid) that you would travel to conferences in various places (in Computer Science, at least), which was a nice benefit. If you do a PhD, make sure you choose a lively venue, with other peers that you can discuss interesting topics with.

truly··on GitHub Copilot available for JetBrains and Neovim
This will lead IMO to an interesting problem, although the technology and the idea is certainly cool.

Currently many programmers do not take the time to really understand how/why their code works -- programming without understanding 1.0. Essentially make library calls and fuzz around with the arguments until it appears to work. [Not wanting/suggesting to go back to the world before libraries/code completion, just stating where we are now.]

This will enable programming without understanding 2.0 -- not only will you not know how/why a particular function call works, you will now fail to understand why you want a sequence of functions in a particular order.

← PreviousPage 2 of 3Next →