Postagens

Mostrando postagens de 2010

Instalando Windows 7 – problema de HD / partição

Tenho um computador com 2 HD, e que estavam sendo utilizados da seguinte forma:HD1:Drive C:\ – Windows VistaDrive D:\ – ArquivosHD2:Drive F:\ – ArquivosDecidi instalar o Windows 7 nele. Fiz meus backups, coloquei o DVD do Win7 na máquina e dei boot. Na hora de escolher a partição, formatei a partição que estava instalado o Windows Vista e a informei para utilizada. Foi quando o setup do Win7 começou a reclamar de “Setup was unable to create a new system partition or locate an existing system partition”…Que diabos era isso, o Vista estava funcinando ok nesta partição há uns 3 ou 4 anos…Busquei na internet (sorte que eu estava com um netbook ao lado), e encontrei a solução: desliguei o segundo HD, aquele que tinha a partição F:\. Com isso, consegui escolher a partição para efetuar a instalação. Achei a solução estranha, mas o importante é que está funcionando…Obs. Essa solução eu encontrei na seguinte thread de fórum: http://arstechnica.com/civis/viewtopic.php?f=15&t=83939.Vamos ver…

O pior é impossível? – parte 3

Imagem
Desta vez vamos deixar a seção de “Pérolas do Desenvolvimento” mais voltada para a especificação.Na UML, um diagrama de sequência é a representação gráfica da troca de mensagens entre objetos, mostrando essa interação durante o tempo de execução da funcionalidade. O que agrega neste diagrama é saber a sequência de acontecimentos, para podermos programar corretamente o comportamento esperado do sistema.Só que pra isso precisamos de mais detalhes…vejam o diagrama abaixo. O que ele agrega para nós? Nada, é a mesma coisa que falar “usuário usa o sistema”. Não dá detalhes de quais objetos estão envolvidos na funcionalidade (generalizou-se o objeto “Aplicação” como todos os objetos internos do sistema).Documentação boa é documentação que tráz valor ao desenvolvimento. Se não trouxer, só serve pra engordar o orçamento do projeto.Obs. Não coloquei aqui, mas tem também o fluxo alternativo dessa funcionalidade…, que é igual ao fluxo básico…[]’s

Obras Completas de Carl Barks

Imagem
Finalmente, após alguns anos colecionando e gastos “caros” no Mercado Livre, consegui completar minha coleção das Obras Completas de Carl Barks.Carl Barks foi o criador de vários personagens da Disney, entre eles o Pato Donald e o Tio Patinhas. Ele foi fonte de inspiração não apenas para pessoas que trabalham com quadrinhos mas também outros artistas. Um exemplo é Steven Spielberg. A cena inicial de Indiana Jones, onde ele é perseguido por uma rocha rolante, é baseada na história “As Cidades do Ouro”, de 1954.

O pior é impossível? – parte 2

Imagem
Continuando a série de “pérolas do desenvolvimento”, temos esta chamada a um web service. Veja que forma inovadora de efetuar a chamada: através de um post http! Não há mais necessidade de se criar proxies!E o pior de tudo, isso funciona!Obs. Este método retorna um XML. Veja que é feito um tratamento no retorno obtido, para modificar HTML para que esteja num formato correto. Vários replaces…

Composite e Chain of Responsibility

Imagem
Pessoal,saiu outro artigo meu na .NET Magazine 76, ainda a respeito de design patterns: nesta edição, eu abordo os padrões Composite e Chain of Responsibility.[]’s

MVP – Passive View

Imagem
O MVP é um padrão para a construção de aplicações que interagem com o usuários (User Interface) que tem dois objetivos principais:Separar as responsabilidades na camada de apresentação, ou seja, o que é da tela e o que é da lógica de negócio do aplicativo. Facilitar os testes,  permitindo que os mesmos sejam automatizados. O pattern MVP pode ser separado em duas categorias: Passive View e Supervising Controller. A diferença entre os dois é o grau de testabilidade que cada um provê. Hoje iremos ver alguns detalhes da primeira categoria, com foco na questão de separação de responsabilidades.A idéia aqui é separarmos o que o que é da apresentação e o que é da lógica de acesso aos objetos do domínio de negócios. O diagrama acima mostra como temos essa separação entre as classes que compõe a estrutura básica do MVP Passive View. Do lado da camada de apresentação, temos a classe View, que no final das contas será uma tela WPF ou uma página ASP.NET. Do lado da lógica de negócios, temos a class…

Abusos dos design patterns

Recentemente recebi de um colega de trabalho um link de um artigo escrito por Rockford Lhotka, criador do framework de desenvolvimento de aplicações CSLA .NET.Neste arquivo, ele comenta sobre o mau uso dos design patterns nas aplicações.Ele condena o uso de padrões sem critério algum, ou seja, quando se faz o uso deles apenas por se “achar bonito”, sem se preocupar em realmente identificar um problema a ser resolvido. Isso acontece muito, principalmente quando se lança uma tecnologia nova ou um pattern se torna popular. Temos a tendência de nos “regogizarmos mentalmente” quando fazemos algo complexo.Em resumo, o artigo cita que se deve:Utilizar patterns quando se tem um problema a resolver e o padrão se aplica. Utilizar o padrão quando suas qualidades superarem suas desvantagens (sim, nenhum pattern é perfeito, todos têm seu lado ruim). Combinar padrões simples para enfrentar problemas complexos. Quando usado um padrão, ter certeza que todos os desenvolvedores e analistas envolvidos no p…

Roger Waters + David Gilmour: novas esperanças?

Imagem
http://www.davidgilmourblog.com/2010/07/hoping-foundation.htmlEsta notícia foi muito animadora! No sábado passado, 10/07/2010, David Gilmour e Roger Waters tocaram juntos em um evento de caridade, voltado para crianças palestinas (http://www.hopingfoundation.org/).As músicas que foram tocadas foram “To Know Him Is To Love Him” (usada na passagem de som do Pink Floyd), “Wish You Were Here”, “Comfortably Numb” e “Another Brick in the Wall (Part Two)”.Em 2010 e 2011, Roger Waters fará uma turnê em comemoração dos 30 anos do álbum “The Wall”. Será que cabe uma visita ao Brasil? Quem sabe, com David Gilmour junto?Esperança é a última que morre…[]’s

Windows Image Acquisition

Imagem
Windows Image Acquisition (WIA) é uma API da Microsoft para manipulação de dispositivos como câmeras e scanners. Tive o interesse em pesquisar esta API para a criação de um windows service em .NET que fique tirando fotos de tempos em tempos de quem está usando o computador e mandando para um site ou e-mail. Isso é bem útil no caso de roubo de notebooks…, pelo menos se pode ter a foto do maldito ladrão! O que vou colocar aqui é um exemplo de código que faz a captura de uma imagem. Uma coisa bem simples, mas que deu um pouco de trabalho até entender legal como é que funciona essa API. Antes de começar, é necessário dizer que esta API não funciona com todos os dispositivos. Bom, basicamente e teoricamente irá funcionar com dispositivos que estejam listados em Painel de Controle –> Scanners e câmeras. Por causa disso, esse exemplo que vou passar não funcionou no meu desktop, que possui uma webcam da marca Bright. No entanto, funciona no meu netbook, que possui uma webcam embutida (Acer). B…

Vulnerabilidades de um Tiger

Imagem
Achei interessante esta imagem, que mostra a lista de pontos fracos de um Tiger (tanque de guerra alemão, da Segunda Guerra Mundial).O link original desta imagem é http://www.lonesentry.com/articles/ttt_tigervulnerability/index.html, onde é explicado que ela se trata de uma tradução americana de um jornal sovietico. Na época em que foi publicado, os americamos haviam encontrado este carro de combate apenas algumas poucas vezes, durante batalhas contra o Afrika Korps e durante a invasão da Itália.

Krav Maga e Guinness!

Imagem
http://community.guinnessworldrecords.com/_A-maior-aula-de-defesa-pessoal/BLOG/2376153/7691.html?widgetId=321868No dia 28 de Maio, a comemoração do centenário de Imi Lichtenfeld reuniu em Copacabana 2212 alunos de Krav Maga, entre eles eu! Neste dia, entramos para o Guinness Book como a maior aula de defesa pessoal do mundo.Gostei muito de ter participado. É bom quebrar a rotina de vez em quando. Foi a primeira vez que estive no Rio, e achei a cidade muito bonita.[]’s

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, HTTP ou…

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 armazenamento…

Primeira graduação!

Krav Magá ou Krav Maga (em hebraico: קרב מגע, "combate próximo/de contato") é um sistema de combate corpo a corpo eclético, desenvolvido em Israel, que envolve técnicas de luta, agarramento e golpeamento. O Krav Magá é derivado de habilidades de briga de rua, desenvolvidas por Imi Lichtenfeld, que fez uso de seu treinamento como boxeador e lutador profissional, como um modo de defender o quarteirão Judeu durante o período de ativismo anti-semita em Bratislava da metade ao fim de 1930. No fim de 1940, após sua imigração para Israel, ele começou a fornecer treinamento em combate corpo-a-corpo para o que se tornaria as Forças de Defesa de Israel, desenvolvendo as técnicas que se tornaram conhecidas como Krav Magá. Desde então ele tem sido aperfeiçoado para ambas aplicações, civis e militares. (Wikipédia - http://pt.wikipedia.org/wiki/Krav_Mag%C3%A1)Depois de muito treinar, recentemente recebi minha primeira graduação, a faixa amarela! Pra quem tiver interesse, mais detalhes em

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 bateria. O medid…

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);
using (StreamWriter sr = new Stre…

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 dll que está no setup …