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).

stats

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.

[Veja Aqui a Lista]

Enviado em 22/07/2007 na categoria Web, Dicas 11 Comentários »