Débito Técnico

Olá,

esse é um dos posts não-técnicos com cara de técnicos. Li um post interessantíssimo do criador do PowerShell, Jeffrey Snover, sobre o que chamamos de débito técnico. Débito técnico é aquilo que você sabe que ficou faltando fazer no seu produto, release ou software, mas não fez porque não havia tempo, dinheiro, disposição ou porque precisava ser entregue mesmo.

Ele discute o uso de Drones e a captura de um deles pelo exército iraniano, e porque o débito técnico foi a razão dessa captura. Se tiver que escolher o que dá pra ser feito e o que fazer a coisa certa, escolha a segunda. Faça certo e não espere o problema acontecer.

Pra quem ficou curioso, leia o link abaixo. E se você não é o responsável pelas decisões no seu projeto, repasse para ele.

http://www.jsnover.com/blog/2011/12/18/iranian-drone-hack-and-technical-debt/

Até logo!\

Categorias dessa postagem:

Windows Installer

O Windows Installer é o componente utilizado pela Microsoft e recomendado para a criação de instaladores para Windows. Ele é importante na remediação porque alguns dos problemas podem acontecer não por causa de uma aplicação incompatível, mas por um instalador que não funciona completamente.

A determinação do tipo de problema (instalação, tempo de execução) é uma das primeiras tarefas com uma aplicação, seja desktop seja web. O funcionamento do Windows Installer é importante para o diagnóstico, e saber obter informações sobre a instalação, mais importante ainda. Veja a seguir algumas dicas importantes:

Habilitando logs completos

Para poder gerar logs completos de todas as atividades envolvidas durante a instalação, você pode usar um parâmetro da linha de comando que torna possível controlar quais atividades e como elas serão gravadas em disco. O comando msiexec /? mostra todas as opções disponíveis, mas a /L acompanhada do caminho para o arquivo de log (que pode ser relativo) é a mais importante. No exemplo a seguir, o log é gerado com todas as informações (parametro *) e de maneira detalhada (parametro V).

msiexec /i "C:\MyPackage\Example.msi" /L*V "C:\log\example.log"

É possível ainda, usando o parametro ! forçar com que cada linha seja gravada no log de maneira síncrona. Isso é especialmente útil nos casos em que a instalação e o msiexec são interrompidos de maneira abrupta, como uma falha na instalação que derrube o serviço do Windows Installer ou uma tela azul, por exemplo.

Habilitando logs de maneira global

Uma outra dica importante pode ser configurar o serviço do Windows Installer para gerar sempre logs no modo detalhado que foi descrito acima. A maneira mais simples de fazer isso é configurar a chave de registro Logging com o valor VoiceWarmup no registro.

HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer

clip_image001

Caso queira saber mais, consulte o link http://support.microsoft.com/kb/314852

Easter Egg Advice: VoiceWarmup são apenas duas palavras que podem ser geradas configurando todas as opções de log... Nada de mais :-)

Por se tratar de uma chave que pode ser controlada por meio de uma GPO, em alguns casos você pode ter de configurar as permissões desta chave para negar escrita a todos usuários, inclusive a conta LocalSystem, para impedir que a GPO volte a chave ao valor original. Se precisar automatizar, lembre-se do utilitário SubInAcl.

Interpretando e lendo logs do Windows Installer

E agora, com os logs, o que fazer?

Se você já tiver tabalhado antes com troubleshooting, apenas leia de trás para frente e procure informações que chamem a sua atenção. Seu bom senso vai ajudar mais que qualquer conselho.

Caso queira aprofundar ainda mais, sugiro a leitura do link a seguir, que contém várias informações sobre como interpretar as mensagens do log, categorias de mensagens, entre outros. Extremamente útil.

http://blogs.technet.com/b/richard_macdonald/archive/2007/04/02/how-to-interpret-windows-installer-logs.aspx

Enfim, por hoje é só. Vamos em breve continuar explicando problemas que podem ser resolvidos investigando MSIs e instalações com falha. Até a próxima!

Categorias dessa postagem:

TechED 2011–Windows Azure e PowerShell: automatizando tarefas

Olá pessoal,

no TechED desse ano apresentei uma das palestras menores, de 30 minutos, focada apenas em demonstrações. Slide-less, se existe o termo.

Com espaço curto e a possibilidade de fazer apenas demonstrações, minha idéia foi mostrar um pouco de PowerShell (sim, mesmo com mais de 5 anos de vida, pouca gente ainda usa essa ferramenta fantástica) e também de como usar o shell para controlar aplicações na nuvem, fazer a publicação e instalação, bem como iniciar o serviço e alterar o número de instâncias.

Mesmo sem slides, fiz um pequeno resumo do que usei no dia para que quem assistiu possa treinar quando puder. Segue minha lista, copiada diretamente do meu OneNote:

 

    Vinicius Canto Xavier @viniciuscanto no twitter

    The Joel Test: 12 Steps to Better Code

    1. Do you use source control?
    1. Can you make a build in one step?
    1. Do you make daily builds?
    2. Do you have a bug database?
    3. Do you fix bugs before writing new code?
    4. Do you have an up-to-date schedule?
    5. Do you have a spec?
    6. Do programmers have quiet working conditions?
    1. Do you use the best tools money can buy?
    1. Do you have testers?
    1. Do new candidates write code during their interview?
    2. Do you do hallway usability testing?

    Pasted from <http://www.joelonsoftware.com/articles/fog0000000043.html>

    Windows Azure Platform PowerShell Cmdlets

    http://wappowershell.codeplex.com

    Ingredientes

    • Azure SDK 1.4 ou superior e todos os pre-requisitos (IIS, etc)
    • PowerShell 2.0 (parte do W7 e 2008R2 por padrão)
    • ADO.NET Data Services Update for .NET 3.5 SP1
    • Windows Identity Foundation Runtime
    • Windows Identity Foundation SDK 4.0

    Instalação

    Módulo vs PSSnapin

    Prefira módulo se não houver necessidade do PSSnapin

    Makecert

    .\makecert -r -pe -a sha1 -n "CN=VCX's Windows Azure Authentication Certificate" -ss My -len 2048 -sp "Microsoft Enhanced RSA and AES Cryptographic Provider" -sy 24 c:\temp\testcert.cer

    Comandos usados hoje

    • Get-Command
    • Get-Member
    • Get-Help
    • Foreach-Object
    • Group
    • Select
    • Get-Module
    • Install-Module
    • Get-Command (de novo!)
    • New-Deployment
    • Get-HostedServices e Get-Deployment
    • Move-Deployment (VIP Switch)
    • Set-DeploymentConfiguration
    • Set-DeploymentStatus

Categorias dessa postagem:

Como pausar um BAT por 10 segundos? – Extended Version

Alguns amigos de trabalho me deram mais algumas dicas após ler o post anterior. Filtrei algumas, especialmente aquelas que usavam executáveis para fazer o serviço… mas uma outra me pareceu bastante viável e mais decente que o CHOICE apresentado anteriormente. Basta criar o VBS a seguir

wscript.sleep 1000

e use no seu bat usando o comando cscript:

cscript.exe wait.vbs //nologo

simples, direto, e que não pode ser cancelado pelo usuário (a não ser por um CTRL+C).

Categorias dessa postagem:

Como pausar um BAT por 10 segundos?

Da série coisas que o Vinicius lembra de cabeça, mas que é bastante difícil encontrar na internet e podem ser úteis um dia:

@choice /T 10 /C yn /D y > null

Se você for salvo por essa dica um dia, comente aqui Smile

Categorias dessa postagem: