TechDays08 – Day 2 – Student Day

 
Para este dia as expectativas estavam em alta. Previa-se uma multidão, devido aos 500 estudantes que se inscreveram. Mais vagas houvesse, e mais estudantes participavam..a lista de espera tinha quase 200 pessoas! A organização ficou impressionada com a mobilização que os MSP conseguiram. Mas será que todos os estudantes vêm? Será que vão gostar das sessões?
 
13/Março – 8h30 – CCL: Depois de apanhar 2 colegas meus do ISEL, lá chegámos à Junqueira. Alguns outros estudantes do ISEL já lá estavam (!), mas por esta hora ainda não havia a tal "multidão", pelo que o check-in foi rápido. Demos uma volta por lá, contei algumas partes do dia anterior, jogou-se um pouco de XBOX e chegou a hora de ir para a primeira sessão.

Eu acabei por não ir a nehuma sessão das previstas para os estudantes porque existiam outras mais interessantes em paralelo. Alguns dos meus colegas também trocaram sessões da academic track por outras e, felizmente, não houve problemas de mobilidade, permitindo que os estudantes aproveitassem melhor o dia. Com essa mobilidade, o dia foi passado ora com pessoal do ISEL ora com MSP, sempre a rodar, porque cada um andava por onde preferia.
 
WEB06 – ASP.NET AJAX – Optimizações e Extensibilidade da Framework
 
Esta foi a minha primeira sessão da manhã, dada pelo Pedro Lameiras e pelo Rui Estevão da Viatecla. A sessão não correspondeu totalmente às minhas expectativas, mas houve coisas interessantes. O Pedro Lameiras começou por falar nos modos de actualização do Update Panel, focando, claro, a actualização condicional. Esta permite definir as condições de actualização de cada painel, ao contrário do comportamento por omissão, em que todos os paineis são actualizados quando um deles causa um postback. Depois, falou na "classe" PageRequestManager, incluída na biblioteca de javascript, que permite interagir com o estado dos pedidos assíncronos no cliente. Disponibiliza métodos para saber se há pedidos AJAX em curso, por exemplo, e alguns eventos relativos ao estado do pedido. Por exemplo, o evento initialize_request, que será o sítio indicado para fazer validações de dados, evitando assim pedido que vão "falhar" no servidor; ou ainda o end_request, que permite saber se existiram excepções no servidor durante a resposta ao pedido.
 
A segunda parte da sessão ficou a cargo do Rui Estevão, um pouco mais dinâmico que o colega. Desta segunda parte saliento duas coisas. Em primeiro lugar, o método ScriptManager.RegisterDataItem, que permite associar a um controlo uma string JSON. Esses dados são depois enviados para o cliente juntamente com o resultado do render do UpdatePanel. No cliente é depois possível obter o objecto correspondente através do método get_dataItems presente no parâmetro args do evento PageLoading. Em segundo lugar, a existência de algumas "ajudas" para trazer o modelo OO para o javascript. A biblioteca de javascript permite registar namespaces, aos quais são adicionados objectos função que representam os tipos. Sobre o namespace, o método registerClass permite definir qual a classe base de uma outra classe. São ainda incluídos alguns métodos para realizar acções tipicas do modelo OO, como initialize_base e call_base_method.
 
 
No final da sessão, fui até à zona "terra" (pavilhão central onde estavam os expositores) e já se notava "a multidão"! Imaginei logo como seria a confusão  ao almoço…
 
 
INT02 – Utilização do Information Card Model e Windows CardSpace para Controlo de Acessos em ASP.NET e WCF
 
Esta sessão foi dada pelo Pedro Félix, professor do ISEL. O ambiente era quase o de uma aula de Segurança Informática, porque o pessoal do ISEL estava lá quase todo, incluindo outros professores. Estávamos "em casa" =P Já sabiamos com que contar relativamente à dinâmica e clareza da apresentação, e mais uma vez, não desiludiu. O assunto era novo para mim – apesar de alguns conceitos envolvidos não o serem, por causa das aulas de Segurança Informática – e a sessão permitiu ficar com bom conhecimento do modelo em causa.
 
Actualmente, a vertente mais comum no controlo de acesso a serviços ou aplicações web é um modelo baseado em passwords, que implica muitas vezes registos iguais em vários sítios. Por outro lado, é uma indentidade "auto-assertada", ou seja, o utilizador é totalmente responsável pela sua definição. Uma outra hipótese é termos identidades fornecidas por uma 3ª entidade, que afirma que um utilizador tem dadas características (claims). Cabe depois ao utilizador decidir qual a identidade que quer revelar em cada contexto (user centric identity). O Identity MetaSystem é um modelo abstracto que faz algumas definições para suporte a esse tipo de identidades:
 
  • Identidade = conjunto de claims
  • Claims: asserções de um sujeito; transportadas em tokens
  • Emissor: próprio utilizador ou terceiros – Fornecedores de identidades (IdP)
  • Consumidores de identidades aceitam claims de IdP

O Information Card Model é uma "especificação" do modelo anterior, adicionando-lhe o conceito de Identity Selector – elemento responsável pela autenticação do utilizador (importante para o acesso ao cartao não permitir automaticamente a obteção de tokens) e contacto com o IdP adequado para obter os tokens correspondentes às claims pretendidas.

Um Information Card é então uma relação entre  o user e o IdP: define a localização do IdP, metadados, e quais as claims que consegue emitir. O selector de identidades é responsável por perguntar ao utilizador qual o cartão que quer utilizar de entre aqueles que satisfazem as claims pedidas pelo consumidor, e contactar o IdP para obter os tokens respectivos. Note-se que o cartão é apenas uma associação e só por si não responde a nada. A obtenção dos tokens correspondentes às claims é feita "on-line".

O CardSpace é a implementação da Microsoft do selector de identidades e proporciona uma experiência de utilização sempre igual do ponto de vista da identidade. Essa é uma característica de um bom sistema de identidades. Pemite integração com o WCF e com o IE8, apresentando uma API para que qualquer aplicação possa utilizar este selector de indentidades (System.IdentityModel).

 

Depois desta sessão foi a esperada hora de almoço, e como já era de prever a confusão foi ainda maior que no dia anterior. Apesar de tudo, ainda me calhou uma massa vegetariana, que até estava boa. Por esta altura soube que 470 dos 500 estudantes de ensino superior que estavam inscritos tinham aparecido! Juntei-me ao resto do pessoal do ISEL e lá fomos almoçar com os pratos em cima dos blocos publicitários ao pé das XBOX.

Ainda não tinha a certeza a que sessão ia no primeiro slot da tarde. Acabei por ir a esta:

SRV05 – Virtualização e Alta Disponibilidade com Windows Sever 2008

 Máquinas virtuais? Clusters? As duas coisas em conjunto? O tema da sessão não era daqueles a que tenho estado mais atento mas valeu bem a pena! O foco principal foi o Hyper-V, uma componente do Windows Server 2008 para suporte a virtualização. Esta componente quase que transforma o próprio SO numa máquina virtual, inserindo uma camada de software – o Hypervisor – que comunica com os processores a memória. Sobre este podem ser montadas outras máquinas virtuais. O potencial deste componente pode ser bastante explorado, principalmente em termos de disponibilidade, quando utilizado sobre um cluster. A alta disponiblidade no Hyper-V tem por base o mecanismo de Quick Migration, que consiste em mudar uma máquina virtual de um nó do cluster para outro num tempo relativamente curto, aidna que proporcional à memória da VM e ao tamanho de storage, podendo ocorrer com manutenção de estado (downtime planeado) ou não (downtime não planeado).

O ponto forte da sessão foi mesmo uma demo dessas funcionalidades. O orador, Nuno Carvalho, levou duas máquinas com 2 processadores 4-core e 32 GB de RAM cada (!) que partilhavam por rede um sistema de aramazenamento persistente (storage). Em 2 ou 3 minutos configurou um cluster com esses dois nós e depois colocou duas máquinas virtuais em execução sobre o mesmo, inicialmente no primeiro nó. Uma das VM tinha o Ubuntu e o orador saiu-se com a frase: "sempre quis mostrar linux numa apresentação da Microsoft" =p Depois, ele desligou o cabo de corrente do nó onde as VM estavam a ser executadas e o sistema reiniciou-as de forma automática no outro nó do cluster! Muito simples de configurar e com muitas potencialidades.

O resto do dia foi passado um pouco "on the fly", porque tinha pensado ir às duas sessões de Silverlight 2 e acabei por não ir a nenhuma delas na totalidade. Optei pela sessão:

 

Pela descrição na agenda parecia que ia trazer alguma coisa de novo..mas foi mais do mesmo..pelo menos os primeiros 25 minutos, que foi o tempo que me aguentei lá… Os oradores até eram bons..dois alemães que não paravam quietos e passavam um à frente do outro enquanto este falava. Acabei por ir ver o resto da sessão sobre silverlight. Passaram umas demos porreiras, mas nada mais do que estava à espera. No final perguntei ao orador uma dívida que tinha em relação ao papel dos servidores (passam a ser apenas fontes de dados, através de serviços) e percebi que a segunda parte também não ia ser grande novidade. Espero que para a maioria dos estudantes tenha sido! Fui antes à sessão do pessoal do MLDC sobre tecnologia de fala.

DEV04 – "Are You Talking to Me?" – Como integrar tecnologia de fala em aplicações desktop e IVR.

Esta foi a sessão ideal para o fim da tarde! Descontraída e com uma dinâmica muito boa. Começou com o Pedro Silva Santos num diálogo com uma voz portuguesa no computador, ao qual se juntou depois a nova voz que estão a desenvolver. Foi uma forma engraçada de cativar o pessoal e mostrar o trabalho que têm vindo a desenvolver.

A primeira parte da apresentação não era novidade para mim, já que fiz uma apresentação sobre o tema no ImagineCup Road Show, no ISEL. Falou-se sobre síntese e reconhecimento de voz e das formas mais tipicas de implementação:

 

  • Síntese: concatenação de pequenas samples de fonemas
  • Reconhecimento: baseado em probabilidades atríbuídas ao reconhecimento dos vários fonemas identificados na fala; atribuição de propabilidade de ser um dos fonemas reconhecidos; cálculo da probabilidade/certeza total

Depois fizeram umas demos simples recorrendo à biblioteca SpeechFX do .NET 3.0 (vejam a apresentação que referi =P) e outra mais engraçada com o robotic studio: puseram um robot da lego a responder a comandos de fala, integrando um novo bloco de controlo no robotics studio, que identifica os comandos de voz e gera as saídas correspondentes. ainda deu para o robot jogar bowling com umas garrafas de plástico e uma bola anti-stress.

A segunda parte foi virada para as tecnologias de servidor, nomeadamente o Speech Server 2007. A ferramenta é baseada em Workflow Foundation e permite desenhar a base de um sistema mesmo a alguém que não saiba mais que um miúdo de 10 anos. É só arastar alguns blocos – início de chamada, opções que o utilizador deve dizer, … – e ligá-los coforme o "flow" pretendido. Para soluções mais complexas, podemos sempre pegar no código gerado e trabalhá-lo.

 

No fim das sessões o pessoal do ISEL foi-se embora (acho que gostaram do dia) e lá fora já havia autocarros para levar o pessoal que tinha vindo de mais longe. Eu fiquei mais um bocado com os MSP e fomos todos jantar, porque o TechDays não se faz só de sessões. Parece que depois ainda houve TechNights para alguns…

O ambiente no Student Day estava porreiro e acho que correspondeu às expectativas. Espero que o pessoal tenha aproveitado. Eu gostei de os ter por lá e de ser um pouco a ponte entre eles e o evento e outras pessoas (msp, por exemplo).

 

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s