23 Jul
Recentemente falei sobre o algoritmo CET (Correção de Erros Temporários). Agora vou apresentar uma generalização desse algorítmo, empregada recentemente com resultados explosivos.
Este é um algoritmo que possui uma idéia semelhante à Lazy Systems (Sistemas preguiçosos), com a diferença que não possui um momento determinado para ser executado.
Algoritmo DPA (Deixe Para Amanhã - Leave To Tomorrow)
tente {
enquanto HOJE != AMANHA && NINGUEM_MORREU {
faça_algo_inútil;
de_desculpas_sem_nexo;
}
}
finalmente {
cumpra_suas_obrigações;
}
Vale lembrar que esse provavelmente é o algoritmo mais utilizado pela maioria dos serviços públicos e privados cujo mal funcionamento pode ser causa de danos sérios.
Posts Relacionados:
Assine nosso RSS feed!
22 Jul
De volta ao Falando em Java, em outra palestra divertida que marcou o início da guerra de IDE’s entre os palestrantes, Fábio Kung apresentou o Ajax - Asynchronous Javascript And XML - como uma solução para a criação de interfaces para a web.
“Se você não hibernou nos últimos meses, você sabe o que é Ajax”
Pelo fato de ser assíncrono, ele permite que requisições sejam executadas sem atrapalhar o usuário, que antes precisava esperar seu comando ter efeito para recuperar o controle da página.
A vantagem de se usar JavaScript e XML foi mostrada logo a seguir: são linguagens simples. Em XML, pode-se atualizar partes diferentes de um Html ou mesmo Xml, alterando poucas linhas. O JavaScript por sí, é uma linguagem dinâmica e possui protótipos de programação orientada a objetos.
A grande maioria de programadores torce o nariz ao ouvir de Javascript e se lembra da enorme quantidade de código para fazer coisas simples e do pesadelo que é lutar com a compatibilidade dos browsers. Ok, a solução do Fábio é simples: não escreva código!
Em vez de “reinventar a roda”, basta usar uma das muitas Libraries disponíveis para Javascript, como JQuery, Prototypes, Dojo ou Script.aculo.us. Essas bibliotecas contêm boa parte das funções de que você vai precisar para sua página.
Além disso, outras ferramentas que podem ser úteis são o InteliJ Debug e o Firebug, um addon pra Firefox muito útil - particularmente para experimentar *.css.
Ainda outras alternativas ao Ajax foram citadas. Entre elas: JBoss com Ajax4jsf, Tapestry, Wicket e Ruby on Rails com RJS. Pra quem abomina JavaScript, vale a pena dar uma olhada!
Posts Relacionados:
Assine nosso RSS feed!
21 Jul
O bootchart cria uma imagem PNG detalhando exatamente o que acontece na sua sequência de boot, mostrando quais processos estão carregando no momento. Com uma análise desse gráfico é possível identificar os gargalos e possivelmente resolve-los, melhorando assim o tempo de boot.
Para instalar o bootchart no Ubuntu, basta executar:
sudo apt-get install bootchart
Depois basta reiniciar a máquina para que o gráfico seja gerado e então vá até a pasta /var/log/bootchart e você encontrara o PNG gerado. Aqui está o Bootchart gerado pela minha máquina.
Posts Relacionados:
Assine nosso RSS feed!
20 Jul
O Guilherme, um dos nossos leitores mandou, através de um comentário no Guia Linux - Parte I: Introdução, uma dúvida sobre a relação entre o Udev e o Coldplug no Gentoo basicamente sobre qual utilizar (pois a um conflito no portage entre os dois), quais eram as conseqüências de não instalar o Coldplug e qual era a funcionalidade do Udev.
Basicamente, o Udev gerencia os dispositivos no Linux e o Coldplug permite detecção dos mesmos. Inicialmente o Linux utiliza o Devfs e então passou de forma geral a utilizar o Udev, mas o Gentoo fez uso durante algum tempo do Coldplug. Para entender melhor cada um deles leia abaixo.
Devfs
O Devfs é o gerenciador responsável pelo controle dos dispositivos no kernel 2.4 e em muitos outros sistemas Unix. A idéia é representar os dispostivos como arquivos (localizados no /dev) para permitir o acesso ao mesmo. Um exemplo disso é o /dev/hda1 que indica a primeira partição do HD master primário. Mas a manuteção desse sistema de arquivo se torna muito complexa para os desenvolvedores por vários motivos como a nomenclatura de dispositivos USB (qual é o primeiro dispositivo? O que ocorre quando ele é desconectado?)
Hotplug e Coldplug
Hotplug é a característica de um hardware de poder ser conectado com o máquina ligada, como o mouse PS/2 por ou um memory key por exemplo, enquanto que o Coldplug é um Hotplug mais restrito, para hardwares que precisam ser iniciados antes do SO inteiro carregar (uma placa de rede por exemplo).
Algumas distribuições usam ou usavam (o Gentoo com o genkernel por exemplo) um sistema diferente do udev para a detecção desses dispositivos (no caso do Gentoo chamado de coldplug) o Linux Hotplugging. No Gentoo Linux estes sistemas não são mais utilizados por já estarem no Udev .
Udev
O Udev tem o propósito de resolver esses problemas criados pelo Devfs, criando e removendo automáticamente os arquivos de dispositivo (devices files) e nomear os dispostivos de forma consistente. Para isto o projeto é dividido em 3 partes: namedev (responsável pelo nomeação), libsysfs (responsável pelo acesso ao dispositivos pelo udev através do kernel de forma transparente) e o próprio udev que recebe pedidos do kernel para alterar a estrutura do /dev.
Posts Relacionados:
Assine nosso RSS feed!