quinta-feira, 18 de setembro de 2008

SQLite3 + BASH + CGI: realizando update no banco

Precisei recentemente escrever uma aplicação em bash para rodar como cgi em um servidor com apache. Essa aplicação deveria simplesmente retornar algumas informações salvas em um SGBD (no caso SQLite 3) e atualizar outras.

Pois bem, escrevi o programa. Na hora de executar os selects tudo ia as mil maravilhas, porém na hora do update... Graças ao bom e velho 2> descobri que o problema ocorria pois o SQLite3 não conseguia acessar o arquivo. Achei estranho, mas fui tentar resolver.

A aplicação estava sendo executada como CGI, o usuário da mesma seria o wwwrun. Setei as permissões necessárias para que esse usuário pudesse acessar o arquivo do bd e nada. Pesquisando na documentação do SQLIte li que ele poderia estar tendo problemas em acessar um arquivo de commit e não o bd em si, mudei então a variável temp_store, tanto em execução quanto na compilação e nada.

Como meu tempo estava se esgotando, parti para a decisão hard: editei o arquivo /etc/sudoers (através do comando visudoers) e então inclui as seguintes linhas:

%www ALL=(ALL) NOPASSWD: ALL


E então passeia chamar o SQLite, detro do script, através do sudo. Eu sei que essa não era a melhor maneira de resolver o problema, mas enquanto eu não o modifico para trabalhar em perl...

segunda-feira, 15 de setembro de 2008

Problemas ao carregar drivers via floppy usb durante a instalação do Windows XP

Você já precisou fazer a instalação do Windows XP em um servidor de médio porte ou em alguma máquina mais robusta, dotada de controladora RAID e sem o bom(sic) e velho driver de disquete de 1.44MB? Não? Pois saiba, que sem aquele velho driver na sua máquina, a tarefa de instalar o sistema operacional pode ser tornar bem complicada.

Me permita explicar, o Windows traz consigo um conjunto mínimo de drivers para atender algum hardware. Normalmente, devido a características de alguns periféricos mais robustos que necessitam de drivers específicoos, o que acontece é que após a instalação do Windows você acaba sendo obrigado a intalar uma grande quantidade de drivers como placa de vídeo, áudio, modem e etc. No geral isso não acarreta um grande problema, apenas uma pequena perda de tempo após a instalação.

Quando falamos de acesso a controladora de disco a coisa muda de figura, pois é através dela que o sistema irá acessar o disco. Por isso, logo no início da instalação do Windows, ainda durante a primeira "tela azul" ele te mostra a informação para pressionar F6 caso deseje adicionar o driver de terceiros. Ao apertar o F6 o programa de instalação pede que você insira um disquete na unidade A: contendo o driver em questão, e é ai que começam os problemas, pois ele só enxerga essa unidade A: e nenhuma outra.

No caso de hardware mais novo, que normalmente não mais possui driver de 3 1/4" a solução passa a ser a utilização de um drive externo conectado via porta USB. Fazendo isso o Windows funciona perfeitamente, reconhece a dispositivo, o drive e inicia a instalação muito bem obrigado. Quer dizer, muito bem obrigado em 10% dos casos.

Quando você insere qualquer dispositivo em uma porta USB do seu computador, o disposito envia uma string de identificação para o sistema operacional, dizendo o que ele é, fabricando por quem é, qual o seu modelo e etc. AO ler essa string o sistema operacional então verifica o driver a ser utilizado e todo flui como deveria ser.

O problema é que o programa de instalação do Windows reconhece apenas 3 marcas/modelos de drivers floppy-usb, que são: Mitsumi, Sony 09K 9835 e TEAC IBM 27L 4226, 9283 K FRU 05. Quando estes dispositivos são conectados, eles enviam essas strings ao Windows:


USB\VID_03EE&PID_6901 Mitsumi
USB\VID_057B&PID_0000 Dados Y-E; Sony parte número
09K 9835

USB\VID_0644&PID_0000 TEAC; número parte opção IBM
27L 4226, 9283 K FRU 05


O setup do Windows então associa o driver usb mass storage para essees dispositivos. O problema é que esse driver é genérico, então na pratica qualquer que seja o modelo de floppy-usb ele deveria ser reconhecido e montado. Os efeitos desse pequeno problema durante a instalação é que caso você use um outro modelo de floppy-usb, após apertar o seu F6, o sistema irá carregar e ao chegar na tela de particionamento ele apresentará erro dizendo que não é possível encontrar nenhum disco.

De acordo com a microsoft, caso esse problema ocorra você acaba por ficar com duas opções: comprar um floppy-usb homologado ou realizar a instalação via Remote Instalation Service; duas opções que não cabem em 95% das situações.
A solução nesse caso passa a ser pegar o disquete com o drive da controladora que se deseja instalar, abrir o mesmo em outro computador e então editar o arquivo txtsetup.oem, procurando a entrada HardwareIds.scsi e incluir as seguintes linhas:


id = "USB\VID_03F0&PID_2001", "usbstor"
id = "USB\VID_054C&PID_002C", "usbstor"
id = "USB\VID_057B&PID_0001", "usbstor"
id = "USB\VID_0644&PID_0000", "usbstor"


Essa linhas simplesmente irão instruir ao Windows a associar o driver "usb mass storage" para outros modelos de usb-floppy encontrados no mercado, que são:


USB\VID_03F0 & PID_2001 HP
USB\VID_054C & PID_002C Sony
USB\VID_057B & PID_0001 Dados Y-E
USB\VID_0409 & PID_0040 NEC
USB\VID_0424 & PID_0FDC SMSC


No meu caso eu tentei instalar o Windows XP em uma máquina dotada da PERC6, não homologada para Windows XP. A solução foi abrir o arquivo txtsetup.oem e editar a seção:


[HardwareIds.scsi.PERC]
PERC = "PCI\VEN_1028&DEV_0015&SUBSYS_1F011028",
"megasas"

PERC = "PCI\VEN_1028&DEV_0015&SUBSYS_1F021028",
"megasas"

PERC = "PCI\VEN_1028&DEV_0015&SUBSYS_1F031028",
"megasas"

PERC = "PCI\VEN_1000&DEV_0060&SUBSYS_1F0A1028",
"megasas"

PERC = "PCI\VEN_1000&DEV_0060&SUBSYS_1F0B1028",
"megasas"

PERC = "PCI\VEN_1000&DEV_0060&SUBSYS_1F0C1028",
"megasas"

PERC = "PCI\VEN_1000&DEV_0060&SUBSYS_1F0D1028",
"megasas"

PERC = "PCI\VEN_1000&DEV_0060&SUBSYS_1F111028",
"megasas"



de modo que esta ficasse assim:


[HardwareIds.scsi.PERC]
PERC = "PCI\VEN_1028&DEV_0015&SUBSYS_1F011028",
"megasas"

PERC = "PCI\VEN_1028&DEV_0015&SUBSYS_1F021028",
"megasas"

PERC = "PCI\VEN_1028&DEV_0015&SUBSYS_1F031028",
"megasas"

PERC = "PCI\VEN_1000&DEV_0060&SUBSYS_1F0A1028",
"megasas"

PERC = "PCI\VEN_1000&DEV_0060&SUBSYS_1F0B1028",
"megasas"

PERC = "PCI\VEN_1000&DEV_0060&SUBSYS_1F0C1028",
"megasas"

PERC = "PCI\VEN_1000&DEV_0060&SUBSYS_1F0D1028",
"megasas"

PERC = "PCI\VEN_1000&DEV_0060&SUBSYS_1F111028",
"megasas"

id = "USB\VID_03F0&PID_2001", "usbstor"
id = "USB\VID_054C&PID_002C", "usbstor"
id = "USB\VID_057B&PID_0001", "usbstor"
id = "USB\VID_0644&PID_0000", "usbstor"

Um abraço e até a próxima!


Referência:

Dell PowerEdge 2950 + Windows XP: Instalando Rede OnBoard Broadcom NeXtreme II

A linha 2850 e 2950 dos PowerEdges da Dell Computadores trazem onboard duas placas de rede que, diferente das versões anteriores como o 2650, não são Intel e sim Broadcom. Como todos sabem, a Dell não homologa nem suporta a instalação de versões domésticas do Windows - onde ai se incluem Vista e XP - nesses servidores, porém dependendo da aplicação pode ser necessária a instalação destas versões nessas máquinas.

Olhando a página de download da Dell, você encontrará apenas versões de drivers para 2K e 2K3, porém basta você ir página de download NeXtreme II dentro do site da Broadcom para encontrar a versão de download do driver para esses sistemas operacionais. O arquivo encontrado lá é 50% maior que o encontrado no site da Dell, mas o funcionamento é garantido.

LPIC-1





LPI ID: LPI000155355 - Verification Code: zsdgdzczuz
https://www.lpi.org/caf/Xamman/certification

Microsoft Certified Professional

Microsoft Certified Professional Transcript
Transcript ID:793738 - Access Code: talesazevedo

terça-feira, 2 de setembro de 2008

Google Chrome: versão beta disponível para download

Já se encontra disponível para download a 1a. versão beta do Google Chrome, um navegador de código-livre desenvolvido pela própria Google para tentar revalizar com o IE.

Para alguns, tal iniciativa pode parecer um tanto estranha, pois se falando de alternativas ao IE, a Google já patrocina a fundação Mozilla e seu Firefox (você sabia que cada vez que você faz uma busca naquela caixinha da Google que fica no firefox você ajuda a aumentar a contribuição da Google para fundação Mozilla?). Ainda assim é preciso lembrar mesmo como patrocinadora, a Google não é proprietária nem é mandatária dos rumos da fundação Mozilla, e por mais que ela opine nos rumos a serem tomados pelo Firefox não é ela que dar a palavra final.

Com o lançamento do Chrome além da bela jogada comercial, a Google acaba por ser a responsável por uma nova alternativa no mercado dos navegadores – que cá entre nós, nunca esteve tão movimentado desde o fim do Netscape Navigator.

Bem, é isso. Já baixei o novo navegador, mas como a por enquanto a única versão disponível é para Windows, eu não tive a oportunidade de instalar o mesmo. Assim que eu o fizer eu posto um review. Sobre uma versão para Linux, a Google diz que irá liberar em breve, juntamente com uma para MacOS.

Apenas uma consideração final, as aplicações Web da Google são bem conhecidas por permanecerem um looooongo tempo em versão beta (vide o onipresente Orkut). Será que com o Chrome será diferente?

Caso você queira ter um gostinho do que essa nova experiência de navegador pode vir a te oferecer, leia o Comic disponibilizado pelos desenvolvedores.