Friday, February 17, 2017

Recomendações aos cientistas, Karl Popper

"A tarefa mais importante de um cientista é certamente contribuir para o avanço de sua área de conhecimento. A segunda tarefa mais importante é escapar da visão estreita de uma especialização excessiva, interessando-se ativamente por outros campos em busca do aperfeiçoamento pelo saber que é a missão cultural da ciência. A terceira tarefa é estender aos demais a compreensão de seus conhecimentos, reduzindo ao mínimo o jargão científico, do qual muitos de nós temos orgulho. Um orgulho desse tipo é compreensível. Mas ele é um erro. Deveria ser nosso orgulho ensinar a nós mesmos, da melhor forma possível, a sempre falar tão simplesmente, claramente e despretensiosamente quanto possível, evitando como uma praga a sugestão de que estamos de posse de um conhecimento que é muito profundo para ser expresso de maneira clara e simples.

Esta, é, eu acredito, uma das maiores e mais urgentes responsabilidades sociais dos cientistas. Talvez a maior. Porque esta tarefa está intimamente ligada à sobrevivência da sociedade aberta e da democracia.

Uma sociedade aberta (isto é, uma sociedade baseada na idéia de não apenas tolerar opiniões dissidentes mas de respeitá-las) e uma democracia (isto é, uma forma de governo devotado à proteção de uma sociedade aberta) não podem florescer se a ciência torna-se a propriedade exclusiva de um conjunto fechado de cientistas.

Eu acredito que o hábito de sempre declarar tão claramente quanto possível nosso problema, assim como o estado atual de discussão desse problema, faria muito em favor da tarefa importante de fazer a ciência -- isto é, as idéias científicas -- ser melhor e mais amplamente compreendida."

Karl R. Popper: The Myth of the Framework (in defence of science and rationality). Edited by M. A. Notturno. (London: Routledge, 1994), p. 109.

Thursday, February 02, 2017

Techniques for Change


Cyclomatic Complexity


Basic Deployment Pipeline


The "Agile" Team


the relative ease of making changes to speculative development versus YAGNI code bases


What are you doing?


Software Engineer Mindset


Fallacies of Distributed Computing

Essentially everyone, when they first build a distributed application, makes the following eight assumptions. All prove to be false in the long run and all cause big trouble and painful learning experiences.

  • The network is reliable
  • Latency is zero
  • Band width is infinite
  • The network is secure
  • Topology doesn‘t change
  • There is one administrator
  • Transport cost is zero
  • The network is homogeneous