Mayumana

Ontem fui com a minha namorada ver um espectáculo dos Mayumana no CCB…simplesmente fantástico! Para quem nunca ouviu falar (tal como eu não tinha ouvido) são um grupo que segue um pouco o conceito dos STOMP, mas com algumas características próprias. Dança, música, percussão, teatro, humor, energia são palavras que descrevem perfeitamente o espetáculo. Comparação quase inevitável com os STOMP: diria que os Mayumana não exploram uma quantidade de sons tão diversa mas são mas originais a nível visual – lanternas presas no corpo, elementos fluorescentes, alguns outfits marados – e a nível da expressão corporal – apostam mais na dança "contemporânea". Depois de 1h30 sempre a abrir (e a rir), ainda fizeram uma jam session no átrio do auditório juntamente com o público para acabar em grande.
 
Hoje (domingo) ainda há mais um espectáculo..aconselho definitivamente! Vejam aqui um video, para terem uma ideia =)
Advertisements

Eventos em Novembro

Alguns eventos a assinalar no mês de Novembro:
 

Código “bonito”

Há uns dias vi este video no Channel 9, em que um tal Bob Martin fala sobre fazer código bonito e fácil de ler, e a importância que isso pode ter. A ideia dele é, tal como o entrevistador resume, "As professional developers, we need to write code in a professional way". Ainda não sou professional, mas já sou developer (uhmm..=P) e concordo plenamente com o senhor. Quando estou a programar tento ter alguns cuidados…mas mesmo assim quantas vezes não acontece chegar ao fim do semestre..pegar naquele trabalho que nunca mais ligámos..e "eh pá..o que é que este código fazia mesmo?", "porque é que estava aqui esta variável? e aquele teste?"…pois! A ideia do "isto é só um trabalho da universidade" está muito errada, a meu ver. O tal senhor diz também no video "software design has to be a engineering discipline"; da minha parte não me posso queixar muito, porque me tem sido ensinado como tal, na maioria das vezes. Mas já tenho ouvido alguns relatos do mundo do "trabalho" e penso como é que é possível alguém escrever aquele código…tipo escolher a pior das más hipóteses =\ Ou de outro ponto de vista…"isso tem é que estar pronto a horas..sempre a andar!". Compreendo que os prazos "matam"…mas provavelmente esse mesmo código no futuro ainda dá dores de cabeça porque não foi minimamente cuidado e..lá se vai o tempo ganho antes. Aqui já não falo só de código organizado, mas também minimamente pensado! O Bob Martin defende que vale a pena aguentar prazos se sabemos que o código conseguido é de qualidade…Era bom que mais responsáveis de empresas pensassem assim, para combater o que ele chama de "bad code epidemic". Mas também os programadores devem ter em conta que no futuro alguém (mesmo eles próprios) pode ter de pegar no código que estão a escrever. Um simples comentário pode facilitar a vida a muita gente =P
 
Ele toca ainda noutro ponto: as linguagem oferecem cada vez mais sintaxes expressivas e que podem facilitar bastante a clareza do código. Tenho ideia que muitas vezes as capacidades das linguagens/tecnologias não são aproveitadas; faz parte (ou devia fazer) do desenvolvimento conhecer bem as ferramentas com que se trabalha e isso pode aumentar bastante a qualidade (ou talvez a simplicidade) do código..e até a produtividade (gestão de projectos..alguém? =P).
 
como diziam os outros no rap da FEUP…"incrementa o i um quito, faz um código bonito"
 
 
Nota – gostei do comentário sobre os genéricos: "we could argue about wether or not it is implemented well" =P

Bill Gates fala sobre reconhecimento de voz

Ultimamente tenho andado a ver umas coisas sobre o Windows Speech Recognition/System.Speech. O motor de conhecimento de  voz já está presente desde o Windows XP, mas a versão incluida no Vista está bem melhor e é bastante poderosa. É uma funcionalidade que, a meu ver,  pode ajudar principalmente pessoas com alguma limitação na utilização dos inputs mais comuns (rato e teclado ou mesmo touchscreens) já que não implica contacto físico. Mas mesmo para os utilizadores comuns pode ser uma funcionalidade que melhora a interacção com o computador. À primeira utilização parece um pouco complicado mas depois a aprender os comandos disponíveis e o modo de funcionamento, torna-se bastante mais fácil; é ainda possível treinar o computador para reconhecer melhor o padrão de voz de cada utilizador. A melhor parte: estão disponíveis API’s para interagir com os motores de reconhecimento e síntese de voz! Podemos fazer as nossas próprias aplicações que reagem à voz do utilizador.
 
Andava pela web a ler umas coisas sobre o tema e encontrei uma entrevista ao Bill Gates. Ao que parece ele sempre foi bastante entusiasta do reconhecimento e síntese de voz dentro e fora da Microsoft. Deixo aqui um excerto da entrevista:

What are some of the areas where you see voice going that people aren’t necessarily thinking about today?
Gates: To me, voice is in the broad realm of natural interface. And natural interface is (the notion of) screens everywhere–screen in your desk, screen in your tables, screen on your walls, no more white boards, touching, which is like Surface, where you can manipulate things. It’s a pen so you can have ink wherever you want. You know, pull up an article, write a little note on it and get it sent off to a friend.

The speech recognition comes into it–all these things about natural interface are coming to the fore, and they are probably the thing that’s most underestimated right now about the digital revolution. People kind of gasp when they see how touch works on Surface, when they touch their iPhone then, "Ooooh, wow," you know, that’s just such a natural thing.

When voice recognition is used in the right way–let’s say you’re in the car and you want to pick somebody to call–that’s improved very dramatically, or speech output, text to speech, these things have gotten very good.

You talked about different natural language interfaces. You know, with multitouch, it seems to have really captured people’s imaginations, both with what you guys have shown with Surface, certainly with the iPhone. Voice seems to be a little slower in terms of speech recognition as a mainstream computer interface.
Gates: Well, that’s fair. Voice recognition is a harder thing. There are certainly tons of people, and I mean millions, who for some reason, the keyboard’s not attractive to them. Either they have repetitive stress injury, or they’re in a work environment where they’re doing something else with their hands, where they’ve taken the time to learn the software and adapt to the software and gone through the training process there. And they love it. They can’t believe other people don’t use it.

For the rest of us, the keyboard has worked so well that we are even getting the keyboard into phones. I think voice search on the phone is one of those applications that would really drive it forward. I mean, why should I have to try and type something in? I’ve got a phone, I’ve got a talk button; so that’s one of the areas we’re betting on.

You guys built a pretty significant voice recognition engine into Vista. It hardly gets talked about. Are you surprised that some of the things you did in Vista aren’t getting more attention?
Gates: Well, when you sell a product to hundreds of millions of users, there are features that millions of users love that you can call an obscure feature because, percentage wise, it’s not very many. You know, Butler Lampson, one of our great researchers who has done great work going all the way back to his days at Xerox, was just sending me mail about how fantastic the improvements in the speech stuff are in Vista and, you know, we’re hard at work on the next version of Windows. We’re going to take this speech stuff even further.

Fica a ideia de que a Microsoft vai continuar a apostar nesta área. Entrevista completa aqui.

Webcasts4Share

A Microsoft lançou um ciclo de webcasts para formação em algumas das suas tecnologias. Os webcasts acontecem durante a próxima semana e abordam entre outras, a tecnologia Microsoft Silverlight, as novas funcionalidades do ASP .NET 2.0 e as novidades do IIS 7 que permitem simplificar o desenvolvimento e instalação de aplicações web. O programa é o seguinte:
 
22 de Outubro – As funcionalidades escondidas do ASP .NET 2.0
 
A plataforma ASP.NET 2.0 disponibiliza várias novidades, desde master pages e controlos data source até serviços de membership, roles e perfis. No entanto, existem ainda outras novas funcionalidades, tais como expression builders, virtual path providers, page adapters e gestão do estado de sessão, normalmente desconhecidas da grande maioria dos programadores. O conhecimento destas funcionalidades (algumas das quais não estão documentadas) podem fazer a diferença na construção de aplicações.
 
23 de Outubro – Desenvolvimento com ASP .NET AJAX
 
Nesta Sessão vamos explorar as bibliotecas Microsoft ASP. NET Ajax. Irá ser feita uma abordagem de alto nível explicando a arquitectura e a forma correcta como podemos incorporar em "websites" já existentes. Também vamos falar sobre o projecto que disponibiliza vários controlos adicionais conhecido Microsoft ASP.NET AJAX Control Toolkit. Junte-se a nós para ver como a tecnologia AJAX pode resultar em cenários em que se pretende maior escalabilidade.
 
24 de Outubro – Silverlight Overview
 
Neste webcasts , fazemos um overview desta nova tecnologia Microsoft Silverlight, mostrando Silverlight XAML, Microsoft Expression Blend, animações, media e o modelo de programação. Vamos também fazer uma analise das diferentes funcionalidades nas versões 1.0 e 1.1 do Silverlight.
 
25 de Outubro – IIS 7.0 para Programadores
 
Conheça as novidades do IIS 7 e veja como simplificam o desenvolvimento e instalação de aplicações web. Nesta sessão, apresentamos vários aspectos importantes desta nova plataforma. Funcionalidades como o novo pipeline HTTP, autenticação, autorização e tratamento de erros têm um grande impacto no desenvolvimento de aplicações ASP.NET. Com esta nova versão, é introduzido um novo modelo unificado, em que todas as configurações de ASP.NET do IIS são definidas num único ficheiro de configuração. Para além destas novidades, a sessão apresenta ainda recomendações e boas práticas que devem ser seguidas na construção de aplicações ASP.NET que querem tirar partido das novas funcionalidades do IIS 7.
 
26 de Outubro – ASP .NET Futures
 
O Visual Studio 2008 ("Orcas") incorpora um conjunto de novas funcionalidades para o desenvolvimento web. Nesta Sessão vamos demonstrar os benefícios que pode ter utilizando o Visual Studio 2008 quando estamos a trabalhar com o ASP .NET 2.0, bem como ASP .NET 3.5. Existem muitos melhoramentos no interface de desenvolvimento por isso vamos focar-nos nos melhoramentos relacionados com Javascript, os novos designers e melhorias ao nível de CSS.
 
 
Os webcasts terão lugar entre as 15h00 e as 16h00 de cada dia e vão ser gravados ficando depois disponíveis aos utilizadores registados.

Review Workshop XNA

Tal como já tinha dito, hoje estive no workshop sobre XNA. A única coisa que sabia era que XNA é uma plataforma para desenvolver jogos para PC e XBOX…agora já posso dizer mais qualquer coisinha!
 

O Vítor Santos começou por fazer uma apresentação geral da framework XNA que no fundo é um conjunto de componentes que implementam algumas funcionalidades, mais ou menos complexas, comuns aos vários tipos de jogos. Por exemplo, o loop principal do jogo fica a cargo da framework, tendo o programador que definir apenas os métodos para actualização de estado (lógica) e desenho do mundo/personagens, que serão invocados na altura apropriada. Existem também um conjunto de tipos que facilitam a interacção com os dispositivos gráfico, outros para a utilização de sons bem como para os controlos. Se utilizamos um gamepad, por exemplo, basta indicar essa situação e atribuir acções aos vários botões sem ter preocupações em determinar qual o botão que foi carregado. Esse trabalho é feito pela framework. O carregamento de texturas está também bastante facilitado: foi apresentado um exemplo..e com duas inicializações de objectos e mais 2 ou 3 linhas de código estava a textura desenhada na janela!

A framework XNA assenta sobre a framework .NET no PC e a .NET compact na XBOX (numa versão específica para a consola). No topo está o Game Studio, que é a ferramenta de desenvolvimento, na qual se utiliza a linguagem C# (não, não é a pagar!). Na versão actual (1.0 Refresh) não é possível criar modelos 3D com esta ferramenta, mas podem ser desenvolvidos com outras ferramentas (3D Studio, por exemplo) e depois importadas. Reparem que podemos desenvolver jogos para a XBOX sem ter uma consola ali ao lado. Mais… o mesmo jogo funciona no PC e na XBOX.

O Amintas Neto, da Microsoft Brasil, fez também uma apresentação onde explicou algumas das coisas que referi acima e mostrou demos de jogos já existentes, alguns dos quais estão disponíveis com o Game Studio (Starter Kits). Referiu ainda que na versão actual a plataforma está mais virada para jogo "casuais"..ainda não a um nível profissional, mas que para lá caminha!

Depois, a Verónica Orvalho, da Face in Motion, que falou sobre a indústria dos jogos e os vários perfis profissionais que se encaixam na mesma bem como a metodologia para desenvolver um jogo e de como o XNA vem abreviar esse processo. Mostrou ainda algumas demos e algum código, mas foi pena não ter entrado em mais alguns detalhes nem ter feito uma comparação directa entre o mesmo exemplo em XNA e em OpenGL, por exemplo.

Para terminar o Nelson Correia e o Ricardo Portela, MSP’s da primeira geração, apresentaram umas demos desenvolvidas por eles para um desafio a nível dos MSP’s. O Nelson fez uma nova versão do Space War em que utilizou também WPF, WCF e a API para reconhecimento de fala, tirando partido de ter por base a framework .NET. A nave mexia-se quando ele dizia "move up", "move left", etc. Já o Portela apostou em menos tecnologia, mas tinha uma versão do Crypt Raider com todas as funcionalidades. Tanto um como o outro tinha experiência praticamente nula na área dos jogos e salientaram a facilidade do desenvolvimento em XNA. Concluindo…o workshop deu para perceber um pouco mais da framework XNA e das facilidades por ela introduzidas, mas ficou a pedir mais algum pormenor..a nível de classes envolvidas, etc. Para o XNA, está já em desenvolvimento a versão 2.0 (codename Shaman) que vai incluir ferramentas para modelação 3D e deverá ganhar uma vertente mais profissional.

Links: