Na primeira parte deste tutorial você viu como montar o ambiente de desenvolvimento necessário para criar o glossário, e definimos um dialeto CSV para ser usado ao ler e gravar os arquivos com os termos do glossário. Nessa parte, você verá como fazer o programa ler e gravar esses arquivos CSV. Leia o resto deste post »
Watchdog mínimo em shell
20 Julho, 2009O @ThalesPinheiro da PaPonline (o que ganhou a promoção) me pediu para fazer um programa que checasse se outro programa está rodando de tempos em tempos e, caso não estivesse, que o executasse de novo, em outras palavras, um watchdog.
Como o programa monitorado rodaria sob Linux e era um problema relativamente simples me propus a fazer o watchdog em shell script mesmo. Inicialmente pensei em fazer um script com fluxo de execução paralelo ao programa, fazendo uma verificação a cada intervalo de tempo de acordo com o que foi passado como parâmetro para o script.
Com o script já pronto me ocorreu que recursividade seria bem melhor nesse caso, afinal ficar verificando uma coisa que o shell pode disparar, como um evento, é um trabalho bem idiota. O resultado ficou assim (parecido com um outro programa bem famoso):
#!/bin/bash
x=$*;:(){ $x;:;};:
Entendeu? Não?! Eu explico. A primeira linha do programa é só pra indicar ao terminal que aquele arquivo deve ser executado com o bash, o shell favorito de 11/10 linuxeiros. Na linha de baixo eu declaro uma variável x que recebe os parâmetros passados ao script, que é o comando a ser executado. Por exemplo:
$ ./watchdog.sh servidor_xyz -porta 8080
No exemplo o conteúdo de x é igual a “servidor_xyz -porta 8080“. Mais adiante eu defino a função : (dois pontos) que é basicamente uma função que executa o comando passado ao script e quando a execução termina, por qualquer motivo, a função faz recursividade, ou seja, chama ela mesma. Após encerrar a declaração da função eu a executo e pronto, acabou o programa.
Sintaxe, sintaxe; algoritmos à parte. Se você não conhece shell script pode ser que alguma coisa não tenha ficado clara, mas o objetivo deste artigo não é ensinar shell script. Aqui você encontra alguns cheatsheets que podem te ajudar a entender melhor a sintaxe.
O resultado não é perfeito. Se você quiser encerrar o script pode ser que não consiga e precise matar o terminal que o chamou para pará-lo, mas como eu o fiz na intenção de ser algo bem simples acho que não há necessidade de me preocupar com isso. Em alguns casos isso pode se tornar uma feature, tipo, ao rodar um fork bomb.
Linguagens de programação esotéricas
21 Agosto, 2008O objetivo de qualquer linguagem de programação é, ou ao menos deveria ser, permitir que o programador escreva códigos de forma que a implementação tome o menor tempo possível, que seja fácil de ler depois e que não limite a criatividade do programador, sem pesar em termos performance. É claro que tudo isso, seja a linguagem compilada ou interpretada ou os dois, tem que simplesmente rodar como deveria, mesmo nas situações mais inimagináveis. Enfim, não é uma tarefa fácil construir uma linguagem boa.
O curioso é saber que existem linguagens de programação que tem justamente objetivos contrários a esses (como Assembly) são as chamadas linguagens de programação esotéricas. Alguns dizem que elas servem para testar o limite do possível em linguagens de programação, outros dizem que elas servem para introduzir novos conceitos de programação, mas a verdade é que elas são passatempo para h4×0r5 desocupados, ou nem isso. Leia o resto deste post »
História do programador (para leigos)
18 Agosto, 2008O programador, ou desenvolvedor de software, é aquele que define o que um computador vai ou não fazer, criando suas diversas utilidades e automatizando tarefas de forma que tomem bem menos tempo que o normal. Desenvolvedor de software é uma profissão que foi criada para suprir uma necessidade dos primeiros sistemas computacionais, e até hoje, devido principalmente ao crescimento acelerado da área de tecnologia da informação, os seus serviços são muito requisitados nos mais diversos setores da economia.
Antigamente os computadores eram máquinas mecânicas, muito pouco flexíveis, de forma que para alterar o seu funcionamento ou mesmo criar novas utilidades para eles era necessário um extenso conhecimento de engenharia mecânica, e tantas modificações no projeto original ou a criação de máquinas complexas, adaptáveis ao computador, que no final o resultado acabava sendo outro computador. Nesse caso, o programador era o próprio criador da máquina e o uso das operações não dava ao operador o título de programador, pois as máquinas não seguiam programas. Leia o resto deste post »
Raciocínio Lógico Matemático – Apostilas
11 Julho, 2008Ontem tivemos a nossa primeira aula propriamente dita no SENAI. Pra quem estiver interessado, estes foram os arquivos que o professor Massa usou na aula:
UPDATE: Os arquivos das aulas estão sendo disponibilizados em uma página especial, confira a lista com todos os arquivos do curso clicando aqui.
Programação no iCaju
7 Julho, 2008A partir de amanhã os principais colaboradores do blog, o Perini e eu, vão começar um curso de desenvolvimento de software no CETIND, em Lauro de Freitas, na Bahia. Isto vai ser muito bom para os nossos leitores (sim, eles existem), pois vamos postar bastante conteúdo sobre programação, além dos assuntos de sempre. Estamos planejando também começar também uma tira de quadrinhos, assim que meu tablet chegar.
Por outro lado estaremos muito ocupados: nós estudaremos desde de manhã até o finzinho da tarde, quando retornaremos para nossas respectivas casas. O tempo que passaremos em casa será o único que teremos para estudar, ler as notícias, nos atualizar e dar conta do blog. Talvez por causa disso saiam mais posts nos fins de semana, quando teremos mais tempo livre.
Acredito que seja um momento de transição para o iCaju. Além de mim e do Perini quase todos os outros colaboradores seguirão a mesma rotina a partir de amanhã, apesar de serem alunos de outros cursos. Por isso pedimos a colaboração de todos, que não deixem de acompanhar as nossas matérias e que se possível adicionem o nosso feed RSS, assim fica até mais fácil acompanhar as novidades sem ter que ficar acessando o site pra descobrir se há posts novos. Caso não saiba o que é um feed clique aqui e para adicionar o nosso feed no seu navegador ou leitor de RSS clique aqui.
Agradecemos antecipadamente a compreensão e a colaboração de todos e mais do que nunca estamos precisando de colaboradores. Se você gosta de qualquer assunto relacionado a tecnologia e tem interesse em escrever para um blog como o iCaju por favor envie-nos um email. Também aceitamos sugestões de matérias, pedidos de suporte técnico e publicamos seu artigo, caso ele siga estes critérios, que é o mínimo exigido por qualquer blog decente.
Mais uma vez obrigado e até a próxima! (bem próxima)
Escrito por Mamutti 
Escrito por Mamutti
Escrito por Mamutti


