Welcome to Comunidade do CCISEL Sign in | Join | Help

Luís Falcão

<sharingThoughts />
Mission Statement GENERATOR

Are you creating a new company? A new business? Do you need a Mission Statement? Save a pile of money in consulting with the Dilbert Mission Statement Generator. It will generate a new mission statement as good as any consultat would give and... it's for FREE! Use this money to invest it in you business, and use this statement... Or think about a really meaningfull and simpler one for yourself!

Via Rodrigo Guerreiro post, I found this "clue" in Guy Kawasaki brilliant presentation (I've said this in another recent post didn't I, didn't I?). By the way, this presentation really worth the 40 min you spend watching it.

TechDays 2007

This year I've been @ TechDays2007 presenting 2 sessions:

  • DEV011 - C# 3.0 Future Language Directions and Innovations (21/03/2007 - Room A2 11:15 )
  • DEV027 - LINQ - .NET Language Integrated Query (LINQ) Framework (22/03/2007  Room A8 13:30)

The previous week was of almost no sleep, but, again, I was very honored to give my contribution to this big event. I want to thank Zé Tó and Nuno Costa for this invitation and its confidence giving me 2 sessions. I did my best, hope I met the expectations. 

Chaves made lots of videos @ TechDays and took plenty of photos (Calejo's has more photos). He interviewed me (see the second video) after my Linq session which he also fully recorded. He blogged plenty about TechDays2007 @ PontoNetPT .

Next I give a brief description of my 2 sessions and I leave here the slides (in Portuguese) and the demos I made.

DEV011 - C# 3.0 Future Language Directions and Innovations

In this session I gave a brief introduction to the Linq project and I presented the new mechanisms of the C#3.0 language that were introduced mainly to support Linq, namely:

  • Local variable type inference
  • Extension methods
  • Lambda expressions
  • Object & collection initializers
  • Anonymous types
  • Expression trees
  • Automatic properties
  • Query Expressions

At the end I presented the Standard Query Operators implementation to Objects, namely to IEnumerable<T> collections.

Here are the session slides and the demos.

DEV027 - LINQ - .NET Language Integrated Query (LINQ) Framework

In this session I presented the Linq project more deeply without entering in the C# language extensions details that make this "magic" possible. I presented Linq to objects and the Standard Query Operators, the Linq to SQL and the Linq to XML. To each subject I made individual demos. At the end I made a demo that joined the 3 worlds with Linq: objects, SQL and XML. This demo is a 2-tiered web application with two pages: one that shows the TechDays agenda and where you can select only the sessions associated with a selected tag; and a second page where you see the full details of one session. Soon I´ll make a post dedicated only to this demo.

Here are the session slides and demos.

 


 

All the demos were made with with the Linq technical preview, May 2005. I pretended to use Orcas but I has some problems with the VM I have with Orcas installation, and did not took the risk to use it in my sessions. Therefore if you try to build the demos with Orcas they won't compile because there are some changes between May 2006 CTP and the March 2007 Orcas CTP. The differences are slightly, but must be done!

This was a great event and I hope to be present @ TechDays2008?!

Blog Post with Windows Live Writer

This is my first post with Windows Live Writer. Its configuration to post to a Community Server has no magic (I hope, because I didn't make any post yet, but if you are reading this, the previous statement is true Smile ).

To configure this application to work with CS, the only subtlety that I found was that the web log settings were not detected automatically (after you provide your blog URL and credentials - username and password) and you have to do it manually in the following screen. Pay attention to the Remote posting URL, that should be the base of your CS installation (the MataWeblog2 web service handler) and not your blog. The URL for my case was: http://www.cc.isel.ipl.pt/CS/blogs/metablog.ashx

Enjoy your posts as I'm about to do so for the first time (I hope)!

Simply the best presentation I'VE EVER SEEN!

"When I grow up", I'd like to be able to make a presentation half the quality of this one. You must see this, it's simply awesome! The content, despite being very interesting (Identity 2.0), is completely irrelevant given the presentation brilliancy. Everybody should, at least once, see this.

Everyone that does or ever did presentations will appreciate this as pure ART. I'm used to make presentations (almost on a daily basis since I'm an University teacher for 11 years!) and I've never imagined this was possible. Now I know it is. I don't know if I will ever have the skill and (guts) to try something like this. But I would like to... who knows?!

Congratulations Dick Hardt.

 

PS: Thanks to Pedro Félix for showing me this one.

I’m going to TechDays 2007. What about you?

TechDays is the most important Microsoft event in Portugal. Following the last years tradition, TechDays 2007 (March 22 to 24 2007) agenda is richer and, hopefully, with even more word wide quality recognized speakers (international and national ones, of course J). The agenda is not finished yet, but from the actual draft it seems to be a promising one.

In sequence of my 2005 presentation, this year I'm going to lecture two sessions:

  • C#3.0 and another about Generation Data APIs (21/03 - 11h15)
  • Linq and ADO Entity Framework (22/03 - 13h30)

(The schedules' above are subject to change since it's still a provisionally agenda)

Throughout the preparation of these sessions I pretend to post here some interesting details about these subjects. Stay tuned!  

Anders Hejlsberg on LINQ and Functional Programming

Via Charlie Calvert's Community Blog

Do you want to know the future directions of the C# language? Do you want to know why? Do you want to understand the benefits of functional programming integrated in a modern OO programming language like C#? Dou you want to understand the whys and how’s of lambda functions in C#? Do you want to understand all this stuff from the guy that is doing it? If that’s your case this is a must see. Brilliant! Congratulations Anders (again).

Software requirements and football?!

Have you ever thought that software requirements have so much in common with football (soccer for US guys)? No. Take a look at this video and you’ll find more than you’ve ever imagined (or maybe not). The analogies are pertinent and very well achieved.

PS: The drawback of this video is the music and the ambiance – awful.

.Net Rocks and dnrTV

Lately I’ve been addicted in podcasts, webcasts, training videos, interview talk shows, etc.

In this process I ran across .NET Rocks audio talk shows, hosted by Carl Franklin and Richard Campbell, and the related dnrTV videos. Tipically there is one audio talk @ .NET Rocks that’s followed by a related video @ dnrTV.

From those I’ve heard and seen (till now, because I’ve already downloaded several others to assist) here follows the ones I found the most interesting.

@ .NET Rocks audio shows:

·        Test Driven Development with Jean Paul Boodhoo – If you practice TDD or want to learn about it, this one is a must see. This episode motivated to shows @ dnrTV that I point bellow.

·        Joe Duffy on Concurrency – Very interesting show on concurrency from  the Program Manager from the concurrency subjects in the CLR.

·        Brian Noyes on Data Binding in .NET 2.0 – Pleasant talk about DataBinding and Click Once in .NET 2.0

@ dnrTV video shows:

  • Jean Paul Boodhoo on Test Driven Development Part 1 and Part 2 – This one is a must see if you like TDD. Better yet if you hear first his interview on the subject on .NET Rocks
  • Jean Paul Boodhoo on Model/View/Presenter – This one focuses the pattern Model/View/Presenter (as he states: Model/View/Controller well implemented) used in the application developed in the TDD shows.
James Gosling started a "war" in the wrong direction, didn’t he?

Via Don Box I ran across James Gosling statements about scripting languages @ Sun’s Worldwide Education and Research Conference

Here he stated that  "Java Is Under No Serious Threat From PHP, Ruby or C#". That itself is a natural statement from the father of Java. The problem is what he said to enforce what he meant. It started a war with the scripting world in such a way that he saw himself forced to clarify it’s statements in his blog.

Why did he start this unnecessary “war”? To boast Java? At the expenses of scripting languages? It was a careless statement? From a guy like Gosling?

Shouldn’t he point guns out to the Redmond side? That would be normal and understandable.

In the bunch of links related to this subject lays a link to a video interview with Gosling to SYS-CON.TV. It has very, very, few moments that worth seeing. I don’t know if it’s me, or the awful interviewer, or Gosling having a bad day, but this interview is very, I’d say, uninteresting to be polite. Is it all coincidence?

Please Mr. Gosling, you’re one of the persons I admire(d)!

SSCLI 2.0 (finally)
Finally, after three years since version 1.0, Microsoft launched SSCLI (aka. ROTOR) 2.0.Here are the announced features in a in a nutshell:
  • Full support for Generics.
  • New C# 2.0 features like Anonymous Methods, Anonymous Delegates and Generics.
  • BCL additions.
  • Lightweight Code Generation (LCG).
  • Stub-based dispatch.
  • Numerous bug fixes.

In these new features, is it included a “decent” documentation?!

Su Doku for PocketPC

In the last few menthes my fellow colleague Pedro Pereira has been developing a Su Doku version for Pocket PC. Nowadays this program is very stable and, in my opinion, is one of the most complete versions of the game targeted for Pocket PC. It “really” generates random puzzles, fast, and with different levels of difficulty, solves them (totally or partially), gives you hints and explains them, marks the candidates automatically, let’s you mark the candidates, has several levels of assistance, allows branches, supports the most used file formats and, after all of this machinery, you can actually play!!! Isn’t that amazing? And finally, it’s really free!!!

For the most curious you can actually download the code (in C#) too!

I know this version very well since I’ve been discussing some solutions with him and I’ve been a beta tester too.

Here are some links where you can find explanations of some of the techniques for solving and puzzle generation used in this application.

Have Fun !!!

-- Luis Falcão

Source Force - BD Heroes in Software Development World

It’s a bird? It’s a plane? No It’s Visual Studio Guy  or perhaps … the MSDN Webcast Guy. Well... he’s so fast I can’t see it clearly… but… certainly is one of the Source Force Guys. 

Almost every area has a BD hero. Why not in the software development world?


-- Luis Falcão

Just open Pandora’s (Music) Box

You like Music? You’ll definitely love the Pandora.

You don’t like music? Probably you’ll learn to like with it.

Just try it. Type a song or artist name, and a radio station will be created for you based on that style. And… that’s it. You’ll be amazed with what you’ll be offered to hear. And with a little help from you, tune the station to play only songs you really like.

Your mood changes sometimes? Create another station!!! Another mood change again? Create another one!!!!

This is one of the most amazing projects I’ve seen lately! Congratulations.

Help: “I’m Pandora addicted!”

Another thing that you’ll be amazed is the music quality, “without” cuts or lag of any kind .


-- Luis Falcão

Visual Studio 2005 Code Snippets

Via Pedro Serrano,
Code Snippets web site here

I'm a big fan of code snippets concept. Nowadays I only use IDE that support has this functionality. This is not an exclusive from VS 2005. Eclipse has it for a while.
I’m so fan of VS 2005 code snippets that I wrote some myself. One of my favourites is the following one. This is not totally my original idea. I based my geniality in a snippet that someone showed at PDC (I’m not sure in which session anymore – sorry :(  ). The presenter claimed that they made this snippet at Microsoft just to "hurt" the nerves of VB guys (the presenter was a C# team member). For long time the VB guys joked with them that VB.NET was better tnan C#. The always gave one example the variable declaration and initialization.
In C# you write: SomeType v = new SomeType()
In VB you can write: Dim v As New SomeType()

The VB guys joked that VB.NET was much better that in a simple variable declaration and initialization they had to write the type name only once, compared with the to times you write it in C#. They argued that this sample proves that VB is 2 times better than C#, since you write 50% less (geek jokes!!!).
Well… When VS2005 code snippets showed up, someone in the C# team made one code snippet called (guess?!)... dim, with whom you only write the type name once. I, in a moment of sublime inspiration, renamed the code snippet shortcut to… Dim! Have fun with code snippets, as they are very useful.
Brilliant don’t you think? Well... perhaps not... but makes the (geek) joke even more irritating to the VB guys. Here follows the snippet:

<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets  xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
 <CodeSnippet Format="1.0.0">
  <Header>
   <Title>Local Var</Title>
   <Shortcut>Dim</Shortcut>
   <Description>Code snippet for a local variable</Description>
   <Author>Luis Falcão</Author>
   <SnippetTypes>
    <SnippetType>Expansion</SnippetType>
   </SnippetTypes>
  </Header>
  <Snippet>
   <Declarations>
    <Literal>
     <ID>type</ID>
     <ToolTip>Var type</ToolTip>
     <Default>Object</Default>
    </Literal>

        <Literal>
          <ID>name</ID>
          <ToolTip>The var name</ToolTip>
          <Default>myLoc</Default>
        </Literal>
   </Declarations>
   <Code Language="csharp">
        <![CDATA[$type$ $name$ = new $type$();
 $end$]]>
   </Code>
  </Snippet>
 </CodeSnippet>
</CodeSnippets>

 

Have fun with code snippets, as they are very useful.

The Web is changing...Web 2.0 is arriving. Microsoft is going to change... Bill is saying so! What about you?

Last week I found out about Bill Gates (supposed) internal memorandum that leaked out to the Web. The "self claimed" source is here. All I'm going to write about in this post is assuming this memorandum is authentic. I checked several (trusted) sources and it seams so. If it is not, the thoughts are still valid (at least to me :) )!

This memorandum is "probably" as important as the one Bill wrote in 1995, entitled "The Internet Tidal Wave". (By the way, I heard about this one, read a lot about it, but could never read the original. Anyone knows where I can find it? Just for historical curiosity!). In this memo Bill rang the bells saying that Microsoft (meaning all of its products) should point all the batteries to the Web. Obvious today, but probably not so obvious 10 years ago. The result is what we have today. All MS applications, full Web enabled, and a new platform, .NET, where one of its most important design goals was to enable the rapid development of internet and intranet applications. This platform supports all the "modern" web technologies, with XML and Web Services being the foundations.

Now Bill is ringing the bells again. I emphasise this phrases from his memo that I think are symptomatic of what he means:

  • "Today, the opportunity is to utilize the Internet to make software far more powerful by incorporating a services model which will simplify the work that IT departments and developers have to do while providing new capabilities."
  • "The broad and rich foundation of the internet will unleash a "services wave" of applications and experiences available instantly over the internet to millions of users"
  • "We will build our strategies around Internet services and we will provide a broad set of service APIs and use them in all of our key applications"

In this memo, Bill nominates Ray Ozzie's as the technical leader to this new wave Microsoft is going to embrace and suggests that his (Ray’s) memorandum “The Internet Services Disruption” is the 2005 “The Internet Tidal Wave”.

For those still not so familiar with these subjects, what Bill (and Ray) is talking about is Web 2.0, or whatever you want to call it. The important here are the concepts behind, not what you call it. If you want to take a preview of what web 2.0 means, see samples like Wikipedia, Backbase framework (see backbase the demos and get astonished of what can be done in Web apps wit AJAX), the Netvibes web solution, and MS ATLAS web sites like start.com, live.com, MSN Virtual Earth, etc. But I’d like to make one point very clear here: This is just technology preview. The power of this new vision, this new way of thinking web apps is yet to come. What exist today are just “dummy” experiences.

Term and concepts like REST, grassroots (web) movement, seamless “everything” have to be in our dictionary and mainly in our understanding, in our future wagers.

These entire myriad of new concepts and supporting technologies was what made Bill rang the bells again. And, if you remember, all off this was leveraged by Google Suggests and Google Maps a “few” months ago. All of this continues to keep giving answers about Why Is Microsoft Afraid of Google. But instead of ignoring them, MS is positioning in this field. Others should do the same. But for a giant like MS this is even harder. They have to change everything they have (witch is a lot), and that is very hard, especially for a giant like them. But they will do it. This kind of attitude (that I confess to be an admirer) took Microsoft to where it stands now, and probably will continue to be. But the others could learn from them, couldn’t they?  

Some years ago, I read text from a Marketing guru that said: “to have a long lived successful business (no matter what kind business) you should be able to cannibalize your own products, because if you don't do it, another one (competitor) will do it for you!“. And from what we have been seeing, this lemma is followed religiously by Microsoft. And they have had "some" success, don't they?

Most of the companies I know in Portugal (even successful ones), if you tell their managers this “story” today, mostly you’ll have two kind of reactions: the first is simpling laughing at you, saying - “That is just another geek fashion talk. We’re doing se great with what we have now, let’s not spoil it. When that new wave arrives we’ll catch it”; the second most probable one is – “I see your point, probably you’re right, but right now we can’t change because… (we’re doing so well or so bad - both reasons are given).

This is lack of cleverness. Leaders (in any aspect where the word “leader” is user) should mark the rhythm, distribute the pieces, take as many profit as you can get from the work of everybody he leads. But long lasting leaders should have other characteristic that is, foresee changes and act proactively, even in difficult times, and especially in wealthy times. These are the ones that will last and stay at the top. As for the others, some of them will vanish, some will reappear “spoiling” other business and the most luck ones “will continue surviving”, reacting to changes when they fall upon them. 

The warn is given (not by me, neither by Bill, but from the circumstances we live today). It’s up you what to do with it. I’m going to make my part (as a teacher, a project manager and as a developer) and that is: not ignoring the subject, study it, understand it, distinguish the rubbish from the important aspects, try it, try to have some good ideas (or adopt the ones that arise up) of what to do with it, and be ready to use it, in teaching and in real projects, it as fast as I can. And you, what are you going to do?

Very interesting times are approaching… Stay tuned, fellows!

-- Luis Falcão

 

More Posts Next page »