Chegando há pouco a casa, após dia recheado de conferências bem interessantes, deixo-vos aqui o relato da minha experiência, algumas curiosidades e principalmente das novidades que tive oportunidade de tomar conhecimento ao longo deste primeiro dia do evento DevDays09, realizado no Instituto Superior Técnico, campus Taguspark.
Dado que o começo do evento estava previsto para as 9h30, foi necessário acordar bem cedo para chegar ao local com uma boa margem, proceder a um rápido check-in (e ficar ainda cerca de 20 minutos sem nada fazer…), e apreciar a beleza das instalações do Taguspark.
Pouco depois da hora prevista, começou a KeyNote, apresentada por um dos representantes da Microsoft em Portugal que, à semelhança de Steve Ballmer, bem tentou animar os developers, obtendo um “SIIIM” em resposta ao seu “Estão preparados?”, sem grande resultado.
Embora o ânimo matinal não fosse o melhor, foi com empenho que obedecemos ao orador: dizer “Bom dia, como está?” ao developer à nossa esquerda e direita. Foi uma forma bem-humorada de começar um dia que se previa longo.
Nesta KeyNote, foram basicamente apresentadas algumas linhas gerais do que se iria passar nas próximas horas, começando por uma sensibilização a todos os participantes em relação à crise económica e financeira em que vivemos actualmente, referindo estratégias, pontos de partida e atitudes necessárias à superação de toda esta conjectura. “É em momentos difíceis que paramos e pensamos, qual a melhor estratégia para ultrapassar as nossas dificuldades.”
Após esta breve motivação, foram apresentados alguns dos produtos mais recentes da Microsoft, que iriam ser apresentados em maior detalhes nestes 2 dias de conferência.
Foi ainda feita uma demonstração ao vivo da mesa que incorpora o Microsoft Surface, trazendo para isso, 3 developers de 3 empresas que conceberam em 2 semanas pequenas aplicações destinadas a esta nova tecnologia, prevista para breve em Portugal. Apesar dos ocasionais lags na interface do Surface, originados também pelo facto de 4 pessoas estarem constantemente a tocar no ecrã, a demonstração decorreu com relativo sucesso.
Um simples “jogo da carica” que marcará presença no próximo Super Bock Super Rock, um leitor de jornais em PDF revolucionado pela interacção multi-toque simulando um verdadeiro jornal a ser folheado, arrastado e aproximado, e ainda um gestor de ficheiros clínicos, que poderá ser utilizado por exemplo num hospital em que, recorrendo apenas a 2 cartões de médico, é possível trocar ficheiros de pacientes, ver radiografias, vídeos de ecografias (usando o Silverlight), foram algumas das aplicações que mostraram ao público as potencialidades desta mesa.
E não poderia deixar de se falar no novo Windows Azure, a nova plataforma especial para execução de aplicativos da Web, baseada nos conceitos de cloud-computing, que foi também introduzido nesta altura, mas que guardarei para as próximas linhas, visto que as minhas próximas 2 conferências dedicaram-se exclusivamente à explicação desta nova tecnologia.
Introduction to Windows Azure and the Azure Service Platform (parte 1 e 2), por Beat Shwegler Sendo assim, após um pequeno intervalo que chegou para beber um capuccino quentinho para acordar e aquecer a alma, encaminhei-me para um dos anfiteatros, já fora da hora prevista, como é habitual neste tipo de eventos.
Instalei-me prontamente na 1ª fila, muito por causa da falta dos meus óculos para ver ao longe que infelizmente não estavam comigo, bloco de notas e caneta prontos, e deu-se início à apresentação.
Não vou aqui explicar o que é o Windows Azure, sugiro que dêem uma olhada no artigo publicado anteriormente aqui no Pplware.
O PORQUÊ O orador começou por nos elucidar acerca do porquê da utilização do cloud-computing, referindo razões como a escalabilidade, que requer aumentos de base de dados SQL, mais servidores web, mais re-estruturação da rede, originando um investimento desajustado em determinadas altura do ano (por exemplo a Amazon na altura do Natal) e desta forma, espaço que ficará inutilizado.
Como exemplos de serviços que estejam nestas condições, foi referido o serviço web 2.0 Facebook, que actualmente atingiu os 175 milhões de utilizadores!
- Consumo de energia
Pretende-se reduzir ao máximo o consumo de energia, atingindo a máxima eficiência possível permitida pela tecnologia actual, praticando desta forma o Green IT, ou seja, uma tecnologia verde, amiga do ambiente.
Já no Windows Server 2008 se notam melhorias significativas no consumo de energia face o Windows Server 2003, mas não deixam de ser completamente absurdos os consumos de energia causados pelos datacenters que, não gastam a maior parte da energia nos seus CPUs (1%) ou mesmo nos seus discos, mas sim na refrigeração, esse flagelo que tanto condiciona o funcionamento destas pequenas grandes brincadeiras que custam 500 milhões de dólares cada, e ocupam cerca de 10 campos de futebol.
Como solução para este problema chegam a ser construídos inclusivé, datacenters em locais muito frios, como na Islândia ou mesmo Antártida, para tirar partido das temperaturas ambiente e assim poupar energia.
- Escalabilidade
Como já foi dito, o aumento de custos nos servidores torna-se exponencial à medida que é necessária mais capacidade de processamento de dados. Tarefas como:
- Configurar o servidor;
- Resolver falhas de hardware;
- Fazer upgrades para versões mais actuais;
- Aplicar patches de segurança.
E outras rotinas necessárias ao correcto funcionamento de um servidor, tornam-se repetitivas, demoradas e mais que tudo, dispendiosas.
A SOLUÇÃO A solução passa naturalmente por um sistema operativo baseado em cloud-computing, que é similar a um Desktop, mas formado por um conjunto de servidores conectados.
Vantagens:
- Computação virtualizada;
- Abstracção para o utilizador e programador;
- Particionamento de sistemas de ficheiros;
- Escalável (armazenamento);
- Alocação de recursos prévia;
- Fornece ambientes de programação.
- Simples e fácil de administrar;
- Paga o que usar, num modelo baseado em pagamento/subscrição;
- Disponível 24h por dia.
Alguns modelos de programação para a cloud:
- CAP: Capability, Availability e Partioning, sendo comum desprezar o primeiro em sistemas de alta escalabilidade.
- BASE: Basically Available, Soft State e Eventual Consistency.
Entenda-se por consistência uma espécie de fidelidade de transmissão de dados e, sendo eventual a consistência de dados, significa que os efeitos causados pela mudança dos mesmos serão eventualmente observados, ou seja, não obrigatoriamente no preciso momento em que essa mudança ocorre.
O que é o Azure Services Platform? É uma plataforma de serviços em nuvem, escalada para a Internet, alojada nos datacenters da Microsoft, que fornecem um sistema operativo e um conjunto de serviços para developers que podem ser usados individualmente ou em conjunto. Mais informações aqui.
São-nos dadas instâncias de computação virtuais com especificações mais ou menos pré-definidas, por exemplo:
- CPU a 1,5-1,7 GHz
- 1,7 GB RAM
- Rede a 100Mbps
- 50GB de armazenamento
- 250GB de armazenamento local
Exemplo da arquitectura (passado à pressa de um slide precioso 🙂 ):
Acabada a profunda explicação acerca do porquê, das vantagens e da arquitectura do Windows Azure, deu-se um pequeno intervalo, na linguagem geek um “Coffee Break”, em que para meu espanto, encontro maçãs ao pé do precioso café. É que para quem não sabe, diz-se que a maçã é um óptimo estímulo para o cérebro, competindo mesmo com a cafeína.
Comida a bela da maçã um pouco à pressa, fui de imediato para a parte 2 da sessão, e encontro metade do anfiteatro vazio… Ou assustaram-se, ou o que vamos falar a seguir é do agrado de poucos: estruturas de dados.
O Windows Azure utiliza 3 estruturas de dados base: tabelas, filas e blobs.
- Tabelas
Para quem está familiarizado com o Microsoft SQL Services, as tabelas no Windows Azuree diferem destas em alguns pontos:
- Não relacionais;
- Sem integridade de referência;
- Não há joins;
- Queries limitadas;
- Não há group by;
- Não há agregação;
- Não há transacções;
Fazendo-se um trade-off, ou seja, sacrificando a Consistency em troca da Capability e Disponibility (CAP).
Conferindo assim as seguintes vantagens:
- Barato;
- Grande escabilidade;
- Flexibilidade;
- Durabilidade.
Temos tabelas em que as linhas são entidades e as colunas são propriedades, num máximo de 255, e cada entidade tem uma PartitionKey que confere escalabilidade e uma RowKey que confere um ID único dentro da partição. Podemos ter ainda TimeStamps que ajudam na obtenção dos resultados mais actuais e um máximo de 1MB de dados.
- Filas
- Blobs
Como se pode programar para Azure? Em qualquer IDE, mas o Visual Studio permite uma melhor integração.
Para terminar, o orador simulou um development storage service que consistia num serviço normalíssimo em Windows, e que permite emular uma cloud, para fazer debugging. Podem ser simuladas ainda diferentes instâncias a correr em simultâneo.
Depois do processo de debugging, basta submeter o ficheiro de código e configuração ao site do Azure, e assim temos a nossa aplicação terminada, pronta para a vida real.
Acabada a demonstração, seguiram-se algumas questões, e… hora do almoço! Depois de tanto palavrão informático e de tanto homem à frente (vocês sabem o que sofro), chega a hora de acomodar o estômago, conversando com a minha companhia, está claro, masculina! 😛
Findo o almoço, próxima conferência!
Windows 7 para Geeks, por Miguel Caldas Esta tarde pretendia ser uma tarde dedicada exclusivamente ao Windows 7, não só porque é algo que me interessa, como é algo que eu sei que vos interessa!
Adoro este tipo de apresentações, dadas por um típico geek de Linux, mas que trabalha para a Microsoft, imaginem a combinação, deveras explosiva.
O senhor Miguel Caldas começou por avisar todos os que se encontrassem no anfiteatro que saíssem enquanto podiam, porque o que iriam presenciar seria o extremo do geekismo. Acrescentem ainda gestos dignos do apocalipse e uma possante voz que envergonha qualquer vilão de desenhos animados.
Ele começou por perguntar quem já tinha experimentado o Windows 7 Beta, ao que respondi com o meu inocente levantar de mão, verificando que cerca de metade dos presentes já tinham feito o mesmo.
“O Windows 7 é um grande avanço nos sistemas operativos Windows” enfatizou. “Agora, vou tirar a camisola da Microsoft e digo: O Windows 7 é mesmo um grande avanço nos sistemas operativos Windows”. Risota geral.
Ele começou por dar uma noções acerca do kernel do Windows 7, dizendo que este é igual ao kernel do Windows Server 2008, supostamente deveria ser a versão 7 (daí o “7”), mas de facto é a versão 6.1 que consta no Windows 7. “Um kernel permite bootar e aceder à rede. Ponto”.
De seguida mostrou-nos alguns gráficos ilustrativos de dados relativos à performance, ciclos desnecessários no código, etc. avisando sempre “Eu sei que estes gráficos são da Microsoft. Mas acreditem que há melhorias!” Risota geral.
Segundo ele, o Windows XP é o exemplo perfeito de “código em esparguete” que tantos de vocês já ouviram falar, milhões e milhões de linhas de código, inúmeras dependências e inter-dependências que se arrastaram para o Windows Vista, tão conhecido por ser bloated. “É claro que a Microsoft sempre quis manter retro-compatiblidade, mesmo que para isso perdesse performance”.
Foi então que os programadores da Microsoft pegaram no micro-kernel do Windows Vista, o MinWin e decidiram fazer uma caça a código menos bom, coisas inúteis, tentaram extrair tudo o que não tivesse utilidade (que não era pouco), e assim obter um novo MinWin, usado no Windows 7.
- DLL Refactoring – O Windows 7 mantêm os DLL antigos para manter a tal retro-compatibilidade.
- Limpar heranças de código que chegam a vir de versões do Windows NT!.
- Eficiência energética
Razões para melhorar:
- Consumo absurdo dos datacenters;
- Baterias dos portáteis não duram o suficiente;
- Green IT.
Como: menos serviços e processos a correr.
- Performance
- Grande redução de footprints no cliente.
- Optimização de memória.
- Alterações no working set (quantidade de memória por processo), que passa a ser de 25MB.
- Segurança
Desta parte apenas reti a frase “Não gosto de dizer que a Microsoft é monopolista… tem é uma grande quota de mercado!”. “Linux não tem vírus? Não tem é quota, por isso não tem vírus!”. Mais uma vez, a risota geral, vibrando enquanto descobria um ou outro um utilizador de Linux.
- Core Parking
O Windows 7 tenta manter a carga no menor número possível de processadores lógicos (logical cores), poupando energia.
- Arranque
São apenas iniciados os serviços mesmo necessários e só mudam de estado que alguém os mandar. Isto explica o facto de o Windows 7 arrancar tão rapidamente. Tratam-se de delayed services, que só correm após um determinado período de tempo, permitindo a visualização rápida do ambiente de trabalho.
- Timer Coalescing
Vários processos programados para acordar de tanto em tanto tempo, agrupam-se em intervalos de tempo regulares, similares aos intervalos de cada um, para evitar a consulta exagerada do estado da máquina. “Está aqui alguma coisa para mim? Não… e agora? Não…. E para mim? Também não…. e agora? Não…”, num teatro de processos que verificam sincronizadamente se aconteceu algum evento.
- FTH – Fault Tolerant Heap
Quando há corrupção da heap, ela é isolada e é informado o developer dessa aplicação acerca do erro.
- Process Reflection
Outro nome “mais pomposo” para o fork() em Linux, basicamente cria um novo processo-filho.
- Níveis UAC
“O Windows tem de aprender que mudar a hora do computador não é assim tão perigoso… isto não está a ser filmado, pois não?”. Não estava a ser filmado, mas estava a ser ouvido… Uma grande verdade. Como alguns já repararam, o UAC do Windows 7 é muito menos intrusivo no trabalho do utilizador, havendo mais 2 níveis além do ligado e desligado, que permitem uma fácil personalização do nível de segurança do sistema.
- BitLocker
Outra feature que muitos de vós conhecem no Windows Vista, versão Ultimate. Permite encriptar os dados de drives inteiras.
- Cooperative Scheduling
Trocas de contexto de threads em modo de utilizador, e por isso, mais rapidez.
- VHD – Virtual Hard Disk
Formato de ficheiro que representa um disco virtual, permitindo usar máquinas virtuais dentro do próprio SO.
O objectivo era manter o decréscimo de performance abaixo dos 10%, e foi conseguido.
Uma das vantagens é poder ter ficheiros VHD incrementais, feito a partir de uma mesma base. Deste modo, temos 2 sistemas diferentes, mas partilhando uma mesma base, e por isso, espaço.
O final desta sessão foi, tal como prometido, bastante geek… utilizar a linha de comandos do Windows para criar um disco virtual e instalar lá o Windows 7. Estou a brincar, para quem usa Linux, mesmo que não seja frequentemente, acharia aquela suposta geekisse insignificante. 😛
O tempo já era curto, as perguntas ficaram para a próxima sessão, e assim veio mais um bem-vindo intervalo, que serviu apenas para esticar um pouco as pernas e ver a luz do dia, que também faz falta.
Próxima e última conferência da minha tarde…
Windows 7: Novas APIs e Serviços, por Pedro Rosa Foi a sessão mais embaraçosa do dia. Para mim? Não. Para o orador, sem dúvida.
Ao iniciar a apresentação e tentar abrir um ficheiro no Visual Studio, não deixa de ser curioso ver o Windows 7 a bloquear totalmente, sem qualquer sinal de resposta… até o maldito botão power ser premido, e assim entrar num ciclo infinito entre o ecrã “Arrancar normalmente” e o ecrã de boot.
Depois de 10 minutos de volta de tão desafortunado acontecimento, o orador chega à solução muitas vezes simples e eficaz em Windows: reiniciar e o problema resolve-se. E assim foi. E foi em autênticas pantufas que o senhor orador foi abrindo ficheiro a ficheiro, programa a programa, tentando não soltar um espirro que pudesse estragar ainda mais a apresentação. 😛
Brincadeiras à parte, esta sessão tratou-se de uma demonstração mais aprofundada acerca da interface renovada do Windows 7 e de como é que os developers podem interagir com ela e tirar partido das suas novidades, nomeadamente na utilização eficaz dos previews, das acções executadas aquando o clique no botão direito, em cima dos ícones da barra de tarefas, a crescente necessidade de aumentar o tamanho dos botões e ícones, para permitir ecrãs tácteis, e muito mais.
As “novidades” do Windows 7 neste aspecto certamente já não serão novidades, bastando por isso mostrar-vos esta belíssima análise do SO, elaborada pelo Peoplware, que vale sempre a pena consultar.
E assim cheguei ao fim de um dia cansativo q.b., mas também gratificante, chegar a casa à noite, jantar, sentar à secretária e começar a debitar texto, imagens e desenhos feitos por mim à mão (sim, fui eu!), até a estas horas da manhã. Querem informação, aqui a têm, amanhã há mais! Quero dizer… hoje, 5ªa feira, dia 19 de Fevereiro.
Espero que este artigo tenha sido do vosso agrado, se encontrarem alguma gaffe, que é provável, comuniquem. Até amanhã.
Links relacionados: