![]() |
|
Spaces home FurtaSpace - www.afurtad...PhotosProfileFriendsMore ![]() | ![]() |
FurtaSpace - www.afurtado.netA space to discuss (digital) games (development), software engineering, IT trends and career evolution, Imagine Cup and other adventures in the Microsoft world and some indignations (but also some things that make me proud) of a place called Brazil
|
|||||||||||||||||
|
June 19 50k visits and a gift for you! / 50 mil visitas e um brinde para você!
This blog was born less than 10 months ago. As an evolution of my previous, academic-focused TheSpoke blog, FurtaSpace has a broader line: to share personal experiences and thoughts of our Information Technology Era world, with special focus on software development & engineering, career, games and Microsoft. It was initially in Portuguese, then in English, now it's bilingual. Yesterday, an achievement: FurtaSpace has reached more than 50,000 visits, now with currently about 2000 visits per week! Bah, that's only a fraction of what many ordinary websites receive per day, I know, but anyway I'd like to thank you for your time to not letting these posts go into the vacuum! To express my gratitude, I'd like to give away a 1-year Windows Live OneCare subscription, to one of the first 5 people who comment on ways to improve this blog (topics they would like to see, topics they would not like to see, etc.). These 5 people (or less, if less people comment) will take part in a lottery whose winner will be awarded. PS: I'll use my AFurtado Random Number Generator, simple/stupid yet useful tool I used to employ when giving prizes during my events in Brazil. If you need such a tool, Thanks, The statements or testimonies I offer in this post represent my own personal views. English - Portuguese June 15 A typical Microsoft interview question: try it! / Uma pergunta típica de entrevistas para a Microsoft: tente você mesmo!
Here you have a typical question that would be asked to you during a Microsoft job interview: "People in a given building are complaining that an elevator (or lift, as you wish) is taking too long to move people from one floor to another. How would you solve this problem?" Think about this question during the week; I'll come back next weekend to share a great answer from my friend, co-worker and previous Imagine Cup Japan 2005 partner, Igor Gatis. It would be cool if you share your thoughts in the comments as well... []s The statements or testimonies I offer in this post represent my own personal views. English - Portuguese June 14 Generating .NET documentation files with Sandcastle / Gerando arquivos de documentação .NET com o Sandcastle
Sandcastle is a tool that extracts XML comments from code and generates documentation files. The tool is very flexible, but unfortunately, since it requires some scripting from the end-user, it may not be intuitive for those who simply want the basic scenario of generating a .chm (help file) from a .NET assembly. I've created a simple .NET app (BuildDoc.exe) together with a hacked Sandcastle script (build.bat) to help you to generate basic documentation from XML comments. You just need to follow the steps below: 1. Comment your code with XML comments (duh!). A warning is that your class should be public, otherwise it won't appear in the generated documentation files. 2. In the project properties Build tab, select the option XML documentation file. Now when your solution is built, a .xml file with the name of your .NET assembly will be generated as well, containing the documentation. 3. Download Sandcastle. 4. Create a new folder in the c:\Program Files\Sandcastle\Examples folder to be used temporarily for the documentation generation. For example, call it "TestDoc". 5. Copy your .NET assembly and its .xml file to the TestDoc folder. 6. Copy my BuildDoc.exe program and build.bat script (get these files here) to that same TestDoc folder. If Sandcastle in your machine is installed in a folder other than c:\Program Files\Sandcastle\, change this twice in the build.bat file. 7. Open a command prompt session. If running Vista, use elevated privileges. 8. Go to TestDoc folder and then run BuildDoc <AssemblyName>.dll. 9. Wait for the generation process to happen. It may take a few minutes. 10. Your generated documentation will be at TestDoc\Output\<AssemblyName>.chm: If you want more control in the generation process, you can do further hacking in my script and other Sandcastle scripts. For example, you can change the generation style from "vs2005" to "hana". I'll leave this as an exercise to the reader. ;) []s The statements or testimonies I offer in this post represent my own personal views. English - Portuguese June 12 Testing automatic translation / Testando tradução automática
Sometimes machines do far a better job than humans, right? Perhaps translating this blog may be one of these jobs. This is the first post in which I'm using a "robot" called Machine Translation Bot to translate my blog posts. The father of the creation is Helvecio Ribeiro, a brazilian co-worker at Microsoft. The bot is actually a Live Writer plug-in and requires very less effort to adjust any remaining mistakes. Let's give it a chance! []s The statements or testimonies I offer in this post represent my own personal views. English - Portuguese June 07 The Pale Blue DotPlease think about this...
Have a nice weekend! []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. Gadgets, ActiveX and x64 machinesI created an ActiveX component using C#, adding the ComVisible(true) attribute to the assembly and enabling the "Register for COM Interop" option in the Build tab of the project properties pages.
Then I was trying to make a Sidebar gadget to consume it, using something in its javascript code like: var myActiveX = new ActiveXObject("Namespace.ClassName").
After two days with no clue why my gadget was not being able to see the ActiveX, I was finally able to find the cause: my machine is a x64 machine and requires a different process:
1. Setting the target platform as x64 in the project properties build tab 3. And here comes the big trick: registering the assembly for COM interop manually. But a 64-bit version of RegAsm.exe should be used for this: the one located at c:\windows\Microsoft.NET\Framework64. It's not the first time 64-bit machines give me development headaches! This one should be called a nightmare, actually. []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. June 06 Gyroscopic pool tableThat's lovely to see technology working to improve game experience (digital or not). This video shows a pool table, in a cruise, that is always level due to a gyroscope.
[]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. June 05 City Rain - Brazilian XNA game and Imagine Cup 2008 finalistCity Rain is the XNA game representing Brazil at the Imagine Cup France 2008 world finals, in Paris. City Rain have already won the second place in the 2nd XNA Challenge Brazil, of which I was one of the judges.
At that time, what impressed me the most was the fact that the game presents a creative mix between two different styles: (city) pieces fall down as in Tetris, while they should be properly put together as in Sim City. The graphics are cute and remind me of nice "pixel art" work.
I believe that the environment-specific features of the game (such as properly disposing city garbage) makes it unique, especially for this year's Imagine Cup theme. On the other hand, I personally dislike some of the Sim City "generic" elements which were added to the game, such as violence or disasters like earthquakes (IMHO I believe they could be changed by more environment-specific stuff which would be better aligned to the main theme). But the balance in general is very positive.
It seems the game is available for download in its website. If you are only curious about how it looks like, check the video below:
[]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. June 04 Tip of the week: Office Labs Community ClipsIf you are looking for a free Camtasia-style screen/audio recording solution, you should try the Community Clips, by Office Labs. The installation takes seconds and just after that the tool is displayed as an icon near to the system clock, and can be easily launched to record any window or region of the screen:
Other interesting feature is the fact that you can email or upload the recorded video to Soapbox when you're done. Integration with Office applications is an extra and also interesting case you want to create help videos to the community:
Give it a try!
[]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. May 30 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. May 28 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. May 25 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
May 24 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
May 23 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. May 22 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. May 21 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. May 19 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. May 17 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. May 16 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).
| ||||||||||||||||