Pages

Saturday, 9 June 2007

Friday: Atlantis Launch

As a conclusion for TechEd 2007: a space shuttle launch. Atlantis Launch This was a good week.

Friday: Mark Russinovich explains UAC

Windows Internals is one of my favorite Windows books (in the list of books that I'll never finish). So I was keen on seeing Mark's talk about Vista kernel and UAC. SEC411 - User Account Control Internals and Impact on Malware Friday, June 8 10:45 AM - 12:00 PM, N320 A Speaker(s): Mark Russinovich According to Mark, "UAC's goal is not to annoy you". The purpose of UAC is to encourage users to run with standard user's privileges whenever possible:
  • in Vista some actions that used to require admin privileges now don't (for instance looking at the system clock or changing the time zone can now be done by standard users.)
  • admins behave most of the time as standard users and become admins only when clicking Yes in the elevation dialog.
  • ISVs will be encouraged to avoid coding actions that require admin privs.

He explained what virtualization was (nothing to do with VMWare by the way) and how to figure out if an app runs with virtualization enabled or not. Virtualization is a backward compatibility mechanism that automatically redirects a legacy app trying to write to a system folder when running as standard user. I have a feeling this will confuse programmers for years to come or at least until all legacy apps disappear...

Thursday, 7 June 2007

Thursday: Next Generation Cryptography (NGC)

Another brilliant talk:

DEV307 - New Cryptography: Algorithms, APIs, and Architecture Thursday, June 7 9:45 AM - 11:00 AM, S220 E Speaker(s): Rafal Lukawiecki

Rafal enumerated past and current cryptography algorithms, giving an opinionated (but very funny) overview of mechanisms available to date. He completed his presentation with the description of the Microsoft implementation of NSA Suite-B in Vista: the NGC API. He gave a Win32 demo of how to encrypt with the NGC API. It was very dense, packed with information but went down quite well because he managed to keep the audience laughing every 3 minutes.

According to Rafal,

  • If you're not using Vista, you should use:
    • AES128 - resists to power analysis (cracking a code by measuring energy consumption of the CPU).
    • RSA2048 (although slow for key generation)
  • Avoid:
    • DES. unless it is for Obfuscation.
    • Triple DES: sounds better but is not. It is slow.
    • IDEA
    • RCU and RC5 (Ron Rivest)
    • Blowfish, Twofish – ok but not a standard · CAST and GOST.
  • Advice for developers:
    • Rely on cryptosystems, do not write it yourself.
    • Never write a loop that encrypts and encrypts: this can be cracked.
    • Do not download libraries.
    • Within the Microsoft OS: use CAPI 2.0 (CAPI 1.0 is deprecated). The .NET Framework wraps around CAPI.
  • NSA Suite-B is supposed to replace all other algorithms.
    • It will be available for military as well as civil use.
    • Available in Windows Vista and Server 2008 as part of the NGC API.
    • It is an Open API (which means you can plug-in more implementations)
    • Works in kernel-mode (better performance).
    • 2 Flavours: a B-API where key crypto is done by OS, N-API where crypto is done by a smartcard.

    Sessions I've Missed

    You can't see everything. I'll wait for the DVD to watch the sessions I've missed:
    • DAT315R Be More Productive with Microsoft SQL Server 2005 Tools
    • DEV346 Microsoft Visual C# Under the Covers: An In-Depth Look at C# 3.0
    • DAT318 Applied ADO.NET Entities: How to Leverage the Entity Framework in Your Application
    • DEV313 Improving Code Performance with Microsoft Visual Studio Team System

    Wednesday: Visual Studio Component Round-Up

    An overview of the 3rd party tools available for Visual Studio. LNC17 - Microsoft Visual Studio Component Round-Up 1 Wednesday, June 6 12:00 PM - 12:45 PM, N310 A
    • DevExpress (reporting)
    • ComponentOne (Office 2007-style ribbons and appointment controls)
    • DevCentral (deployment)
    Nothing I really need... There will be another session tomorrow. DevExpress offers more, especially in the area of refactoring - yesterday I saw Mark Miller demonstrating some of DevExpress' capabilities in the Partner Expo area. Need to check that out... By the way Mark is as funny during demos as he is on Mondays. Talking about Mondays, I saw a live recording of .NET Rocks shortly after the Visual Studio session.

    Wednesday, 6 June 2007

    Wednesday: Unit-Testing and Test-Driven Development

    Yeaaaahh ! I scanned my office T-Shirt and I won a version of Office Ultimate 2007! Not the standard, the full one! How cool is that? It costs £480 on Amazon.co.uk... Also attended a session about unit-testing and TDD: DEV347 - Unit Testing and Test Driven Development Wednesday, June 6 10:15 AM - 11:30 AM, N310 A DEV347_randell.pptx Speaker(s): Brian Randell, Doug Seven PICT0055 This kind of completes the talk Ron Jacob gave about Model View Presenter on Monday - the purpose of MVP is to make it possible to automate GUI unit-testing. Doug and Brian's presentation was energetic with colourful slides and very little text. Efficient demos: Doug did the talking, Brian the typing. In a nutshell, this is what they said:
    • Unit-tests are a “living document” that reflects the intended use of the software.
    • Advantage of many small unit-tests: allows you to narrow down the scope of failure upon change.
    • A unit-test cares about its class only.
    • You typically have more lines of UT code than actual code.
    • TDD is ATRIP:
      • Automatic,
      • Thorough,
      • Repeatable (doesn’t depend on dynamic data),
      • Independent (one class only),
      • Professional (well written, commented, easy to maintain).
    • VS2008 Professional will include Unit-Testing (This one triggered a round of aplause).
    • Test-driven development: Red, Green,Refactor.
      • Red: make it fail. Ensure the test fails with a method that's not yet implemented.
      • Green: make it work. Code the minimum to satisfy the test (even if the code is crap).
      • Refactor: make it better. Improve the code, make it easier to maintain.
    • TDD requires discipline (no kidding).
    • Pair programming: one writes the unit-tests, the other writes the implementation.

    Brian Randell's blog: http://www.mcwtech.com/CS/blogs/brianr/ Doug Seven: http://dotnetjunkies.com/WebLog/DougSeven/

    Tuesday: Jam Sessions

    The conference shuttles were travelling from 8.30pm to 1am between the hotels and the City Walk next to Universal Studios. The jam sessions were taking place at the Groove, booked by Microsoft for the occasion. The Universal Studio City Walk is a funny sort of place. It looks like Aya Napa without the sex and the drunken Brits. Some sort of polished, clean but still over-the-top nightlife area. There is a lot of music in the streets but no broken bottles, no fights, and nobody vomiting. Women don't shout, flock or swear as they do in the UK. People wait in line for drinks at the bar (as for the till at Tesco's) ! Do you believe that? And of course everywhere is non smoking. The live band (Tech Ed attendees) was brilliant. At one point Carl Franklin joined at the guitar. A few videos I took with the mobile phone: Jam Session1.mp4 Jam Session2.mp4 Jam Session3.mp4

    Tuesday: TLC about Types of Objects

    Attended my first Interactive Theater session. ARC18-TLC - Making Sense Out of all the Types of Objects Tuesday, June 5 4:30 PM - 5:45 PM, Blue Theater 9 Speaker(s): Rockford Lhotka Not too sure about the format. There is too much distracting noise coming from around the booth, you can't hear people when they ask questions... The booths should be closed and sound-proofed so that the thing works... Rockford said a few things that made me click, among which:

    "Software re-use is not a goal but a side-effect of refactoring. The consequence of re-use is tight coupling, and you don't want that."

    hee hee...

    Tuesday: Linq and ASP.NET

    Saw one breakout session about Linq and two about ASP.NET.


    DEV324 - The .NET Language Integrated Query (LINQ) Framework
    Tuesday, June 5 8:30 AM - 9:45 AM, N320 A
    Speaker(s): Luca Bolognese

    Luca delivered a lively talk where he demonstrated the elegance of writing queries in LINQ. From C# you can now write code that looks very similar to a SQL query where the 'FROM table' is an object implementing IEnumerable and the resultset goes into a variable.

    It works with SQL Server for the moment and could work with Oracle whenever Oracle releases a provider for it.

    If LINQ worked with Oracle, this could be a nice way to code business rules in C# instead of PL/SQL stored procedures (IDE support for PL/SQL is very crude) or nHibernate (I'm afraid of ORM complexity from a debugging perspective).

    Luca's blog: http://blogs.msdn.com/lucabol/

    WEB305 - Building a Complete Web Application Using ASP.NET "Orcas" and Microsoft Visual Studio Code Name "Orcas" (Part 1 of 2)
    Tuesday, June 5 10:15 AM - 11:30 AM, S230 E
    Speaker(s): Scott Guthrie


    Attended both sessions by Scott. What I'll remember:


    • Visual Studio 2008 will support multi-targeting. That means when you create a project you can say whether you want to use .NET Framework 2.0, 3.0 or 3.5.
    • The HTML designer in Visual Studio is getting serious (same engine as Expression), although not as powerful as Dreamweaver, it's getting there: fast source switching, split design/code views...
    • CSS support: you select an HTML element and see what CSS rules apply to it or select a CSS rule and see all HTML elements it applies to. You can also change the CSS properties in one window and immediately see the results in the other window.
    • LINQ: when running a link query the VS debugger shows the SQL query that was generated by LINQ. It also shows the data retured by the query. Very cool, lots of clapping in the audience when Scott demonstrated that.
    • VS2008 supports Javascript debugging (breakpoints, step by step) as well as intellisense. Again the audience loved it.