Zika e a Dieta Paleolítica

883-aedes-aegypti-mosquito-que-carrega-o-virus-da-dengue

Não, não vamos relacionar a Zika e a dieta dos nossos ancestrais. Apenas relacionar uma semelhança de atitude em dois episódios distantes no tempo. A semelhança é na prática de má ciência. No artigo Zika e Microcefalia: Fato ou Ficção Científica?  a frase

“(…) o diretor da OPAS diz: “alguns cientistas acreditam que é preciso mais provas, mas como profissional de saúde não tenho dúvida.”

tem uma semelhança gritante com esta outra

“Quando os cientistas alertaram o ABSURDO que estava sendo feito, MCGovern respondeu: “Não podemos nos dar ao luxo de vocês cientistas de esperar que todas as teses sejam discutidas antes de tomar uma atitude.”

https://www.instagram.com/p/uckvMdlYHn/

McGovern, que era um senador, influenciado por má ciência e convicções pessoais sem embasamento jogou a população dos EEUU e talvez o resto do mundo na epidemia de obesidade, sintoma da síndrome metabólica. Por causa de uma recomendação dietética completamente duvidosa.

O Dr. Souto, em seu blog, já mostrou de forma abundante que correlação não prova relação causal.

E a dieta paleolítica com isso? Nada. Apenas é fruto de boa ciência.

A má ciência pode ser um vetor mais insidioso do que milhões de mosquitos.

Relacionados:

A arte de ser incrédulo

Beehcraft crash

Uma mentira repetida mil vezes torna-se verdade

A notícia Caça fabricado no Brasil cai na Indonésia e deixa mortos mostrava, até o momento em que alguém comentou sobre a incoerência, duas fotos discrepantes. O avião espatifado no chão  na primeira foto que foi substituída após o comentário exibia os restos de uma fuselagem bem maior do que a do caça citado como aquele que caiu.
img_combat_supertucano_origin_thumb
Buscando notícias em português só se encontra a reverberação “memética” da mesma notícia. Mas as fotos discrepantes na edição original da notícia indicam que “algo não cheira bem”. Como foram citadas agência internacionais nas fotos (AFP e Reuters, sendo que a última teve a foto removida) podemos buscar as notícias internacionais. A busca retornou vários sites com a notícia. Em Four dead in Myanmar military plane crash descobrimos que o avião que caiu é um Beechcraft (Ver também na Wikipedia).

Concluímos que não é só de agora mas de há muito tempo não é uma tarefa fácil manter-se informado. A “desimprensa” nos inunda com desinformação alimentando (ou para alimentar) os discursos precipitados dos “revoltados” de plantão. Já espero comentários sobre a nossa incompetência em fazer aviões e sobre quem é o culpado disto.

ATUALIZAÇÃO: Enquanto ainda editava este post a noticia evoluiu para incluir uma acidente em Malang (“somebody love”). Este post corre o risco de tornar-se obsoleto com tantas alterações que a notícia vem sofrendo. No entanto o impacto inicial da notícia cheia de incorreções está feito (E o título ainda não foi mudado!). Quem não teve tempo para “uma investigação”, mesmo que superficial, e só “passou a notícia” olhando os títulos no celular ficou mal impressionado.

 

SmallIPFS: a Smalltalk Interplanetary File System API – Part 3

pharo-chapo_vignettedecks

 

 

 

 

 

Neste post vamos implementar o comando “object get:”.

Object get: no gateway local

ipfs-object-get-local-gateway

Comando “objetc get:” em Smalltalk

ipfs-object-get-command

Exemplo de uso

ipfs-object-get-example

Resultado exibido

ipfs-object-get-transcript

Para outro hash obtemos uma Merkle DAG mais interessante:

ipfs-object-get-transcript2

Próximo post (brevemente).

Todos os posts.

 

 

Ethereum is a “world computer”

ethereum-1-e1415906203392

O que é Ethereum?

Ethereum, como qualquer sistema avançado, significará coisas diferentes para pessoas diferentes. Enquanto você lê esta seção, algumas partes podem não impressionar você ou até mesmo não fazer sentido. Tudo bem, pule para o próximo parágrafo e que esperamos que seja mais esclarecedor. Se você chegar ao final desta seção e ainda se sentir confuso, então vá até um fórum e comece a fazer perguntas.

Um Computador Mundial

“É muito possível que … uma máquina seria suficiente para resolver todos os problemas … de todo o [mundo]” – Sir Charles Darwin, 1946 *

Em um sentido técnico, Ethereum é um “Computador Mundial”. Voltando aos dias do mainframe, e provavelmente tão rápido quanto, Ethereum pode ser visto como um único computador que todo o mundo pode usar. Teoricamente tem apenas um único processador (sem multi-threading ou execução paralela), mas tanta memória quanto necessário. Qualquer pessoa pode fazer upload de programas para o Ethereum World Computer e qualquer um pode solicitar que um programa que foi carregado seja executado. Isso não significa que qualquer um pode solicitar a qualquer programa para fazer qualquer coisa; pelo contrário: o autor do programa pode especificar que as solicitações de qualquer um, exceto ele próprio, sejam ignoradas, por exemplo. Além disso, em um sentido muito forte, cada programa tem seu próprio armazenamento permanente que persiste entre execuções. Além disso, o Ethereum World Computer estará sempre lá: ele não pode sofrer um shutdown ou ser desligado.

Você pode perguntar, “por que alguém iria usar tal sistema?” e, novamente, há muitas razões. A principal razão é porque ele faz o que você quer fazer mais barato e mais fácil. Esta declaração deve ser detalhada um pouco, que é o que os seguintes parágrafos vão explorar.

Uma Plataforma de Serviços de Internet

“Tecnologia nos dá as facilidades que diminuem as barreiras de tempo e distância – o telégrafo eo cabo, o telefone, o rádio, e o resto.” – Emily Greene Balch

Em um sentido mais prático, Ethereum é uma plataforma de serviços de Internet para computação garantida. Mais do que isso, como uma plataforma, que fornece um conjunto de funções integrais que são muito úteis para o desenvolvedor:

  • autenticação de usuário, via integração de assinaturas criptográficas
  • lógica de pagamento totalmente personalizável; crie facilmente o seu próprio sistema de pagamento sem qualquer dependência de terceiros
  • 100% resistente a ddos (denial-of-service), garantido por ser uma plataforma baseada blockchain totalmente descentralizada
  • sem complicações de armazenamento: esqueça ter que criar bases de dados seguras; Ethereum dá-lhe o máximo de armazenamento que precisar
  • interoperabilidade definitiva: tudo no ecossistema do Ethereum pode trivialmente interagir com tudo o mais, de reputação a moedas personalizados
  • zona livre de servidor: o aplicativo inteiro pode ser implantado no blockchain significando que não há nenhuma necessidade de criação ou manutenção de servidores; deixe que seus usuários paguem o custo do uso do seu serviço.

Ao longo dos últimos vinte anos, em particular, vimos uma aceleração no desenvolvimento de serviços e infra-estrutura para tornar a sobrecarga de lidar com equipes ou com empresas mais simples e menos cara, principalmente graças à internet. Assim como eBay, Drivy e Airbnb fizeram a criação de uma loja, empresa de locação de carro ou hotel muito mais fácil. Estas são plataformas que permitem às pessoas implementem suas ideias rapidamente, desde que o serviço que deseja fornecer se encaixe no modelo oferecido pela plataforma. Sem o Ethereum é muito custoso criar uma nova plataforma se aquelas que já existem não atendem às suas necessidades. Ethereum pode ser visto como uma plataforma para plataformas: ele permite que as pessoas facilmente criem a infra-estrutura para tornar fácil de configurar novos serviços na internet. Além disso, qualquer infra-estrutura criada em Ethereum fica lado a lado com as criações de todo mundo, e por isso pode interagir com essas outras plataformas de uma maneira garantida e sem costuras. Importante, porque não há uma empresa ou mesmo qualquer entidade responsável ou controlando o Ethereum, o custo de funcionamento da infra-estrutura não tem de incluir qualquer margem de lucro, por isso estamos propensos a ver custos mais baixos.

Com a vinda do Mix IDE e o Mist browser, a funcionalidade do Ethereum como uma plataforma de implementação para os serviços de internet vai se tornar mais clara. A mensagem para levar para casa a partir deste ponto, porém, é que Ethereum está prestes a perturbar indústrias tão diversas como as finanças e supply chains.

Contratos Sociais Opt-in

“Esta é uma época de organização” – Theodore Roosevelt de 1912 **

Em um nível mais abstrato, é uma facilidade para permitir a organização inteligente, no sentido de grupos de entidades que trabalham juntos por uma causa particular. No cenário mais simples, temos duas pessoas trabalhando em conjunto para alcançar um objetivo comercial. Em última instância, Ethereum poderia ser usada para governar países. Em grau menor existem grupos de pessoas que querem organizar círculos de baby-sitting, coletivos de produção de filmes, grupos de discussão, casas comunais, etc, e todos eles têm de decidir as regras com as quais eles vão operar juntos. Sem dúvida, a tarefa mais difícil é como implementar e fazer cumprir as regras, especialmente tendo em conta a variedade de personagens, habilidades e motivações que os seres humanos proporcionam. Em outras palavras, como você parar Jo monopolizando o equipamento de filmagem, ou Dave não cumprindo o seu turno no cuidado de crianças? Ethereum fornece uma plataforma na qual as regras podem ser definidas e, a um grau cada vez maior a medida que a tecnologia evolui, são reforçadas. Por exemplo, a câmera pode ser conectada ao blockchain e só gravar o coletivo DApp de tomada de filme aprovar o código de acesso de Jo.

Crowdfunding é um exemplo-chave nas ferramentas organizacionais avançadas. Ele fornece algumas de funções muito importantes: uma maneira das pessoas trabalharem em conjunto para uma causa específica (neste caso dando um “maço de dinheiro” para uma pessoa ou grupo) e um mecanismo para que os indivíduos potencialmente interajam significativamente com  grandes empresas (como um estúdio de jogos). O primeiro decorre do disposto no parágrafo anterior, mas o segundo ponto é impressionante também, porque em geral os indivíduos só podem se comunicar com grandes organizações nos próprios termos da organização, que muitas vezes os “ignoram” como norma; da mesma forma que você ignora as bactérias em sua pele. Da forma que atualmente acontece, você pode estar descontente pelo destinatário do crowdfunding tomar o seu dinheiro e gastá-lo de uma forma inadequada e, portanto, ineficiente. No entanto, é difícil de obter dopea empresa que aja em seu nome contra o beneficiário. Afinal de contas, o prestador de serviços crowdfunding é provável que seja uma grande empresa e não há um mecanismo universal com o qual você pode se comunicar significativamente com ele se ele não quer que você o faça. Ethereum pode ajudar, permitindo que você defina metas ou condições pós-financiamento para regular o pagamento do montante total captado, e em seguida aplicar essas condições para você. A medida que o tempo passar, vamos ser mais criativos nas formas em que Ethereum pode interagir com o mundo real e a capacidade de Ethereum em verificar se os marcos foram concluídos irá estender para além do óbvio, como “30% das pessoas que financiaram o projeto (por valor) votaram que o marco foi cumprido”.

Parte da Revolução da Descentralização

“Não importa quem você vota para, o governo sempre fica no poder” – The Dog Bonzo Doo-Dah Band, 1992

Filosoficamente, este é o próximo passo na re-descentralização da internet. Um sistema descentralizado é aquele que qualquer um pode unilateralmente aderir e participar, no qual todos os participantes contribuem para o funcionamento e manutenção, e na qual qualquer participante pode unilateralmente sair e quando o fazem, o sistema continua independentemente. Em um sistema descentralizado, não existe uma entidade que pode impedir a participação ou arbitrariamente censurar o conteúdo ou o uso. A internet foi concebida para ser descentralizada, mas a forma como é usada a tornou cada vez mais centralizada, até o ponto onde a censura e a exclusão são aceitas e esperados. A tecnologia Blockchain, introduzida por Satoshi Nakamoto com a implementação de prova de conceito de um sistema de transferência de valores simples conhecido como bitcoin, representa o melhor sistema digital que temos (após a própria internet) para administrar interações multi-usuário, sem qualquer necessidade de uma coordenação centralizada ou supervisão. Efetivamente, um sistema descentralizado é a sua própria autoridade para fazer cumprir as regras (por exemplo, “você só pode gastar o seu dinheiro uma vez em bitcoin”, ou “qualquer regra que você programou no seu contrato inteligente (smart contract)” em Ethereum), de modo que os participantes podem ter certeza que o regras que eles esperam para ser executada será, sem qualquer perigo de corrupção, suborno, nepotismo, polarização política, exclusão, exceções arbitrárias, descuido humano ou ausência de pessoal.

Ethereum permite que as pessoas interajam com segurança sem precisar confiar ao celebrar acordos  exequiveis de forma neutra completamente peer-to-peer. Agora, deve-se lembrar que Ethereum só pode valer dentro de seus próprios limites digitais; O Ethereum não remove a necessidade de uma autoridade externa para julgamento devido a disputas fora do seu âmbito — “a outra parte me deu um soco na cara depois de colocar no contrato Ethereum que ele não iria fazê-lo” é non-sense, mas existem regras em outros lugares para cobrir estes casos — mas o que Ethereum faz é permitir-nos a ampliar o limite sobre o que o mundo digital pode cobrir.

 

Conclusão

Gavin Wood condensou a descrição do Ethereum como sendo uma coleção de estruturas de dados programáveis únicas não localizadas. O que isto significa vai depender de sua experiência, mas seja ela qual for, provavelmente vai ser melhor com Ethereum.

https://github.com/ethereum/wiki/wiki/What-is-Ethereum

Related:

Object-Oriented Implementation of Numerical Methods An Introduction with Smalltalk

41w2hhtecul-_sx373_bo1204203200_

Contents

1 Introduction 1

1.1 Object-oriented paradigm and mathematical objects . . . . . . . 2

1.2 Object-oriented concepts in a nutshell . . . . . . . . . . . . . . . 3

1.3 Dealing with numerical data . . . . . . . . . . . . . . . . . . . . . 4

1.3.1 Floating point representation . . . . . . . . . . . . . . . . 4

1.3.2 Rounding errors . . . . . . . . . . . . . . . . . . . . . . . 5

1.3.3 Real example of rounding error . . . . . . . . . . . . . . . 7

1.3.4 Outsmarting rounding errors . . . . . . . . . . . . . . . . 8

1.3.5 Wisdom from the past . . . . . . . . . . . . . . . . . . . . 9

1.4 Finding the numerical precision of a computer . . . . . . . . . . . 10

1.4.1 Computer numerical precision . . . . . . . . . . . . . . . . 12

1.5 Comparing

oating point numbers . . . . . . . . . . . . . . . . . 15

1.6 Speed consideration (to be revisited) . . . . . . . . . . . . . . . . 16

1.6.1 Smalltalk particular . . . . . . . . . . . . . . . . . . . . . 17

1.7 Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

1.7.1 Class diagrams . . . . . . . . . . . . . . . . . . . . . . . . 18

1.7.2 Smalltalk code . . . . . . . . . . . . . . . . . . . . . . . . 19

1.8 Road map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2 Function evaluation 23

2.1 Function { Smalltalk implementation . . . . . . . . . . . . . . . . 24

2.2 Polynomials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.2.1 Mathematical denitions . . . . . . . . . . . . . . . . . . . 25

2.2.2 Polynomial | Smalltalk implementation . . . . . . . . . . 27

2.3 Error function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

2.3.1 Mathematical denitions . . . . . . . . . . . . . . . . . . . 34

2.3.2 Error function | Smalltalk implementation . . . . . . . . 35

2.4 Gamma function . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

2.4.1 Mathematical denitions . . . . . . . . . . . . . . . . . . . 38

2.4.2 Gamma function | Smalltalk implementation . . . . . . 39

2.5 Beta function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

2.5.1 Mathematical denitions . . . . . . . . . . . . . . . . . . . 42

2.5.2 Beta function | Smalltalk implementation . . . . . . . . 42

3 Interpolation 43

3.1 General remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

3.2 Lagrange interpolation . . . . . . . . . . . . . . . . . . . . . . . . 49

3.2.1 Lagrange interpolation | Smalltalk implementation . . . 50

3.3 Newton interpolation . . . . . . . . . . . . . . . . . . . . . . . . . 53

3.3.1 Newton interpolation | General implementation . . . . . 53

3.3.2 Newton interpolation | Smalltalk implementation . . . . 54

3.4 Neville interpolation . . . . . . . . . . . . . . . . . . . . . . . . . 55

3.4.1 Neville interpolation | General implementation . . . . . 56

3.4.2 Neville interpolation | Smalltalk implementation . . . . 57

3.5 Bulirsch-Stoer interpolation . . . . . . . . . . . . . . . . . . . . . 59

3.5.1 Bulirsch-Stoer interpolation | General implementation . 60

3.5.2 Bulirsch-Stoer interpolation | Smalltalk implementation 60

3.6 Cubic spline interpolation . . . . . . . . . . . . . . . . . . . . . . 61

3.6.1 Cubic spline interpolation | General implementation . . 63

3.6.2 Cubic spline interpolation | Smalltalk implementation . 63

3.7 Which method to choose? . . . . . . . . . . . . . . . . . . . . . . 66

4 Iterative algorithms 69

4.1 Successive approximations . . . . . . . . . . . . . . . . . . . . . . 69

4.1.1 Iterative process | Smalltalk implementation . . . . . . . 73

4.2 Evaluation with relative precision . . . . . . . . . . . . . . . . . . 77

4.2.1 Relative precision | Smalltalk implementation . . . . . . 78

4.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

5 Finding the zero of a function 81

5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

5.2 Finding the zeroes of a function | Bisection method . . . . . . . 82

5.2.1 Bisection algorithm | General implementation . . . . . . 84

5.2.2 Bisection algorithm | Smalltalk implementation . . . . . 84

5.3 Finding the zero of a function | Newton’s method . . . . . . . . 86

5.3.1 Newton’s method | Smalltalk implementation . . . . . . 87

5.4 Example of zero-nding | Roots of polynomials . . . . . . . . . 90

5.4.1 Roots of polynomials | Smalltalk implementation . . . . 90

5.5 Which method to choose . . . . . . . . . . . . . . . . . . . . . . . 92

6 Integration of functions 93

6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

6.2 General framework | Trapeze integration method . . . . . . . . 94

6.2.1 Trapeze integration | General implementation . . . . . . 97

6.2.2 Trapeze integration | Smalltalk implementation . . . . . 97

6.3 Simpson integration algorithm . . . . . . . . . . . . . . . . . . . 99

6.3.1 Simpson integration | General implementation . . . . . . 100

6.3.2 Simpson integration | Smalltalk implementation . . . . . 100

6.4 Romberg integration algorithm . . . . . . . . . . . . . . . . . . . 101

6.4.1 Romberg integration | General implementation . . . . . 102

6.4.2 Romberg integration | Smalltalk implementation . . . . 103

6.5 Evaluation of open integrals . . . . . . . . . . . . . . . . . . . . . 104

6.6 Which method to chose? . . . . . . . . . . . . . . . . . . . . . . . 105

6.6.1 Smalltalk comparison . . . . . . . . . . . . . . . . . . . . 106

7 Series 107

7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

7.2 Innite series . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

7.2.1 Innite series | Smalltalk implementation . . . . . . . . 109

7.3 Continued fractions . . . . . . . . . . . . . . . . . . . . . . . . . . 110

7.3.1 Continued fractions | Smalltalk implementation . . . . . 111

7.4 Incomplete Gamma function . . . . . . . . . . . . . . . . . . . . . 112

7.4.1 Mathematical denitions . . . . . . . . . . . . . . . . . . . 113

7.4.2 Incomplete Gamma function | Smalltalk implementation 114

7.5 Incomplete Beta function . . . . . . . . . . . . . . . . . . . . . . 117

7.5.1 Mathematical denitions . . . . . . . . . . . . . . . . . . . 117

7.5.2 Incomplete Beta function | Smalltalk implementation . . 118

8 Linear algebra 123

8.1 Vectors and matrices . . . . . . . . . . . . . . . . . . . . . . . . . 123

8.1.1 Vector and matrix implementation . . . . . . . . . . . . . 127

8.2 Linear equations . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

8.2.1 Linear equations | General implementation . . . . . . . 140

8.2.2 Linear equation implementation . . . . . . . . . . . . . . 140

8.3 LUP decomposition . . . . . . . . . . . . . . . . . . . . . . . . . 144

8.3.1 LUP decomposition | General implementation . . . . . . 146

8.3.2 LUP decomposition . . . . . . . . . . . . . . . . . . . . . 147

8.4 Computing the determinant of a matrix . . . . . . . . . . . . . . 151

8.5 Matrix inversion . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

8.5.1 Matrix inversion implementation . . . . . . . . . . . . . . 155

8.5.2 Matrix inversion | Rounding problems . . . . . . . . . . 158

8.6 Matrix eigenvalues and eigenvectors of a non-symmetric matrix . 158

8.6.1 Finding the largest eigenvalue | General implementation 160

8.6.2 Finding the largest eigenvalue implementation . . . . . . 161

8.7 Matrix eigenvalues and eigenvectors of a symmetric matrix . . . 163

8.7.1 Jacobi’s algorithm | General implementation . . . . . . 166

8.7.2 Jacobi’s algorithm implementation . . . . . . . . . . . . . 167

9 Elements of statistics 173

9.1 Statistical moments . . . . . . . . . . . . . . . . . . . . . . . . . 173

9.1.1 Statistical moments | General implementation . . . . . . 176

9.1.2 Statistical moments | Smalltalk implementation . . . . . 176

9.2 Robust implementation of statistical moments . . . . . . . . . . . 178

9.2.1 Robust central moments | General implementation . . . 180

9.2.2 Robust central moments | Smalltalk implementation . . 180

9.3 Histograms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184

9.3.1 Histograms | General implementation . . . . . . . . . . 185

9.3.2 Histograms | Smalltalk implementation . . . . . . . . . . 186

9.4 Random number generator . . . . . . . . . . . . . . . . . . . . . 195

9.4.1 Random number generator | Smalltalk implementation . 197

9.5 Probability distributions . . . . . . . . . . . . . . . . . . . . . . . 203

9.5.1 Probability distributions | Smalltalk implementation . . 205

9.6 Normal distribution . . . . . . . . . . . . . . . . . . . . . . . . . 210

9.6.1 Normal distribution | Smalltalk implementation . . . . . 210

9.6.2 Gamma distribution | Smalltalk implementation . . . . 213

9.7 Experimental distribution . . . . . . . . . . . . . . . . . . . . . . 216

9.7.1 Experimental distribution | General implementation . . 217

9.7.2 Experimental distribution | Smalltalk implementation . 217

10 Statistical analysis 221

10.1 F-test and the Fisher-Snedecor distribution . . . . . . . . . . . . 222

10.1.1 Fisher-Snedecor distribution | Smalltalk implementation 224

10.2 t-test and the Student distribution . . . . . . . . . . . . . . . . . 229

10.2.1 Student distribution | Smalltalk implementation . . . . 231

10.3 2-test and 2 distribution . . . . . . . . . . . . . . . . . . . . . 236

10.3.1 2 distribution | Smalltalk implementation . . . . . . . 238

10.3.2 Weighted point implementation . . . . . . . . . . . . . . . 239

10.4 2-test on histograms . . . . . . . . . . . . . . . . . . . . . . . . 242

10.4.1 2-test on histograms | Smalltalk implementation . . . . 243

10.5 Denition of estimation . . . . . . . . . . . . . . . . . . . . . . . 246

10.5.1 Maximum likelihood estimation . . . . . . . . . . . . . . . 246

10.5.2 Least square estimation . . . . . . . . . . . . . . . . . . . 247

10.6 Least square t with linear dependence . . . . . . . . . . . . . . . 249

10.7 Linear regression . . . . . . . . . . . . . . . . . . . . . . . . . . . 250

10.7.1 Linear regression | General implementation . . . . . . . 251

10.7.2 Linear regression | Smalltalk implementation . . . . . . 252

10.8 Least square t with polynomials . . . . . . . . . . . . . . . . . . 255

10.8.1 Polynomial least square ts | Smalltalk implementation 257

10.9 Least square t with non-linear dependence . . . . . . . . . . . . 261

10.9.1 Non-linear t | General implementation . . . . . . . . . 263

10.9.2 Non-linear t | Smalltalk implementation . . . . . . . . 263

10.10Maximum likelihood t of a probability density function . . . . . 267

10.10.1Maximum likelihood t | General implementation . . . . 270

10.10.2Maximum likelihood t | Smalltalk implementation . . . 271

11 Optimization 275

11.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276

11.2 Extended Newton algorithms . . . . . . . . . . . . . . . . . . . . 277

11.3 Hill climbing algorithms . . . . . . . . . . . . . . . . . . . . . . . 278

11.3.1 Optimizing | General implementation . . . . . . . . . . . 279

11.3.2 Common optimizing classes | Smalltalk implementation 280

11.4 Optimizing in one dimension . . . . . . . . . . . . . . . . . . . . 286

11.4.1 Optimizing in one dimension | Smalltalk implementation 286

11.5 Bracketing the optimum in one dimension . . . . . . . . . . . . . 289

11.5.1 Bracketing the optimum | Smalltalk implementation . . 289

11.6 Powell’s algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . 290

11.6.1 Powell’s algorithm | General implementation . . . . . . 291

11.6.2 Powell’s algorithm | Smalltalk implementation . . . . . . 292

11.7 Simplex algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . 294

11.7.1 Simplex algorithm | General implementation . . . . . . 296

11.7.2 Simplex algorithm | Smalltalk implementation . . . . . . 296

11.8 Genetic algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . 299

11.8.1 Genetic algorithm | General implementation . . . . . . . 302

11.8.2 Genetic algorithm | Smalltalk implementation . . . . . . 304

11.9 Multiple strategy approach . . . . . . . . . . . . . . . . . . . . . 309

11.9.1 Multiple strategy approach | General implementation . . 310

12 Data mining 313

12.1 Data server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314

12.1.1 Data server | Smalltalk implementation . . . . . . . . . 315

12.2 Covariance and covariance matrix . . . . . . . . . . . . . . . . . . 317

12.2.1 Covariance matrix | General implementation . . . . . . 319

12.2.2 Covariance matrix | Smalltalk implementation . . . . . . 319

12.3 Multidimensional probability distribution . . . . . . . . . . . . . 322

12.4 Covariance data reduction . . . . . . . . . . . . . . . . . . . . . . 322

12.5 Mahalanobis distance . . . . . . . . . . . . . . . . . . . . . . . . 323

12.5.1 Mahalanobis distance | General implementation . . . . . 325

12.5.2 Mahalanobis distance | Smalltalk implementation . . . . 326

12.6 Cluster analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328

12.6.1 Cluster analysis | General implementation . . . . . . . . 330

12.6.2 Cluster analysis | Smalltalk implementation . . . . . . . 332

12.7 Covariance clusters . . . . . . . . . . . . . . . . . . . . . . . . . . 336

A Decimal oating-point simulation 339

B Smalltalk primer for Java programmers 343

B.1 Syntax in a nutshell . . . . . . . . . . . . . . . . . . . . . . . . . 343

B.1.1 Smalltalk expressions . . . . . . . . . . . . . . . . . . . . 343

B.1.2 Precedence . . . . . . . . . . . . . . . . . . . . . . . . . . 344

B.1.3 Assignment, equality and identity . . . . . . . . . . . . . 345

B.2 Class and methods . . . . . . . . . . . . . . . . . . . . . . . . . . 345

B.2.1 Instance methods . . . . . . . . . . . . . . . . . . . . . . . 345

B.2.2 Class methods . . . . . . . . . . . . . . . . . . . . . . . . 347

B.2.3 Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348

B.3 Iterator methods . . . . . . . . . . . . . . . . . . . . . . . . . . . 348

B.3.1 do: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349

B.3.2 collect: . . . . . . . . . . . . . . . . . . . . . . . . . . . 349

B.3.3 inject:into: . . . . . . . . . . . . . . . . . . . . . . . . 349

B.4 Double dispatching . . . . . . . . . . . . . . . . . . . . . . . . . . 349

B.5 Multiple dispatching . . . . . . . . . . . . . . . . . . . . . . . . . 351

C Additional probability distributions 353

C.1 Beta distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . 353

C.1.1 Beta distribution | Smalltalk implementation . . . . . . 353

C.2 Cauchy distribution . . . . . . . . . . . . . . . . . . . . . . . . . 357

C.2.1 Cauchy distribution | Smalltalk implementation . . . . . 358

C.3 Exponential distribution . . . . . . . . . . . . . . . . . . . . . . . 360

C.3.1 Exponential distribution | Smalltalk implementation . . 360

C.4 Fisher-Tippett distribution . . . . . . . . . . . . . . . . . . . . . 363

C.4.1 Fisher-Tippett distribution | Smalltalk implementation . 364

C.5 Laplace distribution . . . . . . . . . . . . . . . . . . . . . . . . . 367

C.5.1 Laplace distribution | Smalltalk implementation . . . . . 367

C.6 Log normal distribution . . . . . . . . . . . . . . . . . . . . . . . 370

C.6.1 Log normal distribution | Smalltalk implementation . . 370

C.7 Triangular distribution . . . . . . . . . . . . . . . . . . . . . . . . 374

C.7.1 Triangular distribution | Smalltalk implementation . . . 374

C.8 Uniform distribution . . . . . . . . . . . . . . . . . . . . . . . . . 377

C.8.1 Uniform distribution | Smalltalk implementation . . . . 377

C.9 Weibull distribution . . . . . . . . . . . . . . . . . . . . . . . . . 380

C.9.1 Weibull distribution | Smalltalk implementation . . . . . 381

D Accurate accumulation of expectation values 385

D.1 Accurate accumulation of central moments . . . . . . . . . . . . 385

D.2 Accurate accumulation of the covariance . . . . . . . . . . . . . . 387

Object-Oriented Implementation of Numerical Methods An Introduction with Smalltalk

Programmation objet immersive en Pharo / Live Object Programming in Pharo

inria41010session01-730x412_q85_crop-scale

À propos du cours / About this course

Que vous soyez un débutant ou un expert en programmation orientée objet, ce MOOC va changer votre façon de penser objet : venez apprendre ou redécouvrir la programmation objet avec Pharo !

If you are either a beginner or an expert in object-oriented programming, this MOOC will change the way you program with objects: come and learn or rediscover object-oriented programming with Pharo!

Pharo est un langage à objets pur, inspiré de Smalltalk, qui offre une expérience unique de développement en constante interaction avec des objets vivants. Pharo est élégant, fun à programmer et très puissant. Il est très facile à apprendre et permet de comprendre des concepts très avancés de façon naturelle. En programmant en Pharo vous êtes immergés dans un monde d’objets vivants. Vous modifiez en live sans cesse des objets qui peuvent représenter des applications web, du code lui-même, des graphismes, du réseau…

Pharo c’est aussi un environnement libre très productif utilisé par des entreprises pour le développement d’applications Web.

Dans ce MOOC nous présenterons plus particulièrement la pile Web de Pharo qui a la particularité de changer la manière de construire des applications Web.

Nous allons également revisiter des concepts essentiels de la programmation en illustrant comment Pharo les utilise. Nous allons présenter des heuristiques et des Design Patterns pour mieux concevoir des applications objets. Ces concepts sont applicables dans n’importe quels langages objets.

Pharo is a pure object-oriented programming language in the tradition of Smalltalk. It offers a unique developing experience in constant interaction with live objects. Pharo is elegant, fun to use and very powerful. It is very easy to learn and enables to understand advanced concept in a natural way. When programming in Pharo, you are immersed in a world of live objects. You have immediate feedback at any moment of your development on objects representing web applications, code itself, graphics, network…

Pharo is also a very powerful open-source environment used by companies to develop web applications.

In this MOOC, we will present more specifically Pharo’s Web stackwhich changes the way you build web applications.

In addition we will present fundamental programming concepts and how Pharo uses them. We will present some coding idioms andDesign Patterns to better design object-oriented applications. Such concepts can be applied to any object-oriented programming language.

Ce MOOC s’adresse aux personnes ayant une expérience en programmation, mais toute personne motivée pourra également suivre le cours grâce aux nombreuses ressources proposées. Ce MOOC intéressera également les enseignants d’informatique car Pharo est un bon outil pour enseigner la programmation orientée objet et ce cours sera l’occasion de discuter de points de conception objet (par exemple : polymorphisme, envoi de messages, self/super, design patterns).

This MOOC is intended for people with a programming experience but everyone motivated could follow the course thanks to the numerous resources proposed. This MOOC will also have an interest for computer programming teachers: Pharo is a good teaching tool for object-oriented programming and the course will discuss object-oriented design principles (e.g. polymorphism, message sending, self/super, design patterns).

Programmation objet immersive en Pharo / Live Object Programming in Pharo

SmallIPFS: a Smalltalk Interplanetary File System API – Part 2

pharo-chapo_vignettedecks

 

 

 

 

 

Neste post vamos implementar o comando #version.

Version no gateway local

ipfs-version-local-gateway

Comando #version em Smalltalk

ipfs-version-command

Exemplo de uso

ipfs-version-example

Resultado exibido

ipfs-version-inform.png

Próximo post.

Todos os posts.