Profilo di AndreFurtaSpace - www.afurtad...FotoBlogElenchi Strumenti Guida

Blog


28 settembre

RiSS - RiSE Summer School on Software Product Lines

 

The call for the second RiSS (RiSE Summer School on Software Product Lines) follows below. Such an international event happens in Recife, my hometown, and it's a great opportunity for all those interested in software engineering. I was there last year and it was great.

[]s
-- AFurtado

The statements or testimonies I offer in this post represent my own personal views.
I am speaking for myself and not on behalf of my employer, Microsoft Corporation

English - Portuguese

A chamada do segundo RiSS (RiSE Summer School on Software Product Lines) segue abaixo. Tal evento internacional acontece em Recife, minha cidade natal, e é uma grande oportunidade para todos os interessados em engenharia de software. Estava lá no ano passado e foi uma ótima experiência.

[]s
--AFurtado

Os relatos e opiniões deste post apresentam pontos de vista pessoais,
não refletindo necessariamente a opinião da Microsoft Corporation


riss

In this summer (November 27-29) will occur the most expected school, the Second RiSS - RiSE Summer School on Software Product Lines (http://riss.rise.com.br/). You will have the unique chance to learn about Software Product Lines - a software development paradigm which improves you productivity, reduce your costs and allow to you and your company accelerate the time-to-market - with the main subjects in the field. Names such as Klaus Schmid, from University of Hildesheim, Germany; Kyo C. Kang, from Pohang University of Science and Technology (POSTECH), Korea; Paul Clements, from Software Engineering Institute, US; Rob van Ommering, from Philips Research, the Netherlands; and, Michalis Anastasopoulos, from Fraunhofer Institute for Experimental Software Engineering (IESE), Germany.

Besides, this year we will also have the First Workshop on Software Reuse Efforts (WSRE), which is addressed to discuss practical issues of software reuse in industry, new trends in software product lines and, mainly, learn more and more about reuse and its problems and solutions with real experiences.

Besides all technological characteristics that surround the school and its realization in Recife - Pernambuco, it is worth to stand out the advantaged that nature brought to Recife with sunny days,  several  beaches (Boa Viagem, Maracaípe, Porto de Galinhas), delicious culinary (crab, shrimp, goat), the human heat of the people from Pernambuco, culture (carnival, frevo and maracatu) and one of the most animated technological people from the country. It will be a pleasure to receive you for RiSS 2008.

You better hurry up, because the school is limited to 100 participants, and there is less than 60 registrations available.

Welcome all of you!!!

24 settembre

5 practical rules for a successful presentation / 5 regras práticas para uma apresentação de sucesso

 

Today, a co-worker gracefully summarized 5 points he believes are essential to deliver a high-quality technical presentation. I believe he wouldn't mind if I share them with you:

  • Set up the current situation;
  • Describe the "problem" you are solving in a way that the audience will relate to it;
  • Explain the solution and benefit to the audience;
  • Demo all of the above;
  • Tell the audience what action they need to do in order to get the solution and how they can access your solution.

I'd like to add the demos can be done in multiple pieces, as the problem/solution unfolds.

If you can remember only one thing when creating a presentation, let it be the flow above.

[]s
-- AFurtado

The statements or testimonies I offer in this post represent my own personal views.
I am speaking for myself and not on behalf of my employer, Microsoft Corporation

English - Portuguese

Hoje, uma colega de trabalho resumiu graciosamente 5 pontos que ele considera essenciais para entregar uma apresentação técnica de alta qualidade. Acho que ele não se importaria se eu os compartilhar com vocês:

  • Esboce a situação actual;
  • Descreva o "problema" você está resolvendo de uma forma que o público consiga associar;
  • Explique a solução e seu benefício para o público;
  • Faça a demo de tudo acima;
  • Informe ao público que medidas precisam ser feitas para se obter a solução e como eles podem acessá-la.

Gostaria de acrescentar que demonstrações podem ser feitas em múltiplas partes, à medida que o problema/solução se desenrolem.

Se você só se lembrar de apenas uma coisa quando criar uma apresentação, que seja o fluxo acima.

[]
--AFurtado

Os relatos e opiniões deste post apresentam pontos de vista pessoais,
não refletindo necessariamente a opinião da Microsoft Corporation


22 settembre

Microsoft Company Meeting 2008 / Microsoft: Reunião da Empresa 2008

 

While the cold (re)starts to strike Redmond/Seattle this fall, we had, last week, the annual Microsoft Company Meeting.

When I think about "meetings", the first things that come to my mind are meeting rooms and people around a table. But what if dozens of thousands of people are actually taking part in the meeting? Then the meeting table becomes a baseball stadium (more specifically the Safeco Field, in Seattle), where Microsoft employees were able to understand what's coming next in a more holistic viewpoint.

Very unique experience indeed! Unfortunately there's not much I can share since we need to keep lots of things undisclosed until the upcoming PDC. Below, Steve Ballmer speaks at the closing event keynote.

IMAG0138

Now it's time to go back to our offices and regular meeting rooms.

[]s
-- AFurtado

The statements or testimonies I offer in this post represent my own personal views.
I am speaking for myself and not on behalf of my employer, Microsoft Corporation

English - Portuguese

Enquanto o frio (re)começa a atingir Redmond/Seattle este outono, tivemos, na semana passada, a reunião anual da empresa, da Microsoft.

Quando penso sobre "reuniões", as primeiras coisas que vêm à mente são salas de reunião e pessoas ao redor de uma mesa. Mas o que acontece se dezenas de milhares de pessoas participam da reunião? Então a mesa de reunião torna-se um estádio de beisebol (mais especificamente o Safeco Field, em Seattle), onde os funcionários da Microsoft tiveram uma visão do que está por vir de um ponto de vista mais holístico.

Sem dúvida, uma experiência única! Infelizmente há não muito que posso compartilhar, dado que é necessário manter a confidencialidade de várias coisas até o próximo PDC. Abaixo, Steve Ballmer fala na palestra de encerramento do evento.

IMAG0138

Agora é hore de voltar aos nossos escritórios e salas de reuniões tradicionais.

[]
--AFurtado

Os relatos e opiniões deste post apresentam pontos de vista pessoais,
não refletindo necessariamente a opinião da Microsoft Corporation


20 settembre

Windows Sideshow

 

Windows SideShow is a new technology that delivers information from your PC to a secondary display on two kinds of devices: those that are integrated into a computer, such as a small color display in a laptop lid; and those that are separate from a computer, such as a remote control or mobile phone. With this additional display you can view important information whether your laptop is on, off, or in sleep mode.

asus   remote

Check it out!

PS: I can't resist not thinking about games being deployed to such kind of displays... Nah, those were not made for that. Were they?

[]s
-- AFurtado

The statements or testimonies I offer in this post represent my own personal views.
I am speaking for myself and not on behalf of my employer, Microsoft Corporation

English - Portuguese

Windows SideShow é uma nova tecnologia que fornece informações de seu computador para uma tela secundária em dois tipos de dispositivos: aqueles que estão integrados a um computador, como uma pequena tela colorida na capa de um laptop; e aqueles que são separados de um computador, como um controle remoto ou telefone celular. Com esta tela adicional, é possível ver informações importantes, se seu laptop está ligado, desligado ou no modo de suspensão.

asus remote

Confira!

PS: Não consigo resistir a não pensar em jogos sendo instalados nesses displays. Nah, eles não foram feitos pra isso... ou não?

[]
--AFurtado
Os relatos e opiniões deste post apresentam pontos de vista pessoais,
não refletindo necessariamente a opinião da Microsoft Corporation


14 settembre

Social networks and specific domains: better together / Redes sociais e domínios específicos: juntos, melhores.

 

The so called "Web 2.0" is around for some time now. When we think about it, one of the first things that comes to our minds is the "social networking" buzzword.

In the past, social networking was about publishing things about yourself in an online platform, connecting to friends and joining communities to interact with people who have things in common with you. More recently, a new addition to the list are "social networking applications", hosted inside social netowkring platforms, that you can associate to your profile.

In some cases, the idea can make sense. Have a birthday calendar in facebook? That's cool. Extend Orkut users' profiles so that they can bring their pets into social networking as well? That's ok...

However, I'm still not sure if internal hosted apps are the best approach to explore the power of social networks. If some might be useful, on the other hand I'm so flooded with Facebook applications, for example, that I have no idea which ones would be really useful to me. And when I (rarely, I must admit) log in into Facebook, my major goal, which is to keep in touch with friends and (re)discover old ones, is completely distracted by all sort of "you are the Zombie now" games and "John thinks your teeth are whiter than Bill's; you can compare your friends too!" applications.

I see the situation as a generic application (the social network platform) trying to diversify itself in an endless number of domain-specific features. Although some initiatives are trying to open such social networks, making their internal apps to better interact with other apps and the external world, I believe that here comes another (mini-)bubble. When it explodes, only a few and in fact valuable internal apps will survive.

So in what do I believe to diversify the power of social networks? I believe in domain-specific platforms, with well defined businesses, empowered by social networks. I believe in people using such platforms with a clear goal/domain in mind (from games to tourism to real state and movies) rather then doing generic social networking, benefiting from experiences from all others who are part of that domain chain, be them content creators, information providers or simply other users.

For example, in a previous post I've already commented about leveraging the long tail theory in game development. Such kind of domain (digital games), empowered by a social networking environment, makes it possible for you to explore console games in a way impossible to the web-based generic platforms, since you can play games whose creativity, graphics and gameplay were not restricted to the desires of a big studio, but were defined by anyone in the world. And I'm not talking here about flashy games popping up in your browser (that might be already hosted in social networks, I bet!).

The video below presents another specific domain which is making a real good use of social networking, which was a result of a research collaboration between the University of Washington and Microsoft Research. In short, imagine you can take a 3D virtual tour of anywhere in the world because people have taken gazillions of pictures long their lifes that can now be rebuilt and merged together in a tridimensional environment.

 

 

That's where power of the social network (used in a plataform targeted to a specific domain, tourism in that case) shows true value. So stop reading this, think about a cool domain, empower it with social networks and get rich!

[]s
-- AFurtado

The statements or testimonies I offer in this post represent my own personal views.
I am speaking for myself and not on behalf of my employer, Microsoft Corporation

 

English - Portuguese

A chamada "Web 2.0" está aí já há algum tempo. Quando pensamos sobre ela, uma das primeiras coisas que vem à mente é o jargão "rede de social".

No passado, redes sociais eram sobre como publicar coisas sobre si mesmo em uma plataforma on-line, se conectar a amigos e comunidades para interagir com pessoas que têm coisas em comum com você. Mais recentemente, uma nova adição à lista são "aplicações de redes sociais", hospedadas em plataformas de social netowkring, que você pode associar ao seu perfil.

Em alguns casos, a ideia pode fazer sentido. Ter um calendário de aniversário no Facebook? É interessante. Estender perfis dos usuários do orkut, para que eles possam adicionar seus animais de estimação em redes sociais? É ok...

No entanto, ainda não tenho certeza se aplicativos hospedados internamente em redes sociais são a melhor abordagem para explorar o poder de redes sociais. Se alguns podem ser úteis, por outro lado estou tão inundado de aplicações no Facebook, por exemplo, que eu não tenho nenhuma idéia de quais são realmente úteis para mim. E quando eu (raramente, devo confessar) logo no Facebook, meu objetivo mais importante, de manter contato com amigos e (re) descobrir amigos antigos, é completamente distraído por várias aplicações do tipo "Você é o zumbi agora" e jogos como "John acha que seus dentes são mais brancos do que os de Bill; você pode comparar seus amigos também!".

Enxergo a situação como um aplicativo genérico (plataforma de rede social) tentando se diversificar num interminável número de características específicas de domínio. Embora algumas iniciativas estão tentando abrir tais redes sociais, tornando seus aplicativos internos capazes de interagir com outros aplicativos e o mundo externo, penso que outra (mini-)bolha está chegando. Quando ela explodir, apenas alguns aplicativos internos e de fato úteis sobreviverão.

Então no que acredito para diversificar o poder de redes sociais? Eu acredito em plataformas de domínio específico, com negócios bem definidos, alavancadas por redes sociais. Eu acredito em pessoas usando essas plataformas com um objectivo claro, com um domínio em mente (de jogos a turismo, de imóveis a filmes), se beneficiando de experiências de todos os outros que fazem parte da cadeia do domínio, sejam criadores de conteúdo, fornecedores de informação ou simplesmente outros usuários.

Por exemplo, em uma postagem anterior comentei sobre a aplicação da teoria da cauda longa no desenvolvimento de jogos. Esse tipo de domínio (jogos digitais), alavancado por um ambiente de rede social, torna possível para você explorar a jogos de consoles de uma forma impossível nas plataformas genéricas baseadas na web, uma vez que você pode jogar jogos cuja criatividade, gráficos e jogabilidade não foram limitadas pelos desejos de um estúdio grande, mas foram definidos por qualquer pessoa no mundo. E eu não estou falando aqui jogos pisca-pisca aparecendo em seu navegador (que já devem estar hospedados em redes sociais, aposto!).

O vídeo abaixo apresenta outro domínio específico que está a fazer uma verdadeira boa utilização de redes sociais, que foi um resultado de uma colaboração de pesquisa entre a Universidade de Washington e o Microsoft Research. Em suma, imagine que você pode fazer um tour 3D virtual de qualquer lugar no mundo, porque pessoas diferentes tiraram zilhões de fotos ao longo de suas vidas, que agora podem ser reconstruídas e mescladas juntoas em um ambiente tridimensional.

 

 

Isso é onde o poder da rede social (aplicada em uma plataforma de domínio específico, como o turismo nesse caso) mostra seu valor verdadeiro. Então pare de ler isso, pense em um domínio legal, capacite-o com redes sociais e fique rico!

[]
--AFurtado
Os relatos e opiniões deste post apresentam pontos de vista pessoais,
não refletindo necessariamente a opinião da Microsoft Corporation
 


06 settembre

Components: reuse and abuse / Componentes: reuse a abuse

 

In short, components are way cool. They encapsulate features, allowing them to be reused by exposing well-defined interfaces. They are key to provide automation and realize the vision of software factories.

For example, lots of XNA games require the user to enter some sort of text information. Isn't it cool that you can easily use a XNA Text Entry Component to add such a feature to your game, without having to implement it from scratch and allowing a reusable, consistent behavior across games?

XnaOnscreenKeyboard

In a previous post, I've provided some highlights about the discussion the Software Engineering Radio had about plug-ins. This time, I'd like to share some highlights regarding their episode about components.

  • "Component" is an overloaded software engineering term. A reasonable definition says that a component is a piece of software that can be used and deployed in an independent way.
  • In a UI context, components are usually composed by the following elements: classes + properties + events.
  • The basic idea of components is reusability. Components are minimaly redundant and maximally composed. The LEGO analogy fits well here.

lego

  • Component metadata is key to components, so that environments (containers) can read component info and compose them with other components.
  • Components should not have any implicit dependency on the environment to run. It should be know in advance (i.e., compile/design time) if a component works in an environment or not.
  • Component modeling features presented by UML are limited and not very useful.
  • Components can be stateless or stateful.
  • The component marketplace vision (component-based development) has not yet been fully realized.
  • Components are to architectures what classes are to programming languages. They are the smallest architectural relevant building blocks; they are the foundations of architecture.
  • Components are composed by having their instances to be interconnected to other components instances.
  • From the top-down approach, components could be identified/selected and then mapped by tools to specific technologies.
  • Components are not necessarily related to object-orientation.
  • Components are different from component instances. But in some systems in which there is only one instance of a given component, this discussion becomes needless.
  • Component metadata should minimally include the interfaces and services it provides and requires.
  • Component versioning is always a concern: will the new component version crash in an old environment? Ideally new versions should present compatibility.
  • Ideally, components should also allow the envornment to parameterize them.
  • Component roles can be implemented by component ports.

ports

  • Naming services allow components to proper communicate.
  • Containers manage component resources, lifecycle and access to resources.
  • SOA x components: components can be seen as an implementation of services, which sometimes are more concerned with providing the interfaces. The authors of the podcast say that SOA is a hype, but to that I particularly disagree.

[]s
-- AFurtado
The statements or testimonies I offer in this post represent my own personal views.

I am speaking for myself and not on behalf of my employer, Microsoft Corporation
English - Portuguese

Indo direto ao ponto, componentes são extremamente legais. Eles encapsulam funcionalidades, permitindo-as serem reutilizadas através de interfaces bem definidas. Eles são essenciais para fornecer automação e concretizar a visão de fábricas de software.

Por exemplo, vários jogos XNA exigem que o usuário insira algum tipo de entrada de texto. Não é interessante o fato de que você pode facilmente usar um XNA Text Entry Component para adicionar tal recurso ao jogo, sem ter que implementá-lo a partir do zero e permitindo um comportamento reutilizável, consistente em jogos?

XnaOnscreenKeyboard

Em uma postagem anterior, forneci alguns destaques sobre a discussão que a Software Engineering Radio teve sobre plug-ins. Nesse momento, gostaria de compartilhar alguns destaques no que diz respeito à seu episódio sobre componentes.

  • "Componente" é um termo de engenharia de software sobrecarregado. Uma definição razoável afirma que um componente é uma peça de software que pode ser utilizado e implantado de forma independente.
  • Em um contexto de interface do usuário, componentes geralmente são compostos pelos seguintes elementos: classes, propriedades e eventos.
  • A idéia básica de componentes é reutilização. Os componentes são minimamente redundante e "maximamente" compostos. A analogia do LEGO se adapta bem aqui.

lego

  • Metadados de componentes é fundamental, para que ambientes (containers) possam ler informações de componentes e compô-los com outros componentes.
  • Componentes não devem ter qualquer dependência implícita para com o ambiente para serem executados. É necessário saber antecipadamente (ou seja, tempo de compilação/design), se um componente funcionará em um ambiente ou não.
  • Recursos de modelagem de componente apresentados pela UML são limitados e não muito úteis.
  • Componentes podem ser sem estado ou com estado.
  • A visão de mercado do componentes (desenvolvimento baseado em componentes) ainda não foi atingida plenamente.
  • Componentes são, para arquiteturas, o que classes são para linguagens de programação. Componentes são os menores e mais relevantes relevantes blocos arquiteturais de construção; são os alicerces da arquitetura.
  • Componentes são compostos tendo seus instâncias interligadas a outras instâncias de componentes.
  • Na abordagem top-down, componentes podem ser identificados/selecionados e, em seguida, mapeado por ferramentas a tecnologias específicas.
  • Componentes não são necessariamente relacionadas com a orientação de objetos.
  • Componentes são diferentes de instâncias de componente. Mas em alguns sistemas em que existe apenas uma instância de um determinado componente, este debate se torna desnecessário.
  • Metadados do componente minimamente devem incluir interfaces e serviços que ele fornece e requer.
  • Versionamento de componente é sempre uma preocupação: será que uma versão nova de um componente falhará em um ambiente antigo? Idealmente, novas versões devem apresentar compatibilidade.
  • Idealmente, componentes também devem permitir que o ambiente os parametrize.
  • Papéis de componentes podem ser implementadas por portas.

ports

  • Nomes de serviços permitem a correta comunicação e descoberta de componentes.
  • Containers gerenciam recursos de componentes, seu ciclo de vida e acesso a recursos.
  • SOA x componentes: componentes podem ser vistos como uma implementação de serviços, estando estes últimos mais preocupados com a fornecer as interfaces. Os autores do podcast afirm a SOA é um hype, mas eu particularmente discordo com isso.

[]
--AFurtado
Os relatos e opiniões deste post apresentam pontos de vista pessoais,
não refletindo necessariamente a opinião da Microsoft Corporation.


03 settembre

TBot: your translation buddy / TBot: seu companheiro de tradução

 

Imagine if you had a friend always available at MSN Messenger to translate things for you. Cool, yeah?

The good news is that such a thing is becoming true! Microsoft has released TBot, which is a translator robot that you can add to your MSN Messenger contacts (mtbot@hotmail.com). You can set it up with a dozen of origin/destiny languages. Try it today!

tbot

[]s
-- AFurtado
The statements or testimonies I offer in this post represent my own personal views.
I am speaking for myself and not on behalf of my employer, Microsoft Corporation

English - Portuguese

Imagine se você tivesse um amigo sempre disponível no MSN Messenger para traduzir coisas para você. Legal, hein?

A boa notícia é que tal coisa está se tornando realidade! A Microsoft lançou o TBot, um robô tradutor que você pode adicionar a seus contatos MSN Messenger (mtbot@hotmail.com). Você pode configurá-lo com uma dúzia de línguas da origem/destino. Experimente-o hoje!

tbot

[] s
-- AFurtado
Os relatos e opiniões deste post apresentam pontos de vista pessoais,
não refletindo necessariamente a opinião da Microsoft Corporation.