Skip to content

Commit 7a8ed3f

Browse files
committed
bak
1 parent f42e26b commit 7a8ed3f

35 files changed

+802
-154
lines changed

biology.bigb

+10
Original file line numberDiff line numberDiff line change
@@ -313,11 +313,21 @@ Allele means "other" in <Greek (language)>.
313313
{tag=Technology}
314314
{wiki}
315315

316+
= Artificial womb
317+
{parent=Biotechnology}
318+
{wiki}
319+
316320
= Biosafety level
317321
{parent=Biotechnology}
318322
{title2=BSL}
319323
{wiki}
320324

325+
= Parenteral nutrition
326+
{parent=Biotechnology}
327+
{wiki}
328+
329+
For some reason, this is one of the things that makes <Ciro Santilli> want to puke the most. More than surgery or blood.
330+
321331
= Tissue engineering
322332
{parent=Biotechnology}
323333
{wiki}

popular-brazilian-music.bigb renamed to brazilian-music.bigb

+32-27
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
1+
= Brazilian music
2+
13
= Popular Brazilian music
4+
{parent=Brazilian music}
25
{title2=MPB}
36
{wiki=Música_popular_brasileira}
47

58
= Música popular brasileira
69
{synonym}
710
{title2}
811

9-
Best of list: <the best popular Brazilian music (MPB) of all time>.
10-
11-
It is such a huge shame that you have to understand <Portuguese (language)> to appreciate those songs... this is yet another great evil outcome of <having more than one natural language is bad for the world>.
12-
1312
= The best popular Brazilian music (MPB) of all time
1413
{parent=Popular Brazilian music}
1514

15+
It is such a huge shame that you have to understand <Portuguese (language)> to appreciate those songs... this is yet another great evil outcome of <having more than one natural language is bad for the world>.
16+
1617
The good songs stopped before of just after <Ciro Santilli> was born, they were originally heard by his parent's generation. Those young new kids are boring.
1718

1819
The place to start is definitely <the Holy Trinity of popular brazilian music>:
@@ -26,6 +27,10 @@ Non trinity songs and artists:
2627
* 1972 https://www.youtube.com/watch?v=WWfseMcAUZY[Mistério do Planeta] track from the https://en.wikipedia.org/wiki/Acabou_Chorare[Acabou Chorare] album by https://en.wikipedia.org/wiki/Novos_Baianos[Novos Baianos]
2728
* 1977 https://www.youtube.com/watch?v=sQU7iQDiZvA[Marimbondo] track from the "Pirão de Peixe com Pimenta (1977)" album https://en.wikipedia.org/wiki/S%C3%A1_%26_Guarabyra[Sá & Guarabyra]
2829
* <Elis Regina>
30+
31+
\Video[https://www.youtube.com/watch?v=02VJ-Y1IXzI]
32+
{title=Atrás da Porta performed by Elis Regina}
33+
{description=Composed by Francis Hime and Chico Buarque.}
2934
* https://en.wikipedia.org/wiki/Raul_Seixas[Raul Seixas]
3035
\Video[https://www.youtube.com/watch?v=CmB4sfoZkwo]
3136
{title=Metamorfose Ambulante by Raul Seixas (1973)}
@@ -106,29 +111,6 @@ Some other noteworthy mentions
106111
* 1974 https://www.youtube.com/watch?v=5Y7PQxtmJ5k Na Rua, Na Chuava, Na Fazenda by Hyldon
107112
* https://www.youtube.com/watch?v=S3U0sHegYgU Vamos chamar o vento by Dorival Caymmi
108113

109-
= The best non-MPB Brazilian music of all time
110-
{c}
111-
{parent=The best popular Brazilian music (MPB) of all time}
112-
113-
= Mamonas Assassinas
114-
{c}
115-
{parent=The best non-MPB Brazilian music of all time}
116-
117-
This incredibly foul mouthed band was incredibly funny.
118-
119-
<Ciro Santilli> was a bit young to understand the songs at the time, but the older boys were singing them, and he sang along. So maybe there is a nostalgia factor in play.
120-
121-
But it can't be just that. They are just too funny and brutal, even when Ciro re-listens to it as of 2020.
122-
123-
Many <Brazilian> <religious> cranks in were really happy when their plane crashed and killed all of them in 1996.
124-
125-
Official <YouTube> channel: https://www.youtube.com/channel/UCPmfP5LNbxYwlN0k6C3F_6w
126-
127-
Best songs:
128-
* https://www.youtube.com/watch?v=Nz7101ulkK0[Pelados Em Santos (1995)]. Not too amazing, they only try to be funny by making fun of the North-Eastern accent of Brazil, which is considered somewhat funny in <São Paulo (state)>, and they fail at being funny.
129-
130-
But it talks about <Santos, São Paulo, Brazil>, Ciro's idolized city, so let's hear it. They didn't live in Santos apparently, but being from <São Paulo City>, they would have been familiar with that popular local beach location.
131-
132114
= Popular brazilian music musician
133115
{parent=Popular Brazilian music}
134116

@@ -313,3 +295,26 @@ Good selection: https://pt.wikipedia.org/wiki/Ac%C3%BAstico_MTV_-_Gilberto_Gil[A
313295
Mostly interpreter of songs written by others. But she's just too amazing, many of her interpretations are better than the original.
314296

315297
<God>, even <Ciro Santilli> is slightly shocked by her death, which happened before he was born, can you imagine it at the time? She was MPB's golden girl...
298+
299+
= The best non-MPB Brazilian music of all time
300+
{c}
301+
{parent=The best popular Brazilian music (MPB) of all time}
302+
303+
= Mamonas Assassinas
304+
{c}
305+
{parent=The best non-MPB Brazilian music of all time}
306+
307+
This incredibly foul mouthed band was incredibly funny.
308+
309+
<Ciro Santilli> was a bit young to understand the songs at the time, but the older boys were singing them, and he sang along. So maybe there is a nostalgia factor in play.
310+
311+
But it can't be just that. They are just too funny and brutal, even when Ciro re-listens to it as of 2020.
312+
313+
Many <Brazilian> <religious> cranks in were really happy when their plane crashed and killed all of them in 1996.
314+
315+
Official <YouTube> channel: https://www.youtube.com/channel/UCPmfP5LNbxYwlN0k6C3F_6w
316+
317+
Best songs:
318+
* https://www.youtube.com/watch?v=Nz7101ulkK0[Pelados Em Santos (1995)]. Not too amazing, they only try to be funny by making fun of the North-Eastern accent of Brazil, which is considered somewhat funny in <São Paulo (state)>, and they fail at being funny.
319+
320+
But it talks about <Santos, São Paulo, Brazil>, Ciro's idolized city, so let's hear it. They didn't live in Santos apparently, but being from <São Paulo City>, they would have been familiar with that popular local beach location.

c/.gitignore

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
*.out
2+
3+
# Core dumps.
4+
core
5+
core.*
6+
.gdb_history

c/Makefile

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
.POSIX:
2+
3+
# Input parameters
4+
CC = gcc
5+
CFLGS = -ggdb3 -O0 -pedantic-errors -std=c89 -Wall -Wextra
6+
IN_EXT = .c
7+
OUT_DIR = .
8+
OUT_EXT = .out
9+
10+
OUTS = $(addprefix $(OUT_DIR)/, $(addsuffix $(OUT_EXT), $(basename $(wildcard *$(IN_EXT)))))
11+
12+
.PHONY: all clean mkdir test
13+
14+
all: mkdir $(OUTS)
15+
16+
$(OUT_DIR)/%$(OUT_EXT): %$(IN_EXT)
17+
$(CC) $(CFLGS) -o '$@' '$<'
18+
19+
clean:
20+
if [ '$(OUT_DIR)' = '.' ]; then \
21+
rm -f *'$(OUT_EXT)'; \
22+
else \
23+
rm -rf '$(OUT_DIR)'; \
24+
fi
25+
26+
mkdir:
27+
mkdir -p '$(OUT_DIR)'
28+
29+
test: all
30+
@\
31+
for t in *"$(OUT_EXT)"; do\
32+
if ! ./"$$t"; then\
33+
echo "ASSERT FAILED: $$t";\
34+
exit 1;\
35+
fi;\
36+
done;\

c/posix/sigaction.c

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
#define _XOPEN_SOURCE 700
2+
#include <signal.h> /* signal, SIGSEGV */
3+
4+
#include <unistd.h> /* write, STDOUT_FILENO */
5+
6+
void signal_handler(int sig) {
7+
(void)sig;
8+
const char msg[] = "signal received\n";
9+
write(STDOUT_FILENO, msg, sizeof(msg));
10+
}
11+
12+
int myfunc(int i) {
13+
*(int *)0 = 1;
14+
return i + 1;
15+
}
16+
17+
int main(int argc, char **argv) {
18+
(void)argv;
19+
/* Adapted from: https://www.gnu.org/software/libc/manual/html_node/Sigaction-Function-Example.html */
20+
struct sigaction new_action;
21+
new_action.sa_handler = signal_handler;
22+
sigemptyset(&new_action.sa_mask);
23+
new_action.sa_flags = SA_NODEFER|SA_RESETHAND;
24+
sigaction(SIGINT, &new_action, NULL);
25+
int ret = myfunc(argc);
26+
return ret;
27+
}
28+

c/posix/signal_return.c

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/* https://cirosantilli.com/c-posix-library */
2+
3+
#include <stdio.h> /* puts */
4+
#include <stdlib.h> /* EXIT_SUCCESS */
5+
#include <signal.h> /* signal, raise, SIGSEGV */
6+
7+
#include <unistd.h> /* write, STDOUT_FILENO */
8+
9+
void signal_handler(int sig) {
10+
(void)sig;
11+
const char msg[] = "signal received\n";
12+
write(STDOUT_FILENO, msg, sizeof(msg));
13+
/* The handler automatically disables handling of future signals.
14+
* So we set it again here. */
15+
signal(SIGSEGV, signal_handler);
16+
}
17+
18+
int main(int argc, char **argv) {
19+
(void)argv;
20+
signal(SIGSEGV, signal_handler);
21+
if (argc > 1) {
22+
*(int *)0 = 1;
23+
} else {
24+
raise(SIGSEGV);
25+
}
26+
puts("after");
27+
return EXIT_SUCCESS;
28+
}

c/segfault.c

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#include <stdlib.h>
2+
3+
int main(void) {
4+
*(int *)0 = 1;
5+
return EXIT_SUCCESS;
6+
}

c/segfault_in_func.c

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#include <stdlib.h>
2+
#include <stdio.h>
3+
4+
int f(int i) {
5+
*(int *)0 = 1;
6+
return i + 1;
7+
}
8+
9+
int main(int argc, char **argv) {
10+
(void)argv;
11+
printf("%d\n", f(argc + 1));
12+
return EXIT_SUCCESS;
13+
}

ciro-santilli.bigb

+9-1
Original file line numberDiff line numberDiff line change
@@ -615,7 +615,7 @@ For what it is worth though, <Ciro Santilli> does honestly love <Europe>, and fe
615615

616616
"Ciro" is "Cyrus" from <Cyrus the Great> in both <Portuguese (language)> and <Italian (language)> (although with very different pronunciations), thus doubly appropriate given that <Ciro Santilli> was born in <Brazil>, and has <Italian> ancestry.
617617

618-
After he conquered Babylon, Cyrus the Great did a great service to the Hebrews by allowing war prisoners that were held in Babylon to back to their home Judea. These Jews were imprisoned because they had previously fought a war with the previous Babylonian power and lost. As Wikipedia puts it:
618+
After he conquered Babylon in 539 BC from the hands https://en.wikipedia.org/wiki/Neo-Babylonian_Empire[Neo-Babylonian Empire], Cyrus the Great did a great service to the Hebrews by allowing war prisoners that were held in Babylon to back to their home Judea, thus terminating the https://en.wikipedia.org/wiki/Babylonian_captivity[Babylonian captivity]. These Jews were imprisoned because they had previously https://en.wikipedia.org/wiki/Judah%27s_revolts_against_Babylon[fought a war or revolted against the Neo-Babylonian Empire] and lost. As Wikipedia puts it:
619619
\Q[According to Isaiah 45:1 of the <Hebrew Bible>, <God> anointed Cyrus for this task, even referring to him as a messiah (lit. 'anointed one'); Cyrus is the only non-Jewish figure in the Bible to be revered in this capacity.]
620620
He is therefore viewed extremely positively in the good old book. Ciro was quite happy about this name choice by his father, given <Ciro Santilli's campaign for freedom of speech in China>[the human rights connotations] of the figure and <Ciro Santilli's self perceived compassionate personality>.
621621

@@ -642,6 +642,14 @@ and glad to add any new ones as they come.
642642

643643
He is actually quite happy when people use the name in their own language, because that means they understand the origin of the name.
644644

645+
Some Ciro's of interest:
646+
* https://ciros.com is a reference to the possessive "Ciro's", as of 2022 a cute family-held Italian restaurant in Texas, i.e. "Ciro's restaurant"
647+
* More notably perhaps, https://en.wikipedia.org/wiki/Ciro%27s[Ciro's] was the name a nightclub on Sunset Boulevard
648+
649+
\Image[https://upload.wikimedia.org/wikipedia/commons/3/3d/Ciro%27s_Neon_Sign_1955.JPG]
650+
{title=Neon Sign from Ciro's night club (1955)}
651+
* it is unclear if the usage of Cyrus in family names, e.g. the dread https://en.wikipedia.org/wiki/Miley_Cyrus[Miley Cyrus]. https://www.houseofnames.com/cyrus-history mentions it may be of Greek origin.
652+
645653
= Ciro Santilli's Chinese name
646654
{parent=Ciro Santilli's given name}
647655
{title2=三西猴}

cool-data-embedded-in-the-bitcoin-blockchain.bigb

+1
Original file line numberDiff line numberDiff line change
@@ -1524,6 +1524,7 @@ By <Ciro Santilli>:
15241524

15251525
By others:
15261526
* https://news.ycombinator.com/item?id=26801067[] on <Hacker News> failed unfortunately. Edit: looked a few hours later and miraculously it achieved a mild success, caught it at position 16: https://archive.ph/L0Fte and led to about 5k views total. Ah, Ciro could watch that <Google Analytics> realtime view go bling all day long. <Narcissism> is a bitch.
1527+
* https://cloudhiker.net/ A hand curated and categorized list of interesting links by Kevin Woblick. Only allows users to visit a random one per category, so we can't get proof of backlink, this was noticed through <Google Analytics>.
15271528

15281529
Minor ones:
15291530
* 2021 https://cryptonewmedia.press/tankman-image-on-bitcoin-blockchain/ by user igadjeed

cpp/backtrace/.gdb_history

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
start
2+
start

cpp/backtrace/dwfl.cpp

+125
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
#include <cassert>
2+
#include <iostream>
3+
#include <memory>
4+
#include <sstream>
5+
#include <string>
6+
7+
#include <cxxabi.h> // __cxa_demangle
8+
#include <elfutils/libdwfl.h> // Dwfl*
9+
#include <execinfo.h> // backtrace
10+
#include <unistd.h> // getpid
11+
12+
// https://stackoverflow.com/questions/281818/unmangling-the-result-of-stdtype-infoname
13+
std::string demangle(const char* name) {
14+
int status = -4;
15+
std::unique_ptr<char, void(*)(void*)> res {
16+
abi::__cxa_demangle(name, NULL, NULL, &status),
17+
std::free
18+
};
19+
return (status==0) ? res.get() : name ;
20+
}
21+
22+
std::string debug_info(Dwfl* dwfl, void* ip) {
23+
std::string function;
24+
int line = -1;
25+
char const* file;
26+
uintptr_t ip2 = reinterpret_cast<uintptr_t>(ip);
27+
Dwfl_Module* module = dwfl_addrmodule(dwfl, ip2);
28+
char const* name = dwfl_module_addrname(module, ip2);
29+
function = name ? demangle(name) : "<unknown>";
30+
if (Dwfl_Line* dwfl_line = dwfl_module_getsrc(module, ip2)) {
31+
Dwarf_Addr addr;
32+
file = dwfl_lineinfo(dwfl_line, &addr, &line, nullptr, nullptr, nullptr);
33+
}
34+
std::stringstream ss;
35+
ss << ip << ' ' << function;
36+
if (file)
37+
ss << " at " << file << ':' << line;
38+
ss << std::endl;
39+
return ss.str();
40+
}
41+
42+
std::string stacktrace() {
43+
// Initialize Dwfl.
44+
Dwfl* dwfl = nullptr;
45+
{
46+
Dwfl_Callbacks callbacks = {};
47+
char* debuginfo_path = nullptr;
48+
callbacks.find_elf = dwfl_linux_proc_find_elf;
49+
callbacks.find_debuginfo = dwfl_standard_find_debuginfo;
50+
callbacks.debuginfo_path = &debuginfo_path;
51+
dwfl = dwfl_begin(&callbacks);
52+
assert(dwfl);
53+
int r;
54+
r = dwfl_linux_proc_report(dwfl, getpid());
55+
assert(!r);
56+
r = dwfl_report_end(dwfl, nullptr, nullptr);
57+
assert(!r);
58+
static_cast<void>(r);
59+
}
60+
61+
// Loop over stack frames.
62+
std::stringstream ss;
63+
{
64+
void* stack[512];
65+
int stack_size = ::backtrace(stack, sizeof stack / sizeof *stack);
66+
for (int i = 0; i < stack_size; ++i) {
67+
ss << i << ": ";
68+
69+
// Works.
70+
ss << debug_info(dwfl, stack[i]);
71+
72+
#if 0
73+
// TODO intended to do the same as above, but segfaults,
74+
// so possibly UB In above function that does not blow up by chance?
75+
void *ip = stack[i];
76+
std::string function;
77+
int line = -1;
78+
char const* file;
79+
uintptr_t ip2 = reinterpret_cast<uintptr_t>(ip);
80+
Dwfl_Module* module = dwfl_addrmodule(dwfl, ip2);
81+
char const* name = dwfl_module_addrname(module, ip2);
82+
function = name ? demangle(name) : "<unknown>";
83+
// TODO if I comment out this line it does not blow up anymore.
84+
if (Dwfl_Line* dwfl_line = dwfl_module_getsrc(module, ip2)) {
85+
Dwarf_Addr addr;
86+
file = dwfl_lineinfo(dwfl_line, &addr, &line, nullptr, nullptr, nullptr);
87+
}
88+
ss << ip << ' ' << function;
89+
if (file)
90+
ss << " at " << file << ':' << line;
91+
ss << std::endl;
92+
#endif
93+
}
94+
}
95+
dwfl_end(dwfl);
96+
return ss.str();
97+
}
98+
99+
void my_func_2() {
100+
std::cout << stacktrace() << std::endl;
101+
std::cout.flush();
102+
}
103+
104+
void my_func_1(double f) {
105+
(void)f;
106+
my_func_2();
107+
}
108+
109+
void my_func_1(int i) {
110+
(void)i;
111+
my_func_2();
112+
}
113+
114+
int main(int argc, char **argv) {
115+
long long unsigned int n;
116+
if (argc > 1) {
117+
n = strtoul(argv[1], NULL, 0);
118+
} else {
119+
n = 1;
120+
}
121+
for (long long unsigned int i = 0; i < n; ++i) {
122+
my_func_1(1); // line 122
123+
my_func_1(2.0); // line 123
124+
}
125+
}

0 commit comments

Comments
 (0)