quarta-feira, 11 de agosto de 2010

Informática - Linguagem Assembly - Parte 1

Estou fazendo atualmente faculdade, e tenho a matéria entitulada "Desenvolvimento de Sistemas de Informação", nesta o Professor pediu um trabalho sobre uma determinada linguagem, fiquei encarregado de realizar sobre a linguagem Assembly (alguns falam: Assembler, entretanto este é o nome do compilador).

Bem, como bom programador exagerado que sou, resolvi estrapolar um pouquinho e construir um SO, matando inclusive saudade dos meus anos de programador Assembly. Entretanto, aqui vamos realizar algo mais simples e aprender um pouco dessa linguagem através de um novo enfoque, não aquele comumente é encontrado no qual a pessoa deve primeiro dominar as bases binárias e hexadecimais para conseguir escrever algo. Quero ensinar Assembly como aprendi, através de exemplificações simples.

Como primeira ato, precisamos de um ambiente, existem vários e alguns são os mais utilizados, são eles:
  • TASM - Turbo Assembler da Borland, atualmente se encontra na versão 5.0 (http://info.borland.com/borlandcpp/cppcomp/tasmfact.html)
  • MASM - Microsoft Assembler (http://www.masm32.com)
  • Emu8086 - Emulador para o ambiente 8086 (http://www.emu8086.com/)
 Entre estes, utilizaremos Emu8086, deste modo, visite o site indicado e baixe a versão, a licença dura em torno de 90 dias, tempo mais que suficiente para realizarmos alguns testes e se você realmente sentir gosto pela linguagem, U$ 19,95 não mata ninguém.

Nosso Primeiro Programa

Ao terminar de instalar o Emu8086, execute-o e estaremos no ambiente, depois você pode verificar os "Code Examples", mas como primeiro programa quero realizar um prático "Hello World", então selecione "New" e nas templates selecione "COM template", será montado o seguinte trecho de código:

org 100h
; add your code here
ret

A primeira instrução informa ao compilador que este deve gerar um executável do tipo COM e a última sai do programa (em Java seria algo como "return"). Iremos inserir outras instruções entre um comando e outro:

org 100h
MOV AH, 0Eh
MOV AL, 'H'
INT 10h
MOV AL, 'e'
INT 10h
MOV AL, 'l'
INT 10h
MOV AL, 'l'
INT 10h
MOV AL, 'o'
INT 10h
MOV AL, '!'
INT 10h
ret

A primeira instrução seleciona o modo de subfunção para iniciar a impressão de um texto, a próxima define o caracter H para a saída de vídeo e INT é abreviatura de interrupção, esta linguagem trabalha com interrupções, entenda isso como se você estivesse fazendo alguma coisa e alguém lhe interrompesse solicitando que você fosse fazer outra. No caso "INT 10h" é a de vídeo. Essa dupla de comandos é repetida sucessivamente até formar o trecho desejado.

Para executar nosso programa, clique no botão "Emulate" e em seguida em "run" e teremos a palavra "Hello!" escrita na tela.

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

Dica: Visite a seguinte página para conhecer outras interrupções http://www.htl-steyr.ac.at/~morg/pcinfo/hardware/interrupts/inte1at0.htm.

terça-feira, 10 de agosto de 2010

Informática - O mundo não é uma casca de noz

Existe uma grande piada sobre programadores, dizendo que eles são mais fáceis de lidar quando trancados solitariamente em uma sala com um buraco na porta para passar comida e receber os programas, até então tudo bem, porém creio que esqueceram das três conchinhas* caso sintamos a necessidade de ir ao banheiro.

Fracamente, será que realmente existe vida sem Internet? blogs, mIrcs, chats, emails, YouTube, redes sociais, mundos virtuais entre outras maravilhas, diga-me francamente, você conseguiria passar um mês sem acessar nada? Imagine que você tire férias, e durante todo esse período estivesse proibido de usar qualquer recurso tecnológico, e isso inclui, máquinas fotográficas digitais, celulares, computadores, iPads, ou qualquer outro desses troços que lhe conecta ao mundo virtual, se sentiria ou não como um naufrago? Estamos perdendo a nossa humanidade e entranto em uma Era não de Aquário mas de Chips (e não estou me referindo as batatinhas, alias agora a moda é Ruffles), pois também estamos virando um mero troço que se conecta ao mundo virtual e não vivemos mais sem ele. Deste modo, a idéia de programadores trancados em uma sala não seja assim tão absurda.

Gostaria de lhe propor um teste simples, como existe o dia sem cigarro, o dia de comer o Big Mac, entre outros muitos, proponho o dia de não se conectar, não é um dia específico, será qualquer dia que você deseje, e nesse dia, vá ao parque, curta sua família, paquere, sinta aromas diferentes, coma um frango de rua, não leve o celular e faça um dia com o seguinte pensamento: "Meu mundo não é uma casca de noz".

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

PS. A referência das três conchinhas vem do filme "Demolition Man" (O Demolidor) com Sylvester Stalone, Wesley Snipes e Sandra Bullock.

segunda-feira, 9 de agosto de 2010

Informática - As mentiras que a Internet conta...

Que a Internet é um grande meio de pesquisa, sem sombra de dúvida é, entretanto a Internet é um Faroeste, nos filmes sempre vemos o Faroeste como um mundo maravilhoso, galanteador e perfeito, o que não era verdade, os cowboys eram sujos, os índios não tinham nada de gentis, entre outras coisas que aconteciam.

Deixe-me contar uma história, existia uma página que ensinava como criar um "Gato Bonsai", a idéia era colocar um pequeno gato dentro de um jarro, ministrar-lhe remédios que amoleceriam seus ossos e após um determinado tempo este ficaria com o formato do jarro. No site era possível encontrar fotos dos gatos. Sabe o que aconteceu, todo o mundo reclamou, a Associação Protetora dos Animais protestou e o Green Peace protestou. Um absurdo, era o que todo mundo gritava. Uma maldade, gritava os mais afoitos. Uma heresia, você já sabe quem mais gritava. Bem, o que aconteceu?

O dono do site explicou que a idéia do site era protestar contra as "Bonsai" (mini-árvores), e ele criou os "gatos" através do photoshop (depois disso o Photoshop começou a ser utilizado para diversas formas de manipulação de imagens), e o resultado foi: "Todo mundo que estava protestando simplesmente teve que se esconder debaixo da pia de vergonha ou pedir desculpas publicamente".

Não acredite em tudo que lê e sempre pesquise, cuidado com a pesquisa, a um tempo atrás a própria "Wikipédia" teve um revisor que não entendia nada sobre o assunto que estava revisando. Uma pesquisa que fiz foi a de comprar um Mac Lanche feliz para fazer um teste simples que consistia em esperar seu apodrecimento, comparando-o obviamente com um  Mac Casa (pão de sal e hamburguer sadia) pois tinha lido que uma "Nutricionista" conseguiu o milagre de passar um mês com o seu intacto. Conclui a pesquisa vendo que os MacDonald´s Brasileiros são diferentes, pois o meu foi embora como qualquer outro sanduíche normal não apresentando uma gota de qualquer substância maluca que o conserva-se.

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

domingo, 8 de agosto de 2010

Literatura - Livros de Sangue de Clive Barker

Não que o gênero de terror esteje entre os meus títulos favoritos, porém alguns escritores desse gênero simplesmente me fascinam, tais como, Stephen King, Neil Gaiman e Clive Barker. Nunca ouviu falar de Clive Barker? Com certeza você já assistiu a algum dos filmes da série "Hellraiser", não? Poderia então lhe dizer que, entre os três, a mente de Clive Barker se parece muito com a mente de Tim Burton (nunca compreendi porque os dois nunca fizeram nada juntos, seria um filme espetacular).

"Livros de Sangue" trata-se de uma coletânea de diversos contos, cada livro (até o momento existem 6 livros lançados no Brasil pela Editora Civilização Brasileira) traz uma série de contos independentes e que possuem como única ligação histórias que lhe prenderão cada vez mais. Não posso dizer que li estes livros, posso dizer que devorei, que cada página entrou e subiu direto para o meu cérebro me fazendo pensar em muitas coisas inclusive a querer mais.

Barker é sem dúvida espantoso e seus livros não são do tipo que lhe tiram o sono ou lhe dão pesadelos, ou como se diz, os pesadelos existem sem que ninguém dê-los. Ou como ele mesmo diz: "Depois de tudo, é bom estar preparado para o pior e é bom aprender a andar antes de perder o alento".

Curiosidade: O filme com o mesmo título está inspirado no livro, sua história corresponde ao primeiro conto do Livro 1, porém de modo bem mais abrangente e convenientemente explicada de forma a dar passagem para os outros contos (então que venham novos filmes).

Dica de boa compra: este site contém diversos audiolivros para a venda: http://www.nossacultura.com.br/loja/sobre-audio-livro

sexta-feira, 6 de agosto de 2010

Empregabilidade - Currículo

Sei que este é um assunto muito batido e acredito que você pode encontrar muitas dicas por vários sites, entretanto, quero dar a visão de alguém que não é da área de RH, mas de um profissional que é "convocado" para avaliar tecnicamente uma série de currículos.

Primeira dica - Seja breve

Um currículo deve ter no máximo 2 páginas, quem está lendo não lerá apenas um currículo e sim vários, resultado, currículos grandes e com muita informação não leva a nada.

Segunda dica - Seja claro

Não consigo compreender como as pessoas conseguem dar tantas voltas para falar algo simples, enrola, enrola e enrola simplesmente para dizer que tem experiência em "Visual Basic". Não seria mais fácil escrever: "Possuo experiência de XX anos em Visual Basic"?

Terceira dica - Seja atual

Você acredita realmente que aquele curso de SINCLAIR que fez na década de 80 vai lhe dar o cargo de "Programador Java"? Ou que um curso de "digitação" conta pontos para uma vaga de analista?

Quarta dica - Pare de frescuras

Um currículo deve mostrar o tipo de profissional que você é, o curso de Yoga que você fez não interessa em nada para o cargo de programador, muito menos interessa saber se você é ou não fumante, ou praticante de uma determinada religião, suas medidas, se pratica ou deixa de praticar esportes. Informação inútil no currículo só irá denegrir sua imagem.

Quinta dica - Pare de frescuras com as fontes

A fonte oficial padrão de currículos é ARIAL tamanho 11, letra menor é querer que o avaliador use uma lupa, letra maior apenas para os títulos. Várias fontes no mesmo currículo nem para o cargo de Web Designer.

Sexta dica - Lembre-se para que serve o currículo

Um currículo serve para que o leitor queira chamá-lo para fazer uma entrevista, uma vez peguei um currículo que tinha tanta informação que não senti a menor necessidade de chamar o profissional, estava tudo ali escrito.

Sétima dica - Não escreva em português arcaico

Muitos sites dizem: "Cuidado com o Português", acho que as pessoas levam isso tão a sério que escrevem um currículo como se quisessem ser aprovados para o cargo de revisor de Machado de Assis. Cuidado com  o português quer dizer que não escreva coisas como: nessessidadi, hapremdi, minitrei, linguajem entre outras barbaridades.

Oitava dica - Sempre visite sites com dicas

Sabia que aquele papo de colocar no currículo: "Desejo progredir na empresa e me tornar..." já não é mais aceito? CPF, Carteira de Motorista, Foto, casado ou não são consideradas informações inúteis? O ideal é você ter no currículo apenas os três últimos cargos com data e um resumo do que você fez? Então, fique de olho aberto em sites que contém dicas atuais sobre currículo.

Para finalizar, aqui estão alguns sites aonde poderá melhorar seu currículo, aproveite:

http://www.gojava.org/node/699
http://noticias.uol.com.br/empregos/dicas/curriculo.jhtm
http://www.youtube.com/watch?v=glofSn7xLDw
http://carreiras.empregos.com.br/carreira/administracao/ge/curriculo/index.shtm
http://www.catho.com.br/dicas/lista.php?qual=2&tit=

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

PS. Por favor, um currículo de ser sempre enviado em formato PDF, nada de DOC, DOCX, ODT ou qualquer outro (já recebi um currículo em PPT).

quarta-feira, 4 de agosto de 2010

Projeto - Projetos sem fim

Quando iniciamos na área de desenvolvimento normalmente somos alocados em um Projeto (seja novo ou já em andamento), entretanto pelo que conheça (através de José Carlos C. Martins no livro Gerenciando Projetos de Desenvolvimento de Software com PMI, RUP e UM), um projeto é um empreendimento que tem um ciclo de vida definido, composto por início, etapas intermediárias e término.

Entretanto esse término é que soa estranho aos desenvolvedores, amigos da área dizem que estão trabalhando em um "Projeto" que já dura 3, 4, 10 anos. Podem ser classificados como "Projetos"? Felizmente não, uma vez entregue, o "Projeto" recebe uma nova denominação. O Ciclo de Vida de um projeto é dividido em 4 fases muito bem definidas, e são elas (segundo o mesmo autor):
  • Fase Conceitual - Desejos, oportunidades, necessidades, metas, objetivos, exigências e escopo.
  • Fase Desenvolvimento - Especificação, qualidade, WBS, estrutura organizacional, responsabilidades, estratégia, programação, contrações, fluxo de caixa e plano de comunicação.
  • Realização - Plano executivo, materialização, verificação da performance (PQC - Prazo, Qualidade e Custos), análise da performance e ações corretivas.
  • Finalização - Entrega e arquivamento dos documentos.
Ou seja, podemos trabalhar a vida inteira em um "Sistema", mas não podemos fazê-lo em um "Projeto" pois uma vez entregue o "Projeto" não existe mais.

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

terça-feira, 3 de agosto de 2010

Informática - Bancos de Dados Livres

Nenhuma novidade que a Oracle comprou a Sun e com essa aquisição foi levado junto o Banco MySQL, porém, a pergunta que fica no ar é: Sendo que a Oracle possui o banco Oracle 10g Express Edition distribuído de forma gratuita existe o interesse de continuidade do MySQL?

Acredito que a resposta também seja simples: Porque não? Atualmente podemos optar por uma série de bancos de dados que podem ser utilizado pelos desenvolvedores de forma gratuitas, entretanto muito pouco destes poderia ser utilizados em ambiente de produção. Permita-me fazer um pequeno comparativo entre os bancos gratuitos existentes (sem ordem no grau de importância ou utilização):
  • MySQL, este banco que até sua versão 4.0 não possuia Stored Procedures, Triggers e Relacionamentos, deste modo muitos DBA torciam o nariz, entretanto era um dos mais rápidos e ágeis bancos para desenvolver aplicativos para a WEB.
  • POSTGRES, denominado pela comunidade como o concorrente principal da Oracle, um banco muito utilizado em ambientes de produção e saiba que foi um dos primeiros a permitir Orientação a Objetos.
  • HyperSQL, mais conhecido como HSQL, banco construído em linguagem Java sendo extremamente leve e muito poderoso, atualmente é utilizado pela suíte do OpenOffice (como substituto para o Access).
  • Prevayler, imagine um banco pequeno, totalmente escrito em Java, Brasileiro, que você não pode ficar sem conhecer (encontrado em http://www.prevayler.org/).
  • Oracle 10g Express Edition, quer aprender como utilizar um Oracle? Essa é a versão ideal, existe um limitador de armazenamento de no máximo, 4Gb de informação e o limite de 1Gb de memória RAM.
  • SQL Server Express Edition, mundo Microsoft também possui sua versão livre, sendo fácil de usar e muito leve.
A lista não para aqui, mas resolvi citar apenas os principais que todo desenvolvedor necessita conhecer, então crie um CD com esses Bancos, baixe alguns tutoriais gratuitos e comece hoje mesmo a colocar algo mais no seu currículo. Algum outro banco que você utiliza e quer compartilhar com todos? Comente esta matéria.

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