Thibaut Van Spaandonck’s blog

Some stuff about Web and .NET development
RSS icon Email icon Home icon
  • Book review : Framework design guidelines

    Posted on October 9th, 2011 Thibaut 2 comments
    Framework design guidelines

    Co-written by two Microsoft employees at the time (Brad Abrams now working at Google), this book is actually a publication of Microsoft guidelines that were produced along the way during the development of the .NET framework. Targeted to a large audience – developers from all levels will learn from this book – you’ll learn how to design a high quality framework, which naming guidelines to apply, type and member design, how to design exceptions, guidelines on how/when to use common types and interfaces of the .NET framework, such as arrays, attributes, collections, serialization, etc. The book also explains the common design patterns of a framework and how to create a good API specification before coding your framework. Very clear and filled of comments of dozen of people participating in the development of the .NET framework, this book is an instant classic !

    Pros

    • Very clear and instructive
    • Lots of guidelines commented by people working on the .NET framework, providing valuable information on how/when to apply those guidelines, when to break the rules, …
    • Developers of every level will benefit from this book

    Cons

    • Nothing special, very good book in overall

    Conclusion

    Excellent book. A must-read for every .NET developer.

    Share/Save/Bookmark

  • Book review : Smart & Gets Things Done

    Posted on September 19th, 2011 Thibaut 1 comment
    Smart & Gets Things Done

    Joël Spolsky, a former Microsoft employee, created his company Fog Creek Software based on the strong belief that hiring top software developers, treating them like rock stars and providing them the best tooling and work environment leads to a profitable business. From empirical results, this philosophy seems to be true. In this book, Joël describes and justifies this philosophy in a concise and humorous book, filled with real life examples and anecdotes. In a nutshell, you’ll learn why hiring top developers is so important (depending on which business you’re in), how to attract and retain such profiles that are basically never on the market, what kind of office and tooling works best for productivity, etc. While one could think it’s intended for the IT recruiters audience, I found that this reading was very interesting for developers as well, so you know what qualities recruiters are looking for, among other things.

     

    Pros

    • Concise (can be read in an afternoon) and funny book
    • Lots of interesting infos and insights about recruiting top software professionals

    Cons

    • Conception given in the book is maybe a bit too elitist : while it claims that only top professionals should be hired, a lot of companies can’t afford to do that (they couldn’t attract nor retain those kind of people, unchallenging tasks is just one reason among others). A lot of projects don’t require every developer to be a rock star to succeed

    Conclusion

    Very interesting book in overall. Just keep in mind that those principles only apply to companies who have the potential to attract and retain top developers. In that case, the learnings from this book prove to be very useful. Myself working for a company applying those principles (great people, great tooling, great environment such as free catering, massage, etc), I can definitely tell from experience that the results are incredible !

    Share/Save/Bookmark

  • Book review : WPF 4 training kit

    Posted on July 15th, 2011 Thibaut 3 comments
    WPF 4 training kit

    I bought this book with the only objective to pass the WPF4 MCTS exam and I aced it ! So, this official training kit did the job. But let’s talk about the content and some remarks. The book covers the various topics that you are required to know to pass the exam. Those can be found on the Microsoft website. At the end of each chapter, you find exercices – exam style – to test your knowledge. There’s also a CD containing a digital copy of the book (pretty convenient if you want to search for keywords in the book) but more importantly you can practice using a program under different modes. Basically, study mode allows you to target specific topics with no limitation in time while certification mode puts you in exam situation using a timer. So that’s definitely valuable tooling to prepare you for passing the exam.

    Pros

    • Official training kit from Microsoft press, solely designed to make you pass the exam
    • Pragmatic and efficient approach, much easier to study with than the MSDN (which I used first when this book wasn’t released yet)
    • Did the job : I aced the exam scoring 90%

    Cons

    • Some errors in the book (minor though)
    • Some questions on the program related to topics that are not covered in the book

    Conclusion

    Valuable resource to help you pass the exam. Although, to make sure you pass it, don’t only rely on the book as the exam requires real experience that you cannot acquire by just reading. I also had questions during the exam about stuff that wasn’t covered in the book, so make sure you don’t limit your study to this book. I also read WPF4 Unleashed which was useful, you can find my review here. Good luck ;)

    Share/Save/Bookmark

  • Improve your project quality : ask the team

    Posted on April 17th, 2011 Thibaut 154 comments

    Quality

    At work, our tech lead (architect on an agile project) recently asked every developer of the team, under the form of little 1 to 1 meetings, what in his opinion could be improved. Because every developer has his own vision of the project, knows issues that others might not be aware of, precious information shuch as those points below can be revealed :

    • What are the main blocking points that we should get rid of
    • Suggestions for areas to refactor
    • Performance issues
    • Risks

    The tech lead basically wrote down on a sheet of paper what the developer said (at first, without showing him what other colleagues have said, to not influence his opinion). He added marks in front of every point that was mentionned several times (let’s say that your colleague said previously that the UI styles really need to be refactored and that you say the same, he’ll put a mark in front of that remark so he knows that’s a point of importance and that those having several marks should be tackled first.

    Then, once the developer has finished, he showed him the sheet with the results so the developer could react based on what others have said, like “oh yeah I forgot that point, it’s really important to address this one !”.

    Those 1 to 1 meetings didn’t take longer than 30min in total and really shed light on very important points that enabled to increase the quality of our project. Very simple to do and very useful. Actually it’s the first project where I see this practice, this should be done from time to time on every project in my opinion.

    Make good use of it ;)

    Share/Save/Bookmark

  • Improving your project consistency with checklists

    Posted on April 17th, 2011 Thibaut 67 comments

    Almost every project has recurring operations consisting of several steps. The problem when there’s a lot of steps is that you have to know them by heart otherwise your project may become inconsistent and can lead to unexpected behaviors. Typically, developers save checklists files or screenshots of configuration settings on their local drive (like I did) to be sure they remain consistent and they don’t forget steps. So why not just sharing that precious knowledge with the team ?

    Very simple : just create a Checklists.txt file at the root of your project (e.g. the backend project). As it will be source-controlled, any developer can add his contribution : add new checklists, complete existing ones or correct them.

    Checklists

    Here’s an example on how to organize that file :

    Checklists content

    Enforcing that practice also ensures faster adoption of code base for new developers as it will act as a mini tutorial of the most important operations on your project !

    Share/Save/Bookmark

  • Fibonacci numbers for agile estimates

    Posted on February 18th, 2011 Thibaut 142 comments
    Sprint Planning

    During the sprint planning, team members give estimates about the tasks they’re going work on in the coming sprint. Maybe some of you have already experienced that endless discussion about “is this a 10h or a 11h task ?”. This is where the planning poker, based on the Fibonacci numbers comes to the rescue.

    Fibonacci numbers are an integer sequence defined by the following recurrence relation :

    Fn = Fn-1 + Fn-2

    Which produces the following sequence :

    0, 1, 1, 2, 3, 5, 8, 13, …

    See the point ? Fibonacci numbers are particularly relevant for giving estimates. While one can easily estimate a 1h or 2h task, I don’t think a lot of people (if any) can tell for sure that a task will take 11h and not 12h. But with this technique, deciding between 8 and 13 is much easier. Some pokers also contain the 1/2 value, but the most useful addition is surely the “?” card, meaning that an accurate estimate isn’t possible because of the lack of visibility and more information should be given by the product owner.

    Planning poker

    When hesitating too much about two consecutive values, consider the time dedicated to testing (manual testing, unit tests, …) and don’t forget that velocity isn’t really compatible with quality ;)

    Share/Save/Bookmark

  • Using Google Docs to translate your projects

    Posted on January 30th, 2011 Thibaut 75 comments

    At work, we’re currently building a business application using Silverlight 4. One of the requirements is the support of multiple languages. Google Docs proves to be very useful in this context. Just create a spreadsheet, and using GoogleTranslate formulas, you’ll get your translations.

    First step : create a new spreadsheet

    Google docs

    Second step : create GoogleTranslate formulas

    Google translate

    Use the formula below to obtain your translations. More info on the official documentation page.

    =GoogleTranslate(”text”, “source language”,”target language”)

    Conclusion

    While you shouldn’t rely at 100% on these translations when putting your application into production (to have correct translations, you need a context and the best way is still to get your translations from a person or company specializing into that), Google Docs is a very useful tool for the development stage. This way, you can test that your multilanguage support works correctly without having to wait for translations to be completed by third parties.

    Share/Save/Bookmark

  • Microsoft WebCamps Brussels - Summary

    Posted on January 30th, 2011 Thibaut 5 comments

    WebCamps

    Last Monday was organized the Microsoft WebCamps event in Brussels. Dedicated to Web developers and UX designers, this one day event enables you to stay up-to-date with the latest stuff. Topics covered included HTML5, jQuery, ASP.NET MVC 3, … And I’m going to share some of my notes here.

    Opening keynote

    By Scott Hanselman

    • Presentation of WebMatrix and the Razor syntax. For “get it done” developers who want, for example, to install and configure a website powered by a CMS for some customer in only a few minutes
    • jQuery adoption is so big that Microsoft continues to invest into this library : jQuery UI will also be part of the .NET framework
    • Presentation of the new features of ASP.NET MVC 3. ScottGu has written some very interesting articles on the subject, be sure to check them out if you’re interested in MVC 3
    • NuGet is a very powerful package installer. With just a few commands, install nInject, Entity Framework, … Time to learn PowerShell has come ;)

    How about HTML5 today ?

    By Katrien De Graeve

    • Slides of the presentation
    • Use shims to use HTML5 today (the JS script to make IE recognize the new HTML5 tags)

      <!–[if lt IE 9]>

      <script src=”http://html5shim.googlecode.com/svn/trunk/html5.js”></script>

      <![endif]–>

    • Use a reset CSS (typically to make some of the new elements display as blocks
    • Download HTML5 instellisense for Visual Studio
    • Use Ray Bango’s templates for Visual Studio
    • CSS3 : more control over color (RGBA, …), borders and shadows, fonts (use FontSquirrel to integrate custom fonts on your website)
    • Use IE9 developer tools (F12) to change the document mode (to IE8, IE7) to test against previous versions of browsers
    • Modernizr : great JS library enabling you to target specific browser functionality in your stylesheet, so you can take advantage of HTML5 and CSS3 while having a compatible site for older browsers
    • <video> tag : different codecs supported by browsers. Be sure to create multiple encodings of the same video (by using VLC Media Player for example) or provide a fallback in Flash or Silverlight.

      <video controls>

          <source src="foo.ogg" type="video/ogg">

          <source src="foo.mp4">

          <object/> <!– Silverlight or Flash –>

      </video>

    • Canvas : drawing using JS. Example of application : Pirates love Daisies, a game written using Canvas.
      Pirates love daisies
    • Use Ai to Canvas to convert Adobe Illustrator files to a canvas compliant format
    • Canvas (bitmap) != SVG (vector)
    • General guidelines :
      • Use feature detection VS browser detection. For each new version, browsers implement more and more the HTML5 spec. So browser detection isn’t a good approach at all
      • Start using HTML5 now ! Don’t wait for the spec to be complete (you would still be waiting for the CSS2 spec to be complete then…)

    Come in as a jQuery zero, go out as a jQuery hero

    By Gill Cleeren

    • Intro of jQuery (selectors, plugins, …) : I’m not going to rewrite the complete course here, just google, the web contains loads of tutorials about that hot subject

    OData : open data for the web

    By Scott Hanselman

    And that’s it ! Have fun playing with that exciting stuff ;)

    Share/Save/Bookmark

  • Book review : CSS3 for web designers

    Posted on January 13th, 2011 Thibaut 108 comments
    CSS3 for web designers CSS3 for web designers is the second book from A Book Apart, a new publishing company specializing in writing brief books on various web topics. All those books are about 100 pages long, laser focused, covering only essential topics. This book, written by CSS expert Dan Cederholm will teach you the essential topics of CSS3 that can already be used today. Covered topics include a presentation of CSS3 and the core properties already implemented by the majority of web browsers (border-radius, text-shadow, opacity, RGBA, …), transitions, hover-effects crafting based on the development of a mini-website, transforms (rotate, skew and translate), multiple backgrounds (including techniques such as parallax scrolling), forms enrichment (kickass buttons in pure CSS, pulsating glow effects on field inputs, CSS gradients and keyframe animations) and finally links to some of the best CSS3 resources on the web are provided.

    Pros

    • Very brief book, making effective use of our time
    • Relevant decision to cover only a portion of CSS3, but in depth because it’s widely implemented by web browsers and thus usable today, instead of covering more topics that might even not be ratified by the W3C
    • Full color book

    Cons

    • Quality of the book itself (cover paper) is pretty poor. The thinness of the paper makes it a book that gets easily damaged
    • Currently available only from A Book Apart. Took me 3 weeks to get it from NYC to Belgium

    Conclusion

    Very interesting introduction to CSS3. Gives you what’s needed to know to improve the experience of your websites or web applications starting from today.

    Share/Save/Bookmark

  • Book review : HTML5 for web designers

    Posted on January 11th, 2011 Thibaut 181 comments

    HTML5 for web designers

    HTML5 for web designers is the first book from A Book Apart, a new publishing company specializing in writing brief books on various web topics. All those books are about 100 pages long, laser focused, covering only essential topics. This book, written by Jeremy Keith (author of DOM Scripting, that I reviewed here), will guide you through the hot new stuff that HTML5 offers and how to harness its power from now on. Covered topics include a brief history on HTML markup, the design of HTML5, rich media (canvas, audio & video tags and the different options, …), the new features of web forms (new types of inputs such as calendar, sliders, …), semantics (microformats, new HTML5 tags such as header, footer and nav, content models, outlining, scoped styles, …) and finally how to use HTML5 today with an introduction of the different tools and libraries to help you out in this task.

    Pros

    • Great idea to write brief and laser focused books. This is a change from the traditional bibles of hundreds (thousands sometimes) of pages taking decades to digest
    • Very interesting introduction to HTML5, covering essential topics and explaining how to use them already based on current browser support
    • Full color book

    Cons

    • Quality of the book itself (cover paper) is pretty poor. The thinness of the paper makes it a book that gets easily damaged
    • Currently available only from A Book Apart. Took me 3 weeks to get it from NYC to Belgium

    Conclusion

    Very interesting book for web developers and designers planning to learn HTML5. Be aware that, due to its very small size, this book is rather an introduction than a course. A good starting point before digging further into HTML5. Would be great if the quality of the paper and distribution channels could be improved.

    Share/Save/Bookmark