quarta-feira, dezembro 29, 2004

autopackage

Hmmm, parece que está surgindo uma salvação para a instalação de pacotes no Linux.

Tudo bem, o rpm foi uma grande revolução, mas só roda no mundo RedHat (apesar de outras distribuições terem criado similares, como o deb do Debian).

O yum e o apt também estão tendo seus dias de glória, por resolver automaticamente as dependências e permitir instalação e atualização de pacotes pela internet, transparentemente.

Mas este tal de autopackage parece que vai realmente revolucionar. Ele é distribution neutral, ou seja, vai fazer instalações em qualquer distribuição, mesmo naquelas que não tem nenhum sistema para controle de pacotes. Fora que a GUI é muito bonita e funcional (coisa rara no mundo Linux, mas que felizmente está mudando).

Bom. Fica a recomendação.

Link: http://autopackage.org/

domingo, dezembro 26, 2004

The Browser Archive

Quer instalar o IE5.5 ou o IE4.01 na sua máquina para testar a compatibilidade de seu código nessas velharias que 10% (é um chute, ok?) das empresas brasileiras ainda usam?

  http://browsers.evolt.org/

Ajustando aplicações ASP.NET para suportar os browsers de verdade

Atualmente, com o Internet Explorer começando a perder território entre os browsers de internet, alguns desenvolvedores já devem estar começando a levar estes novos browsers em consideração. Quem utiliza ASP.NET para desenvolver aplicações web já deve ter notado que alguns controles específicos do .NET não renderizam corretamente nestes browsers não-Microsoft.

Há algum tempo atrás, postei no grupo de discussão CodeKnights uma possível alteração no arquivo Web.config que fazia alguns ajustes à Rendering Engine do ASP.NET e tornava possível a visualização completa da formatação para alguns novos browsers, como o Mozilla e o Opera.

Hoje, encontrei novamente o autor da modificação no Web.config, e trago ao conhecimento de todos o link direto ao seu site - que inclusive já conta com algumas atualizações, como suporte a browsers Safari.

Link: http://slingfive.com/pages/code/browserCaps/

sábado, dezembro 25, 2004

Modelos de documentos

Encontrei hoje uma seção do site da Microsoft com diversos templates para Word, Excel e Powerpoint. São modelos de documentos para os mais diversos fins, como Ordens de Compra, To Do Lists, Instruções, Checklists, Acompanhamento de Performance em Esportes, e até Controle de Dieta.

O link: http://www.microsoft.com/mac/resources/templates.aspx?pid=templates

quarta-feira, dezembro 22, 2004

CSS específico do Mozilla

Pesquisando um pouco mais sobre a dica do dia 20, encontrei uma referência mais completa sobre o CSS específico do Mozilla:

http://www.xulplanet.com/references/elemref/ref_StyleProperties.html

Não tem muito mais coisas úteis além da borda redonda. Os mais interessantes que encontrei, além do -moz-border-radius, foram: -moz-box-flex, -moz-box-orient, -moz-image-region e propriedades adicionais ao atributo display.

segunda-feira, dezembro 20, 2004

Botões redondos em CSS

Essa dica só funciona em browsers de verdade:

<button style="background-color:white;border:1px solid black;-moz-border-radius:4px;">Botão Redondo</button>

Resultado:

Também funciona com outros elementos, como o fieldset:
<fieldset style="border:1px solid gray;-moz-border-radius:4px;">
<legend style="border:1px solid gray;-moz-border-radius:5px;"> Fieldset Redondo </legend>
<ul>
<li>Item</li>
<li>Item</li>
<li>Item</li>
</ul>
</fieldset>


Resultado:
 Fieldset Redondo 
  • Item
  • Item
  • Item

sexta-feira, dezembro 17, 2004

Morte do Internet Explorer

Hehehe... Não resisti, tenho que postar aqui:

quinta-feira, dezembro 16, 2004

Dr. Math

 
Procurando por informações para desenvolver um algoritmo para interpretação de números romanos, encontrei esta excelente referência para tópicos matemáticos:

  http://mathforum.org/dr.math/

Se você estiver com algum problema de programação que exija algum tipo de informação matemática, vale procurar neste endereço também.

A propósito... O endereço onde eu fui parar procurando por números romanos é este: http://mathforum.org/library/drmath/view/57546.html.

segunda-feira, dezembro 13, 2004

Site novo da Suprifattus

Está no ar o site novo da Suprifattus!

Finalmente podemos parar de usar a expressão "casa de ferreiro, espeto de pau". Depois de um ano inteiro vivendo para os clientes, conseguimos parar um pouco para respirar, e aí está o resultado.

Fóruns do GU-RS.NET

O fórum do Grupo de Usuários .NET do RS está funcionando a pleno vapor!

Dicas de componentes, truques de uso do Visual Studio .NET, discussões sobre padrões de código... Qualquer assunto relacionado a .NET é bem vindo!

O registro é rápido, e a equipe organizadora do grupo (eu me incluo) está sempre conectada, principalmente para solucionar dúvidas.

Entre, "estamos te esperando" :)

Meld

Fica a dica para quem - como eu - deve sua vida à ferramentas de comparação de código, e ainda não havia encontrado uma ferramenta gráfica ao nível do Beyond Compare para Linux.

Meld é uma destas ferramentas, com alguns extras muito interessantes, como:
  • Compatibilidade com repositórios do Subversion e do CVS, permitindo realizar comparações entre diretórios e arquivos de forma nativa;
  • Syntax Coloring;
Item indispensável em um Linux de desenvolvedor!

Link: http://meld.sourceforge.net/

domingo, dezembro 12, 2004

The Principle Of Too Much Magic

Programmers are smart. We can think of many smart things. We have a tendency to overuse smart things, making software too complex. We really shouldn't.

http://lsd.student.utwente.nl/jicarilla/TooMuchMagic

segunda-feira, dezembro 06, 2004

Dictionary of Algorithms and Data Structures

Encontrei hoje por acaso. Excelente referência para os nerds da Ciência da Computação.
  http://www.nist.gov/dads/

quinta-feira, dezembro 02, 2004

Lógica

Lógica: maneira mais eficaz de se chegar a uma conclusão errada com absoluta certeza.

quarta-feira, dezembro 01, 2004

Aspect#

Programação orientada a aspectos em C#.

Recomendo a leitura do tutorial:
  http://aspectsharp.sourceforge.net/tutorial.html

É um exemplo real de uso de programação a aspectos.

Language Oriented Programming

Comecei a ler agora, parece interessante. Pelo menos com a primeira página concordei completamente:
http://www.onboard.jetbrains.com/articles/04/10/lop/

Fonte: JavaFree

Javolution


Parece que alguém se interessou em fazer o Java ficar mais rápido:
  http://javolution.org/

segunda-feira, novembro 29, 2004

Dicas de Firefox 1

Vou começar a postar algumas dicas de uso do Firefox, que fazem dele um browser muito produtivo, pelo menos para mim.

Na barra de endereços:
Existem alguns "comandos" prontos, acessíveis através da barra de endereços do Firefox. Experimente digitar, por exemplo: dict mail ou quot msft.

Mais interessante ainda é que, além destes comandos prontos, você pode criar o seu próprio. Por exemplo, vamos supor que você deseje realizar uma busca no WikiPedia:
  1. Acesse o WikiPedia e faça uma busca, de preferência por algo inesistente (por ex.: ABCDE)
  2. Grave um bookmark com o resultado da busca, de preferência na pasta "Quick Searches"
  3. Clique com o botão direito neste novo bookmark e acesse as Propriedades
  4. Nas propriedades, substitua o termo ABCDE por %s (o resultado será: http://en.wikipedia.org/wiki/Special:Search?search=%s).
  5. Digite uma palavra-chave que será utilizada na busca, como wp
  6. Clique em "ok" e pronto! Agora você pode fazer buscas no WikiPedia através do Firefox, digitando wp abc, por exemplo, na barra de endereços!

Edição:Fui informado pelo André que essa minha dica tá completamente furada. Na versão 1.0 Final do Firefox já é possivel fazer a mesma coisa apenas clicando com o botão direito em um campo de qualquer formulário de busca, e selecionando a opção "Add a keyword for this search". Rápido e indolor!

MSH (Microsoft Shell)

Sugestão do meu amigo Fabrício Ferreira:

A nova "carta na manga" da Microsoft. O conceito é incrível: um "pipeline shell" (como no Unix), só que ao invés de passarem caracteres pelos pipelines, passam objetos! Inacreditável, não? É a Microsoft copiando o que os outros fazem de melhor e melhorando (e, muito possivelmente, inserindo bugs e falhas de segurança, mas isso é outra história)!

Alguns links que falam sobre isso:
  Jon Udell's Weblog
  InfoWorld
  (não sei de quem é, mas tem vários links)
  Busca no Google

Beatallica

Som recomendado. São as músicas dos Beatles, cantadas ao estilo Metallica.

Os MP3 estão disponíveis para download gratuitamente. Quem gosta de Beatles E Metallica, vai adorar.

Google Desktop Search

Vale a pena conferir! No meu micro, ele levou cerca de dois dias para completar os índices. Agora, toda vez que realizo uma pesquisa no Google, a pesquisa é realizada também nos meus emails, históricos, e em todos os documentos que tenho na máquina. Simplesmente fantástico!

E não é nenhum plugin para o Internet Explorer nem nada do tipo, é um serviço do Windows. Acessível de qualquer browser. E muito seguro.

sábado, novembro 27, 2004

Componentes open-source

Hoje, após uma garimpada procurando por um componente no SourceForge.net, encontrei alguns mais que interessantes:

ActiveWidgets Grid - Uma Grid espantosa!

NVelocity - Port do Jakarta Velocity para .NET

OpenSmtp.NET - Para quem cansou do System.Web.Mail

XTree.NET - Componente de TreeView para Web muito bom (infinitamente melhor que o da Microsoft)

Advanced Data Provider - Um DataProvider para .NET que encapsula diversos outros (SQL Server, PostgreSQL, MySQL, etc).

.NET FTP Client - O nome diz tudo...

.NET Data Access Objects - Pretende ser um ORM para .NET. Vamos acompanhar para ver...

Granados - Biblioteca cliente de SSH em C#

Exception Reporter - Componente que entra em ação no momento em que ocorre uma exceção não capturada na aplicação (para Windows.Forms)

XPCC - XP Common Controls - Veja e confira!

Compona MatchLib - Biblioteca de expressões matemáticas em C#.

Compona Edit Controls - Controles de edição para Windows.Forms. Muito interessantes.

Compona Layout Containers - Essa é especial pros programadores Java.

SkyBound Visual Styles - Para melhorar o suporte a Visual Styles do .NET

MUD em C#

Ainda não tive tempo de olhar com calma, mas parece interessante:
  http://www.tigermud.com/
  ou
  http://sourceforge.net/projects/tigermud/

terça-feira, novembro 23, 2004

Nitroglicerina no VB6

Hoje, começando a dar manutenção num projeto VB6 e irritado que nem sequer a po*** do mouse wheel funciona naquela joça, procurei por algo que pudesse amenizar meu martírio.

E encontrei:
  http://www.axtools.com/

Meu VB6 ficou até mais gostoso de trabalhar que o meu Visual Studio .NET ;)

Recomendo a todos os pobres programadores VB6. Rodando é ainda melhor que nos screenshots!

segunda-feira, novembro 22, 2004

Segurança: Windows vs. Linux

Para quem administra servidores Windows e Linux, vale a pena verificar um documentário, escrito com muito conhecimento de causa:
   www.theregister.co.uk/security/security_report_windows_vs_linux/

Java / COM Bridge

Chamando objetos COM pelo Java:
   www-106.ibm.com/developerworks/java/library/j-intbridge/

Parâmetros da JVM

Encontrei hoje uma referência sobre os parâmetros possíveis para a JVM do Java.

Referência Oficinal da Sun:
   java.sun.com/docs/hotspot/VMOptions.html

Referência compilada, com indicações da versão de cada opção:
   blogs.sun.com/roller/resources/watt/jvm-options-list.html

quarta-feira, novembro 17, 2004

Atualizando o Linux

Depois de algumas semanas procurando, finalmente encontrei uma forma de atualizar o Fedora Core através dele mesmo, numa máquina que não tenha CD-ROM.

Testei apenas na atualização do Fedora Core 2 para o Fedora Core 3, mas deve funcionar com outras versões do Linux.

1. Crie um diretório para armazenar o "boot loader" do instalador. No meu exemplo, utilizei /boot/install/;
2. Pegue o conteúdo do arquivo /images/boot.iso, e copie para dentro de /boot/install;
3. Edite o grub.conf, incluindo uma nova opção para a instalação:

title Fedora Core Upgrade
   root (hd0, 0)
   kernel /boot/install/vmlinuz
   initrd /boot/install/initrd.img

4. Pronto. Basta reiniciar e selecionar a nova opção, "Fedora Core Upgrade", e então fazer a instalação a partir da forma que achar melhor: NFS, FTP, etc.

Correção:Ao iniciar pela opção "Fedora Core Upgrade", pode ser necessário digitar linux askmethod na tela de boot, caso contrário a instalação poderá tentar proceder como se fosse pelo CD-ROM e falhar.

domingo, agosto 08, 2004

Instalando o pacote kernel-ntfs para a versão atual do seu Kernel:

rpm -ivh http://heanet.dl.sourceforge.net/sourceforge/linux-ntfs/kernel-ntfs-`uname -r`.i686.rpm

segunda-feira, junho 14, 2004

Interessante: um repositório de bugs do .NET:

http://www.jelovic.com/dotnetbugs/

quinta-feira, março 04, 2004

Com uma rápida busca hoje, encontrei uma forma de buscar o nome do método que está atualmente em execução, no Java:

public String getCurrentMethodName() {
  return new Exception().getStackTrace()[1].getMethodName();
}


Funciona a partir da versão 1.4, quando as Exceptions passaram a ter o método getStackTrace(). Antes disso, é necessário fazer um parse na saída do printStackTrace():

public String getCurrentMethodName() {
ByteArrayOutputStream baos
= new ByteArrayOutputStream();

PrintWriter pw
= new PrintWriter(baos);
new Exception().printStackTrace(pw);
pw.flush();
String stackTrace
= baos.toString();
pw.close();

StringTokenizer tok
= new StringTokenizer(stackTrace, "\n");
String l
= tok.nextToken(); // 'java.lang.Throwable'
l = tok.nextToken(); // 'at ...getCurrentMethodName'
l = tok.nextToken(); // 'at ...<caller to getCurrentRoutine>'

// Parse line 3
tok = new StringTokenizer(l.trim(), " <(");
String t
= tok.nextToken(); // 'at'
t = tok.nextToken(); // '...<caller to getCurrentRoutine>'
return t;
}

quarta-feira, fevereiro 18, 2004

Essa é pra quem usa o Mozilla Thunderbird como cliente de e-mail:

Na versão 0.5 já está disponível (apesar de não documentado) o recurso de utilizar o browser padrão do sistema operacional para abrir os links contidos nos e-mails.

thunderbird/defaults/pref/all.js (aprox. linha 504):
pref("network.protocols.useSystemDefaults", true); // set to true if user links should use system default handlers
Mais dicas Linux:

O Fedora Core, como padrão, coloca no PATH os diretórios /sbin, /usr/sbin e /usr/local/sbin apenas para o usuário root (uid=0). Para mudar o comportamento para atribuir este PATH a todos os usuários que tiverem o grupo root (gid=0), altere a seguinte linha do seu /etc/profile:

aprox. linha 17:
-if [ `id -u` = 0 ]; then
+if [ `id -g` = 0 ]; then


Note que o -u foi trocado por um -g. Fácil, não?

Edição: Corrigindo a expressão para funcionar com qualquer usuário que esteja no grupo root (o teste anterior pegava apenas quem tivesse o grupo root como grupo principal):
if [ `id -G | grep -c "\<0\>"` = 1 ]; then

domingo, fevereiro 15, 2004

Dica rápida pra usuários do JBuilder:

Quando você trabalha usando o CVS como controle de versão dentro do JBuilder, ele salva a senha de acesso ao seu repositório quando vc configura o projeto.

O problema acontece quando você troca a sua senha. A interface do JBuilder não permite alterar nem apagar a senha salva, em nenhum local.

Pra apagar a senha salva do CVS manualmente, basta apagar o arquivo .cvspass no seu User Home.

Seu User Home no Windows (2000, XP e 2003) fica em:
C:\Documents and Settings\nomedousuario

E no Linux fica no seu diretório home mesmo:
~/
ou
/home/nomedousuario

quinta-feira, fevereiro 12, 2004

Estava com um problema no meu Fedora Core 1:

O up2date (o "Windows Update" do Fedora Core) estava me avisando de novas atualizações, mas quando eu tentava instalá-las, reclamava sempre de algumas dependências.

Até aí, nenhum problema. Mas o que estava acontecendo é que as dependências já estavam instaladas.

Então, eu tentava reinstalá-las, usando um clássico:

rpm -Uvh dependencia.rpm

Ao que o rpm respondia, avisando que o pacote já estava instalado (exemplo do perl):
[root@fabiux downloads]# rpm -Uvh perl-5.8.1-92.i386.rpm
Preparing... ########################################### [100%]
package perl-5.8.1-92 is already installed


Eu respondia com um --force, e tudo ficava bem:
[root@fabiux downloads]# rpm -Uvh --force perl-5.8.1-92.i386.rpm
Preparing... ########################################### [100%]
      1:perl ########################################### [100%]


Só que isso já estava se tornando rotina: toda vez que eu atualizava algum componente, o up2date reclamada de alguma dependência.

Então, resolvi tentar um:
[root@fabiux downloads]# rpm --rebuilddb

Pronto! Meus problemas acabaram!!

Moral da história: quando seu up2date começar a reclamar de dependências que vc tem certeza que já tem instaladas, tente um rpm --rebuilddb.

segunda-feira, fevereiro 09, 2004

Encontrei uma excelente introdução sobre Programação Orientada a Aspecto (Aspect Oriented Programming, ou AOP):

http://www.javaworld.com/javaworld/jw-01-2002/jw-0118-aspect.html

Recomendado!
Pra quem ainda não conhece o WebWork:

É um framework MVC que pode ser usado para desenvolvimento de JSP, como o Struts. Mas tem inúmeras vantagens em cima do Struts: enquanto o Struts implementa o MVC (Model-View-Controller), o WebWork implementa o Pull-HMVC (Pull Hierarchical Model View Controller). Vale a pena conferir:

http://www.opensymphony.com/webwork/

Referência: JavaFree.

quarta-feira, fevereiro 04, 2004

Utilizando o JBuilder X no Linux, ao mesmo tempo que o resto da equipe usava ele no Windows, tive problemas em relação aos encodings... Estávamos perdendo acentos ao fazer commit de um lado pro outro, cada vez os arquivos ficaram mais danificados.

Comparando as janelas dos dois JBuilders, descobri que um deles estava usando codificação UTF-8 (o do Linux), enquanto o outro usava ISO-8859-1 (o do Windows).

Peguei então o do Linux, e tentei rodar o JBuilder usando a mesma codificação do Windows. A maravilha de ferramenta que é o JBuilder não tem essa opção em nenhuma janela... Perdi tempo procurando.

Por fim, encontrei um arquivo chamado jbuilder.config, dentro da pasta bin onde o JBuilder está instalado. Lá, adicionei uma entrada nova, próxima a outras semelhantes:

vmargs -Dfile.encoding=ISO-8859-1

Pronto! Meu JBuilder agora entende ISO-8859-1.

Agora só preciso percorrer todos os arquivos que eu alterei anteriormente, corrigindo os acentos...
Pra quem costuma usar Java e tá de saco cheio do tema "Metal", do Swing:

http://java.sun.com/docs/books/tutorial/uiswing/misc/plaf.html

Eu tô usando direto, até dá mais vontade de usar os aplicativos feitos usando Swing.
Infelizmente, pros que usam AWT não tem mais solução, não.
Depois de duas noites em claro, finalmente consegui botar o Oracle Client pra rodar no Linux.
Ou, pelo menos, quase.

As ferramentas gráficas ainda não estão rodando (e acho que nem vou fazer questão que elas rodem, nesse primeiro momento. Deixa elas ali, quietinhas). Mas as ferramentas em modo texto (imp, exp, sqlplus, tnsping) tão rodando que é uma beleza.

Bom, foi difícil fazer funcionar a instalação, mas tem um monte de tutoriais aí na Internet explicando como fazer. O que ninguém explica é que.....

Não se pode copiar o TNSNAMES.ORA de uma máquina Windows pra máquina Linux.

Horas tentando, descobri que era esse o problema. Então, simplesmente apaguei o TNSNAMES.ORA e criei um novo, e digitei os dados. Voilà! Funciona!

Boa sorte aos sofredores que quiserem fazer o Oracle funcionar direitinho no Linux.
(Especificamente o Oracle 9.2 no Fedora Core 1).
Que legal! Tem RAR pra Linux!

http://www.rarlab.com/download.htm

domingo, fevereiro 01, 2004

E o primeiro post (na verdade, o segundo) que eu queria colocar, é uma dica pros pobres usuários Linux como eu que sofrem com as dores no pulso devido à falta (ou excesso) de sensibilidade do mouse no Linux.

Depois de fazer algumas buscas na Internet, acabei encontrando como fazer para tornar o mouse um pouco mais agradável.

Editando o /etc/X11/XF86Config, procure pela linha que fala do mouse (ela começa com Section "InputDevice").

Dentro deste bloco, tem várias linhas começadas em Option. Adicione uma nova:

Option "Resolution" "1200"

E veja por vc mesmo. É o mouse, de forma mais agradável. Agora é só fazer os ajustes de velocidade e aceleração no seu painel de controle favorito.
Êêêêêêê! Um blog que funciona!

Hoje resolvi me tornar um Nerd com "N" maiúsculo, e, pra isso, eu precisava de um Blog.

Eu tentei criar no Terra... Mas... Lá não deu muito certo. O blog, além de não entender os acentos (eu tinha que digitar usando códigos HTML, como &aacute; e &ecirc;), não tava funcionando, eu não conseguia ver meus posts.

É triste... Eu não gosto de usar serviços "importados", quando temos eles na terrinha. Mas...

Resolvi largar antes que fosse tarde demais. Esse aqui, já testei, funciona, e muito bem! Achei meu novo lar.