Carlos's profileCarlos Mattos - Sorocaba...PhotosBlog Tools Help

Blog


    November 20

    Nova linguagem Microsoft F#

    Colegas, gostaria de compartilhar com vocês o texto divulgado pelo colega Fábio Galuppo (MVP C++) sobre a nova linguagem F# anunciada pela Microsoft. Confiram o texto abaixo:

    ...

    Acho que temos uma ótima notícia a ser divulgada aos MVPs e programadores .NET em geral.

    Ontem fiquei muito contente em saber desta notícia: http://blogs.msdn.com/somasegar/archive/2007/10/17/f-a-functional-programming-language.aspx

    Blog do Don Syme (criador do F#): http://blogs.msdn.com/dsyme/archive/2007/10/17/s-somasegar-on-taking-f-forward.aspx#comments

    Já venho pesquisando e criando ferramentas de apoio com F# a uns 2 ou 3 anos. Sendo que a partir dela surgiu meu interesse em functional programming (OCaml, Haskell, ...).

    Interessante saber que desde a incepção de anonymous methods no C# 2.0 e agora com o LINQ e lambda, o .NET Framework traz um novo estilo de programação, totalmente influenciado pelo paradgima funcional. A teoria matemática do Lambda Calculus de Alonzo Church foi a percursora deste paradigma de programação.

    A saber, no ano passado, no evento sobre Linguagens de Programação realizado pela Tempo Real, eu falei sobre C++/CLI e C#. Porém introduzi a evolução do C# (3.0, lambdas e LINQ) e reforçei o poder dos anonymous methods - obviamente que introduzi superficialmente o F# e suas construções para contextualizar sobre a influência da programação funcional ao .NET em geral.

    Não aconselho ao programador mediano ou grandes projetos comerciais migrarem para F#. Mas conhecer o paradigma funcional possibilita que um programador com fundamentos em linguagens tradicional (JAVA, C#, VB, Delphi,...) venha a resolver problemas que seriam complexos no paradigma imperativo de forma diferenciada e eficaz.

    Vejo o emprego do F# nos segmentos de pesquisas em geral, aplicações visualização (2D ou 3D) e matemática aplicada, bem como na construção de ferramentas e bibliotecas da apoio e até mesmo como scripts para construção de jogos.

    Grande abraço,

    Fabio Galuppo
    MVP Visual C++

    Arquivos MDW no Access 2007

    Alguns colegas têm me perguntado o que aconteceu com a ferramenta Workgroup Administrator no Access 2007, principalmente como associar um arquivo MDW (Arquivo de Informações do Grupo de Trabalho) à um projeto do Access 2007.

    O Access 2007 realmente está mudado, assim como as outras ferramentas do Office 2007, o Access passou por uma transformação desde sua interface até sua estrutura e formatos de arquivos.

    Porém, a estrutura e o conceito dos arquivos de informações dos grupos de trabalho (SYSTEM.MDW) não foram alterados e sua utilização continua a mesma. O problema é que ninguém encontra o utilitário Workgroup Administrator no menu do Access 2007 para associar arquivos MDW aos projetos já existentes.

    Para arquivos novos, criados no Access 2007 ou arquivos do Access 2003 que você deseja implementar a segurança em nível de usuário, basta utilizar o menu Database Tools para acessar a opção Users and Permissions, e acionar o assistente User-Level Security Wizard este assistente o conduzirá passo-a-passo para criar seu arquivo de grupo de trabalho e associá-lo ao Access.

    Para aqueles que desejam associar-se à um arquivo MDW já existente (aplicado para projetos criados no Access 2003 e versões anteriores também), basta criar um atalho para iniciar o Access acrescentando um parâmetro (switch) de inicialização, neste caso o parâmetro necessário é o /wrkgrp. Com este parâmetro é possível fazer a associação com o arquivo MDW. A sintaxe está apresentada abaixo:

    Path_Instalacao_Office12\MSACCESS.EXE /wrkgrp Path_Arquivo.MDW

    Por exemplo, o atalho abaixo associa o Access ao arquivo de grupo de trabalho chamado WD5Access.mdw:

    "C:\Program Files\Microsoft Office\Office12\MSACCESS.EXE" /wrkgrp C:\Users\CarlosM.WD5\Documents\Sources\Access\WD5Access.mdw

    Ocultando o diálogo "Generating Previews" do Método System.Drawing.Printing.Print()

    Muitas aplicações .NET utilizam o Namespace System.Drawing.Printing para criar documentos de impressão (PrintDocument) e enviá-los para impressora ou para janela de PrintPreview.

    Um cenário comum é encontrado em aplicações WindowsForms. Imagine um ponto de venda que utiliza uma aplicação WindowsForms para impressão de cupons, comandas entre outros jobs. Considere que o operador desta aplicação utiliza o teclado para executar todos os comandos e entradas de dados (o uso do mouse é minimizado). Em cenários como este, é comum que a tecla [ENTER] seja pressionada repetidas vezes para completar um processo de entrada de um novo pedido por exemplo.

    Tive um cenário semelhante implementado no módulo de caixa de um restaurante, o volume de comandas entregues pelos garçons ao caixa é grande e o procedimento do caixa para inserir os pedidos no sistema é rápido e agilizado pelo uso do teclado. Ao final do processe de inserir uma nova comanda, o sistema verifica os itens inseridos e envia um job para diferentes impressoras dependendo dos itens, por exemplo, os itens "pratos quentes" são impressos na cozinha, enquanto as bebidas são enviadas para a impressora do bar para que o pedido seja atendido.

    O problema é que com o tempo, o usuário do caixa, tende a digitar as entradas cada vez mais rápido. Isso faz com que a tecla [ENTER] seja pressionada repetidas vezes, algumas para avançar para o próximo campo e outras para acionar os botões de comando. Contudo, é comum que o usuário pressione esta tecla pelo menos 1 vez mais além do necessário. Se isso ocorre quando a janela de diálogo "Generating Previews" está sendo exibida, o job de impressão é cancelado.

    Imagine a situação, você está na mesa, solicitou um prato, o garçon emitiu a comanda, entregou ao caixa, o caixa registrou o pedido, mas, sem perceber, pressionou a tecla [ENTER] mais uma vez cancelando o envio da impressão para a cozinha. Seu prato demora, você reclama para o garçon, ele reclama para o caixa, o caixa culpa a cozinha e no final de tudo a cupla recai sobre o sistema que devia ter previsto este cenário e utilizado uma implementação diferente.

    A solução: A solução é simples, porém os exemplos de impressão na documentação do MSDN não aborda nenhum cenário semelhante. Basicamente o que você precisa é mudar o PrintController do seu objeto PrintDocument. Por padrão, o PrintController é um objeto do tipo PrintControllerWithStatusDialog, assim toda vez que o método Print() é invocado, o PrintControllerWithStatusDialog exibe a janela Generating Previews. Basta substituí-lo pelo objeto StandardPrintController que a janela não será mais exibida. A sintaxe correta para esta construção é:

    pd.PrintController = new StandardPrintController();
    pd.Print();

    Simples assim!

    Podcast com a entrevista sobre a liberação do código-fonte do .NET Framework

    O website Hansel Minutes (http://www.hanselminutes.com/default.aspx?showID=101) publicou o áudio da entrevista com Shawn Burke da Microsoft. Nesta entrevista, Scott Hanselman e Carl Franklin conversam com Shawn Burke sobre a nova versão do Visual Studio que possibilita que o desenvolvedor estenda a depuração de suas aplicações até as classes do .NET Framework. A entrevista está no idioma original (Inglês), mas vale a pena conferir.

    Liberado acesso ao código-fonte do .NET Framework 3.5

    A Microsoft hoje fez um importante anúncio sobre a próxima versão do Visual Studio 2008, que permitirá acessar o código fonte das bibliotecas do .NET Framework 3.5 para ajudar no processo de depuração de sua aplicação. Os arquivos disponibilizados incluem os comentários da equipe de desenvolvimento da Microsoft.


    Além de permitir o download dos arquivos-fonte separadamente (onde o desenvolvedor pode utilizar qualquer editor de texto para analisar o conteúdo), a Microsoft já anunciou que o Visual Studio 2008 oferecerá suporte completo para depuração do código-fonte do .NET Framework.

    A liberação do código-fonte inclui o BaseClassLibrary (System, System.IO, System.Collections, System.Configuration, System.Threading, System.Net, System.Security, System.Runtime, System.Text, etc), ASP.NET (System.Web), Windows Forms (System.Windows.Forms), ADO.NET (System.Data), XML (System.Xml), and WPF (System.Windows).

    O código-fonte estará disponível sob o Microsoft Reference License (MS-RL).

    Além do impacto altamente positivo que esta abertura representa para todos os profissionais de desenvolvimento, penso que um impacto ainda maior será percebido junto à Comunidade Acadêmica, que receberá esta notícia com grande vibração!

    Mais apoio ao OpenXML

    O padrão OpenXML permite que qualquer aplicativo leia ou gere documentos compatíveis com o Microsoft Office, sem sequer precisar ter adquirido nenhuma cópia do MS Office. Ele é baseado em XML e arquivos .ZIP, ambos padrões abertos e amplamente disponíveis em qualquer plataforma.

    Ele atende a pedidos antigos da comunidade em geral (e ironicamente com peso na comunidade Open Source):

    - Garantia de que mesmo em futuro distante os documentos possam ser lidos;
    - Licença de usar o formato sem royalties ou problemas de patentes;
    - Facilidade de criar e ler arquivos sem ter que adquirir o aplicativo Office
    - Documentação formal do formato (que diga-se de passagem agora também existe para os formatos binários)

    Gostaria de solicitar aos amigos que cadastrem-se no site http://www.openxmlcommunity.org/joincommunity.aspx e manifestem seu apoio. É interessante suprir uma “quote” (frase) em Português. Este é um site mantido pela Microsoft. Não custa nada.

    Aproveitando: existe outro formado de documentos baseado em XML chamado ODF. Este formato é apoiado pela Sun e IBM, com óbvias conseqüências comerciais. Eu pessoalmente acredito que seja do interesse dos usuários que os dois formatos existam e prosperem:

    Os dois formatos foram feitos para resolver problemas diferentes e cada um tem pontos fortes e fracos. Por exemplo, o ODF é um padrão novo e conseqüentemente mais “limpo” e fácil de usar. Por outro lado, o OpenXML teve como pré-requisito a compatibilidade com Microsoft Office e é 100% compatível com este, mas é mais complexo;

    Ter mais de um fornecedor os “matêm honestos”, pois evita monopólios e abusos de poder e preço, especialmente em compras do governo – deixo os “problemas potenciais” ao cargo da imaginação de cada um.

    O Visual Studio 2008 já está disponível!

     A Microsoft liberou nesta segunda-feira, dia 19/11/2007, a versão comercial do Visual Studio 2008 (RTM). Os assinantes MSDN serão os primeiros a ter acesso ao produto, que deve chegar às prateleiras das lojas em breve! Visite o MSDN para maiores informações.

    Contagem regressiva para o Visual Studio 2008!

    Durante o TechEd Developers em Barcelona, Mr. "Soma" Somasegar anunciou que o Microsoft Visual Studio 2008 e o .NET Framework 3.5 chegará ao mercado ao final do mês de Novembro/2007. Esta nova versão permitirá aos desenvolvedores e empresas de desenvolvimento tornarem-se mais produtivos, explorar os mais novos recursos da plataforma Windows, do Microsoft Office 2007 e criar soluções inovadoras para a Web. Além disso o Visual Studio Team System 2008 oferece o ambiente perfeito para colaboração e gerenciamento eficaz do ciclo de desenvolvimento de softwares.

    Thomson Prometric em Sorocaba!

    A WD5 Soluções Corporativas, agora é mais um Authorized Prometric Test Center, o único em Sorocaba e Região.


    Agora, os profissionais da nossa região que buscam a certificação profissional homologada por grandes nomes como Microsoft, IBM, Sun Microsystems, Oracle, entre outros nomes, não precisam mais deslocar-se para Campinas ou São Paulo, podem contar com um centro autorizado para realizar seus exames aqui mesmo em Sorocaba.

    Se você ainda não conhece nossos serviços, acesse http://www.wd5.com.br/ ou visite-nos à Rua da Penha, 1277. Mais informações podem ser obtidas através dos telefones (15) 3012-9780 ou (15) 3233-2385.

    Comunicação e Colaboração

    Verdadeiros programadores aprendem como trabalhar em equipe. Escrever código de forma legível é parte de ser um programador que trabalha em equipe.

    O computador provavelmente lê seu programa tão frequentemente quanto outros membros da sua equipe o fazem, mas ele é muito melhor na tarefa de ler um código pobre do que as pessoas que trabalham com você.

    Quando estiver codificando, como sugestão, tenha sempre em mente que outros colegas da equipe provavelmente terão que ler seu código.
    Programar é, em primeiro lugar, comunicar-se com outro programador, em segundo lugar comunicar-se com o computador.

    Existem vários níveis atribuídos aos programadores:

    Nível 1: Principiante
    Um programador Beginner é capaz de utilizar os recursos básicos de uma linguagem. Neste nível, o programador pode escrever rotinas, loops, estruturas condicionais entre outros recursos da linguagem.

    Nível 2: Intermediário
    Um programador de nível intermediário é capaz de utilizar os recursos básicos de várias linguagens e tem domínio para trabalhar confortavelmente com pelo menos uma linguagem.

    Nível 3: Especialista
    Um programador especialista domina todos os recursos de uma linguagem ou de um ambiente de desenvolvimento, ou os dois. Programadores neste nível são valiosos para suas empresas, e alguns programadores nunca vão além deste nível.

    Nível 4: Guru
    Um Guru, possui as características de um especialista (Nível 3) e reconhece que apenas 15% da tarefa de programar refere-se à comunicar-se com o computador e 85% refere-se a comunicar-se com pessoas. Estudos mostram que, em média, apenas 30% dos programadores desenvolvem trabalhos sozinhos. Um Guru escreve código para pessoas ao invés de escrevê-lo para máquinas. Os verdadeiros Gurus escrevem código verdadeiramente cristalinos e adequadamente documentado também. Gurus não tem interesse em desperdiçar suas células cinzas reconstruindo a lógica de uma seção de código que não foi devidamente escrito/documentado de forma correta.

    Um grande programador que não se preocupa com a legibilidade do seu código, por maior que seja seu conhecimento, provavelmente nunca passará do Nível 3. Apesar que esta afirmação dificilmente é apresentada num cenário real. A principal causa de programadores escreverem código de má qualidade é que o código deles é ruim mesmo. Eles não costumam dizer “Vou escrever meu código de uma maneira difícil de entender”. Eles simplesmente não possuem conhecimento suficiente para escrever um código realmente legível, o que os coloca no Nível 1 ou Nível 2.

    Exemplos de piores códigos que já tive oportunidade de examinar, incluiam variáveis com nomes como: X, XX, XXX XX1, XX2, T, Y, entre outros. Nomes de objetos como: TextBox38, DropDown22, e por aí afora.

    Conclusão
    Não é pecado ser um programador iniciante ou intermediário. Não é pecado ser um programador especialista ao invés de um guru. O pecado está em quanto tempo você se manterá entre os níveis de iniciante e especialista depois de saber o que tem que ser feito para melhorar seu código.

    Code Complete, 2nd Edition
    Steve McConnell
    Microsoft Press

    Congratulations MVP!

    MVP_Horizontal_BlueOnly

    Dear Carlos de Mattos,

    We are pleased to present you with the 2007 Microsoft® MVP Award!

    The Microsoft MVP Award is our way of saying thank you and to honor and support the significant contributions you make to communities worldwide. As a recipient of Microsoft’s Most Valuable Professional award, you join an elite group of technical community leaders from around the world who foster the free and objective exchange of knowledge by actively sharing your real world expertise with users and Microsoft. Microsoft salutes all MVPs for promoting the spirit of community and enhancing people’s lives and the industry’s success everyday. To learn more about the MVP Program, visit: www.microsoft.com/mvp.

    Your extraordinary efforts in Visual Developer - Visual C# technical communities during the past year are greatly appreciated.

    On behalf of everyone at Microsoft, thank you for your ongoing contributions to Visual Developer - Visual C# technical communities.

    Sincerely,

    Candice Pedersen, MVP Program Manager
    Leonardo Tolomelli (leotolo@microsoft.com), your MVP Lead

    Deu Visual Studio 2005 em desenvolvimento!

    visual_studio2005
    Segunda-feira, 27 de novembro de 2006 - 21h37

    SÃO PAULO – Na categoria Desenvolvimento, o vencedor do Prêmio INFO 2006 foi o Visual Studio 2005, da Microsoft. A ferramenta recebeu 52% dos votos dos leitores da INFO, superando com folga os competidores Delphi Architect, da Borland, e a plataforma Ruby on Rails, criada pelo programador David Hansson.

    A empresa foi representada pelo diretor de plataforma de desenvolvimento Carlos Alberto Ferreira, que credita o sucesso do Visual Studio à comunidade de programadores. “Temos mais de 100 mil desenvolvedores cadastrados, que divulgam e compartilham informações sobre o produto”, afirma Ferreira.

    O Visual Studio 2005 também conta com versões gratuitas disponíveis para download, uma para cada linguagem do pacote. É uma opção interessante para desenvolvedores individuais, que querem experimentar a ferramenta antes de investir em uma versão completa, ou até para quem deseja criar programas gratuitos e de código aberto sem gastar nada.

    Eric Costa, da INFO

    Estudo de Produtividade com Microsoft Visual Studio 2005

    A Microsoft contratou a VeriTest, uma divisão da Lionbridge Technologies, para medir as potenciais melhorias relacionadas à produtividade no desenvolvimento de aplicações entre as plataformas ASP e ASP.NET 2.0.

    A abordagem utilizada neste estudo foi recrutar desenvolvedores experientes em ASP e ASP.NET 2.0. Foram formados dois grupos iguais com quatro desenvolvedores cada um. Os dois grupos receberam a mesma especificação para trabalhar. Durante o estudo as equipes tiveram cinco dias para implementar o máximo possível da especificação recebida.

    O resultado deste estudo revelou que os programadores ASP.NET 2.0 conseguiram realizar 113% mais tarefas do que a equipe ASP dentro do mesmo período. Também foi concluído que os desenvolvedores ASP.NET 2.0 conseguiram criar páginas com conteúdo 357% mais rápido do que a equipe ASP.

    Edward Bear e o Desenvolvimento de Softwares (Steve McConnell)

    Bump, bump, bump...

    Por mais de uma geração, projetos de desenvolvimento de software tem falhado sem uma boa razão. Esses projetos não alcançaram o estado da arte no desenvolvimento de software. Eles não ultrapassaram os limites de pesquisas em áreas específicas. Eles falharam simplesmente porque não podiam suportar o próprio peso. Assim como o urso Edward, desenvolvedores de software, gerentes de projeto e seus clientes, batem a cabeça na escada sempre da mesma forma, projeto após projeto. O percurso que eles seguem é sempre familiar, porém ineficiente, fadado ao erro, e também doloroso.

    A sobrevivência de um projeto não acontece acidentalmente. O trabalho exigido para o sucesso de um projeto não é especialmente dificil, e também não é apenas um fator que consome tempo, mas precisa ser executado de forma disciplinar desde o primeiro até o último dia do projeto.

    A prática do desenvolvimento de software avançou até um ponto onde poucos projetos de médio porte estão destinados ao fracasso. Quando os desenvolvedores, gerentes e clientes pararem de bater suas cabeças contra os mesmos e velhos problemas e começarem a preocupar-se em adquirir as habilidades necessárias, seus projetos terão sucesso.

    Steve McConnell