Chrome ganha em popularidade do IE e Firefox - Pelo menos neste blog
Analisando as estatísticas desse mês do blog pude comprovar o quanto o Chrome está ganhando novos adeptos, chegando a ultrapassar o Internet Explorer e Firefox (que ultimamente têm perdido forças e parece está envelhecendo rapidamente).

Enviado em 21/01/2012 na categoria Internet, Curiosidades
Não permitir execução de mais de uma instância em Delphi
Uma forma simples de não permitir que o usuário abra mais de uma instância do programa é usar o objeto de sincronização (mutex) para criar um identificador para seu processo, e verificá-lo na inicialização do aplicativo.
No source da aplicação usa-se:
uses windows var mAppMutexHnd: cardinal; const APPLICATION_MUTEX_ID = 'AplicativoMutex'; begin Application.Initialize; // Cria o mutex para verificação mAppMutexHnd := CreateMutex(nil, BOOL(1), APPLICATION_MUTEX_ID); // Checa se a aplicação já está rodando if (mAppMutexHnd = 0) or (GetLastError <> 0) then begin MessageBox(0, 'Programa já em execução.', 'Aviso', MB_ICONHAND); Application.Terminate; end; try Application.Run; finally // Fecha a instância criada CloseHandle(mAppMutexHnd); end; Application.Terminate;
Enviado em 29/09/2011 na categoria Dicas, Delphi
Usando magic methods com php
Hora ou outra a gente se depara com algumas funcionalidades que uma linguagem pode nos proporcionar. Às vezes até hesitamos em mudar nossos conceitos, mas é sempre bom tentar enxergar se determinada opção na linguagem vale a pena de ser usada na implementação. O problema é que eu tinha uma classe a fazer, com 50 atributos e estava com uma preguiça danada de escrever todo o código (sei que existem ferramentas que resolvem o caso - http://www.card2u.com.my/ClassBuilder/ ou http://www.phpclasses.org/browse/package/4794.html que geram o código e ainda oferece uma modelagem MVC com suporte à conexão nativa) mas precisava de algo mais “crú”. Então, veja o que os magic methods __get() e __set() fazem por você nessas horas:
Aqui uma classe teste
<? class Class1 { //Lista de atributos private $var1; private $var2; private $var3; /* * Método mágico que retorna os valores das variáveis privadas. * */ public function __get($atributo) { if (isset($this->{$atributo})) { if ($this->{$atributo}) return $this->{$atributo}; } else { return false; } } /* * Método mágico para atribuir valores nas variáveis privadas. * */ public function __set($name, $value) { $this->$name = $value; } } ?>
Testando a classe Class1
<? //Declaração $classe1 = new Class1(); //Atribui 'Valor 1' a $var1 $classe1->var1 = "Valor 1"; //Atribui 'Valor 2' a $var2 $classe1->var2 = "Valor 2"; print $classe1->var1; print $classe1->var2; ?>
Pronto, não precisei me preocupar em escrever getters e setters para os atributos da classe.
Enviado em 1/11/2009 na categoria Web, Dicas, PHP 28 Comentários »
Abrindo arquivos PPTX
Hoje tive um problema com um formato que até então era desconhecido para mim: a extensão pptx. Usuários do Office 2003 não conseguirão abrir este tipo de arquivo porque é exclusivamente para a versão 2007 do PowerPoint. No entanto, a Microsoft disponibiliza um conversor gratuito. Clique aqui para abrir o link. Depois de instalado abra o arquivo pptx que irá aparecer um prompt para salvar no formato da versão do PowerPoint instalada na sua máquina.
Enviado em 30/08/2009 na categoria Windows, Dicas 47 Comentários »
Problema ao abrir arquivos de ajuda .chm do Windows
Os arquivos de ajuda no formato .chm são na verdade arquivos html compilados com índices de pesquisa, para executá-los usa-se geralmente o programa Microsoft® HTML Help Executable que já vêm na versão do Windows XP. No entanto a Microsoft deve ter percebido que esses tipos de arquivos poderiam representar uma falha de segurança e para que o usuário abra algum arquivo da internet deverá que desbloquá-lo. Se você baixou e tentou abrir algum arquivo .chm e apareceu algum problema deste tipo: (Ação Cancelada. O Internet Explorer não conseguiu se conectar à página da Web solicitada. A página pode não estar disponível no momento) ou (A página não pode ser exibida. A página que você procura não está disponível no momento. Talvez o site esteja passando por dificuldades técnicas ou você precise ajustar as configurações do navegador.) é porque o arquivo está bloqueado e não pode ser utilizado.


Para desbloquar o arquivo clique com o botão direito no seu ícone, vá até Propriedades e clique em “Desbloquear”. Feche as propriedades e tente abrir novamente.

Enviado em 9/11/2008 na categoria Windows, Segurança, Dicas 7 Comentários »
Erro Subsistema Windows 16 bits
Quando fui instalar o driver Twain estava dando o erro “subsistema windows 16 bits”, esse problema ocorre quando
existem arquivos corrompidos (command.com, autoexec.nt e config.nt).
Para resolver baixei e executei este fix (XP_FIX.exe 140kb).
Enviado em 14/10/2008 na categoria Windows, Dicas 5 Comentários »
Retornando o nome da classe de um Objeto no Java
O nome da classe pode ser retornada com as seguintes funções:
1 2 | //Retorna todo o nome da classe incluindo seu pacote meuobjeto.getClass().getName(); |
ou
1 2 | //Retorna apenas o nome da classe meuobjeto.getClass().getSimpleName(); |
Enviado em 14/10/2008 na categoria Java 43 Comentários »
O servidor RPC não está disponível
Hoje me deparei com esse erro chato na geração de alguns relatórios em Fortes Report (ainda uso sim!) usando Delphi. Na geração mostrava a mensagem de erro do sistema: “O servidor RPC não está disponível”. Depois de fuçar um pouco verifiquei que como não havia impressora instalada o serviço de spool do Windows estava desativado. Nos Serviços do Windows (Painel de Controle -> Ferramentas Administrativas - Serviços) procure por Spooler de Impressão e se estiver parado clique em Iniciar. Aqui funcionou.

Enviado em 15/09/2008 na categoria Windows, Dicas, Delphi 48 Comentários »
Ordenando resultados de consultas com valores numéricos
O caso não é incomum, as vezes precisamos ordenar uma consulta por determinada coluna de caracteres, mas que contenha valores numéricos. Se você ordernar um campo desse tipo os resultados irão sair assim:
SELECT numerocontrato FROM contrato ORDER BY numerocontrato ASC
resultado:
* 1
* 10
* 11
* 123
* 1234
* 2
* 25
* 253
* 34
Para resolver esse problema use a função ABS(), assim:
SELECT numerocontrato FROM contrato ORDER BY ABS(numerocontrato) ASC
Enviado em 4/09/2007 na categoria Banco de Dados, Dicas, SQL 1 Comentário »
Copiando uma imagem de uma pasta para outra usando Java
Escrevi um post que dizia como copiar um arquivo de um diretório para o outro usando FileChannel, no entando não serve para copiar imagens (arquivos binários). Para copiar uma imagem de uma pasta para outra use BufferedImage e ImageIO:
Usando uma imagem externa ao seu projeto:
File imagem_file = new File(”exemplo.jpg”);
BufferedImage imagem_buffered = ImageIO.read( imagem );
ImageIO.write(imagem_buffered, “jpg”, new File(”novaimagem.jpg”));
Usando uma imagem dentro do seu projeto:
//Origem
BufferedImage imgb;
imgb=ImageIO.read(getClass().getResource(”/path/img.jpg”).openStream());
//Destino
ImageIO.write(imgb, “jpg”, new File(”novaimagem.jpg”));
Enviado em 2/08/2007 na categoria Java 6 Comentários »
Adicionando “Copiar para” e “Mover para” no menu do botão direito no Windows Explorer
Quem trabalha muito com arquivos pode ter notado a falta de um atalho para operações de copia e trasferência entre pastas no Windows Explorer. Você pode adicionar ao menu do botão direito (veja clicando com o botão direito em cima de qualquer pasta ou arquivo) as funções de “Copiar para pasta” e “Mover para pasta”. Para isto abra o registro do Windows (Iniciar -> Executar -> regedit.exe). Se nunca abriu o editor de registro lembre-se de ter cuidado para não modificar nenhum outro valor que não esteja descrito neste artigo.
Abra a chave abaixo:
HKEY_CLASSES_ROOT\AllFilesystemObjects\shellex\ContextMenuHandlers
e clique com o botão direito e vá em Novo -> Chave

Renomeie a nova chave para “Copiar Para”.

Clique duas vezes em (Padrão), no campo “Dados do Valor” coloque:
{C2FBB630-2971-11D1-A18C-00C04FD75D13}

Clique em OK, feche o registro e verifique a nova opção no menu.


Para mover arquivos crie uma nova chave com o nome “Mover Para” e refaça todo o procedimento mudando apenas o valor para:
{C2FBB631-2971-11D1-A18C-00C04FD75D13}
Enviado em 23/07/2007 na categoria Windows, Dicas 102 Comentários »
Os 45 melhores programas gratuitos de design

O Blog snap2objects fez uma grande lista dos melhores programas gratuitos para edição e criação de imagens, modelagem 3d, criação de fontes e animações. A lista é grande e vale a pena conferir, a lista traz alguns programas desconhecidos mas aparentemente bastante úteis.
