Postagens

O pior é impossível?

Imagem
Sabemos que hoje a TI é uma das áreas que tem a melhor relação entre salário e tempo de aprendizado / experiência. O que quero dizer é que hoje uma pessoa que tem um mínimo necessário de instrução já consegue trabalhar recebendo um salário razoável. Isso, entre outras coisas, causado pela falta de regulamentação que temos na nossa categoria. Com isso, várias pessoas que ainda não estão preparadas são atraídas para este ramo, e isso só traz desvantagens, como sistemas mal projetados e codificados. Isso se traduz em dores de cabeça para os demais analistas e programadores. Dou como exemplo a imagem abaixo, que foi tirada da vida real. Vamos entender o problema que há nesse código. Temos uma classe X (retirei os nomes e namespaces para evitar que a pessoa fique chateada), que será exposta em um serviço WCF. Podemos perceber isso pois ela é decorada com (ambos!) os atributos Serializable e DataContract. Ou seja, instâncias dessa classe serão trafegadas pela rede, seja através de TCP,...

O que são design patterns?

Imagem
Design patterns não têm segredos: tratam-se de soluções bem experimentadas e documentadas para problemas comuns. São as boas soluções para problemas que sempre enfrentamos. E esse conceito não está relacionado apenas à TI (aliás, nem começou na TI, começou na engenharia). Se observarmos, até na natureza existem tais conceitos de patterns. Tomemos como exemplo o vôo das aves. Existe um problema que é o desgaste que uma ave tem ao voar longas distâncias, geralmente em rotas migratórias. Para resolver esse problema, os pássaros voam em grupos, em uma formação “V”: dessa forma, as aves que estão atrás da primeira se aproveitam do vácuo gerado pelo vôo da líder, diminuindo o atrito com o ar e conseqüentemente diminuindo a energia gasta por elas. Quando o primeiro pássaro se cansa, ele vai para o final do grupo, e é substituído. Com isso, o grupo consegue uma autonomia de vôo em média 70% melhor do que se estivessem sozinhos. Este padrão de vôo é utilizado por aeronaves militares e também ...

Backup de webmail

Imagem
Preocupado com a possibilidade de perder as mensagens armazenadas no webmail que uso (Yahoo!), decidi fazer um backup dos meus e-mails. No entanto, o próprio webmail não dá uma funcionalidade desse tipo (fazer o download das mensagens em algum formato que possa ser lido em qualquer programa de e-mail como o Outlook). Com isso, houve a necessidade de fazer uma “gambiarra”. Decidi instalar o Mozilla Thunderbird pra baixar todas as minhas mensagens da caixa de entrada através de POP3 (felizmente o Yahoo! dá suporte para isso). Dessa forma, eu baixei todas as minhas mensagens (pra ser sincero, ainda estou baixando, pois é um processo demorado já que o POP3 só baixa o que está na caixa de entrada, e para fazer o backup das mensagens enviadas, por exemplo, estou tendo que movê-las da pasta Enviadas para a Entrada). Bom, até aí é a metade da solução. Falta exportar essas mensagens em disco, para poder guardar em um DVD de backup. Eu até poderia, mas não quero guardar os arquivos de ar...

Strategy + Flyweight

Imagem
Pessoal, escrevi um artigo sobre design patterns na edição 72 da .NET Magazine . Ele foca em cima dos padrões Strategy e Flyweight . A idéia foi dar um conceito geral sobre esses padrões, e depois criar uma aplicação onde se faça uso deles ao mesmo tempo. Isso surgiu da questão onde eu achava na Internet apenas exemplos isolados de uso de patterns, quase impossível encontrar coisas onde o uso era combinado. Espero que gostem! []’s

Dicas para manter a vida útil de uma bateria de notebook

Obs. As dicas se referem à uma bateria de lítio! A pior situação possível para a bateria é usá-la com o notebook na tomada: sempre remova a bateria nestas situações, pois senão a bateria ficará sempre em um estado de carregar e descarregar. Neste caso, mantenha a bateria fora do notebook com uns 40% da sua carga (lembre-se de usar o notebook ligado em um estabilizador ou no-break). Não as deixe fora do notebook totalmente descarregadas. Reduza o calor que cerca a bateria. Calor aumenta a taxa na qual a bateria envelhece, resultando em perda do tempo de vida. Em casa, isso significa manter o notebook longe de carpete ou qualquer outro isolante que faça com que a temperatura do laptop aumente. Não fique descarregando totalmente e carregando totalmente a bateria, isso diminui seu tempo de vida. Às vezes a bateria precisa ser descarregada e recarregada por completo. Enquanto isto é mau quando feito constantemente, fazê-lo a cada 3 ou 4 semanas mantém a precisão do medidor da bate...

Obtendo usuários de grupo AD

Abaixo está um simples código para se obter os usuários que pertencem a determinado grupo de AD. Este snippet percorre recursivamente o AD, preenchendo um arraylist com os usuários nele presentes. É uma Console Application, e recebe como parâmetros o nome do grupo (ex.: Grp-Desenvolvedores ) e o LDAP (ex.: LDAP://DC=dominio,DC=com,DC=br ) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Collections; using System.DirectoryServices; using System.IO; namespace ADUsersFromGroup { class Program { static ArrayList _userNames = new ArrayList(); static ArrayList _groupNames = new ArrayList(); static void Main(string[] args) { Console.WriteLine("Informe o nome do grupo AD e pressione ENTER: "); string group = Console.ReadLine(); string ldap = Console.ReadLine(); ArrayList list = GetADGroupUsers(group, ldap); usi...

Problema: Instalando Office 2007 em um netbook

Imagem
Ganhei um netbook (Acer Aspire One D250) no Natal. Decidi instalar o Windows XP nele para ir usando, enquanto eu não pego um Windows 7 (32 bits, por sinal, pois esse modelo de netbook só suporta esta arquitetura). Após instalar o Windows XP, através do USB (utilizei o aplicativo WinToFlash para copiar o setup de instalação do CD para o pen drive), precisei instalar o Office 2007. Durante a instalação do Office, ocorreu um problema e não consegui terminá-la. O erro está na imagem abaixo: O setup reclamou que não conseguiu atualizar uma dll chamada fp4autl.dll que fica em c:\arquivos de programas\arquivos comuns\microsoft shared\web server extensions\40\bin\. Fui neste diretório e esta dll não existia. Procurando na Internet, encontrei um caso similar . Parece que este problema ocorre pelo fato de ter instalado o sistema operacional no netbook pela USB (talvez a aplicação que move o setup para o pen drive tenha feito alguma alteração…). Bom, para resolver basta copiar a dl...