Notas de semana 2025 W40: Porra normal

Notas de semana 2025 W40: Porra normal


Partes rápidas:

  • Às vezes esqueço que renomeei meu perfil padrão do Safari para “porra normal”, para que o menu de arquivo tenha um item “Nova janela normal”. Acho maravilhoso que isso ocasionalmente ainda me surpreenda e me divirta.

  • Estou em uma curta viagem à Bélgica para ver a família. Eu estava começando a me sentir um tanto infeliz em Berlim, sem muito o que fazer (e ainda sem trabalho).

    A viagem de trem Berlim-Bruxelas é sempre uma dor. Mais uma vez, sofri um atraso de mais de duas horas. A Deutsche Bahn é bastante consistente nesse sentido – mas pelo menos poderei obter um reembolso de 50%.


Ainda tenho nove sessões na minha aula de atuação.

Em pouco mais de dois meses teremos uma apresentação semipública das cenas em que trabalhamos. Como antes: se somos mútuos e você gostaria de participar desta noite de cenas variadas (em Berlim), me avise e eu conseguirei um convite para você.

É preciso ter público para que o que está em jogo seja real, sabe?

Estou trabalhando em três monólogos não relacionados. Fazer monólogos tem suas vantagens e desvantagens: é bom estar totalmente no controle, mas não ter um parceiro de cena para se defender cria seus próprios desafios.

De qualquer forma, tenho muito trabalho pela frente; três monólogos são suficientes. Eu teria gostado de ter uma cena com um parceiro de cena, mas isso não seria particularmente sensato neste momento, dada a minha carga de trabalho. Pelo menos para um destes três monólogos, sinto-me bastante confiante com o texto; os outros dois precisam de mais prática. A prática diária consistente é fundamental, e acho que me tornei muito bom nisso.

Por enquanto, ainda estou explorando esses monólogos, descobrindo onde posso levar o texto e os personagens. Imagino que começarei a restringir as coisas em meados de outubro.

Percebi que gosto bastante de interpretar personagens excêntricos.


Esta foi a semana mais movimentada na minha procura de emprego até agora, a ponto de ser exaustiva. Infelizmente, não houve tanto progresso quanto eu esperava (e provavelmente estou parecendo um disco quebrado neste momento).

Eis a carta de rejeição com as piores palavras que já recebi:

Olá Denis,

Desculpe pela atualização tardia.

Não iremos avançar.

Obrigado pelo seu tempo e tudo de bom em sua pesquisa.

Cumprimentos,

Isso depois de uma entrevista foi tão estranho que eu não tinha ideia do que o entrevistador queria de mim.

Em seguida, fui entrevistado para outra empresa, onde tanto o chefe de engenharia quanto um dos engenheiros principais eram imensamente chatos. Com certeza é um sinal de alerta quando você faz a pergunta “do que você mais se orgulha durante sua gestão aqui” e a resposta, depois de uma pausa, é “nada vem à mente”.

Por último, tive uma entrevista agendada logo após uma consulta com o médico, onde fiz uma coleta de sangue. Faz um bom tempo que não comi e tirar sangue significava que eu estava com pouca energia para ter um bom desempenho; Sem surpresa, recebi uma rejeição logo depois. Eu gostaria de ter remarcado. Erros foram cometidos.


Estou fazendo apenas um progresso lento em Deng. Meu desejo de ter uma API C limpa certamente não está facilitando as coisas para mim, mas valerá a pena. Afinal, não quero que Deng possa ser usado apenas no Zig!

Minha luta atual é adicionar suporte decente para arrays. A dificuldade vem de não querer ficar limitado a arrays C; por exemplo, eu gostaria de poder usar um array Ruby (um rb_cArray) sem complicações.

E então acho que faz mais sentido definir um array como uma estrutura com len e get métodos, assim:

typedef struct _deng_ArrayValue {
  const void* ptr;

  const size_t (*len)(
    void* ptr
  );

  const struct _deng_Value (*get)(
    void* ptr,
    size_t idx
  );
} deng_ArrayValue;

A sintaxe C é difícil. Mas o que isso significa é que um valor de array possui três itens:

  • um ponteiro genérico
  • um len função que retorna o número de itens
  • um get função que retorna o valor no índice fornecido

Em vez OOP, e eu gosto disso! Aqui estão alguns exemplos de como esta API seria usada:

my_array_value.len(
  my_array_value.ptr
);
my_array_value.get(
  my_array_value.ptr,
  42
);

Esta abordagem tem uma desvantagem significativa: a ArrayValue definição assume que o acesso aleatório é barato –O(1). Este não é o caso das listas em geral. Eu gostaria de ter um padrão de iterador genérico, mas é surpreendentemente complicado de implementar em uma linguagem com gerenciamento manual de memória.

Pelo menos a definição do valor da matriz está perfeitamente alinhada com o já existente ObjectValue API:

typedef struct _deng_ObjectValue {
  const void* ptr;

  const struct _deng_Value (*get)(
    const void* ptr,
    deng_LookupKey lookup_key
  );
} deng_ObjectValue;

Entretenimento:

  • eu finalmente assisti Noite dos Mortos-Vivos. Eu sei que é o início de um novo gênero, mas não envelheceu muito bem. Isso é velho. Mas, você sabe, ainda é um clássico influente. Eles estão vindo pegar você, Bárbara!

  • má educação me senti um pouco datado com muita teatralidade e melodrama.


Links:

Links técnicos:



Source link

Postagens Similares

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *