Bogosort [CfC]

Preview:

DESCRIPTION

Primeiro draft do meu talk sobre Bogosort que vai rolar no FISL11

Citation preview

Bogosort,

Klingon Code, XGH, ...

Henr“ikke” Pereira

@ikkebr

@ikkebr

• Bacharel em SI– UNIFRA

• Mestrando em Computação– UFSM

• Python

• PHP

• JAVA

• Haskell

Essa Palestra

• Não é:

– Para ser levada a sério

• Só algumas partes

– Para os fracos de coração

– Para quem se ofende facilmente

– Para crianças menores de 18 anos

Roteiro

• BogoSort

• Klingon Code

• eXtreme Go Horse

NinjaSort

MonkeySort

EstouComSort

Fluxograma

“Stop the bullshit and show me the code.”

Anônimo

Bogosort em Java

Bogosort em Scheme

"Qualquer idiota é capaz de escrever código que um computador possa

entender. Bons programadores escrevem código que seres humanos podem

entender."

Martin Fowler

Bogosort em Ruby

Bogosort em Python

Quando usar?

• Quando um código roda rápido demais.

• Quando se deseja mostrar a um cliente como ficaria o programa se ele fosse feito em <insira outra linguagem aqui>.

• Em apresentações como essa.

Desempenho

Matador!

Análise (número de Shuffles)

0

500

1000

1500

2000

2500

3000

3500

4000

3 elementos 4 elementos 5 elementos 6 elementos

Mínimo

Média

Máximo

+ Análise (número de Shuffles)

0

5000

10000

15000

20000

25000

30000

35000

3 4 5 6 7

Mínimo

Média

Máximo

+ Análise (número de Shuffles)

0

200000

400000

600000

800000

1000000

1200000

1400000

3 4 5 6 7 8 9

Mínimo

Média

Máximo

10 elementos!

0

1000000

2000000

3000000

4000000

5000000

6000000

7000000

3 4 5 6 7 8 9 10

Mínimo

Média

Máximo

Extrapolando um pouco

“A maioria do software hoje é como umapirâmide egípcia com milhões de blocosempilhados um em cima do outro, sem

integridade estrutural, apenas feitos por forçabruta e centenas de escravos.“

Alan Kay

5 Verdades sobre os Klingons

Um verdadeiro guerreiro Klingonnunca comenta seu código.

5 Verdades sobre os Klingons

Programas Klingons não possuem parâmetros, apenas argumentos.

E eles devem ganhar todas as batalhas.

5 Verdades sobre os Klingons

Específicações são para os fracos e para os tímidos.

5 Verdades sobre os Klingons

Klingons não fazem “releases”. Eles deixam que o código crie vida

própria e escape para aterrorizar os usuários.

5 Verdades sobre os Klingons

Um programador Klingon se sente extremamente magoado se você reportar um bug no software. Ele só conseguirá largar essa mágoa quando matar toda a sua família.

5 Verdades sobre os Klingons

Programadores Klingon não sabem contar e também não acreditam

no Bugfoot.

“Os melhores programadores escrevem apenasprogramas fáceis. "

Michael A. Jackson

Michael Anthony Jackson

- Principles of Program Design

- System Development

- Software Requirements & Specifications

- Business Process Implementation

http://mcs.open.ac.uk/mj665/

“O problema com programadores é que vocênunca pode dizer o que um programador está

fazendo até que seja tarde demais.“

Seymour Cray

eXtreme Go Horse (extreme)

http://gohorseprocess.wordpress.com/

Pensou, não é XGHx.

Não existe refactoring.

Apenas rework.

Se tiver funcionando, não rela a mão.

Testes são pros fracos.

Fear Driven Development

“Os primeiros 90% do código representam osprimeiros 90% do tempo de desenvolvimento. Os 10% restantes representam os outros 90%

do tempo de desenvolvimento.”

Tom Cargill

É o fim!

http://twitter.com/ikkebrikke@acidhacker.com