24/11/07

A nice and useless geek trick

I hope that by know all people that reads my blog has already changed their references to my new website.
Anyway here's another reminder about this change, and a reference to a new post.
Check it out at BrunoSilva.net

19/11/07

Online Photo Editing

Read more about this great tool in BrunoSilva.net

18/11/07

A minha nova casa cibernética!

Finalmente acabei a migração deste blog para o meu espaço próprio!
Actualizem as vossas referências nos favoritos e RSS readers.

Site: http://brunosilva.net
RSS: http://brunosilva.net/?feed=rss2

10/11/07

TinyURL.com - shorten that long URL into a Tiny URL

Do you want to share an really big URL in a presentation to an audience or in a printed document?
Maybe it isn't such a good idea. It's a boring task to copy it and in a presentation you don't want to show a slide for 5 minutes to let everyone copy it.

Well, you can use TinyURL.com. Type any long URL you want and it will create a new one like http://tinyurl.com/37xaar. It can be useful.
I found out about it in TechEd, when a speaker left some references in the end of the presentation.

TechEd 2007 - Web Application Security

Web Application Security
Alik Levin

The first part didn't brought any knews. The only funny thing is that we pretended to be hacking TechEd website, but he was using an internal webserver while spoofing the adress :-)
The showed us Microsoft Network Monitor 3.1 as a sniffing tool. He made some SQL injection in a search form to reveal the schema of the database and retrieve login and password information.
Alik talked about exploiting over privileged accounts. Applications should only have permissions to access and do what it needs, otherwise some hacker can use the extra privileges to his own needs.

I head about some tools I didn't know and that can be quite useful.
Guidance Explorer - a tools that allows you to navigate in best practices documentation, select topics of your interest and export into a Word document.

Thread Analysis and Modeling tool - a tool where you can describe your application and find out what flaws you may have and how to fix them. It can also produce some useful reports.

FindStr and MSIL Disassembler - These two tools together allows you (for testing) or hackers (for attacking) to find critical data like passwords from .NET assemblies.

09/11/07

TechEd 2007 - Blogging Panel

Blogging Panel
Tom Mertens

During Thursday lunch time it was a Q&A session with some bloggers.
It was discussed that blogs started as an digital diary and nowadays it has any kind of information.
RSS format and readers were pointed as one of the big causes of bog popularity. It's is easy to follow a lot of blogs with RSS and there are even tools to filter information from these blogs.
Someone in the audience asked in which language did the panel members write in. They write in English because it reaches an larger audience, but if they are talking about some specific content to their country, they also post in their native languages.
Another topic was how to find time to blog. One person said that he thought that if son many important and busy people in the world find the time to blog, he could also find his own time to blog. By the other hand blogging can be important as a profile builder. Blogging makes us known in communities and inside our companies. It's a way for people get to know us and our area of expertise.

I had to left before the end of the session to have lunch. So this is all I heard about.

TechEd 2007 - Loose Coupling in Practice: Composite UI Application Block (CAB) in the Real World

Loose Coupling in Practice: Composite UI Application Block (CAB) in the Real World
David Platt

Nowadays many information is placed in remote data stores. This information can be accessed by browser clients (webpages) or rich client applications (windows forms). Generally rich clients beats browser clients because of the overhead on interface loading. When an application is used every days, several times a day the interface performance is essential.

There is a big problem: date is stored over different locations and in different systems.
Mainly systems are application-centric. A user has to access different applications and mentally integrate information. As an example, a patient in the medical context may have access to medical record, personal data and laboratory results in different applications when the best choice would be to have an integrated solution. application-centric systems have a overhead, make people loose time and can lead to catastrophic errors.

On the other hand we have user-centric systems where information is integrated into one application that suites all the user needs (in some specific context). This system can be built as a monolithic application which doesn't work technically or financially because it is unmanageable and you cannot make everyone change their implementation entirely to integrate.

A better idea seems to be Loose Coupling. Create almost independent blocks which are integrated in an common shell. This way we can have distinct data sources and little uniformity issues. An important question when building these systems is what does the user need? Will there be many kinds of users? Which specific functionality does each one need?
With those questions answered we can start to design an common user interface with shared elements (called shell) and think which interface (methods, events, properties) has each module that will be loaded into the aggregating shell.

In this area Microsoft started with Composite UI Application Block which had a publish/subscribe event system to allow inter-module interaction. It had a good architecture but it wasn't easy to work with.
After the there was a new evolved system easier than this one and also with a good architecture. It is called Smart Client Software Factory.

This last one allows you to define an interface to a service like authentication, define several implementations and change the implementation that is being used by changing an XML file. You must define the interface, develop your implementation, or collect implementation made by third party companies, register these in your application and configure the application which to use.
You can also make some nice integration stuff with UI. There are two key concepts.
Workspace - A module placement zone
View - just a bunch of controls which display data (can be placed on workspaces)
The modules (different functionalities potentially from different software companies) can be integrated in the application by adding themselves into a workspace in the shell application. This creates a slight dependency: the modules must know the shell UI and their workspaces names.

The workspaces and places to which you can load the modules UIs. But this isn't enough. There are some functionalities to which people are used to and which need a more integrated UI. For example the main menu in the top of the main window or the status bar. This is possible with UI Extension Sites! You just have to register shared zones to which each module can add items. For example each item can add some items to the main menu.

David Platt has written book published by Microsoft Press focusing this subject.

Congratulations André!

Check this out!
André Sousa (Portuguese Microsoft Student Partner) won a Embedded Fusion board by making the best question in a session presented by Rob Miles.

This prize was referred int Rob Miles' website.
http://www.robmiles.com/journal/2007/11/7/final-talk.html

TechEd 2007 - Securing ASP.NET and Windows Communication Foundation (WCF) Applications with Windows Cardspace

Securing ASP.NET and Windows Communication Foundation (WCF) Applications with Windows Cardspace
Vittorio Bertocci

I attended to a second session about Windows Cardspace, and I'm afraid that by mistake have written some topics about this session in my other post about Windows Cardspace...
So, I'll just leave some brief notes that can became handy.

He gave us an preview of a library of WC components called ADFS "2". These components make very easy to integrate Windows Cardspace in a .NET application. Today, to develop a WC web application you must do it "hardcoded" with HTML to specify the WC object and code login/registering logic.
With these components it's just drag and drop.

Something I learned in this session that wasn't clear in the first one, is that you can define your own cards with custom information!

TechEd 2007 - Silverlight, ASP.NET and Web Services in IronPython & IronRuby

Silverlight, ASP.NET and Web Services in IronPython & IronRuby
Mahesh Prakriya

Nowadays there a lot has been talked about Dynamic Languages like Ruby or Python. This session was about an implementation of those in the .NET Framework.
Mahesh showed how to use these languages as a replacement of managed javascript in Silverlight programming. You can find the demos he used and some more in Codeplex.

He showed some programming in ASP.NET using IronPython. There is a major difference when programming in dynamic languages: they are not compiled, allowing on-the-fly code changes. The code is compiled as needed.

Finally there was an example about how to call web services in IronPython with just a few lines of code using a library named Dynamic Web Services Helper which can be found in Codeplex.


Mahesh will be in Sapo Codebits (Lisbon) making an presentation about this subject next Monday.
He will be also in Universidade Nova de Lisboa - Faculdade de Ciências e Tecnologia (Monte da Caparica) at 10 am in the some kind of presentation.

If you can, go there. He is a great speaker and the subject is great!

08/11/07

TechEd 2007 - A developer diary on implementing Windows Cardspace


A developer diary on implementing Windows Cardspace
Dominick Baier


Do you know Windows Cardspace? A new feature of .NET framework that allows authentication over the internet.
It is designed to be convenient and secure (avoiding phishing).
Nowadays authentication is application-centric. This means that which website has it's own authentication system, stores information and the credentials of the users.
This design has some problems. People are registered in many sites. And they don't want to memorize many passwords, so they tend to use the same password in almost all of them. If a hacker discovers one of them it can be a big big problem. By the other hand, many websites stores personal information, almost like a business card. But a year or so after the registration many informations can change (such as address, phone number and so on).
Windows Cardspace has a user-centric design. The information is stored in user's computer. There is no need for a password. Windows Cardspace can also store information about the user (like a business card). When a user uses a card in a website, this website can refresh information about the user in their database.
This system can be used side-by-side with a old fashion way.

This system has a problem with mobility... To access websites from different computers you must backup a card into a disk or pen (protected by a password) an temporarily import it into the computer you want to use.

Alcides has told me about OpenID. I will have a look at it soon.
If you have Windows Vista try Windows Cardspace in SignOn.com

TechEd 2007 - Women in Technology


Women in Technology
Ani Babaian, Irene Pathy

During lunch time there was an great session with a panel of 4 women and an insider man :-P
This session was about the role of women in the technological world. They talked about topics like how to grow passion in technology among women, and how children should be taught that way.
Because women are so different from men, they must be reached in different ways. In USA, for example, there are some programs for young woman.
Another topic was the importance of women in developing teams. They're important in these teams. Why? Because diversity is good to create new things. By the other hand, women generally have great communication and people management skills.
I know that they also talked about motherhood, but I had already left to the next session. There were too many overlaps in this day... But check out at Susana Vilaça. He was there during all session. She hasn't posted about it yet, but I'm sure that she will soon.

TechEd 2007 - Communities? Can They really help my business, my day-to-day job, and my career?

Communities? Can They really help my business, my day-to-day job, and my career?
Bart Martens

This was a session lunch (AKA one of the sessions that prevents me from having lunch :-P)
The speaker talked about what was a community many centuries ago and now.
It started as a bunch of people with common interests but now is much more than that.
From the IT and Development point of view, communities are a support and experience sharing mean.
For companies like Microsoft, is a important source of feedback and influence on the market.
Many people consult communities blogs, wikis and forums before buy some equipment, for example.

I left at the middle of this session to attend to an simultaneous session.

07/11/07

TechEd 2007 - Building Fun, Cool Applications with Popfly


Building Fun, Cool Applications with Popfly
Dan Fernandez
First time I tried Popfly I didn't like it too much. But I gave it a change by learning more about it in this session.
There was a lot of people in this session, too much people actually. I had to attend to it in another room, with an bad streaming quality...

The main idea is to democratize development over the internet. Allow people with almost no programming experience to create rich content websites. Dan used a great analogy. The difference in the number of programming experts and people that doesn't know how programming is like difference between the size of the Sun and the size of Saturn. Actually, after seeing his demonstration, I wasn't convinced than Popfly is really a tool that can be used by every one... Is more like a toy for programmers :-P

In his first demo he showed how to display a bunch of Flickr photos in a carousel and in a virtual book.
He showed how mashups (small visual) can be exported to Windows Vista Side Bar, Live Spaces, Facebook, or even to an simple HTML page. These mashups are actually Silverlight applications.
He also built an popularity comparer, that with two search terms creates a comparison graphic with the number of results in a search.

Dan also showed us how to create Building Blocks, which are the components which are combined to build mashups. It uses javascript to code behaviour and XML to store metadata like the kind of input/output that the block takes, and some suggestions about compatible blocks that can be combined with our costume one.

Pretty nice, hum?

TechEd 2007 - Microsoft Student Partner Activities




In yesterday afternoon the MSPs from all over the world who came to this event hand a special dedicated set of sessions. These sessions helped us realizing how was the program outside Portugal.
There were some old Microsoft internees talking about their experience working in Microsoft.
In the end we had the change to ask everything we wanted to some top speakers of the event as David Plantt, Dan Fernandez and Rob Miles.
After these sessions it was bowling time! I sucked but it was fun. I had the change to meet MSPs from different countries.

TechEd 2007 - Improvement in Visual Studio 2008 and .NET Compact Framework 3.5 for Windows Mobile developers

Improvement in Visual Studio 2008 and .NET Compact Framework 3.5 for Windows Mobile developers
Andy Wigley

Not a great session. Compact Framework (CF) is a subset of .NET Framework for windows mobile devices.
It doesn't have server technologies as ASP.NET and .NET Remoting. Doesn't support Reflection. Some properties, events and methods were dropped from the original framework.
In about 10% of space of the original framework, it has about 30% of the functionality.

It has support for a subset of LINQ and WCF. The CF has now an audio API.

Visual Studio 2008 has support for Unit Testing, has a new version for the emulator (version 3.0) and supports Windows Mobile 5.0 SDK out of the box. VS 2008 has a Security Manager, which enables you to test your software in various possible security configurations in Windows Mobile.

TechEd 2007 - Why Software Sucks



Why Software Sucks

David Platt

Excellent session, excellent speaker!
The main topics were taken from his book which has the same name as the session.
I definitely have to read it!
He talked about why "normal" people don't like software. The old problem of making software for our own and not to the people. Software shouldn't be an objective, but just a tool to solve a problem. But the question is "What is the problem?" We must define which problem a software is meant to solve. It is the only way to make software useful an loved by people.
He gave some brilliant examples about knowing the users. The fact that there are more women than men, but mainly programmers are men. Programmers are people with high academic preparation, but most people in the world isn't. Facts like this must make us think. To develop software we have to put ourself it the user shoes.

TechEd 2007 - Introduction to Microsoft Sync Framework

Introduction to Microsoft Sync Framework – Synchronization Framework for Enabling Roaming, Offline, and Collaboration Across Devices, Services & Apps

Philip Vaughn

Unfortunately, after 2 hours in Barcelona public buses, we were late for the first session of the day… I was supposed to go to a XNA development session. The only one of the event… Too bad. I used the time I had before the second session to put e-mail and blogging up to date.

I attended to a session about Sync Framework. It’s pretty nice! I hadn’t heard about it before this event. The big picture is captured the sentence

Your data wherever you are, on any PC, device or service without artificial barriers

This framework is meant to provide offline working and allow data to follow the user between systems.

As an offline working example we have Outlook Cached Mode, Mobile Work and Rich Experience on Web. By the other hand it allows collaboration as in Outlook contacts, Groove and Music Everywhere.

This framework allows applications to give a fast response, be always available, being optimized on storage questions (eg. Sending to server only what is needed).

The speaker talked about 3 main reasons to use Sync Framework.

It’s Powerfull. Deals with problems for us (conflicts, connection errors, corner cases)

It’s Flexible. Allows arbitrary data storages and data types, arbitrary protocols and topologies (one-way, peer-to-peer, etc.)

It’s Productive. Visual Studio 2008 is the ideal tool for quick development.

The first demo was called Contacts Anywhere. He created a contact entry in a custom application and synchronized it with Outlook and a mobile device.

A nice feature of this framework is that in a multiple synchronization hosts, when a conflict is solved between two of them, the conflict will not occur in the following synchronizations with other hosts, since it was already solved.

To work with Sync Framework you can use the built-in providers for file system synchronization, database synchronization and Simple Sharing Extensions (over RSS feeds).

There was a demo of the file system provider with the SyncToy application.

You can also add new providers to extend to other contexts.

I’ll try this framework as soon as I can. It is under development, but if you google it you can find a Beta version to try it out.

06/11/07

TechEd 2007 .NET Framework 3.5 End-to-End: Putting the Pieces Together - Part 1 AND Exhibition, Community Lounge, Ask The Experts Open

.NET Framework 3.5 End-to-End: Putting the Pieces Together - Part 1
Matt Winkler, David Aiken

This third session was a disappointment… The two speakers used DinnerNow demo (available at Codeplex) which uses a little of all .NET framework 3.5 for things live user interface (AJAX, WPF), WCF for communications, Smart Card for authentication, LINQ for data access and so on. Their objective was to show integration instead of isolated functionalities.

It started with a power failure! All light and computers down. They took a while to setup the session software again, while they bought time by speaking about nothing.

They showed this system in a user perspective, and then started to talk a little about each technology point. After LINQ and WCF I stopped paying attention… Speakers’ sense of humor was awful. :-P (They were dressed as cookers…) And by making a presentation with such a large subject It became boring and too much superficial for me.

After half session I left to the entrance where I submitted the feedback form. After a while I gathered with the MSP team and went to the Exhibition Opening. I had contact with some companies and collected some goodies inside my TechEd Bag!

Then we had dinner, went to the hotel, crashed into André and Nelson’s room, I wrote these 3 posts, and went to sleeping (1:40 a.m.)!

Flickr Updated

Check out our new photos in
http://www.flickr.com/photos/brunomiguelsilva

and

http://picasaweb.google.com/susie.vilaca

TechEd 2007 - A Tour of Visual Studio 2008 and the .NET Framework 3.5


A Tour of Visual Studio 2008 and the .NET Framework 3.5

Daniel Moth

Visual Studio 2008 was shown as a superset of Visual Studio 2005. It supports multi-targeting (as a told in last blog entry), it has a nice helper: removing unused imports :-P, allows nested master-pages in design-view and can be used as an IDE for different variations of javascript (IE specific, standard, Firefox, etc). It has a CSS manager with preview, and by default all appearance settings as fonts and colors are stored in CSS classes and not in-line.

In Visual Studio 2008, unit testing tools will be available in Professional Edition and not only in Enterprise, like in VS 2005.

Daniel made a demo which interested me a lot! Developing add-ins for Microsoft Office 2007. VS 2008 has a visual tool for Ribbon design, for example. A new feature of both C# and VB9 is the local type inference. This means that you don’t have to declare a type for a variable, because the compiler will analyze the code and set it into the correct type. You can declare a variable, assign an integer value (having intellisense for integer variables) and then assign a string (having intellisense for string values from that line on).

There is some syntactic sugar for C# as in-line functions (for example to assign a delegate without declaring a function), object initializers (when creating an object declare the default values for public properties). These features are compatible with .NET Framework 2.0, because the compiler creates the suitable IL definition.

TechEd 2007 - Keynote


Keynote
Speaker - S. Somasegar

TechEd first session was in the auditorium. It was huge! And crowned also.
The speaker was hard to understand, because his English or his accent (I can't tell what the problem was) was awful.
But it was nice anyway. It was a quick overview about hot Microsoft Technologies. Not technically informative at all. It was just meant as a candy to drive us the next sessions.
He talked about Designer/Developers workflow and how Visual Studio and Expression Studio are a great help.
He gave us the information that over 1 million people are currently developing on Visual Studio .NET, and there was over 17 million downloads of this software. He highlighted that MSDN forums gives an answer to approximated 80% of posted questions.

Microsoft Platforms are meant to be used for a rookie hobbyist, academic students, designers and professionals/teams of development.
In this section I heard about a lot of things I didn't knew:
-
MSDN wiki - meant to the community of developers.
- MSDN Translation Wiki - designed to expand Visual Studio 8 languages to other languages. He talked about a translation project in Brazil.

Visual Studio 2008 and .NET Framework 3.5 will be available for MSDN subscriptions in later November 2007.

Some of the new features of VS 2008 were split view (code/design), hierarchic tag selection, full CSS support, multi-targeting (choose the framework version for a project), LINQ designer, new Ajax Controls, intellisense and debugging support for javascript.

It was announced a license change that allow people to use VS to develop to other platforms than .NET framework. It was shown a demo of two World of Warcraft plugin development in VS using a customization pack that will soon be available in Codeplex. The first one was a board with information about scenario objects, and the other one was a RSS reader.

Another announcement was the release of Popfly Explorer Beta. A VS add-in that allows to use Popfly mashups in a webpage developed in VS Express Editions.

Day One



Finally at TechEd, and after a weekend without internet connection first thing we done was getting online.

05/11/07

Tech Ed 2007 - Weekend

I’m finally in Barcelona! I had a great trip. My first time in a plane!

We spent the weekend sightseeing Barcelona.

You can find some photos in my flickr page (http://www.flickr.com/photos/brunomiguelsilva)

And because this day was spent together with Susana Vilaça, André Sousa, Nelson Correia, Miguel Vicente and Alcides Fonseca, take a look at their blogs to know more about our weekend.

02/11/07

Experimenta o Ruby!



Ontem mostraram-me este site, que além de ser mais um tutorial da linguagem de programação orientada a objectos Ruby tem um conceito muito interessante. Não assume a instalação de qualquer framwork. No site temos uma shell emulada onde são avaliados comandos na linguagem. 15 minutos é um que é preciso para sentir um pouco da sintaxe da linguagem.

Nota: Tive problemas a introduzi o [ no Internet Explorer. No Firefox consegui sem problemas.

01/11/07

Microsoft TechEd Developers 2007



Next Saturday I'll be leaving to Barcelona for a week to attend to TechEd Developers 2007!
This is an international event about Microsoft Technologies. You can learn more about it here.
This is a great opportunity sponsored by Microsoft Student Partner Program.
By now you might be wondering why I am writing this in English. This is an international event, so I thought that it would be a good idea to write about it in a language that can reach a huge amount of people, expanding my blog to the rest of the world.

I hope to post several information and opinions about my experience during next week. I'll write about the sessions I'll be attending, but also about this week as a personal experience. After all, this is my first time away from my family in a foreign country just with friends :-)

I leave here reference to other MSP's blogs. These blogs belong to MSP's that will also attend to this great event.

Alcides Fonseca http://alcides.ideias3.com/
André Sousa http://weblogs.pontonetpt.com/asousa/
Susana Vilaça http://susie-v.spaces.live.com/
Nelson Correia http://nelsoncorreia.spaces.live.com/

I want to give my apologies about my poor english. It has been many year since last time I wrote in this language. I'll try to express my self as good as I can!