Impressora HP: Impressão extremamente lenta

Sintomas: Impressora não realiza a impressão (Linux) ou imprime de forma extremamente lenta, imprimindo 1 faixa de cada vez (uns 15 ou 20 segundos de intervalo entre uma impressão e outra – Linux e Windows 7).

Diagnóstico: Provavelmente um dos cartuchos está com problema. Remova 1 cartucho de cada vez, mande um documento para a fila de impressão e verifique se a impressão voltou ao normal. Se sim, o cartucho com defeito é o que foi retirado.

Plus: No Linux, baixe a ferramenta gerenciamento de impressão da HP e o driver hplip no site: http://hplipopensource.com/hplip-web/index.html

SQL Server: Migrando dados entre schemas diferentes

Fala pessoal! Depois de um longo tempo sem postar nada … estou de volta!!

Recentemente participei do projeto de integração entre 4 sistemas e unificação de suas bases de dados. Nessa base, nós dividimos as tabelas de alguns dos módulos específicos utilizando os schemas do SQL Server.

Vamos lá! O cenário é o seguinte: Temos bases diferentes onde o único schema é o dbo. Ao unificarmos as bases, deseja-se separar alguns objetos com schemas próprios (diferentes do dbo). Não consegui encontrar nenhuma ferramenta free que fizesse o trabalho completo e no meu caso e acredito que no caso de muitos, é complicado pagar um preço relativamente alto pra usar uma ferramento 1 ou 2 vezes apenas. Por esse motivo adotei essa solução.

Vou partir do principio que a nova base já está com a estrutura pronta e só é necessário importar os dados da base antiga.

1º Passo é gerar o script com os dados. Um espécie de “backup” … comum em outros SGBDs como PostgreSQL e MySQL.
Para tal, Clique com o botão direito na base que deseja exportar os dados e escolha a opção Tasks > Generate Scripts, como mostra a imagem abaixo:

Como só interessam os dados, escolha apenas as tabelas que deseja exportar. Na próxima tela, marque as opções “save to file”, “single file” e clique em “Advanced”. Nessa tela, você deverá mudar as propriedades: “Schema qualify object names” para “false”, “Script USE DATABASE” para “false” e por último “Types of data to script” para “data only”, como mostra a imagem abaixo:

Mas porque retirar o nome do schema e o “USE DATABASE”? Se o arquivo gerado for muito grande, maior que 2 GB por exemplo, você terá dificuldade para altera-lo em um editor de textos depois e lembre-se que você quer mudar de schema e não continuar com o dbo e a base destino também é diferente. Ah, eu poderia mudar o schema direto na minha base antiga e já exportar certinho? Claro que pode, mas como ainda trata-se da base de produção, quanto menos modificações, melhor … por isso prefiro alterar apenas o script que não causa nenhum impacto na estrutura atual.

Feito isso, pode gerar o script. A depender do tamanho da base, vai demorar um pouco.

2º Passo, depois do script gerado, nós vamos desativar temporariamente todas constraints e triggers. Para tal, você irá precisar rodar os seguintes comandos SQL:

EXEC sp_msforeachtable "ALTER TABLE ? DISABLE TRIGGER ALL"
GO

EXEC sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT ALL"
GO

3º Passo, existe um detalhe muito importante agora, como usar o schema se não tem nenhuma referencia no script? O pulo do gato está no default schema do usuário que você irá utilizar na importação. Defina o default schema para o desejado  antes de executar o script de importação.

Agora você tem duas opções: Rodar pelo Management Studio ou pelo linha de comando com o sqlcmd.exe. Se o script for muito grande, você terá que usar o sqlcmd.
Sintaxe: sqlcmd.exe -S <host> -U <usuario> -P <senha> -d <banco destino> -b -i <caminho para o script> -o <log de saída>

Novamente, a depender do tamanho da base, o processo pode levar horas.
Se tudo deu certo até aqui, você já pode habilitar novamente as triggers e contraints:

EXEC sp_msforeachtable "ALTER TABLE ? ENABLE TRIGGER ALL"
GO

EXEC sp_msforeachtable "ALTER TABLE ? CHECK CONSTRAINT ALL"
GO

4º Passo, se tudo deu certo, vai no barzinho mais próximo e pede uma gelada!! \o/
Abrassssss galera!

Alternar CSS (Toggle)

Uma função simples para alternar css com PHP. Essa dica é útil para por exemplo, alternar cor de linhas de uma grade. E com essa função você leva inteiramente grátis uma outra para definir várias caso elas não existam, algo como a tag <CFPARAM> do ColdFusion.

Segue o código abaixo:


if ( ! function_exists('def')) {

	function def(&$var, $default = "", $type = NULL, $pattern = NULL)
	{
		if (empty($var) || !isset($var)) {
			$var = $default;
		}

		if (! is_null($pattern)) {

			if (preg_match($pattern, $default) === 0) {
				throw new Exception("The default value assigned is incorrect");
			}
		}

		if (! is_null($type)) {
			settype($var, $type);
		}
	}
}

/**
 * Alterna estilos css
 *
 * @param string
 * @param string
 * @param string
 * @return string
 */
if ( ! function_exists('toggle_css') ) {

	function toggle_css(&$class, $class_1, $class_2)
	{
		def($class, '');

		$class = ( $class == $class_1) ? $class_2 : $class_1;
		return $class;
	 }
}

Pronto, para usar, siga o exemplo abaixo:

// Loop
<div class="<?php echo toggle_css($css, 'class1', 'class2');?>">Linha 1</div>

Abrasss

PHP 5.2.13 + Apache 2.2.15 (Windows)

Eu e algumas muitas pessoas, estão encontrando muita dificuldade para instalar o PHP 5.2.13 com Apache 2.2.15. Páginas em branco, erro no php5ts.dll ao tentar iniciar o apache são alguns dos sintomas.

Consegui com muito custo resolver o problema. Vamos a solução!

Ingredientes

  • PHP 5.2.13
  • Apache 2.2.15
  • msvcr71.dll (em alguns casos)

Instale normalmente o Apache e o PHP. Depois vá até o prompt de comando e execute (se o PHP não estiver no path do sistema, acesse o diretório de instalação do PHP):

C:\php -v

Provavelmente você receberá algumas mensagens de erro sobre extensões. Desabilite as extensões que estão dando erro e que você não utiliza. No meu caso desabilitei as extensões do oracle, snmp, sqlite e sybase.

Em alguns casos o PHP reclama da biblioteca msvcr71.dll, se for o seu caso, baixe aqui e salve-a na pasta windows/system32.

Salve suas alterações no php.ini e rode novamente o comando php -v. Desabilite as extensões até que nenhuma mensagem de erro seja exibida.

Crie um script php com o conteúdo <?php phpinfo();?> e coloque no document root. Inicie o apache e acesse essa página. Ficou em branco? Algum extensão que está habilitada não apareceu? Abra o seu httpd.conf e adicione a diretiva PHPIniDir apontando para o caminho do seu php.ini. Algo como PHPIniDir “C:/PHP/php.ini”.

Reinicie o apache e tente executar o script novamente.

Até o próximo post.

Dica Rápida: Atualizar firmware DSL 500B GII com padrão de operadoras

Fala meu povo, essa semana meu modem da Velox foi pro saco e precisei comprar outro. O modelo que eu tinha e que foi enviado pelo provedor foi o DLINK DSL 500B, o que eu comprei foi o DLINK DSL 500B GII. Instalei o bichano e fui pra configuração do roteador. Não sei porque cargas d’agua o modem não conectava de jeito nenhum. Foi então que vi uma dica em um fórum para atualização do firmware do modem de acordo com o provedor. Fui no página da DLINK (http://www.dlink.com/internet), escolhi o modelo do modem no menu do lado esquerdo, baixei o firmware correspondente a minha operadora (Velox). Através da administração, fiz a atualização, coloquei meu login e senha e pimba .. funfou!!!!

Fica ai a dica!

Abraços

Google exibe Wave como “e-mail do futuro”

SÃO PAULO – O Google apresentou, durante a conferência para desenvolvedores I/O, o protótipo de um novo produto chamado Wave. Sem nenhuma modéstia, o gigante das buscas definiu seu projeto como “o e-mail do futuro”.

Interface Google Wave

Interface Google Wave

 A expressão é de Lars Rasmussen – coordenador do Wave e um dos cérebros por trás do Google Maps –  que apresentou o aplicativo online como algo que  “vai transformar o e-mail numa ferramenta integrada de colaboração, comunicação e rede social”.

 O Wave ainda não está disponível para testes dos usuários e uma versão beta é aguardada para qualquer momento “ainda este ano”.

Leia mais

Microsoft apresenta o Bing, seu novo mecanismo de buscas

Nova York – Segundo o CEO da empresa, Steve Ballmer, site vem com várias novas ferramentas e tem o objetivo de ser um “mecanismo de decisões”.

Steve Ballmer, Chief Executive Officer e principal executivo da Microsoft, apresentou nesta quinta-feira, durante a conferência All Things Digital, o Bing, seu novo site de buscas. Batizado oficialmente de Bing, o buscador começa a ser lançado mundialmente nos próximos dias e deve estar 100% no ar até a próxima quarta-feira. A estreia do site também é acompanhada de uma campanha publicitária milionária.

Leia mais

Microsoft libera SP2 do Windows Vista

SÃO PAULO – Usuários do Windows Vista em inglês e outros quatro idiomas já podem baixar e instalar a versão final do Service Pack 2 do sistema operacional da Microsoft.

 O segundo grande update do Vista contempla 800 atualizações, entre patchs de segurança e melhorias no desempenho do sistema, como gerenciamento mais veloz de dados e maior compatibilidade com hardware e software.

Leia mais

Tomcat 6 – Falha ao inicializar serviço

Se ao tentar iniciar o tomcat 6 numa máquina com Windows XP você recebe o erro abaixo no log

=========================

[173 javajni.c] [error] Can’t create the specified module.
[764 prunsrv.c] [error] Failed creating java
D:\Programs\Java\jdk1.6.0\jre\bin\server\jvm.dll
[982 prunsrv.c] [error] ServiceStart returned 1

=========================

Basta copiar o arquivo msvcr71.dll da pasta bin do JRE ( JRE_HOME\bin\msvcr71.dll ) para a pasta windows ou para CATALINA_HOME\bin que seu problema estará resolvido.

Esse problema aconteceu comigo essa semana, duas máquinas com as mesmas versões de JRE, Tomcat e Windows mas apenas uma funcionava. E o mais engraçado é que a máquina que funcionava não tinha o arquivo msvcr71.dll nem na pasta Windows e muito menos na pasta bin do tomcat 😐 ????????

Mas por que isso acontece? … Só Deus e agora a Oracle sabem 🙂 – I Love PHP