Páginas

domingo, 21 de setembro de 2008

Minha paixão pela computação - III

Após concluir o curso de Engenharia vim para Santarém. Alguns sintomas do vírus começaram a se manifestar e eu senti a necessidade de comprar um microcomputador. Uma empresa de Belém ofereceu um curso de programação em linguagem BASIC na cidade e junto trouxe alguns micros para vender. BASIC é uma linguagem criada para fins didáticos. Muitos microcomputadores, inclusive o IBM-PC, saiam de fábrica com BASIC embutido em uma memória ROM. O Visual Basic é um dos descendentes mais conhecidos do BASIC. Bem, entre os micros oferecidos pela empresa, o que eu podia comprar era o TK-85. TK-85 era um micro com 16 Kbytes de memória RAM, que era ligado a um aparelho de TV, que servia de monitor, e para armazenar os programas e dados utilizava-se um gravador de fita cassete. As imagens eram em preto e branco. Tudo muito estranho para os nerds atuais, mas para um nerd da década de 80 era o máximo. Dava para aprender a programar em BASIC e fazer muitas experiências. Ah! Eu me divertia mesmo era programando em assembly, sempre gostei muito de programação em baixo nível. Consegui então um jogo de xadrez para rodar nele. Não havia suporte gráfico nesse micro. As peças do jogo de xadrez eram representadas pelas letras iniciais: peão era P, rei era K, e assim ia. Nos jogos de xadrez quando se aumenta o nível do jogo, o computador gasta mais tempo "pensando" em que jogada fazer. No TK-85, a partir de determinado nível, ele apagava a tela para poder ter mais recurso de CPU para "pensar". Pensem na minha angústia, imaginando se ele ainda ia voltar desse apagão. Depois eu vendi o TK-85 e um terreno para comprar um CP-400. Eu já fui mais louco que sou hoje. O CP-400 tinha 64 Kbytes de memória RAM e suportava cores, gravador de fita cassete e disquetes de 5"1/4. Esse eu não tive oportunidade de programar, mas rodava BASIC também. No início de 1986 comecei a trabalhar na primeira empresa de informática de Santarém. Mas, devido minha formação em eletrônica, iniciei no setor de manutenção. Nesse mesmo ano fui a São Paulo fazer treinamentos. Passei uma semana na Prológica e uma semana na Magnex Eletrônica. É bom dizer que nessa época vigorava a reserva de mercado no Brasil, ou seja, não era possível importar, tudo era fabricado aqui. Então os fabricantes nacionais pegavam um micro importado, estudavam a coisa e faziam clones, nada perfeitos, mas eram clones. Hoje os fabricantes nacionais importam todas as peças, montam o micro e botam sua marca nele. Bem, voltei para Santarém. A empresa vendia dois modelos de computador, o CP-500 da Prológica, e outro da Magnex, que não recordo o nome. O CP-500 era um desses clones, assim como o TK-85 e o CP-400. Tinha 48 Kbytes de memória RAM, monitor de fósforo verde, e dois drives de disquete de 5"1/4 com capacidade de 178 Kbytes cada um. Rodava os sistemas sistemas operacionais DOS 500 e SO08, compatível com o CP/M. No CP/M dava pra executar um editor de textos chamado WordStar e um banco de dados chamado Dbase II. O computador da Magnex era multiusuário, aceitava terminais burros e usava HDs, sendo que os primeiros que instalamos tinham capacidade de 5 Mbytes e rodava CP/M. Poucos empresários apostavam nos computadores, então a empresa tinha poucos clientes. Sobrava tempo para eu me aventurar em outras atividades. Comecei a estudar a linguagem COBOL, muito usada naquela época para desenvolver aplicações comerciais. Mas essa parte da história será detalhada no próximo post.

terça-feira, 16 de setembro de 2008

Tecnologia Java Card

Java Card é uma plataforma da tecnologia Java da Sun Microsystems que possibilita que smart cards e outros dispositivos com memória muito limitada executem applets. Essa tecnologia oferece aos fabricantes uma plataforma interoperável e segura, que pode armazenar e atualizar múltiplas aplicações em um único dispositivo. A tecnologia permite que desenvolvedores criem, testem e distribuam aplicações e serviços com rapidez e segurança. A Sun, da mesma maneira que procede para outras tecnologias Java, também disponibiliza uma especificação da plataforma e um kit de desenvolvimento Java Card.
Suas principais características são:
  • Interoperabilidade. Escreva uma vez e rode em qualquer cartão que suporte Java Card.
  • Seguro. Além da segurança herdada de J2SE, implementa funções de criptografia.
  • É Java.
  • Múltiplos aplicativos num mesmo cartão. Num mesmo cartão você pode ter serviços de banco, telefone, vale-refeição, etc.
  • Dinâmico. É possível instalar um novo applet mesmo que o cartão já tenho sido distribuído. A atualização pode ser feita na próxima vez que o cartão for inserido no terminal.
  • Compatibilidade com padrões existentes para smart cards.
Praticamente qualquer tipo de smart card pode se beneficiar da tecnologia Java Card:
  • Cartões Subscriber Identity Module (SIM), usados em telefones celulares. Esses cartões servem para identificação dos usuários. Com Java Card podem oferecer serviços bancários, por exemplo.
  • Cartões para transações financeiras online e offline. O sistema com essa tecnologia pode permitir inclusive transações offline. Se você precisar fazer um saque e não estiver próximo de um terminal a transação pode ser realizada. Na próxima vez que você se conectar os dados são sincronizados.
  • Cartões de identificação de planos de saúde que podem carregar o prontuário de seus usuários.
Os desenvolvedores dispõem de todas as vantagens de trabalhar com a linguagem Java:
  • Programação orientada a objetos.
  • Característica de proteção da linguagem aplicada aos applets Java Card e
  • Disponibilidade de poderosas ferramentas de desenvolvimento.

sábado, 13 de setembro de 2008

Minha paixão pela computação - II

Depois de terminada "Introdução à Computação", bastante motivado, matriculei-me em "Estruturas da Informação". O conteúdo dessa disciplina é o mesmo de Estruturas de Dados I: listas, filas, pilhas, etc. Foi um desastre. Não consegui acompanhar e abandonei na metade do semestre. Minha única reprovação na graduação. Inesquecível e frustrante. Alguns semestres depois, chegou na universidade um novo brinquedinho, o DECSystem/10 da Digital. O DEC-10, como era comumente chamado, tinha 256k palavras de 36 bits de memória e também era chamado PDP-10. Leia mais sobre ele em http://en.wikipedia.org/wiki/PDP-10. Que avanço! Terminais de vídeo nos setores administrativos, na pesquisa, no Departamento de Engenharia Elétrica (DEE), em suma: uma maravilha. O curso de Tecnologia em Processamento de Dados ofereceu então um curso de extensão de férias sobre a nova versão do FORTRAN que rodava no DEC-10. O DEC10 rodava FORTRAN IV e V, COBOL, LISP, PROLOG, ALGOL, entre outras linguagens ilustres desconhecidas. A parte prática do curso ainda acontecia da mesma forma que se procedia no IBM 1130. Ainda era necessário produzir cartões perfurados para o código, mas, pasmem, o resultado do programa saía em duas horas. O curso de extensão me abriu a mente para a programção e eu pude, enfim, cursar com tranquilidade "Estruturas da Informação" e "Técnicas de Programação", as outras das três únicas disciplinas ligadas à computação do curso de Engenharia Elétrica. Eu ainda não sabia, mas já eu já havia contraído o vírus que iria se manifestar anos mais tarde.
No DEE, nesse período, estava sendo construído, como produto de trabalhos de conclusão de curso (TCC), um microcomputador baseado no microprocessador 8080 da Intel. O 8080 era um processador de 8 bits, precursor do 8088, que originou o IBM-PC, ancestral dos atuais Core 2 Duo, Dual Core, etc. Esse microcomputador já estava funcionando, sendo operado através de um painel de chaves. Veja uma imagem desse painel aqui. Podia apenas ser programado em binário. Cada instrução assembly deveria ser convertida para binário e introduzida na memória através das chaves. Cada chave ligada correspondia ao bit 1 e desligada ao bit 0. O resultado do programa era mostrado através de um conjunto de LEDs (Diodo Emissor de Luz). Tudo muito simples e prático. Um bit errado e se começava tudo de novo. Coisa de paixão mesmo. Algo bem primitivo, mas um laboratório fantástico.
Veio então o meu maior desafio na graduação: construir um programa em assembly que permitisse a carga de programas através de um teclado e que o reultado fosse mostrado em um monitor de vídeo. As instruções do programa a ser carregado estariam em hexadecimal. Convenhamos, um pouco melhor que binário. Esse foi o meu TCC. O trabalho foi feito. Relendo-o agora eu penso que seu fosse o meu orientador eu não iria para a defesa. No entanto não tive a chance de testar o programa. O terminal de vídeo que deveria ser utilizado não chegou a tempo para a realização dos testes antes da defesa. Para alívio meu. Não sei até hoje se a coisa funcionou. Meu TCC foi todo produzido usando uma máquina de escrever manual e as figuras desenhadas à mão usando uma caneta preta e régua. Quanta mão de obra.
Enfim, em Dezembro de 1980 encerrei o curso de Engenharia Elétrica e voltei para Santarém. Mas essa parte eu começo a contar em um outro dia.

quinta-feira, 11 de setembro de 2008

Múltiplas habilidades

Até o ano de 2005 a principal linguagem de programação estudada no curso de Sistemas de Informação do Centro Universitário Luterano de Santarém era Pascal. Além de Pascal, alguns outros paradigmas eram estudados brevemente na disciplina Paradigmas de Linguagens de Programação, e C++ um pouco mais profundamente abordado em linguagem de Programação Orientada a Objetos. Há muito vinha sendo discutido nas reuniões do colegiado a inclusão de Java como a principal linguagem do curso. Sempre se colocava em pauta a dificuldade que os alunos teriam com o novo paradigma como um obstáculo à concretização da idéia. Observa-se que aos alunos serem apresentados a um paradigma, eles se fecham para todos os outros. Essas dificuldades eram sentidas quando se iniciava o estudo de C++. Enfim, a partir do ano de 2006, Java foi implantada como linguagem a ser estudada nas disciplinas iniciais do curso. Um excelente trabalho foi realizado como forma de disseminar a linguagem entre os membros da comunidade acadêmica do curso, principalmente com a criação do projeto de extensão Java & Eu. O que se constata agora é a resistência oferecida pelos acadêmicos ao serem apresentados a uma nova linguagem para eles, principalmente Pascal. A seguir serão apresentados argumentos que justificam o estudo de Pascal, além de Java, no curso de Sistemas de Informação.
O curso de Sistemas de Informação tem como objetivo formar profissionais que estejam aptos a avaliar, dimensionar e selecionar recursos de tecnologia da informação de acordo com as necessidades específicas de uma organização. Esta é apenas uma das habilidades que deve ter o egresso do curso, além de outras. Assim, o curso deve prover aos acadêmicos diversas abordagens sobre uma mesma matéria de forma que eles estejam preparados para oferecer opções diferenciadas às empresas onde venham prestar serviço. Em conseqüência disso, no caso de linguagens de programação, o curso oferece o Delphi como ambiente para desenvolvimento de software comercial. Sendo o Delphi baseado na linguagem Object Pascal, é natural que essa linguagem também seja utilizada em algumas disciplinas, para preparar os alunos para o estudo de Delphi em Linguagem de Programação Comercial. E por quê Delphi? Por quê não VisualBasic? Se as duas linguagens (ObjectPascal e Basic) em que se baseiam os ambientes forem analisadas sob o aspecto de orientação a objetos a conclusão que se chega é que a abordagem de ObjectPascal é mais eficiente, principalmente quando se trata de herança. Apesar de Basic ser mais simples de ser aprendida que ObjectPascal, deve-se pensar em desenvolvimento em equipe, quando a orientação a objetos é fundamental, devido principalmente à reutilização de código. Ambas estão no grupo das chamadas Rapid Application Development (RAD), o que as tornam as mais populares para o desenvolvimento voltado para ambientes GUI (Interface Gráfica do Usuário). Segundo o índice TIOBE de setembro/2008 a linguagem Delphi é a décima mais popular do mundo. Ao se observar a lista, verifica-se que, Java é a primeira, VisualBasic a quarta e Delphi a décima. VisualBasic é mais popular que Delphi por ser a linguagem da Microsoft e não porque é melhor. As outras linguagens, pela nossa avaliação, não se enquadrariam no que se chama linguagem comercial e visual, e portanto ficam fora dessa discussão. De qualquer forma a opção por uma linguagem para desenvolver um sistema deve levar em consideração as necessidades do cliente. É uma decisão de projeto. Espera-se ter contribuído para justificar o estudo de mais de uma linguagem de programação no curso de Sistemas de Informação e também o porquê da opção pelo ambiente Delphi.

sábado, 6 de setembro de 2008

Minha paixão pela computação - I

No ano de 1976 entrei para o curso de Engenharia Elétrica - Opção Eletrônica na UFPa. Logo nos primeiros semestres fiz minha matrícula numa disciplina chamada "Introdução à Ciência da Computação". Após a tradicional introdução que conta a história do computador, passando pela numeração binária, iniciamos o estudo de algoritmos e fluxogramas. Veio então meu primeiro programa, na linguagem FORTRAN versão Monitor, muito usada no meio científico naquela época. O professor então nos instruiu como deveríamos proceder para, após criarmos o código do programa, testá-lo no computador da universidade. Hoje, nas aulas de laboratório do curso de Sistemas de Informação do CEULS, temos dois alunos por máquina, às vezes até um por máquina. Nem em meus sonhos mais otimistas conseguia imaginar isso. O fato é que tínhamos que compartilhar um único computador para todas as atividades da instituição. Era um IBM 1130. Esse computador tinha 16K palavras de 16 bits de memória e cada unidade de disco atingia a capacidade de 512k palavras. Algumas imagens dessa maravilha podem ser vistas em http://palazzo.pro.br/hist/ibm_1130.htm. Para testar um programa precisávamos digitar o código em uma máquina chamada perfuradora de cartões. Cada linha de código tinha no máximo 80 caracteres e era inserida em um cartão. Nesse cartão cada caractere inserido correspondia a uma seqüência de furos. Algum tempo na fila da perfuradora e vários cartões estragados depois, juntávamos aquele monte de cartões, chamado deck, e entregávamos a um atendente que protocolava. Dois dias depois de uma espera angustiante recebíamos o resultado: nosso deck de cartões e uma listagem do nosso código. Se tivesse funcionado, o resultado saia na própria listagem. Monitor de vídeo? LCD? O que é isso? E se não funcionasse? Bem, analisávamos a listagem conferindo sintaxe, ordem dos cartões (alguém esbarrou e cairam todos no chão!!!), lógica, etc. Mais algum tempo na fila da perfuradora, cartões inutilizados e nosso deck estava pronto para um novo teste. O ciclo se repetia até que tudo estivesse rodando perfeitamente. Essa história prossegue outro dia.
 
Creative Commons License
This work by Carlos Alberto P. Araújo is licensed under a Creative Commons Atribuição-Uso não-comercial-Compartilhamento pela mesma licença 3.0 Brasil License.