Lifegard problem Updated 2025-07-16
Lightweight markup language Updated 2025-07-16
Light year Updated 2025-07-16
Ciro's Edict #5
\Include and \x and working on dynamic website Updated 2025-07-16This was the major final step of fully integrating the OurBigBook CLI into the dynamic website (besides fixing some nasty bugs that escaped passed by me from the previous newsletter).
Ciro Santilli's sport practice Updated 2025-07-16
As a Brazilian, Ciro Santilli used to really love playing soccer (but not watching it), until he hurt his knee.
Playing soccer just feels amazing, because you are constantly running around, but with a more specific goal in mind: to get that ball into that goal!
Playing soccer was specially amazing in the flat wet sand beach of Santos. weekend, the sea, feet touching the sand, the sun going down, and your school mates next to you. Nirvana.
It is also true that under those conditions, the skin of your feet will get ripped off due to running on the slightly wet and flat sand no matter how thick it has become. But it is worth it.
Teams would often be slit between "the team with shirts vs the team without shirts", who would just take off their shirts. The two best players would take turns picking players into their teams, the first one to pick would be decided by odds and evens (par ou ímpar).
A pair of Havaianas, or Havaianas rip-offs, stuck into the sand, or even just some school bags, would do as a goal posts. More organized people, especially adults, would have their own water pipe goal with a proper net and all. But doing so would spoil the fun of endless discussions if a non flat ball had gone in or not into an imaginary rectangle.
That's how soccer was meant to be played.
Ciro hates water, so swimming is out of the question. What could be more boring than going back and forth on a fixed location a million times to gain some milliseconds?
Running would have been a consideration, but Ciro Santilli's legs sometimes itch when he runs.
This is until he ended up living in a place with decent roads for cycling in the late 2010's, which led to Ciro Santilli's cycling.
City in Japan Updated 2025-07-16
City in Taiwan Updated 2025-07-16
City of London Updated 2025-07-16
The City of London is an obscene thing. Its existence goes against the will of the greater part of society. All it takes is one glance to see how it is but a bunch of corruption. See e.g.: The Spiders' Web: Britain's Second Empire.
Classification (mathematics) Updated 2025-07-16
Examples:
- classification of finite simple groups
- classification of regular polytopes
- classification of closed surfaces, and more generalized generalized Poincaré conjectures
- classification of associative real division algebras
- classification of finite fields
- classification of simple Lie groups
- classification of the wallpaper groups and the space groups
History of Brazil Updated 2025-07-16
Politics of Brazil Updated 2025-07-16
This means while developing a website locally with the OurBigBook CLI, if you have a bunch of files with an error in one of them, your first run will run slowly until the error:but further runs will blast through the files that worked, skipping all files that have sucessfully converted:so you can fix file by file and move on quickly.
extract_ids README.ciro
extract_ids README.ciro finished in 73.82836899906397 ms
extract_ids art.ciro
extract_ids art.ciro finished in 671.1738419979811 ms
extract_ids ciro-santilli.ciro
extract_ids ciro-santilli.ciro finished in 1009.6256089992821 ms
extract_ids science.ciro
error: science.ciro:13686:1: named argument "parent" given multiple times
extract_ids science.ciro finished in 1649.6193730011582 msextract_ids README.ciro
extract_ids README.ciro skipped by timestamp
extract_ids art.ciro
extract_ids art.ciro skipped by timestamp
extract_ids ciro-santilli.ciro
extract_ids ciro-santilli.ciro skipped by timestamp
extract_ids science.ciroMore details at: cirosantilli.com/ourbigbook#no-render-timestamp
This was not fully trivial to implement because we had to rework how duplicate IDs are checked. Previously, we just nuked the DB every time on a directory conversion, and then repopulated everything. If a duplicated showed up on a file, it was a duplicate.
But now that we are not necessarily extracing IDs from every file, we can't just nuke the database anymore, otherwise we'd lose the information. Therefore, what we have to do is to convert every file, and only at the end check the duplicates.
Managed to do that with a single query as documented at: stackoverflow.com/questions/71235548/how-to-find-all-rows-that-have-certain-columns-duplicated-in-sequelize/71235550#71235550
Ciro's Edict #6 Next steps Updated 2025-07-16
States of Brazil Updated 2025-07-16
Classification of 5-transitive groups Updated 2025-07-16
Apparently only Mathieu group and Mathieu group .
www.maths.qmul.ac.uk/~pjc/pps/pps9.pdf mentions:Hmm, is that 54, or more likely 5 and 4?
The automorphism group of the extended Golay code is the 54-transitive Mathieu group . This is one of only two finite 5-transitive groups other than symmetric and alternating groups
scite.ai/reports/4-homogeneous-groups-EAKY21 quotes link.springer.com/article/10.1007%2FBF01111290 which suggests that is is also another one of the Mathieu groups, math.stackexchange.com/questions/698327/classification-of-triply-transitive-finite-groups#comment7650505_3721840 and en.wikipedia.org/wiki/Mathieu_group_M12 mentions .
Classification of closed surfaces Updated 2025-07-16
So simple!! You can either:
- cut two holes and glue a handle. This is easy to visualize as it can be embedded in : you just get a Torus, then a double torus, and so on
- cut a single hole and glue a Möbius strip in it. Keep in mind that this is possible because the Möbius strip has a single boundary just like the hole you just cut. This leads to another infinite family that starts with:
You can glue a Mobius strip into a single hole in dimension larger than 3! And it gives you a Klein bottle!
Intuitively speaking, they can be sees as the smooth surfaces in N-dimensional space (called an embedding), such that deforming them is allowed. 4-dimensions is enough to embed cover all the cases: 3 is not enough because of the Klein bottle and family.
Nuclear magnetic moment Updated 2025-07-16
Phenylalanine Updated 2025-07-16
Sequelize example Updated 2025-07-16
To run examples on a specific database:All examples can be tested on all databases with:
./index.jsor./index.js l: SQLite./index.js p: PostgreSQL. You must manually create a database calledtmpand ensure that peer authentication works for it
cd sequelize
./testOverview of the examples:
- nodejs/sequelize/index.js: a bunch of basic examples
- nodejs/sequelize/update.js: This file is also where we are storing our expression-foo for now, e.g. how to do stuff like
col1 + col2. Such knowledge can however be used basically anywhere else however, e.g. inASorWHEREclauses, not just inUPDATE. - nodejs/sequelize/count.js: a simplified single-table count example. In practice, this will be usually done together with JOIN queries across multiple tables. Answers: stackoverflow.com/questions/22627258/how-does-group-by-works-in-sequelize/69896449#69896449
- nodejs/sequelize/date.js: automatic date typecasts
- nodejs/sequelize/like.js: LIKE
- nodejs/sequelize/camel_case.js: trying to get everything in the database camel cased, columns starting with lowercase, and tables starting with uppercase. The defaults documented on getting started documentation do uppercase foreign keys, and lowercase non-foreign keys. It's a mess.
- nodejs/sequelize/ignore_duplicates.js: ignore query on unique violation with
ignoreDuplicates: truewhich does SQLiteINSERT OR IGNORE INTOor PostgreSQLON CONFLICT DO NOTHING. Closely related Upsert versions:- Upsert
- nodejs/sequelize/upsert.js:
.upsertselects the conflict column automatically by unique columns. Both SQLite and PostgreSQL doINSERT INTO ON CONFLICT. PostgreSQL usesRETURNING, which was added too recently to SQLite: www.sqlite.org/lang_returning.html - nodejs/sequelize/update_on_duplicate.js:
.bulkCreate({}, { updateOnDuplicate: ['col1', col2'] }. Produces queries analogous to.upsert. This method is cool because it can upsert multiple columns at once. But it is annoying that you have to specify all fields to be updated one by one manually. - stackoverflow.com/questions/29063232/how-to-get-the-id-of-an-inserted-or-updated-record-in-sequelize-upsert/72092277#72092277
- stackoverflow.com/questions/55531860/sequelize-bulkcreate-updateonduplicate-for-postgresql
- Upsert
- nodejs/sequelize/inc.js: demonstrate the
incrementmethod. In SQLite, it produces a statement of type:UPDATE `IntegerNames` SET `value`=`value`+ 1,`updatedAt`='2021-11-03 10:23:45.409 +00:00' WHERE `id` = 3 - nodejs/sequelize/sync_alter.js: illustrates
Model.sync({alter: true})to modify a table definition, answers: stackoverflow.com/questions/54898994/bulkupdate-in-sequelize-orm/69044138#69044138 - nodejs/sequelize/truncate_key.js
- nodejs/sequelize/validation.js: is handled by a third-party library: github.com/validatorjs/validator.js. They then add a few extra validators on top of that.The
args: truething is explained at: stackoverflow.com/questions/58522387/unhandled-rejection-sequelizevalidationerror-validation-error-cannot-create-pr/70263032#70263032 - nodejs/sequelize/composite_index.js: stackoverflow.com/questions/34664853/sequelize-composite-unique-constraint
- nodejs/sequelize/indent_log.js: stackoverflow.com/questions/34664853/sequelize-composite-unique-constraint
- association examples:
- nodejs/sequelize/one_to_many.js: basic one-to-many examples.
- nodejs/sequelize/many_to_many.js: basic many-to-many examples, each user can like multiple posts. Answers: stackoverflow.com/questions/22958683/how-to-implement-many-to-many-association-in-sequelize/67973948#67973948
- ORDER BY include:
- nodejs/sequelize/many_to_many_custom_table.js: many-to-many example, but where we craft our own table which can hold extra data. In our case, users can like posts, but likes have a integer weight associated with them. Related threads:
- nodejs/sequelize/many_to_many_same_model.js: association between a model and itself: users can follow other users. Related:
- nodejs/sequelize/many_to_many_same_model_super.js
- nodejs/sequelize/many_to_many_super.js: "Super many to many": sequelize.org/master/manual/advanced-many-to-many.html This should not exist and shows how bad this library is for associations, you need all that boilerplate in order to expose certain relationships that aren't otherwise exposed by a direct
hasManywith implicit join table.
- nested includes to produce queries with multiple JOIN:
- nodejs/sequelize/nested_include.js: find all posts by users that a given user follows. Answers: stackoverflow.com/questions/42632943/sequelize-multiple-where-clause/68018083#68018083
- nodejs/sequelize/nested_include_super.js: like nodejs/sequelize/nested_include.js but with a super many to many. We should move this to nodejs/sequelize/many_to_many_super.js.
- two relationships between two specific tables: we need to use
as:to disambiguate them- nodejs/sequelize/many_to_many_double.js: users can both follow and like posts
- nodejs/sequelize/one_to_many_double.js: posts have the author and a mandatory reviewer
- hooks
- internals:
- nodejs/sequelize/common.js: common utilities used across examples, most notably:
- to easily setup different DBRM
- nodejs/sequelize/min_nocommon.js: to copy paste to Stack Overflow
- nodejs/sequelize/min.js: template for new exapmles in the folder
- nodejs/sequelize/common.js: common utilities used across examples, most notably:
Ciro Santilli's hardware Toshiba MK1059GSM Updated 2025-07-16
Unlisted articles are being shown, click here to show only listed articles.