Postagens

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...

GAC vs. <codeBase>

Onde trabalho, não faz muito tempo que fomos questionados sobre boas práticas e o bom uso de assemblies .NET no GAC (Global Assembly Cache). Sinceramente, o melhor uso do GAC é não utilizá-lo, pelo menos no contexto que as aplicações aqui são desenvolvidas. As aplicações, com excessão das que são utilitários e frameworks, geralmente são isoladas no que se diz respeito a reaproveitamento de código. Então, o uso do GAC não se justifica para essa maioria dos casos. Umas das coisas legais que aprendi enquanto dava uma olhada no assunto foi utilizar melhor as configurações de runtime, mais especificamente em relação ao codebase. Com esta configuração, é possível indicar o caminho de um assembly que deve ser utilizado pela aplicação, estando ela onde estiver na máquina ou inclusive na rede! Com isso, acabou a desculpa de colocar um componente no GAC apenas porque a aplicação, seja ela windows ou web, não consegue encontrá-lo. GAC é para compartilhar, como o próprio nome diz. E como f...

Detection of product '{0}', feature 'Base_And_Client', component '{1}' failed

Imagem
Finalmente consegui resolver o problema que estava tendo com o Windows Installer e o COM+ de uma forma aceitável. O Problema O problema inicial foi quando criei um instalador, utilizando o InstallShield, para empacotar um aplicativo que utilizamos onde trabalho, que havia sido migrado de .NET 1.1 para .NET 2.0. Este aplicativo é composto de componentes .NET 1.1 (para manter a compatibilidade com versões de sistemas que usam esse runtime), .NET 2.0 com windows services e COM+ (também para manter compatibilidade). A compatibilidade foi necessária para fazer com que os sistemas que utilizassem a versão em .NET 1.1 desse aplicativo pudessem passar a utilizar a nova, sem a necessidade de alterações em código. E para manter a compatibilidade, foi criado o pacote COM+ citado acima, para ser o divisor de águas entre os runtimes 1.1 e 2.0, permitindo as chamadas. Quando este pacote foi instalado nos servidores de componentes, a cada chamada do aplicativo, eram logados os eventos abaixo, além de...

Windows Installer & Application Resiliency

Atualmente tenho lido sobre uma característica do Windows Installer, que é a "resiliência" (não encontrei ainda tradução para resiliency). Trata-se de uma característica onde o próprio serviço do Windows Installer consegue identificar se um produto instalado está saudável, ou seja, se todos seus componentes estão instalados e configurados, etc etc. O seguinte artigo é muito bom, pois explica um pouco mais sobre a forma que a resiliência funciona: (Application Resiliency: Unlock the Hidden Features of Windows Installer) http://msdn.microsoft.com/en-us/library/aa302344.aspx . []'s

Erro ao executar o SGEN

Imagem
Hoje encontrei um problema ao tentar compilar um projeto dentro do Source Control (no caso, Rational Clear Case). Este projeto em C# faz referência a um web service, e por isso no processo de compilação é chamado o SGEN para gerar dll *.XmlSerializers.dll. Pra ser sincero não sei porque esta dll deve existir, isso fica para um próximo post. A questão agora é como resolver o problema. O erro que ocorreu foi o abaixo. Deu access denied na hora de executar o SGEN em cima do meu projeto, sendo que este projeto faz referência a componentes (FxCopSdk.dll) que fazem parte do Source Control (ou seja, estão com o atributo read-only). ------ Rebuild All started: Project: bba.fwk.vbp.rules.code, Configuration: Release Any CPU ------c:\WINDOWS\Microsoft.NET\Framework\v3.5\Csc.exe /noconfig /nowarn:1701,1702 /errorreport:prompt /warn:4 /define:TRACE /reference:..\..\04_referencias\FxCop\FxCopSdk.dll /reference:..\..\04_referencias\FxCop\Microsoft.Cci.dll /reference:c:\WINDOWS\Microsoft.NET\Framewor...