Tag Archives: Geral

Configurando seu Aplicativo no Firewall do Windows com Inno Setup

Desde o XP SP2 (eu acho), o Windows tem seu próprio firewall, e isso é muito bom. Ele também está presente no Vista e nas versões Server. Eu sempre recomendo a todos manterem o firewall ativado, e fico desapontado quando profissionais de informática, e até mesmo programadores, muitas vezes reclamam que ele existe e desativam tudo. Isso acontece de forma ainda mais triste com o novo UAC do Windows Vista, que na minha opinião, é muito útil.

Acredito que esse tipo de comportamento seja mais por desconhecimento do sistema, do que por qualquer outra coisa. O bom desenvolvedor Windows precisa conhecer como esses componentes do sistema funcionam para poder trabalhar com eles de forma amigável.

Se você vai instalar seu servidor de aplicação ou seu servidor de banco de dados no Windows você vai precisar configurar seu aplicativo no firewall para que os usuários consigam conectar. E você pode fazer isso de forma automática e durante a instalação do aplicativo. Aqui na Cadena nós utilizamos o Inno Setup, e esta dica nos ajudou muito quando precisamos incluir esse recurso em nossos instaladores.

A idéia é usar o utilitário de linha de comando netsh, que permite alterar praticamente qualquer configuração de rede do computador usando scripts ou comandos no prompt. Você pode encontrar mais informação sobre ele no site da Microsoft.

Testei esse script com sucesso no XP SP2, no Vista e no 2003 Server.

Evite Código Inútil

Uma coisa que eu gosto de fazer é refatorar código antigo. Sempre encontro muita coisa inútil que pode ser removida. Incontáveis vezes eu já escrevi código do tipo:

if not MeuDataSet.Active then
  MeuDataSet.Open;

O problema é que esse “if” é totalmente inútil. Se você olhar no código da classe TDataSet do Delphi vai ver que ele já faz essa checagem sempre que você chama Open. Outro código inútil que eu também já escrevi e continuo vendo muita gente repetir, é o seguinte:

if ClientDataSet.ChangeCount > 0 then
  ClientDataSet.ApplyUpdates(0);

Você também não precisa desse “if” pois a checagem também já é feita pelo ClientDataSet automaticamente.

Comece a olhar melhor para seu código e código de terceiros que você usa e certamente encontrará muita coisa que pode ser eliminada.

CodeGear x Peter Morris

Eu já vi essa história antes em algum lugar. Aproveite enquanto o site está no ar (não está mais). É lamentável que isso continue acontecendo.

XanaNews “não oficial”

O XanaNews, apesar do nome estranho e dos “defeitos”, é meu leitor de newsgroups (NNTP) preferido há vários anos. Ele tem alguns recursos muito práticos que não consegui encontrar em nenhum outro, e sempre que tento mudar, acabo voltando pra ele.

É escrito em Delphi e foi criado pelo Colin Wilson, que há algum tempo tem deixado o aplicativo no “limbo”, sem atualizações.

O Leonel Togniolli pegou os fontes e está mantendo uma versão não oficial, com bugs resolvidos e novos recursos. Inclusive o site da versão não oficial é muito mais bonito que o site oficial. :)

Valeu Leonel!

Dia do Programador

Eu nem sabia que existia isso, mas alguém em um dos grupos de discussão que participo postou esse link e achei que valia um post.

Feliz dia do programador! :)

MVP defende troca de ASP.NET por Rails

É no mínimo interessante ver um MVP defender a troca de ASP.NET para Ruby on Rails. Resta saber por quanto tempo Scott Bellware continuará como MVP depois dessa.

Eventos Microsoft no Second Life

Parece que o tal do Second Life não para de crescer. Agora é a vez da Microsoft investir no “mundo virtual”. O interessante é que esses investimentos estão direcionados para os desenvolvedores. Eles compraram uma ilha e batisaram de Visual Studio Island.

Aparentemente você poderá assistir palestras lá sobre tecnologias MS. Veja mais detalhes no blog do Brad Abrams.

Eu particularmente não tenho nenhum interesse no Second Life, acho um pouco de exagero pessoas gastarem tanto tempo em realidades alternativas como essas. Mas enfim, se a MS entrou e investiu nos desenvolvedores, provavelmente muitos desenvolvedores devem estar frequentando o local. :)

E a debanda continua

Mais um que diz estar abandonando a Microsoft. Eu nem fui pra .NET ainda e muitos já estão abandonando. :(

Agora posso ter um Mac

Parece que agora posso finalmente ter um Mac. Vejam o video, é impressionante. Será que vem para Linux também?

Microsoft REMIX07 Brasil

REMIX07 é a versão brasileira do evento MIX da Microsoft, que acontece em Las Vegas. É voltado para web, então não me interessou muito.

Google Gears e Microsoft Surface

Semana passada toda estive participando como expositor em um congresso em Brasília e fiquei praticamente offline. Duas grandes novidades foram divulgadas, Microsoft Surface e o Google Gears.

De imediato apenas o Google Gears traz algum benefício, pois já podemos usar e tirar proveito. Apesar de por enquanto ele estar disponível apenas no Google Reader, acho que muito em breve teremos o Gmail e Google Docs entrando no esquema. Confesso que essa novidade me deixou bem animado, pois já há algum tempo migrei toda minha plataforma de comunicação para o Google. E-mails, agenda, documentos, IM. Tanto pessoais como da empresa. E estou muito satisfeito.

O Microsoft Surface é algo incrível, e até por isso parece um pouco utópico, mas se entendi direito, estão prometendo os primeiros dispositivos a venda no mercado ainda esse ano. Vamos aguardar.

Free Pascal ganhando espaço

Provavelmente você já ouviu falar do Free Pascal. Acho que nunca comentei sobre ele aqui. É um compilador Pascal open source que suporta várias plataformas. Intel x86, Amd64/x86_64, PowerPC, Sparc. Linux, FreeBSD, Mac OS, DOS, Win32, OS/2, Netware e MorphOS. Impressionante, não?

Eu já tinha ouvido falar muito em FPC, mas nunca me interessei de verdade. Porém, aos poucos isso foi mudando:

  • Vi uma palestra sobre ele na Firebird Conference em Praga ano passado.
  • A RemObjects anunciou que as novas versões do SDK e do DataAbstract suportarão oficialmente FPC no lugar do abandonado Kylix.
  • Simon Kissel, autor do CrossKylix, disse que vai investir pesado no projeto CrossFPC (colocando desenvolvedores dedicados), que nos permitirá compilar projetos FPC usando a IDE do Delphi.
  • Jazz suporta FPC.
  • A nova versão 2.1.4 do FPC já suporta generics! (não testei, mas vi no release notes)

Essas novidades geraram até uma boa discussão no news da CodeGear. Alguém sugeriu que a CodeGear deixasse o compilador Delphi de lado e usasse o FPC, focando apenas na IDE. Pra mim até que faz algum sentido. Atualmente a CodeGear tem IDE para Delphi, C++, C#, Java, PHP e muito breve Ruby. De todos esses, eles só mantêm o compilador para Delphi e C++, os outros compiladores são gratuitos.

O Free Pascal tem sua própria IDE open source, o Lazarus, mas ainda é muito inferior ao Delphi. Por isso acho que vale a pena ficar atento no projeto CrossFPC do Simon Kissel. Me parece que ele esta muito motivado a levar o Free Pascal para frente dentro do Delphi, e pretende investir de verdade.

Com o suporte da RemObjects ao FPC, escrever servidores de aplicação que rodam em Linux voltou a se tornar uma realidade viável. Pretendo iniciar testes em breve.

TeamRO Official Member

TeamRO

Aceitei com prazer o convite para ser membro do TeamRO, o time da RemObjects. Essa equipe é formada por pessoas que se destacam na comunidade de desenvolvedores que utilizam os produtos da RemObjects.

Uma das funções do TeamRO é servir como gurus para os demais usuários, ajudando a tirarem o máximo de proveito dos produtos da RemObjects. Outra função importante é defender as necessidades dos usuários no direcionamento dos produtos da RO, afinal, nós também somos desenvolvedores e usamos os produtos, as vezes temos uma visão diferente da RO e isso pode ajudar.

Portanto, se você usa algum produto da RO ou gostaria de usar e tem dúvidas, não deixe de postar no newsgroups da RO. Lá é o melhor local pois todos os membros do TeamRO e da RemObjects participam e podem ajudar. Apesar da maioria das mensagens ser em inglês, você pode postar em português sem nenhum problema, mas nesse caso, menos pessoas poderão ajudá-lo, mas eu estou sempre lá.

VMWare Workstation 6

Foi anunciada hoje a disponibilidade da versão 6 do VMWare Workstation 6, ferramenta que todo desenvolvedor deveria ter. Com muitos recursos novos e interessantes, incluindo suporte ao Windows Vista.

Eu já vinha testando essa versão durante o beta no Vista. Rodo Win98, Win2000, XP, Win2003, Vista, Ubuntu, OpenSUSE, Red Hat, tudo em máquina virtual, sem nenhuma dificuldade. Lógico que não dá pra rodar tudo de uma vez, porque mesmo com 2GB de RAM, ficaria tudo uma carroça, mas normalmente não preciso mais de uma VM rodando ao mesmo tempo.

Utilizamos muito VM aqui, minha máquina de build por exemplo, é uma VM XP, rodando no VMWare Server instalado em nosso servidor Win2003. Ela tem IP próprio, acesso remoto próprio, praticamente tudo independente. Ninguém consegue saber que é uma VM se não contarem. :)

FileHippo Update Checker

Esse software é muito legal! Ele varre sua máquina, faz uma lista de softwares instalados e depois diz se existe alguma versão nova deles já disponibilizando um link direto para download da atualização! Venho utilizando há algum tempo e recomendo.

E foi escrito em .NET 2.0.

Inno Setup – Adicionando/atualizando alias Firebird

O Inno Setup é uma ferramenta fantástica. Usamos ele há muito tempo aqui na Cadena e ele nunca nos deixou na mão. Ontem precisei montar um instalador rápido e um dos requisitos era adicionar ou atualizar um alias do Firebird:

procedure SetFirebirdAlias;
var
  AliasesFile: string;
  Aliases: TArrayOfString;
  I: Integer;
begin
  AliasesFile := ExpandConstant('{pf}') + '\\Firebird\\Firebird_2_0\\aliases.conf';
  LoadStringsFromFile(AliasesFile, Aliases);
  for I := 0 to GetArrayLength(Aliases) - 1 do
  begin
    if Pos('meualias', Aliases[I]) > 0 then
    begin
      Aliases[I] := 'meualias = ' + GetCaminhoBanco;
      SaveStringsToFile(AliasesFile, Aliases, False);
      Exit;
    end;
  end;
  SaveStringToFile(AliasesFile, #13#10 + 'meualias = ' + GetCaminhoBanco + #13#10, True);
end;

Gerador de Dados para Teste

Você precisa gerar dados rapidamente para testar algum software? O gerador online do Benjamin Keen permite gerar até 200 registros diretamente no site dele. Se precisar de mais, pode baixar o programa gratuitamente e executar na sua máquina.

Ele gera dados em diversos formatos, incluindo comandos SQL, CSV e Excel. Bem interessante.

Notebook Ez-Go

Há vários anos trabalho apenas com notebook. A praticidade que ele me dá é fundamental, visto que tenho tudo sempre a mão para trabalhar de onde quiser.

Para quem está pensando em mudar e não tem coragem de encarar devido ao preço das máquinas mais poderosas, ou para quem está querendo atualizar para um equipamento mais novo, vale a dica do Cantu e sua experiência com o Ez-Go.

Só faltou ele comentar o preço. Mas o Bruno, que trabalha aqui na Cadena, também esta querendo comprar um igual, e me parece que o preço está abaixo dos R$4000. Para um equipamento com esse poder, o preço está ótimo!

Não duvido nada que meu próximo seja um Ez-Go.

Múltiplos Monitores

Meu amigo Zote me deu uma ótima notícia hoje. Ele tem um notebook igual ao meu e disse ter conseguido ligar dois monitores externos diretamente nele. Um usando a saída VGA padrão e outro usando a saída DVI.

Sempre quis usar dois monitores e achava que precisaria de algum tipo de dock station ou placa externa para o notebook. Agora vou atrás de um adaptador DVI – VGA para fazer um teste, pois não tenho nenhum monitor DVI.

Mas quando eu crescer, quero ter uma igual a do Aaron Jensen, um 30″ e dois de 20″, que pobreza:

Algumas pessoas são idiotas

Ok, nós demoramos a aprender algumas coisas, mas o Andres está coberto de razão em sua lista das 10 coisas mais importantes que 10 anos de desenvolvimento de software o ensinaram.

Um dos itens que mais concordei e que mais me chamou a atenção foi o 10, que diz que algumas pessoas simplesmente são idiotas e que não devemos levar isso muito a sério. De vez em quando esbarramos com esse tipo de gente e ficamos revoltados, nos sentimos injustiçados, queremos rodar a baiana. Mas não devemos culpá-las, pois no mundinho delas, elas se acham o máximo.

O melhor é fazer um “workaround” e seguir em frente! :)