quinta-feira, 30 de abril de 2009

Calculadora programável TI-58C da Texas Instruments

A primeira "coisa" que eu aprendi a programar foi uma calculadora TI-57 da Texas Instruments lá pela década de 1980.

Eu fazia curso de Técnico em Eletrônica e o colégio onde eu estudava promovia cursos de programação de calculadora. O modelo em que eu aprendi, tinha visor de LED, 50 passos de programação e 8 registradores de memória. Ou seja, era possível gravar em sua memória programas com no máximo 50 instruções (sendo que até o sinal de uma operação era contado como uma instrução) e 8 resultados intermediários.

A maneira de programar era bem simples, você gravava na memória cada passo da operação que estava querendo executar, como se estivesse fazendo o cálculo manualmente e existiam alguns comandos que permitiam dar "saltos" na sequência de comandos (GTO: Go To, SBR: Sub-routine), fazer "loops" (DSZ: Decrement and Skip on Zero), testar igualdade ou diferença, ou armazenar o resultado em uma memória.

Eu gostei muito do assunto e "infernizei" o meu pai até que ele comprasse uma calculadora programável TI-58C para mim. Este modelo já era bem melhor que a TI-57: podia ter 480 passos de programação ou 60 memórias (os dois ocupavam os mesmos endereços de memória) e esses valores podiam ser expandidos com um módulo externo de memória. O mais importante, era que a TI-58C podia ser desligada sem que o programa armazenado na memória se perdesse, ao contrário do que acontecia com a TI-57.

Quando eu coloquei as mãos na calculadora, aprendi logo todos os seus comandos e recursos. Passei a aproveitar ao máximo todo o seu potencial, fazia desde programas de cálculo até joguinhos numéricos. Com isso, virei uma espécie de consultor informal em programação de calculadoras para os meus colegas de escola.

Aprender a programar calculadoras, além de ter me ajudado a fazer cálculos durante o curso técnico, me ensinou os princípios básicos da lógica de programação e me deu certeza que eu gostava deste assunto.

Logo tempo depois, surgiram os primeiros microcomputadores com processador Z80 e eu comecei e me voltar para a programação em Basic. Mas, isso já é outra história.

sábado, 25 de abril de 2009

Parabéns ministro Joaquim Barbosa

O ministro do STF Joaquim Barbosa ao criticar o presidente do mesmo tribunal, Gilmar Mendes, falou o que a grande maioria das pessoas gostaria de falar, mas não tem oportunidade.

Eu não vou me estender sobre o bate-boca, pois, ele já foi amplamente coberto pela imprensa.

Gostaria apenas deixar registrado os meus parabéns ao ministro Joaquim Barbosa, se houvessem mais juízes com esta postura, o judiciário brasileiro seria bem melhor.

Quem quiser saber detalhes do caso, clique aqui.

quinta-feira, 23 de abril de 2009

Carta de Jon "maddog" Hall para o presidente Obama

Jon "maddog" Hall é um dos maiores defensores e divulgadores do software livre. Como parte de sua pregação, ele escreveu um artigo em forma de carta para o presidente Barack Obama.

O artigo precisa ser lido com um olhar crítico, pois, afinal de contas, foi escrito por um defensor tão ardoroso do software livre, que às vezes comete alguns exageros nas suas análises.

Em determinados trechos do artigo, "maddog" passa a impressão que todos os problemas de quem usa software acabarão a partir do momento em que passar a adotar o software livre. Em outros trechos, ele faz algumas estimativas de economia com software livre que carecem de mais substância para se sustentarem.

Mas de qualquer forma, é um artigo muito interessante para que possamos refletir e discutir como deve ser a relação entre quem produz e quem utiliza software.

O artigo pode ser lido em:

http://linuxmagazine.uol.com.br/maddog/economizando_cinco_bilhoes_de_dolares_por_dia

quinta-feira, 9 de abril de 2009

"Carreira em Y" nas profissões tecnológicas

Tem um email que já rola por aí há bastante tempo, mas, até hoje eu me divirto quando o leio. Eu não sei quem é o autor, mas, ele está de parabéns. É um texto que explica como um analista pode subir na carreira permanecendo na área técnica, a famosa "Carreira em Y". Para quem não viu, ou para quem quer refrescar a memória, segue o texto abaixo:

A "Carreira em Y" nas profissões tecnológicas dos analistas

Nas grandes empresas ou qualquer empresa que tenha um grande numero de pessoal de tecnologia, rola o que eles chamam de "Carreira em Y". Essa denominação foi criada para que os profissionais que não quiserem passar para a área administrativa possam continuar subindo na empresa na área técnica, e ganhando melhores salários. Porém, todo mundo reclama que é dificílimo ser promovido. Então alguém criou o guia de como ser promovido na "Carreira em Y".

Analista 1

O indivíduo começa como Analista 1 e pode chegar a ser Analista 8. Os Analistas 1 são comumente conhecidos como Analistas Baby, ou seja, um pouco mais que estagiários.

Condições necessárias para vocês virarem Analistas 2, 3, 4, 5, 6, 7 e 8:

Analistas 2 e 3

Faça o seu dever, cumpra seus prazos, fique algumas vezes depois do horário, faça cursos de aperfeiçoamento, seja sociável e trabalhe em equipe. É necessário destruir plantações de pepinos (pepino = problema). Noções de Inglês Técnico.

Exemplo: Humanos normais.

Analista 4

Idem ao anterior + Matar um leão por dia (leão = um grande problema), com uma carga horária de 12 horas diárias. Ser responsável por 30% da administração de uma rede pequena de 700 usuários. Inglês, espanhol e Visual Basic obrigatórios + 1 linguagem desejável.

Exemplo: Fodões

Analista 5

Idem ao anterior + Um dragão por semana (dragão = é uma problema enorme), com uma carga horária diária de 16 horas sem feriados. Ser responsável por 40% da administração de uma rede do tipo 1000 Usuários. Inglês, francês, japonês, espanhol, VB e C++ obrigatórios.

Exemplo: Mister M, David Coperfield, Padre Quevedo.

Analista 6

Idem aos anteriores, só que, mata-se um leão por hora, um dragão por dia, um Alien por semana (Alien = é um problema do outro mundo) e mais uma área equivalente a meio globo terrestre em plantações de pepino. Carga horária diária de 20 horas. Ser responsável por 75% da administração de uma rede de 2500 usuários e 30% de todos os projetos internos de tecnologia. Inglês, francês, alemão, japonês, espanhol, aramaico, latim, mandarim, vietnamita, VB, C++, Asp, Dhtml, Cobol obrigatórios.

Exemplo: Criaturas Mitológicas, Gnomos, Ninjas com o poder dos 9 cortes.

Obs: Assim como os Ninjas, somente um Analista 6 pode matar um Analista 6.

Analista 7

Idem aos anteriores, só que, os leões e dragões fogem de você. Você terá que caçá-los em outras dimensões e planetas. Uma área equivalente a uma estrela classe 5 (Sol) em plantações de pepino e três Aliens e um Predador por dia (Predador = é um problema impossível de ser resolvido, exemplo, fazer um corpo com massa m viajar com velocidade acima da velocidade da luz). Carga horária diária de 25 horas. Ser responsável por 100% da administração de uma rede de 6000 usuários e 60% de todos os projetos internos de tecnologia. Inglês, francês, alemão, japonês, italiano, espanhol, aramaico, latim, mandarim, vietnamita, Borg, Taelon, Klingon, Volcano, Pascal, Fortran, C++, Asp, Java, Xml, Easytrieve, Ims/Dc e todas as 13500 línguas e dialetos que o C3PO fala no filme Star Wars, obrigatórios.

Exemplo: Mago Merlin, Jedis como Luck Skywalker e Obi-Wan Kenobi, Mestre Yoda (daí o nome de carreira em Y), Darth Maul, Spectroman.

Não desanime, conseguir você irá, um analista 7 você será. Grande poder tem o lado negro Administrativo da Força. Você também terá que ser um Highlander, pois só com uma vida eterna você terá tempo para atingir este cargo, mas não se esqueça que só pode haver um e não deixe que nenhum outro analista 7, corte sua cabeça.

Analista 8

É o cargo máximo no Universo e você será considerado como o mestre dos elementos. Você terá o poder sobre a vida e a morte dos seres, logo você não precisa mais matá-los, você apenas deseja que os problemas se resolvam ou cria novas leis físicas no universo para que isso aconteça. E você irá perdoar a todos. Você será onisciente, onipresente e onipotente. Carga horária diária indefinida, para você o tempo e o espaço já não existem. Ser responsável por 100% dos projetos e 100% da área de tecnologia de uma empresa de 30000 usuários, em 7 dias.

Exemplo: Deus, Buda, Alá, Zeus, Odin, A Força.

Conclusão: Perceberam como é simples desenvolver carreira técnica?

quinta-feira, 2 de abril de 2009

Exemplo de SLA - Acordo de Nível de Serviço

Em um post anterior eu falei sobre SLA - Acordo de Nível de Serviço, em terceirização do processo de desenvolvimento de software.

Agora, eu vou dar um exemplo prático de quais SLA's podem ser estabelecidos em um processo hipotético e simplificado.

O processo em questão serve apenas para fins didáticos, pois, no mundo real eles são muito mais complexos. Contudo, os exemplos dados aqui podem ser facilmente extrapolados para processos maiores.

Veja o processo de desenvolvimento de software mostrado na figura abaixo:

Para cada tarefa precisa ser definido pelo menos um Acordo de Nível de Serviço, com um indicador para avaliá-lo. De preferência deverá existir um sistema de workflow, mesmo que seja um bem simples ou desenvolvido internamente, que controle o fluxo entre as tarefas e registre automaticamente os dados que irão alimentar os indicadores definidos.

Na tarefa T1, a "Empresa" passa para o "Fornecedor" a ordem de serviço (D2) e a especificação do sistema (D1). Como este é o início do processo, ele não precisa de um SLA. O SLA passará a ser usado a partir da tarefa T2, que é quando o "Fornecedor" devolve o cronograma (D4) e o plano de testes (D3) do serviço solicitado. Assim sendo, alguns SLA's que poderão ser definidos para cada tarefa são:

  • T2 - O planejamento (ou replanejamento) da construção deve ser executado em até 3 dias úteis.
  • T3 - O planejamento deve ser aprovado (ou recusado) em até 3 dias úteis.

OBS: É importante que existam SLA's definidos também para as tarefas sob a responsabilidade da "Empresa", pois, se a "Empresa" também não tiver as suas obrigações definidas, ficará muito complicado para o "Fornecedor" se planejar e cumprir o SLA.

  • T4a - A aplicação deverá ser construída dentro do prazo previsto no planejamento aprovado em T3.
  • T4b - Caso a construção seja em função da não aprovação da aplicação, as adequações deverão ser feitas em 1 (um) dia útil para cada Ponto de Função a ser adequado.
  • T5 - Os testes deverão ser realizados dentro do prazo previsto no planejamento aprovado em T3.
  • T6a - A validação da aplicação deverá ser realizada dentro do prazo previsto no planejamento aprovado em T3.
  • T6b - A aplicação deverá apresentar, no máximo, 1 (um) erro para cada 10 (dez) Pontos de Função.
  • T7 - O termo de conclusão deverá ser emitido em até 3 (três) dias úteis após a validação.

Para cada SLA, deverá ser definido um indicador que permita o acompanhamento, por exemplo:

  • iT2 - 85% dos planejamentos devem ocorrer dentro do prazo.
  • iT3 - 90% das aprovações devem ocorrer dentro do prazo.
  • iT4a - 80% das construções devem ocorrer dentro do prazo.
  • iT4b - 80% das readequações devem ocorrer dentro do prazo.
  • iT5 - 85% do testes devem ocorrer dentro do prazo.
  • iT6a - A 85% das construções devem ocorrer dentro do prazo.
  • iT6b - 90% das aplicações devem estar dentro do limite de erros.
  • iT7 - 90% dos termos devem ser emitidos dentro do prazo.

Ainda podem ser definidos sinais, por exemplo: Se 90% estiverem dento do prazo, sinal verde; Entre 80% e 90%, sinal amarelo; Abaixo disso, sinal vermelho.

O segredo é definir indicadores realistas, de comum acordo com o fornecedor e depois acompanhar de perto a sua evolução, avaliando as causas em casos de baixo desempenho.