Hofstadter's law Updated +Created
The trivial takes a few hours.
The easy takes a week.
And what seemed hard takes a few hours.
As "deadlines" approach, feature sets get cut down, then there are delays, and finally a feasible feature set is delivered some time after the deadline.
The only deadlines that can be met are those of tasks which have already been done but not announced.
This is of course Hofstadter's law.
On the other hand, as a colleague of Ciro once mentioned, it is also known that the time it takes for a task to be done expands without limits to match the deadline. And therefore, without deadlines, tasks will take forever and never get done.
And so, in a moment, perceiving this paradox, Ciro was enlightened.
House mouse Updated +Created
Mediocre Amateur Updated +Created
About 50k subscribers on 2021, which feels way too little for the video quality and quantity.
Ciro Santilli believes that this channel will go very far, certainly achieving 1M subscribers in they keep it for one or two more years. Update: it didn't, as of 2024, shame.
They are Utah-based, and they do many many amazing weekend trips. They mostly drive from home to some trailhead, and then climb up and down it the entire day.
No technical rock climbing, only bouldering, but they still manage to reach many amazing places, and there is a level of danger in many of their ascents.
They also often ski down the mountains when there is snow.
The cool thing about this channel is that as the name suggests, they are not professionals, and what they do can be done by anyone without working full time on it, as long as you have adequate preparation.
Quantum compiler benchmark Updated +Created
These appear to be benchmarks that don't involve running anything concretely, just compiling and likely then counting gates:
Charles K. Kao Updated +Created
Figure 2.
2009 Nobel Prize lecture
. Poor Charles was too debilitated by Alzheimer's disease to give the talk himself! But if you've got a pulse, you can get the prize, so all good.
How large primes are found for RSA Updated +Created
Answers suggest hat you basically pick a random large odd number, and add 2 to it until your selected primality test passes.
The prime number theorem tells us that the probability that a number between 1 and is a prime number is .
Therefore, for an N-bit integer, we only have to run the test N times on average to find a prime.
Since say, A 512-bit integer is already humongous and sufficiently large, we would only need to search 512 times on average even for such sizes, and therefore the procedure scales well.
How to become a good programmer? Updated +Created
Or: how to learn X.
This pops up on Reddit every week.
The right question is: what is the most awesome project I can do to improve the world?
Then, once you decide to try one, if that involves programming, only then learn to program to achieve that goal. And don't stop learning what's needed until you either get the thing done, or decide that it is actually not a good idea, or not possible, or that there is something else more important to be done first.
But if doesn't involve programming, then don't learn to program, and learn whatever you actually need to reach that goal instead.
Having that goal is the only way to be motivated to do something.
This is the essence of backward design.
How to decide if an ORM is good? Updated +Created
How to decide if an ORM is decent? Just try to replicate every SQL query from nodejs/sequelize/raw/many_to_many.js on PostgreSQL and SQLite.
There is only a very finite number of possible reasonable queries on a two table many to many relationship with a join table. A decent ORM has to be able to do them all.
If it can do all those queries, then the ORM can actually do a good subset of SQL and is decent. If not, it can't, and this will make you suffer. E.g. Sequelize v5 is such an ORM that makes you suffer.
The next thing to check are transactions.
Basically, all of those come up if you try to implement a blog hello world world such as gothinkster/realworld correctly, i.e. without unnecessary inefficiencies due to your ORM on top of underlying SQL, and dealing with concurrency.
Lumai Updated +Created
octokit.js Updated +Created
OpenNMT Updated +Created
SELECT FOR UPDATE Updated +Created
An example where SELECT FOR UPDATE is a good solution to an use case can be seen at: nodejs/sequelize/raw/parallel_select_and_update.js.
The horrors of Sequelize Updated +Created
Download all Wikipedia categories Updated +Created
Let's observe them in MySQL:
mysql enwiki -e "select page_id, page_namespace, page_title, page_is_redirect from page where page_namespace in (0, 14) and page_title in ('Computer_storage_devices', 'Computer_data_storage')"
outputs:
+----------+----------------+--------------------------+------------------+
| page_id  | page_namespace | page_title               | page_is_redirect |
+----------+----------------+--------------------------+------------------+
|     5300 |              0 | Computer_data_storage    |                0 |
| 42371130 |              0 | Computer_storage_devices |                1 |
|   711721 |             14 | Computer_data_storage    |                0 |
|   895945 |             14 | Computer_storage_devices |                0 |
+----------+----------------+--------------------------+------------------+
mysql enwiki -e "select cl_from, cl_to from categorylinks where cl_from in (5300, 711721, 895945, 42371130)"
gives:
+----------+-----------------------------------------------------------------------+
| cl_from  | cl_to                                                                 |
+----------+-----------------------------------------------------------------------+
|     5300 | All_articles_containing_potentially_dated_statements                  |
|     5300 | Articles_containing_potentially_dated_statements_from_2009            |
|     5300 | Articles_containing_potentially_dated_statements_from_2011            |
|     5300 | Articles_with_GND_identifiers                                         |
|     5300 | Articles_with_NKC_identifiers                                         |
|     5300 | Articles_with_short_description                                       |
|     5300 | Computer_architecture                                                 |
|     5300 | Computer_data_storage                                                 |
|     5300 | Short_description_matches_Wikidata                                    |
|     5300 | Use_dmy_dates_from_June_2020                                          |
|     5300 | Wikipedia_articles_incorporating_text_from_the_Federal_Standard_1037C |
|   711721 | Computer_architecture                                                 |
|   711721 | Computer_data                                                         |
|   711721 | Computer_hardware_by_type                                             |
|   711721 | Data_storage                                                          |
|   895945 | Computer_data_storage                                                 |
|   895945 | Computer_peripherals                                                  |
|   895945 | Recording_devices                                                     |
| 42371130 | Redirects_from_alternative_names                                      |
+----------+-----------------------------------------------------------------------+
So we see that cl_from encodes the parent categories:
So to find all articls and categories under a given category title, say en.wikipedia.org/wiki/Category:Mathematics we can run:
mariadb enwiki -e "select cl_from, cl_to, page_namespace, page_title from categorylinks inner join page on page_namespace in (0, 14) and cl_from = page_id and cl_to = 'Mathematics'"
Reference mark Updated +Created
Ciro Santilli had to see this in a few separate places, until he underestood: that little pictur emust be a thing! Examples:
The ideal university Updated +Created
This is a version of free gifted education but more focused on university.
This is Ciro Santilli's ideal university system. It is a system that actually lives up to the name "Open University":
Related:
So far as of the early 2020's, the university that comes closest to some but not all of these principles is the University of the People. It's sad that it's such a crappy unknown thing, but it is what it is.
How to teach / Advertise your material Updated +Created
Once you have crated something awesome, you have to advertise it, otherwise no one will ever find it.
This means:
  • whenever you walk into a classroom, give students a link to the material
    Then ask them if they want to talk about anything.
    Then leave the classroom and go produce more good material instead of wasting your time there :-)
  • whenever someone asks as question on an online forum, answer it, and link to the section of your material that also answers that question.
    The material will answer many of their future questions.
  • after you've done something awesome, Google possible relevant keywords that should hit it.
    This will lead you to other websites that talk about the same content.
    Then, leave comments on those pages linking to your stuff, or email the authors of those pages.
    It is borderline spam, but if the subject is closely related, it is a win for everyone.
Eventually, people will find you on the front page of Google searches, and then you will know that you've truly made something useful.
How to teach / Text is cheaper than video Updated +Created
Text materials are generally superior to video because they:
  • are faster to create and edit
  • uses less disk space and network bandwidth
  • is easier to search: Ctrl + F on the browser and off you go. And then grep if you have superpowers.
Only produce video material if:
Never create videos of people just speaking hardcore content for long amounts of time.
If you have to use videos, make them as short as possible, and index them with a textual table of contents.
Also consider using sequences of images or GIFs instead of videos, since those are cheaper.
Figure 1.
Textbooks Y U NO HAVE CTRL-F meme
. Source. Same applies to videos.
Messaging software that force you to have a mobile phone Updated +Created
Chat programs that don't have a proper web-only operation and force you to have a mobile phone, e.g. WhatsApp.
Heck, even Signal, which is supposed to be super secure and good for your privacy, forces you to disclose your freaking cell phone to all contacts! lifehacker.com/how-to-use-signal-without-revealing-your-private-phone-1818996580
What is my phone breaks? What if I don't want to have a fucking phone? What if I move countries and have to change the fucking number? Also evil but less because done by all: chat programs that can't send you an email if you don't see the message in X minutes.
European Union, time to force those evil companies to use support open standards like XMPP?
The solution to "how to prevent spam" is simple: your ID is a public key that you own the private key for. If you start getting spammed, generate a new public key, and send it to all contacts, and dump the previous ID.

There are unlisted articles, also show them or only show them.