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 4 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 3 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 6 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 1 Comentário »
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 22 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 5 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 6 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.
Enviado em 22/07/2007 na categoria Web, Dicas 8 Comentários »
Barra de tarefas flexível no Windows

O programa utilitário TaskBar Shuffle deixa a barra de tarefas do Windows mais flexível, você poderá mudar a ordem das suas atividades arrastando as abas dos programas facilmente. Tem 636kb, é grátis e roda no Windows XP/Vista/2000/NT/95/98.
Enviado em 17/07/2007 na categoria Windows
Timer Applet ajuda você a não perder tempo pensando no tempo

A ferramenta Time Applet funciona como um auxiliar GTD (Getting Things Done), que é um método de gerenciar tarefas. Informe ao programa quanto tempo será necessário para cada atividade e não fique preocupado com o tempo de conclusão das mesmas e sim em melhor desempenhá-las. O programa está disponível na maioria dos repositórios Linux e pode ser instalado no Ubunto assim:
sudo apt-get install timer-applet
