Archive for julho, 2010

28 de julho de 2010

Upload automático de imagem do clipboard!

escrito por Ruppel, enquanto Engenheiro

Escrever posts com imagens traz uma dificuldade: o processo de upload não é prático! Você tem que tirar uma screenshot, salvar a Imagem, depois clicar num botãozinho para upload e inserir a imagem no seu post.

Talvez, num futuro próximo, será possível copiar e colar diretamente do Word, por exemplo, para o seu editor de texto web e ele fará o trabalho.

É verdade que se você usasse algo como o Writer, você teria a imagem automaticamente carregada no seu servidor. Mas o futuro são os softwares na Web. E eu venho falar de mais um aqui: ScreenShotMe

É fantástico! Agora você faz um print screen, acessa o endereço: http://dailyffs.com/shotme/ e já pode colar sua imagem que será automaticamente enviada ao servidor deles. Melhor ainda: você pode recortar diretamente na página!

Para este post aqui eu já usei essa técnica. Acho que vai me ajudar muito.

A penúltima pattern criacional do livro Design Patterns têm uma motivação muito semelhante à pattern anterior, Factory. A prototype é usada quando você precisa instanciar um tipo não conhecido em tempo de compilação. Essa motivação também foi vista no uso das factories, com a diferença de que, com o Prototype, não há a criação de uma hierarquia paralela de classes, situação que foi vista com a Factory.

O funcionamento da Prototype é muito simples: para criação de um novo objeto você utiliza uma instância pré-existente desse objeto (um protótipo) e pede a ele mesmo que crie um clone.

A única dependência que você cria no seu sistema é de que essa interface comum passe a conter um método Clone, como mostra a figura abaixo.

Prototype

Essa pattern torna o cliente não dependente dos produtos concretos, diferentemente por exemplo da Builder (engraçado que o livro fala que a Builder também é independente, mas acho que erraram…. do alto da minha modéstia…rs).

E a grande vantagem dessa pattern é a simplicidade. Porém tendo que pagar o preço de implementar um método Clone, que pode não ser muito simples.

19 de julho de 2010

Configurar Servidor DNS para o Registro.br

escrito por Ruppel, enquanto Engenheiro

Eu sempre tive curiosidade de configurar um servidor DNS.

Em especial o servidor DNS porque, para se colocar um site no ar, acessível à toda Internet, eu sabia que você precisava de:

1. Computador com um ip fixo e com um servidor web (como o Apache) instalado
2. Registro no Registro.br

E na hora do cadastro no Registro.br ele me pedia um bendito nome de servidor DNS.

Quando você contrata uma hospedagem eles vêm na forma “ns1.nomedahospedagem.com.br”. Mas se eu estou justamente cadastrando o meu domínio no Registro.br como será possível eu já ter um nome nesse estilo?

Eis que, hoje, lendo o FAQ do Registro.br eu me deparei com o seguinte trecho:

Os campos de endereço IP e IPv6 devem ser preenchidos somente nos casos em que o domínio do servidor DNS seja igual ou esteja contido no que está sendo delegado.

Exemplo: No caso do domínio XYZ.COM.BR delegado para os servidores FOO.XYZ.COM.BR, NS1.BAR.XYZ.COM.BR e NS1.KZX.COM.BR, para os dois primeiros servidores, o preenchimento do campo endereço IP é obrigatório

Ou seja, se você vai cadastrar o seu domínio: ruppel.eng.br, pode colocar no registro.br o servidor DNS ns1.ruppel.eng.br. Mas aí você coloca tb o ip fixo (que era um pré-requisito que eu já conhecia). O Registro.br só usa o ip nesses casos de o DNS fazer parte do próprio domínio que você vai cadastrar. Super interessante!

Agora indo à parte prática.

Para configurar o DNS no Windows Server 2003++ você primeiro precisa ativar o Serviço:

1. Painel de Controle -> Adicionar ou Remover Programas -> Adicionar ou Remover Componentes do Windows -> Serviços de Rede -> Clique em Detalhes e Selecione “Domain Name System (DNS)”.

Com o serviço ativado você pode acessá-lo diretamente através das Ferramentas Administrativas.

Então você precisa criar uma zona (sem trocadilhos). No meu domínio a zona seria “ruppel.eng.br”. Botão direito em “Foward Lookup Zone” (Zona Direta) e “New Zone”.

Dentro dessa sua zone, você já pode adicionar suas entradas (ou registros, como preferir). Botão direito e você terá as opções de Registro A, Registro CNAME, Registro MX, que servem, respectivamente, para linkar o seu nome de domínio para ip, outro nome de domínio e para configurar email.

Um exemplo de Registro A é não preencher nada e colocar o ip da sua hospedagem. Outro exemplo é colocar como subdomínio o “www”. Outro tb interessante é colocar como subdomínio o asterisco “*”, assim qualquer subdomínio será direcionado para aquele ip.

Aqui tem o material Microsoft sobre a instalação e configuração de servidor DNS: http://support.microsoft.com/kb/814591

18 de julho de 2010

dúvida

escrito por Ruppel, enquanto ele mesmo

quão problemática é uma pessoa que, ao receber mensagens de duas pessoas amadas em questões de minutos, resolve conferir o horóscopo para saber se o destino lhe previa tais surpresas?

ou ainda que ao ouvir o nome Krakóvia lembra-se do filme “O Terminal” ao invés da “Lista de Shingler”, pq no primeiro, o espetacular Tom Hanks é um viajante da Krakozhia, país fictício do filme (neste caso a presença de Catherine Zeta-Jones pode explicar muita coisa)

enfim, apenas dois episódios preocupantes do dia

eu já tive esse problema:

Cannot obtain value of local or argument ‘variableName’ as it is not available at this instruction pointer, possibly because it has been optimized away

mas na época não dei muita atenção, é uma pequena limitação enquanto vc tenta debugar alguns códigos nativos do .Net Framework.

aliás, achei bem natural haver restrições pra isso

eis que não existem restrições! e a solução para o problema acima está descrita aqui

foi bacana que eu achei essa solução por acaso, num blog simpático e não muito ativo que eu acompanho

na verdade, na época eu nem achei q era um “problema”, por isso não fui atrás de solução… mas agora jah sei =)

06 de julho de 2010

futuro da UI

escrito por Ruppel, enquanto Engenheiro

Hoje as pessoas usam Mouses, teclados e monitores como se fossem as coisas mais naturais do mundo

mas eu vejo nisso um quê de passado

existem algumas alternativas para controlar um computador: reconhecimento de voz, as ultimamente badaladas “touchscreens”, mas há coisas ainda mais modernas:

talvez encontrar o verdadeiro futuro da UI (esses padrões parecem bizarros qdo vc pensa em uma lan house usando qqler um deles: ou seria um monte de gente falando ao mesmo tempo com seus computadores, ou fazendo gestos, e aí as coisas mais tradicionais parecem mais sensatas)

pois bem… encontrar o futuro da UI parece um bom caminho de inovação

05 de julho de 2010

a idade dos gênios

escrito por Ruppel, enquanto Filósofo

outro dia comentou-se que as pessoas têm seu auge até os 23 anos… mais tardar 26

e que as idéias revolucionárias nascem na juventude de seus autores

a discussão tendia desacreditar gênios adormecidos, como, quem sabe, eu…rs (ou mesmo vc, leitor)

confesso q é um pouco triste pensar q o auge físico chega tão cedo…enquanto temos muito a aprender

mas, naturalmente, muitas idéias revolucionárias podem, sim, ser publicadas por pessoas bem velhas

por mais que eu realmente tendo a concordar que o embrião dessas idéias esteve presente desde a juventude tenra de seus autores… ainda vejo a maturidade com o papel de dar um toque de clareza para o gênio identificar sua genialidade, ou seja:

posso até concordar que as idéias geniais nasçam até os 23 anos de seus autores, mas nada garante o momento em que essas idéias serão percebidas, publicadas e compartilhadas com a humanidade