domingo, 24 de outubro de 2010

Literatura - Cressida Cowell - How to Train Your Dragon

Pode um filme superar um livro? Pode em parte, se o livro for simplesmente uma história para crianças. Então, esse é caso do filme "Como Treinar o Seu Dragão" baseado no livro da Britânica Cressida Cowell.

Mas hoje quero falar dos livros e não do filme, livros? Sim, pois são oito livros da coleção "Como Treinar Seu Dragão":
  • How to Train Your Dragon
  • How to Be a Pirate
  • How to Speak Dragonese
  • How to Cheat a Dragon's Curse
  • How to Twist a Dragon's Tale
  • A Hero's Guide to Deadly Dragons
  • How to Ride a Dragon's Storm
  • How to Break a Dragon's Heart
E mais um especial entitulado:
  • How to Train Your Viking

Todos eles são livros infantis e são excelentes para dar boas gargalhadas com as loucuras da infância de Hiccup (Soluço) Horrendous Haddock, um menino Vinking que está mais para Hagar, o Horrível que qualquer outra coisa, totalmente atrapalhado e sempre se metendo nas piores confusões. Além disso como J.R.R. Tolkien seus livros trazem uma nova língua para divertir a todos o "Dragonese" além dos Desenhos presentes em todos seus livros.

Mesmo que você deteste histórias de Dragões, Vinkings, Livros Infantis, ainda sobra uma coisa muito simples, essa espécie de livro é ótima para praticar Inglês. Mais sobre Cressida Cowell pode ser encontrado no seu site oficial: http://www.cressidacowell.co.uk/.

Abraços e até a próxima
Fernando Anselmo

sábado, 23 de outubro de 2010

Informática - Chuck Norris "O DBA"

Eis algumas perolas:
  • CHUCK NORRIS não faz DELETEs. Ele olha para os registros e eles correm de medo.
  • CHUCK NORRIS não cria PKs. Os registros simplesmente não atrevem-se a duplicar.
  • CHUCK NORRIS não usa LOG. Ele lembra de todos registros que alterou.
  • CHUCK NORRIS não faz backup. Ele não vai falhar.
  • CHUCK NORRIS não cria ÍNDICES. Ele sabe que os registros retornarão mais rápido que puderem.
  • ACCESS é muito mais rápido que ORACLE. Basta que o DBA seja CHUCK NORRIS.
  • Uma vez adaptaram o ROUNDHOUSE KICK para o ORACLE. Assim nasceu o TRUNCATE TABLE.
  • CHUCK NORRIS não dá DROP TABLE. Ele dá ROUNDHOUSE KICK TABLE.
  • Uma vez CHUCK NORRIS deu um ROUNDHOUSE KICK em um banco poderoso. Hoje ele é conhecido por ACCESS.
  • CHUCK NORRIS sabe todos os erros do ORACLE de cor. Porque ele criou eles.
  • SELECT SUM(FORÇA) FROM CHUCK_NORRIS; Internal error. Don't call the support.
  • SELECT CHUCK_NORRIS; Drop database sucessful.
  • SELECT ROUNDHOUSE_KICK FROM CHUC... Lost connection.
  • DELETE FROM CHUCK_NORRIS. Not Found. (Ele está atrás de você, a ponto de dar um ROUNDHOUSE KICK!!!)
  • CHUCK NORRIS tem IGNORE CONTRAINTS automático. Ninguém restringe nada a CHUCK NORRIS. Ninguém.
  • CHUCK NORRIS não faz cursos de ORACLE. A ORACLE é que faz cursos com ele.
  • CHUCK NORRIS instala o ORACLE sem ler o manual. (Quem você pensa que é para ter tentado isso?)
  • CHUCK NORRIS instala o ORACLE em um 486. Rodando KURUMIM. Em 2 minutos.
  • CHUCK NORRIS instala o MSSQL Server em um Pentium 100MHZ. Rodando Solaris. A partir dos fontes.
  • CHUCK NORRIS instala o DB2 em um 486. Rodando WINDOWS VISTA. Sem HD.
  • CHUCK NORRIS não tem Certificação. São as empresas que tentam tirar Certificação em CHUCK NORRIS. Em vão.
  • Se disser ao DBA CHUCK NORRIS que "o problema está no banco", é melhor que esteja se referindo a alguma Instituição Financeira.
  • CHUCK NORRIS SABE qual o problema de performance do banco. Ele só está dando uma chance do banco se arrepender. 5... 4... 3...
  • CHUCK NORRIS não cria STORED PROCEDURES. Todas suas Queries já se armazenam no banco, tentanto se esconder. Mas é inútil.
  • TRIGGERS tem este nome porque CHUCK NORRIS sempre ameaçava atirar no banco quando ele não fazia algo automático.
  • CHUCK NORRIS não faz Modelo de Dados. Ele encara o banco até que ele faça o modelo sozinho.
  • CHUCK NORRIS instala o ORACLE sem a interface gráfica. E sem a interface texto. (Pergunte-se como?)
  • Megabyte, Gigabyte, Terabyte, Petabyte, Exabyte,...,Chuckbyte.
  • ORACLE tem as versões Personal, Standard, Enterprise e ChuckNorris Edition. Mas nenhum computador é rápido o suficiente para rodá-lo.

Abraços e até a próxima
Fernando Anselmo

segunda-feira, 11 de outubro de 2010

Cinema - Ligações Perigosas

Abrindo mais um tema neste variado blog, hoje começo a falar do meu principal vício Cinema, vamos começar falando de um filme chamado "Dangerous Liaisons", traduzido como "Ligações Perigosas", um super clássico com 3 super estrelas: Glenn Close, John Malkovich e Michelle Pfeiffer, este sucesso é baseado no livro de Choderlos de Laclos (sinto mas não resisto a um bom livro).

Agora vamos ao que talvez você não sabia, existe um outro filme no Brasil com o título "Ligações Perigosas", com Russel Crowe e Ben Affleck (título em Inglês? "State of Play"), além de um outro que recebeu o título "Ligações Perigosas 2" a história é quase a mesma mas em um contexto mais atual, porém teve seu título mudado para o original "Cruel Intentions" e ganhou mais duas sequências "Cruel Intentions 2 e 3", no final receberam o título em português como "Segundas Intenções".

Outra curiosidade além das 3 fantásticas estrelas já mencionadas existem mais duas no filme que ainda estão emplacando suas carreira, lembra quem são? Uma delas é a menina seduzida (de quebra) por John Malkovich e o outro é o que vai duelar com ele no final. Exatamente, Uma Thurman (Pulp Fiction e Kill Bill) e Keanu Reaves (Matrix).

Deste modo, ficamos com três filmes que não podem faltar na sua videoteca: "Ligações Perigosas" (conta esse como dois) e "Segundas Intenções" (só o primeiro com a cena final ao som de The Verve - Bitter Sweet Symphony simplesmente o melhor).


Abraços e até a próxima
Fernando Anselmo

sábado, 2 de outubro de 2010

Semana Assembly - Os Cinco Furiosos (Parte 5)

Hoje é o último dia dos 5 comandos transformados para linguagem Assembly. O comando de laço INDETERMINADO chamado do...while, possui a seguinte estrutura:

FAÇA
   alguma coisa
ENQUANTO algo não acontece

Tente não olhar para o código e realize o seguinte, dado uma String qualquer com n "*" mostrar na tela um quadrado, ou seja, uma String com "***", deve sair na tela:

***
***
***

Com "*****", deve sair em tela:

*****
*****
*****
*****
*****

Tente primeiro realizar esse trabalho... Pronto? Aqui está o código completo e comentado:

org 100h


.data

msg db "********",13,10,"$" ; definir o valor da String
                            ; 13,10 para saltar de linha
len equ $ - msg - 2         ; tamanho da String
cont dw 1                   ; usado para o laco

.code

beginning:

mov ah, 09                  ; mostrar a String
lea dx, msg
int 21h

inc cont                    ; adicionar 1 a cont
cmp cont,len                ; verificar cont e total
jne beginning               ; se nao sao iguais retorna

ret
 
Abraços e até a próxima
Fernando Anselmo

sexta-feira, 1 de outubro de 2010

Semana Assembly - Os Cinco Furiosos (Parte 4)

Veremos agora o primeiro dos comandos de repetição INDETERMINADOS, eles são chamados assim pois não sabemos (diferente do FOR) quando o comando terminará de repetir o laço. Veremos o comando WHILE, este comando possui a seguinte estrutura:

ENQUANTO algo não acontece
   repita isso

Para demonstrá-lo em Assembly, dessa vez aproveitando o clima de eleição, resolvi criar um programinha bem divertido, então não se assuste com seu tamanho pois está todo comentado, e recomendo que você o estude determinadamente:

include 'emu8086.inc'

ORG 100h

.data
cntA dw 0x000 ; Total de Votos para A
cntB dw 0x000 ; Total de Votos para B
cntI dw 0x000 ; Total de Votos invalidos

.code
printn "---------------------"

printn "Pesquisa"
printn "---------------------"
printn " A.Candidato A"
printn " B.Candidato B"
printn " 0.Fim"
printn "---------------------"

MOV ah, 1h    ; obter valor
INT 21h ;


laco:
CMP AL, '0'   ; verificar se 0
JE final      ; se sim terminar
CMP AL, 'A'   ; verifica se A
JE addA       ; se sim adicionar voto em A
CMP AL, 'B'   ; verifica se B
JE addB       ; se sim adicionar voto em B
JMP addI      ; adicionar voto a invalido
volta:
MOV ah, 1h    ; obter novo valor
INT 21h
JMP laco      ; retorna ao laco

addA:         ; adicionar voto em A
ADD cntA, 1
JMP volta
addB:         ; adicionar voto em B
ADD cntB, 1
JMP volta
addI:         ; adicionar voto em Invalido
ADD cntI, 1
JMP volta

final:
printn ""
printn "---------------------"
printn "Resultado foi:"
printn "---------------------"
print " Candidato A: "
MOV ax, cntA
CALL print_num
printn " votos"
print " Candidato B: "
MOV ax, cntB
CALL print_num
printn " votos"
print " Invalido: "
MOV ax, cntI
CALL print_num
printn " votos"

DEFINE_PRINT_NUM
DEFINE_PRINT_NUM_UNS
 
END
 
Veremos amanhã o último dos comandos e note como você já consegue desenvolver algumas coisinhas em Assembly, que afinal de contas não é uma linguagem tão complicada assim.
 
Abraços e até amanhã
Fernando Anselmo