| Profilo di AndreFurtaSpace - www.afurtad...FotoBlogElenchi | Guida |
|
30 maggio Design Guidelines for Developing Class LibrariesDo you know the difference between the following C# code blocks below?
// Snippet 1:
catch (Exception ex) {
// do something
throw ex; }
// Snippet 2:
catch (Exception ex) {
// do something
throw; }
Both of them are re-throwing exceptions, but the first snippet is a bad implementation, since it makes the stack trace to point to the re-throw as the error location, instead of the original error location. This can cause misleading interpretations of the source of the error.
And did you know that it's a best practice to keep public names based on short acronyms (two letters) all in uppercase, such as IO, while long acronyms (3 or more letters) should use the Pascal convention, such as XmlWriter?
Finally, do you test your abstract classes with concrete implementations before releasing your code?
You can find interesting tips like this at the Design Guidelines for Developing Class Libraries pages. If you are a framework/library developer, be it used or not as part of a broader software factory initiative, such a reading is an definitively excelent 1-hour investment of your time!
[]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. 28 maggio Imagine Cup Brazil 2008 is over, Pernambuco state students are champions againFor the fourth time, students from the Pernambuco state are the brazilian champions of Imagine Cup. My friends Carlos Rodrigues and Renato Ferreira, from the Federal University of Pernambuco (UFPE), together with my other friends Roberto Sonnino and Eduardo Sonnino (USP + Unicamp universities) won the 2008 contest with the project "Ecologger". Now they are going to the world finals in France, in july.
Other team from Pernambuco won the third place (team Try IT). The second place was won by a team from São Paulo.
God job guys. To see my home state and university performing so well in such a worldwide competition really makes me proud, far away from home!
[]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. 25 maggio GAT + DSL = automationThese days I'm playing with interesting approaches (other than DSL Tools) that also compose the Microsoft Software Factories Initiative, and I've started with GAT (Guidance Automation Toolkit). Roughly speaking, GAT allows you to define "automation recipes" that run inside Visual Studio, using custom-built wizards to collect input from the user and then launching some actions.
For example, suppose that, in a game factory, the developer right-clicks the "Game Entities" folder and then select the option "Add new game entity diagram". Then a wizard opens and its pages collect information from the developer, which will define how the diagram will be created, such as the name of the diagram, if custom collision detection will apply to such diagram entities and so on. If you want to know more about GAT, I recommend Jelle Druyts posts about this.
Finally, Jelle provides a 5 min introduction to GAT in the video below:
DSL (Domain-Specific Language) Tools and GAT are complementary to each other in the sense that DSLs provide means for you to easily specify variabilities to your domain instance (such as a game) and to add modeling capabilities to the development process. On the other hand, GAT uses seamless IDE integration to guide the developer in the execution of the right actions at the right time, and both approaches leverage already existent patterns and frameworks of the domain.
MSDN Architecture Center has an article which discusses more on how DSL and GAT can be better integrated in a software factories context to improve the automation end-goal. Some items I'd like to highlight follows below:
Impressive... the more you learn, the more new things appear for you to learn!
[]s
-- AFurtado
VS add-ins I recommend (and one I don't understand)Three cool Visual Studio add-ins I recommend are:
Now one add-in I still didn't get the message is GhostDoc. It automatically creates comments for your code, but I found that either some of them are obvious (like documenting that the constructor of class XYZ "Initializes an instance of class XYZ") or require you to write code element names in such a clear way (what is good, of course) that comments may become unnecessary. For example, for the method HasFoo the generated documentation is something like "Checks if this instance has a foo".
Is documentation necessary when the code already tells it all, or am I missing something obvious? Anyway, the tool is a nice sample of VS extensibility!
[]s
-- AFurtado
24 maggio Live Search CashbackThe brand new Cashback feature of Microsoft Live Search was just released. The idea: search for products using Live Search. If you buy any of the products in the search result, Microsoft will give you money (cashback).
Give it a try! More about Cashback release:
PC World: Microsoft Unwraps Search Engine Reward Program CNet: Is Live Search Cashback a game changer? Washington Post: The Empire Strikes Back
[]s -- AFurtado
23 maggio How to change your windows live ID emailIf you, like me, created your Windows Live ID a long time ago (or should we call it "MSN Passport" at that time?) and uses no more the email you've used when registering, you should know it's possible to update your primary e-mail. This has the same effect as creating a new Live account but having all your info (such as contacts and your blog at Live Spaces if you have one) migrated. To do so, go to this link here and click on "change" just beside your e-mail.
It seems that such a feature exists for more than 1 year ago... As we say in Brazil, better later than never!
[]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. 22 maggio Microsoft's vision on the (near) future of healthcareWhen I joined the Microsoft Student Partners Program (MSP) about 4 years ago, I used to present some videos in which Microsoft's shared its vision for the future of healthcare, entertainment and other areas. Looking back to those videos, we can just notice how many of such ideas are already (being) realized. Things that sounded impossible or difficult in the past, such as receiving, in your TV, notifications from new media content generated by family members and updating a digital photo frame with such content are just around the corner.
So what to expect next? The video below presents an update on Microsoft's vision for the future of health care. Check it out:
This time, I personally feel that such many cool futuristic features may not be much far away from today. Not only because I was able to see with my own eyes all of the innovation created by people all around the world at the Imagine Cup, but we can cleary see that many of the features presented will certainly be built atop today's devices, such as Microsoft Surface, the Windows Ultra Mobile PC or even the new Microsoft Touch Wall. If you have never heard about this last one, you'll probably want to check the video below:
Finally, if some people think such kind of technologies are still far away for a "mortal developer" to put his hands on them, fortunately they're wrong. For example, it is possible to develop applications and play with Microsoft Surface today:
So the deal is on the table: technologies and resources are just around, why don't we use some of our creativity and innovation to create the things that will really leave a positive impact to the world? They don't need to be the latest worldwide super cool invention; I bet lots of things can be improved with the right technology and human efforts, such as fighting against the basic deseases that kill so many people in the poorest regions of everywhere in the world, such as in Brazil, Africa and India... only then we'll be able to fully realize any future vision on healthcare and on any other domain!
[]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. 21 maggio More productivity shortcuts and toolsFrom some previous blog posts (such as in here and here) you can tell I'm a sort of shortcut freak. Let me share some more cool Vista shortcuts and related things I've just learned today (thanks to some Brazilian folks at Microsoft):
If you assign a shortcut to the Snipping Tool, things become even better: right-click the Snipping Tool in the Start Menu search results (below), then select Properties and finally assign a key in the Shortcut Key field. Be productive!
[]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. 19 maggio Subscribing to TechnoratiTaking this blog a step beyond, I've created a Technorati Profile. Let's check which improvements can be achieved with that.
[]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. 17 maggio DSL Tools: how to resourcesI'll update this post every time I find an interesting DSL Tools related task. This complements other DSL Tools tasks I've identified while reading the DSL Tools authors' book.
[]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. 16 maggio Your TV, now with the content you wantThis post is about a curious thing that happened to me when I was still beginning my relocation experience here in Redmond: one day, back home from Microsoft, I turned on the TV of my temporary house and, for my surprise, I just realized that one of the channels was presenting a sort of "learning Microsoft .NET" show! No, it neither was a webcast nor the TV was connected to the internet. It was an actual TV show, but for nerds (like me).
This reminds me of the project some friends are doing at Partec-MyTV, a local start-up in my hometown (Recife, Brazil) which was created after our Imagine Cup Japan 2005 project received funding from the brazilian government. The idea is to make it possible for you to watch the internet in your TV. I mean, to watch your internet content in the convenience of your living room and couch, with family and friends, if you want.
For example, suppose that I create a channel for my parents to watch in Brazil. Everytime I upload a new video somewhere/somehow, they'll be notified and be able to watch it in their home TV, with no need to learn about RSS feeds or similar stuff. I'm just a channel for them. I myself, on the other hand, will be able to subscribe to internet content that interests me, such as a channel similar to the one above (supposing it was broadcasted from the internet) or the Zero Punctuation series, and watch an episode every morning while eating my cereals during breakfast.
The possibilities from here are many: imagine how useful it would be to register your specific interests in your TV as personal channels (for example, "news related to soccer in Brazil major leagues") and receive updated content every day! That's as easy as we can discover new music with Pandora, one of my favorite places to listen to music in the web. MyTV and Pandora are cool because they can deliver to you content you do not know, but which very probably you'll enjoy.
Other cool possibility is that prefences of friends can have a weight in the equation too, leveraging today's social networks to improve your TV experience! Definitively, the possiilities of a digital lifestyle are fascinating! Hope the MyTV folks keep bringing good news.
PS: and which business model supports such kind of things? A cookie to those who answered online advertisement!
[]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. 13 maggio Pirates of the Syllicon ValleyOne of the things I was ashamed until last week was to never find myself some time to watch the Pirates of Silicon Valley, a movie released almost 10 years ago, in which the history of Apple and Microsoft is told and the main characters are Steve Jobs and Bill Gates.
The movie tagline is a Leonardo da Vinci's quotation: "Good artists create... Great artists steal!". And then you can understand why the movie refers to "pirates". One of the most outstanding scenes of the movie is when Steve Jobs yells to Gates: "You can't steal this idea! I've stolen it first!".
And wow, I was not expecting some "personal caricatures" such as Steve Ballmer as a post-adolescent still aways excited to have some fun and the (bad) aspects of Steve Jobs behavior with employees, which actually impressed me a lot. Of course that's a movie, in which things may be exaggerated, but I'm sorry to say that the previous impression I had about him, a cool person with innovative ideas, made room to another one with definitively less reputation. :(
If the movie is a journey starting from Apple and Microsoft inception, it culminates in the day illustrated by the video below, in which Apple "surrenders" to Microsoft investiment. Apple's "big enemy", which was supposed to be IBM, turns out to be Microsoft at the end of the day. I prefer to not see things exactly that way, since I believe there is large room for both companies to cooperate, prosperate and create innovative things that will change our digital lifestyle for good.
If you love technology and never gave yourself a chance to see this movie, it's time to do so!
[]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. 12 maggio FlatRedBall and VS2008/XNA 3.0?[Updated on May 13, 2008: with the quick reply from the FRB guys, it seems the approach below will work fine. You can check our discussion in this FRB forum thread.]
Short post version: I (believe I) was able to get VS08+XNA3+FRB working together, if you want to try check this project here.
Long post version: as you may already know, XNA Team has released the CTP (Community Technology Preview) version of XNA 3.0. This means that the ultimate release is soon. Three new cool things are:
FlatRedBall Game Engine (FRB), my favorite game engine for XNA, works well with XNA 2.0 and VS 2005 since Feb'08. So the question is: would it be possible to make FRB work with VS08 and XNA 3.0? I'd probably say it might take a bit longer to have FRB working with Zune, but my scope here is to investigate the creation of Windows games with FRB and XNA 3.0. So the goal of the task presented in this post is to play a sound using the new XNA 3.0 SoundEffect class in a FRB project.
My first attempt was not that good: if you copy FRB templates to your VS 2008 project templates folder (instead of VS 2005 folder) and then try to create a FRB game from the VS 2008 New Project dialog, an error happens:
My second attempt was to open a VS 2005 FRB project into VS 2008 and ask the migration wizard to do the job for me. Then I was faced with lots of small hackings: changing the project's target .NET Framework to 3.5, update XNA references from 2.0 to 3.0 version, add a binding .xml file to make FRB to actually use XNA 3.0 and so on. I gave up when not being able to make the FRB Content object to find my sound effect asset. So in the third attempt, I believe I was successful. Ignoring the FRB template for VS, I've created a new XNA 3.0 Windows game project and then mirrored everything present in a typical FlatRedBall project: references to the FRB dlls, folder structure (Screens, Library, etc.) and, of course, changes in the Game1 class itself. When running the project, I got a runtime exception. But then I noticed a warning in the VS Error List: Found conflicts between different versions of the same dependent assembly. So probably what happened was that FRB was referencing XNA 2.0 assemblies, while my solution contained XNA 3.0 assemblies. When double-clicking the warning, I found the welcome surprise that VS08 could fix that for me:
Clicking Yes adds an app.config file to your solution, in which the needed binding redirection is done. The result couldn't be sweeter: I got a FRB game running some cool XNA 3.0 stuff! Download this FRB/XNA3 project and check for yourself the FRB game launching sounds through the new XNA 3.0 SoundEffect class! I've raised how valid was my approach in the FRB forums. Hope to update this post soon with the outcome. []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. Have fun with Zero PunctuationThis is really fun stuff! The Zero Punctuation game reviewing series are really creative and uses a South Park style (including the vocabulary) to share experiences and impressions about games. That's also an awesome opportunity to improve English listening (the name "Zero Punctuation" is not for nothing).
Give it a try! In the video below, Mario Galaxy is reviewed. I couldn't stop laughing after he questioned what the heck is the type of relationship between Mario and Bowser: they fight to death in one day, then go karting together in another! :)
[]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. 11 maggio video - Bill Gates tries V-Eye solution from BrazilIn a previous post, I've shared my excitement on a speech Bill Gates shared with brazilian students in the Global Leaders Forum - Americas. Bill Gates presented Imagine Cup as a way to foster new opportunities and inovation, and he took part in a demo where the students presented V-Eye, a solution made of vibrating wristbands for visually impaired people.
You can finally check the video excerpt below:
For the complete video, go to here and click "BillG GLF Keynote".
Good job guys! I wish all the success you can have on the entrepreneurship you're launching as a result of the project.
[]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. 09 maggio Prototyping a game in under 7 daysI've finished reading a very interesting article about game prototyping: How to Prototype a Game in Under 7 Days: Tips and Tricks from 4 Grad Students Who Made Over 50 Games in 1 Semester. Some highlights: Setup
Design
Development
General Gameplay
[]s 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. Creating (DSL Tools) code generators with T4 EditorT4 is the Text Templating Transformation Toolkit, a text transformation technology Microsoft created to make code generation easier. For example, it is such kind of technology that makes it possible for the DSL Tools to transform visual models into artifacts (code, xml files, etc.).
Since Visual Studio 2008, T4 is pre-installed on all Visual Studio installations, so that you don't need the SDK anymore to use it. This means that many people are creating some interesting T4 stuff even outside of the DSL Tools world, as GarethJ points out in some of his recent blog posts.
To improve your T4 editing experience, T4 Editor is definitively recommended! It provides many vital editor features, such as syntax coloring and IntelliSense, for enabling you to create your code generator in a more productive way. Otherwise you'll be dealing with T4 templates as if you were using Notepad!
I've downloaded the T4 Editor version for VS08 Beta 2 and was able to confirm that it runs without any issues in VS08 RTM. However, in order to ensure that both VS regular and experimental hives (registry areas) will be able to see the tool, run the following commands as VS 08 Command Prompt after installing T4 Editor:
To update the VS regular hive with the installed packages:
C:\Program Files (x86)\Microsoft Visual Studio 2008 SDK\VisualStudioIntegration\Tools\Bin>devenv /setup
To clean the VS experimental hive by copying the regular hive onto it:
C:\Program Files (x86)\Microsoft Visual Studio 2008 SDK\VisualStudioIntegration\Tools\Bin>vsregex GetOrig 9.0 Exp RANU
To update the VS experimental hive with the installed packages:
C:\Program Files (x86)\Microsoft Visual Studio 2008 SDK\VisualStudioIntegration\Tools\Bin>devenv /ranu /rootsuffix Exp /setup
Notice all of the newly introduced "ranu" stuff (ran as normal user). This is a new feature brought by VS08: it is not necessary to have administrative privileges to compile, execute, or debug a Domain-Specific Language Tools solution. For more information on DSL Tools news for VS08, check this link.
[]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. 08 maggio XNA Zune games - see it for real!My friend Jalf (José Farias), brazilian MVP and one of the creators of SharpGames (the brazilian XNA game community) is doing some cool stuff porting some of his XNA games to Zune. Take a look:
This post details his experience. Since it is in portuguese, here you have the highlights:
Thanks Jalf for sharing his experience, hope we can see more cool stuff coming on! []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. 05 maggio Domain-Driven Development and DSL Tools resourcesThis weekend I came through some interesting domain-driven development and DSL Tools resources. Some of them are not necessarily new, but I hope you find them useful.
[]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. 03 maggio Visual Studio GalleryThe Visual Studio Gallery has lots of VS tools and add-ins, such as the PowerCommands for Visual Studio 2008. Cool!
[]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. |
|
|