# The Algorithm Design Manual (Steven S. Skiena)

Caloni, 2024-09-14 books coding [up] [copy]

Acordei no meio da noite pensando em como remover um elemento de uma árvore, aí eu desisti de criar minha própria solução. Baixei The Algorithm Design Manual e Cormen para aprender. Um lapso temporário.

Recortes

It is traditional for the author to magnanimously accept the blame for whatever deficiencies remain. I don’t. Any errors, deficiencies, or problems in this book are somebody else’s fault, but I would appreciate knowing about them so as to determine who is to blame.
Binary search requires that we have fast access to two elements—specifically the median elements above and below the given node. To combine these ideas, we need a “linked list” with two pointers per node. This is the basic idea behind binary search trees.
But what of a to-be-deleted node with two children? Our solution is to relabel this node with the key of its immediate successor in sorted order. This successor must be the smallest value in the right subtree, specifically the leftmost descendant in the right subtree (p). Moving this to the point of deletion results in a properly-labeled binary search tree, and reduces our deletion problem to physically removing a node with at most one child—
Unfortunately, bad things can happen when building trees through insertion. The data structure has no control over the order of insertion. Consider what happens if the user inserts the keys in sorted order. The operations insert(a), followed by insert(b), insert(c), insert(d),…will produce a skinny linear height tree where only right pointers are used.
There are three desirable properties for a good algorithm. We seek algorithms that are correct and efficient, while being easy to implement.
These goals may not be simultaneously achievable.
It is seldom obvious whether a given algorithm correctly solves a given problem. Correct algorithms usually come with a proof of correctness, which is an explanation of why we know that the algorithm must take every instance of the problem to the desired result.
Seeking counterexamples that break pretender algorithms is an important part of the algorithm design process. efficient algorithms are often lurking out there;
The heart of any algorithm is an idea. If your idea is not clearly revealed when you express an algorithm, then you are using too low-level a notation to describe it.

# Tradi Café Doce de Leite

Caloni, 2024-09-20 coffee [up] [copy]

Café de doce de leite, tangerina e baunilha. É a novidade do verão. Este é mais um grão que trago de Poços de Caldas, da Tradi Café. É uma casa de torrefação que fica no piso superior do mercado municipal da cidade. O dono é um mestre torrador e encontra o que há de melhor na região para sua arte.

Esta amostra que peguei eu achei bem estranha nos primeiros dias. Demorou até o finalzinho para eu perceber que este é um café bem diferente. Ele não tem qualquer amargor, uma doçura de refresco e uns toques cítricos bem rebuscados. Um cafezão sem apelar para aromas mais comuns. Ele é exótico de propósito.

Foi bom enquanto durou. Que venham mais cafezes.


# Etchart Torrontés Baratinho

Caloni, 2024-09-20 wine [up] [copy]

Ainda tomando Etchart Torrontés mais baratinho. Ele é bem encorpado, mesmo. Ainda está na geladeira.


# Teuchi-soba Tamura (手打ち蕎麦たむら 東日本橋店)

Caloni, 2024-09-20 food [up] [copy]

Experimentei o soba frio sazonal, a primeira opção do cardápio. Sabor intenso, dá para sentir a massa caseira. Pedi uma cerveja e trouxeram alguns petiscos para acompanhar. Minha esposa pediu apenas o soba quente sem bebida e trouxeram chá verde para acompanhar como cortesia. A atmosfera do lugar é ótima, intimista e típica de soba com um toque refinado. A primeira refeição no Japão foi maravilhosa.


# Berth Coffee

Caloni, 2024-09-20 food coffee [up] [copy]

Este café hipster fica na esquina de uma rua muito tranquila. Há bancadas internas que com a vitrine grande permitem observar o movimento externo, mas também há mesas externas. O espresso é realmente bom, de um ótimo café. O latte é doce sem açúcar e os sanduíches abertos são gostosos, apesar de nada especial. Eles usam uma maionese da casa e um presunto padrão.

O ambiente lembra um hostel com detalhes rústicos, como ventoinhas ligadas por conexões mecânicas de fábrica e paredes nuas. No subsolo há um bar.


# Soba Noodle Shop (食事処 里山)

Caloni, 2024-09-20 food [up] [copy]

Foi bacana comer neste lugar no povoado antigo. Tínhamos chegado junto de mais pessoas e éramos os primeiros de uma fila que se formou para ocupar (talvez) o segundo ambiente do lugar, onde teríamos que tirar os sapatos e dar mais trabalho a já atarefada atendente. Ela nos deixou esperando um pouco para conseguir atender os outros clientes que estavam aguardando. Ela disse que não havia mais lamen. Dissemos “tudo bem” e aguardamos mais. Naquele mesmo momento nós decidimos que comeríamos custe o que custar no lugar. O caos já estava instaurado e ele era divertido.

No final tudo deu certo. Ela nos colocou no segundo ambiente. Tiremos os tênis para adentrar ao recinto. Ela nos disse que havia, sim, noodles de lámen. Mas agora já era tarde: escolhemos um outro tipo de lámen do local: houtou noodles.

Hōtō (ほうとう) é uma sopa de noodles popular originário de Yamanashi (onde estávamos), feito cozinhando um tipo de massa de udon chato com vegetais em uma sopa de missô. Ele foi inventado por conta do racionamento de arroz. Se trata de uma massa diferente e que não tínhamos ainda experimentado. Muito peculiar e muito bom. Valeu pelo Houton e valeu pela experiência.


# Informação não é conhecimento

Caloni, 2024-09-20 philosophy essays [up] [copy]

A informação do meu blogue não me serve de nada a não ser como reafirmação do conhecimento interno que mantenho. Essa minha máquina de estados única e exclusiva da minha linha de vida. Talvez algo sirva para alguém em algum momento, mas nunca será a essência do que procuro. O conhecimento em si se separa da informação quando este se transforma em um processo internalizado do ser. Um algoritmo. É este algoritmo a parte mais importante do uso da informação.

Hoje em dia informação é de graça. Você consegue a qualquer momento na ponta dos dedos. O algoritmo, porém, é que irá definir como a informação será usada. É o algoritmo que irá melhorar o processamento da informação. A informação pode servir de combustível para o algoritmo, o aprendizado por repetição de máquinas biológicas (nós) ou mecânicas (IA), mas nunca será conhecimento. Conhecer é a qualia. Nem máquina mecânicas devem a possuir. Apenas as biológicas, como um mero capricho do algoritmo da natureza.

Conclusões deste último pensamento sobre o blogue: manter a escrita frequente, mas talvez reavaliar outras formas de estruturar o conhecimento realmente útil no próprio blogue. Uma ideia é usar a estrutura de capítulo (no blogue meses) para conteúdo mais estruturado e denso.