Feeds:
Posts
Comments

Bin gerade von meinem Vortrag bei der Usergroup bonn-to-code zurück. Und da sofort schneller geht als irgendwann, habe ich direkt mal die Slides gepostet.

I have heard a couple of variations of these analogies. I do not like them. I think they are simply absurd.

At last PDC, “M” was to “SQL” what C is to Assembler. This year it was, what VB is to C. And now I even read this:

The code name “M” language is like a more manageable (though more limited) form of Transact-SQL, the language normally used to describe data schema and values.

Kraig Blockschmidt, Microsoft Data Development Technologies: Past, Present, and Future 

“M” has some overlaps with T-SQL, ok. But far from every concept in “M” can be translated into T-SQL. What about structural subtyping? Types without identities? Polymorphic references and function arguments? Languages/DSLs? Ordered collections? Lot’s more.

And only a very small, although useful subset of T-SQL maps to “M”. Also most of the translation to SQL is opinionated, not natural.

What the schema and values part of M compares much more to, is XML and XSD.

Would you even try to compare XML to T-SQL?

After it was hard for me to find any multitouch applications on google or bing, I decided to at least collect those I find on a list and accept submissions for that list.

Some day, I’ll create a multi-touch enabled multi-touch application gallery at http://multitouch-apps.com. But until then enjoy what I’ve found so far and please comment you submissions.

Open here: The Ultimate List of Multitouch Applications

Beim nächsten Bonn-to-Code-Usergroup-Treffen halte ich einen Kurzvortrag zu Ko- und Kontravarianz in C#.

Sneak Peak

Eines der meistbegrüßten Features aus .NET 4 und gleichzeitig eines der am wenigsten verstandenen. Leicht dahergesagt, dass Argumente von Methoden und Delegates schon immer kontravariant waren. Und dass in C# 4.0 jetzt noch sichere Ko- und Kontravarianz für generische Typparameter hinzukommt. Und weil man das mit Ko- und Kontra so schnell verwechselt heißt es jetzt einfach "out" und "in". Oder war das andersrum? Nicht ganz sicher?

Ich kann schonmal so viel verraten, dass ich mich sogar an selbstgemalten Bildchen versuchen werde. Außerdem kommen Tiger und Schlangen vor!

image

Weitere Themen

  • M und die "Oslo" Plattform Benjamin Gopp
  • Kurzvortrag: Umgang mit .NET Assemblies Thomas van Veen

Mehr Informationen

Christof Sprenger and I try to meet with all Germans and German-speaking people (I’m norwegian, BTW :-) ) at PDC this year!

Bitte weiterleiten!

Date: Wednesday, November 18, 2009
Time: 12:00pm – 1:30pm

More here: http://www.facebook.com/event.php?eid=173746173193

PDC09Bling_BeforeAfter_136 Maybe someone shares my interests, and if not, this is for my own reference :-)

Monday 10:00 AM (Pre-Conference Workshops)

Architecting and Developing for Windows Azure

Chris Auld in Petree Hall C

Gain the skills to architect and develop real-world applications using Windows Azure. Going beyond ‘demo-ware’ we examine the theory and technical implementation of large scale elastic applications. …

Or

Microsoft Technology Overview

Michele Leroux Bustamante in 515A

Developers have increasingly more on their minds and on their plates. Though Microsoft Visual Studio and the Microsoft .NET Framework both provide tools that yield an overall increase in productivity …

Or

Software in the Energy Economy 

Juval Lowy in 408A

Come learn the developer skills and expertise required to take advantage of the next boom in software – the energy economy. Understand key enabling technologies and design patterns that will prepare …

Sorry. Don’t know yet. Originally I planned to go to Michele…

Tuesday (First Conference Day)

8:30 AM – 10:30 AM:  Keynote
11:00 AM

Data Programming and Modeling for the Microsoft .NET Developer

Don Box, Chris Anderson in 403AB

Come see this code-centric talk that focuses on the advances being made in tools, languages, and frameworks that simplify how to model, consume, or produce data. Hear about the future of data …

12:30 PM

Concurrency Fuzzing & Data Races

Sebastian Burckhardt, Madan Musuvathi in 515B

Learn about two concurrency tools from Microsoft Research: "Cuzz" and "FeatherLite". Cuzz (for Concurrency Fuzzing) is a tool that significantly improves the concurrency coverage achieved with …

1:30 PM

Microsoft Application Server Technologies: Present and Future

Anil Nori in Hall F

Hear how Microsoft is evolving its application server technologies to address the challenges of building, deploying, and managing composite applications in Windows Server and Windows Azure. See how …

3:00 PM

Evolving ADO.NET Entity Framework in Microsoft .NET Framework 4 and Beyond

Shyam Pather, Chris Anderson in Petree Hall D

Come see how the ADO.NET Entity Framework enables new capabilities to leverage multiple development approaches, for example the use of code-first, model-first, and database-first. Hear how, regardless …

4:30 PM

Behavior-Driven Development vs. Test-Driven Development: What’s What?

Dennis Doomen in 309

Automated testing is a hot item these days and Microsoft is jumping on board with ASP.NET MVC and Visual Studio 2010. Test-Driven Development and Behavior-Driven Development both try to significantly …

Wednesday (Second Conference Day)

8:30 AM – 11:00 AM: Keynote
11:30 AM

Microsoft Perspectives on the Future of Programming

Butler Lampson, Erik Meijer, Don Box, Jeffrey Snover, Herb Sutter, Burton Smith in Petree Hall C

Come hear from several of the Microsoft senior technical leaders about the future of programming, programming languages, and tools.

Or. Hm. Isn’t this the future vision? Anyways.

Building Data-Driven Applications Using Microsoft Project Code Name "Quadrant" and Microsoft Project Code Name "M"

Chris Sells, Douglas Purdy in 408B on Wednesday at 11:30 AM

Come learn how to use "Quadrant" and "M", part of the Microsoft data platform, to interact with Microsoft SQL Server databases in rich new ways, including dynamic views and multi-user editing. See how …

12:00 – 01:30 Germans @ PDC 09 – Lunch

Sign up here:

1:00 PM ( I’ll be late )

Microsoft Project Code Name “M”: The Data and Modeling Language

Don Box, Jeff Pinkston in 408A on Wednesday at 1:00 PM

Come review how to use “M” to build a DSL and author data schema, then hear how we’re going to make “M” more relevant to you, the Microsoft .NET developer. Explore the future of “M” where DSL, schema, …

2:00 PM

3:15 PM

4:30 PM

Exception Management – Handling and Reporting Exceptions Effectively

Paul Sheriff in 309 on Wednesday at 4:30 PM

There are many ways to handle exceptions in .NET. What do you do to ensure that exception information is not lost? How do you report exceptions to your end-user and to your system administrator? This …

Or

Extending the Microsoft Visual Studio 2010 Code Editor to Visualize Runtime Intelligence

Bill Leach, Gabriel Torok in 408B on Wednesday at 4:30 PM

Come see how PreEmptive Solutions built an editor extension for Visual Studio 2010 that provides in-line visualizations of usage and stability data collected from applications in production via …

5:30 PM – 7:00 PM: Ask The Experts
7:00 PM – 9:00 PM: GeekFest

Thursday (Third Conference Day)

8:30 AM

Optimizing for Performance with the Windows Performance Toolkit

Michael Milirud in 502A

The Windows Performance Toolkit (WPT) is constantly used by the Windows team to build an optimized Windows OS. Come and see how the Windows Performance team used the WPT throughout the Windows 7 …

10:00 AM

What’s New for Windows Communication Foundation 4

Ed Pinto in Petree Hall D

Learn about the investments made in Windows Communication Foundation 4 that add new capabilities for service composition and reduced configuration and deployment complexity. Discover how improvements …

11:30 AM

Workflow Services and “Dublin”

Mark Fussell in Petree Hall D

Learn how to use Windows Workflow Foundation (WF) 4, Windows Communication Foundation (WCF) 4, and “Dublin” to build and manage scalable, reliable, and highly-available applications. Discover the …

12:45 PM

BOF @Lunch: Fear and Loathing in IT Security

in 309

Wherever we look we find security threats that are made out to be the end of the world as we know it. The problem is that there is a lot of wolf-crying going on in this space. Is this part of your job …

1:45 PM

Application Server Extensibility with Microsoft Project Code Name “Dublin” and Microsoft .NET Framework 4

Nicholas Allen in Petree Hall D

.NET 4 and “Dublin” provide new application hosting, tracking, and persistence capabilities. Learn the benefits of different hosting options and how to choose the right option for your scenario. Learn …

3:00 PM

Automating "Done Done" in the Team Workflows with Microsoft Visual Studio Ultimate and Team Foundation Server 2010

Brian Randell, Jamie Cool in Petree Hall D

Learn how Visual Studio Team System (VSTS) 2010 automates the validation of code quality and enriches the interaction between developers and testers on a software team. Explore how the VSTS 2010 …

That’s it! I’ll be there on Friday too, so if anybody want’s too hook up during the conference or on Sunday or Friday, just email me to lars@corneliussen.de!

Just today I stumbled over a awesome tool, called RescueTime. Ever wondered where your time goes?

This tool tracks the programs, websites and documents you spend your time on and gives you detailed reports on your productivity.

RescueTime comes with detailed categories for most of the sites and programs developers use these days. And where it doesn’t fit your needs, the slick interface gives you all the control you need.

These are some of the results from my couple of hours I tracked:

Categories

The interface lets you drill into all the statistics in detail. This shows the top three dialogs/documents (premium feature) I’ve spent time in while using Visual Studio.

While using Visual Studio itself is very productive (2 out of –2 to 2), I set debugging to be only productive. Renaming again, is very productive :-) refactoring

Get Focused

Sometimes it is necessary to just focus on a single task. But then there are all kinds of distracting interruptions as a link to a great youtube on twitter, or a incoming message on facebook. For those who want to help themselves a little, the tool lets you start timed sessions where all content that is treated as very distracting will be blocked.

this_site_is_blocked

Win back your time

Although I used half an hour* (including this blog post) to discover the tool today – which shows, how easy it is to distract me – I’m expecting this tool to help me managing my time.

* RescueTime proved me wrong. It were 32m on RescueTime + 18m for this blog post. It did, what it promised. It brought me back 20 minutes which I else just would have thought I’d lost.

livewriterrescuetime

Go get it!

My overall productivity in the last hours:

diagram

Code is truth

nunit error in ShouldHave10AvailableServiceOperations()

opInfoTOs.Length.ShouldEqual(9);

NUnit.Framework.AssertionException: Expected: 9
But was: 10

no comment! :-)

It has been more quiet around “Oslo” the last month. Maybe just about everybody is on vacations. Or people feel that everything will change with the PDC in November and are afraid of publishing nonsense.

Nonetheless, I felt it’s time for an update on what I think, heard and read about “Oslo”.

I divided my post in two sections:

  • Information about “Oslo”
  • What I think about “Oslo” today

have fun!

Some Information about “Oslo”

For those who don’t know, “Oslo” is the current codename for Microsoft’s forthcoming modeling platform, which is available as CTP Download since back in October 2008.

If you want to read more about what Oslo is about, I recommend those Resources:

Well, since then Microsoft has released two more CTP releases (January and May), written a lot of documentation and posted quite some videos and samples. If you ask me, it’s yet too much for such a young and undone technology. Oslo’s modeling language “M” has and The "Oslo" Modeling Language Specification, which yet has been implemented in JavaScript by Mathew Wilson (jsmeta).

The community did also care a lot, and there are even companies investing in tools around “Oslo”. Telrik published two projects on their Labs Site. A tool for comparing and migrating M as well as LINQ to M. There are even trainings offered by Agilitrain and PluralSight.

Some recommended links:

What I think about Oslo today
(May CTP + Announcements)

First of all I want to say, that I’m happy Microsoft released Oslo in such an early state. I think they know the pros and cons of such an open process. The community can help with forming the product, and companies can start to invest early in what they think might be valuable for the future. But It also means more friction for any changes that are made.

I have used M for defining schemas and languages and also played around with the Repository and Quadrant. As Microsoft also states, it’s early Alpha. I stumbled over many bugs which I still plan to report and blog about. But that is OK, no one ever said it was production ready.

“M”

So far I like the schema part of M, also called MSchema. It has a very concise (compared to XSD) c-style syntax and covers a lot of what I want to express when modeling information structures. The M-graph (for values) syntax is also OK, while I don’t like the MGraph API. M-constraints let you restrict your types in a nice way. What I don’t like here, is the missing support for weak constraints. Named M-queries (similar to LINQ syntax), are a nice way to query M structures.

M-grammar is useful for DSLs. I think it could be more opinionated. I feel MS is striving for an expressiveness that let you describe all computer languages in the world using MGrammar. This makes it more complex than necessary for covering DSLs. At the same time it doesn’t support nesting of languages, which would be especially useful for DSLs, because you often need to talk to external models (e.g. pinvoke). The support for editor customizing (crucial language workbench feature) as it is today is not sufficient and too hard to configure.

Another feature I miss here is referencing between nodes and even across files (linking + scoping). For now all references are just values (ids), and the output of a DSL program will be a tree model, no graphs!

The Repository

The Repository basically offers some features on-top of SQL server as are row-level security, hierarchies, localization, versioning, additional constraints. All those features are plain SQL “libraries” in conjunction with M-models which also are compiled down to SQL. I don’t yet know what to think about the Repository.

Naming / Packaging

In the last couple of weeks the Oslo team published two posts that confirmed some of my speculations.

Let’s start with Doug’s Post: On “Oslo” at Douglas Purdy

In this post he basically makes two statements:

The only thing that I feel bad about is that we kept the “Oslo” name around so long (you will see that change at the next PDC), which has continued to be a confusing point for customers (“I thought Oslo was your new SOA platform”).

Douglas Purdy

I agree. It was confusing. Although people slowly start to accept “Oslo” as for “Modeling”.

Oslo and EF / Data Programmability

With this in mind, we made a decision to merge the Data Programmability team (EDM, EF, Astoria, XML, ADO.NET, and tools/designers) and the “Oslo” team (“Quadrant”, Repository, “M”) together.

Douglas Purdy

I don’t yet know what to think about this. “Oslo” is not and should not evolve to an O/R-Mapper. M’s type system is structural and doesn’t map well to strongly typed objects as used by EF. I can see this choice limiting the modeling capabilities of Oslo. But I guess we have to wait and see.

Quadrant. A graphical Editor?

The other post, confirming my fears about Quadrant was Model Citizen : What’s So Compelling about "Quadrant" Anyway?.

Back in November last year, when I wrote a sum-up post about “Oslo” I concluded Quadrant:

Yes. Quadrant lets you interact with models graphically. It’s highly generic, customizable and it looks great.

Lars Corneliussen, November 2008, What "Oslo" is and is not

I concluded this from the official statement about Oslo plus some videos and screenshots I had seen.

A tool that helps people define and interact with models in a rich and visual manner

Doulas Purdy, September 2008, What is Oslo?

But here is the smackdown:

Microsoft code name "Quadrant" is a ‘tool for viewing and editing SQL data,’ but… so what?

Michael Murray, July 2009, What’s So Compelling about "Quadrant" Anyway?

As I understand today, and as it shows up in the May CTP, it is not a graphical editor or graphical editing toolkit but rather a light WPF-version of Microsoft Office Access that understands Oslo Modeling concepts and relationships and builds up default editors in a generic manner. This is still useful (if it is free), but not far as useful as what I hoped Quadrant to be.

Please, Microsoft, make Quadrant a graphical editing toolkit with good support for configurable diagramming and any custom WPF editors. It should also have the plug-in model VS2010 offers for sharing any extensions.

The “Oslo” Story

Microsoft tries to sell “Oslo” as if it was all one story. It’s a lie.

There is tons of impedance mismatches that restrict you in many ways.

Modeling Structure

  • M in general uses structural typing (duck typing, supports mix-ins) and supports real graphs (including references)
  • MGrammar ASTs are hierarchal (tree structure) and for now only supporting nodes and strings.
  • Databases store flat relational data,
  • and objects in the .NET world are typed nominally (no multiple inheritance).

DSLs + Repository

There is no story for “DSLs and the repository”, and there is not yet a good story for any runtime support off the repository or DSL files. It’s basically what you had before. You can either access the database via ADO.NET or an O/R-Mapper or you run directly off the parsed MGraph-AST representing your DSL-Script, which feels like visiting xml documents. M has a nice LINQ-ish query language, but that doesn’t work in memory against a graph.

Querying

M has good support for complex data structures. As said there is no support for in-memory queries. But even the database implementation is limited by it’s relational backend. Even though queries can consult complex properties for sorting or filtering, it can only return rows with a list of scalar fields.

Constraints

Most constraints on types are only implemented in the SQL-Mapping. Also here there is no in-memory implementation that would validate your model against a schema. Basically the M-compiler generates a database schema including checks that would not let you insert invalid data into the database.

Data and schema evolution

There is this dream about capturing requirements in quite fuzzy ways and then piece for piece add details to them – until they have reached some formal state that might be executable. This sounds nice in theory, but there is no chance to implement this stuff. M is very easy to change, and it is easy to add constraints and refactor schema structures. But there is no story around how to let your data evolve together with your schemas using the Repository. So, besides nice theories, Oslo doesn’t help here.

More to come

There will be new content and Chris Sells also announced a fresh CTP around this years PDC in November.

So far, only one session has been scheduled, but watch this list for more sessions to come: Microsoft PDC09 – Modeling Sessions

Hope to see you in LA in November!

After my vmware image with Windows 7 RC crashed completely with errors like:

  • NOT_IMPLEMENTED
  • Pipe read failed
  • and many more…

i decided to give bootcamp a chance.

But even after freeing up more than 100 gigs, the bootcamp assistant was not able to partition the harddisk because it couldn’t figure out how to move some data.

The error message was

  • "Ihre Festplatte kann nicht partitioniert werden, weil einige Dateien nicht bewegt werden können."
  • “Your Disk Cannot Be Prtitioned Because Some Files Cannot Be Moved”

The suggestion for fixing the issue was: Back up the disk and use Disk Utility to format the disk as a single Mac OS Extended (Journaled) volume. Restore your information to the disk and try using Boot Camp Assistant again.

Well this is indeed a bad option – especially when you are on vacation and the installation disks are quite unreachable.

But what finally worked:

  • Clean up you disk (Gran Perspective helps finding the big files)
  • Buy iPartition or iDefrag from Coriolis Systems (actually I called them and they promised to refund, if it won’t work)
  • Create a bootable DVD using Coriolis Disk Creator
  • Boot and run iDefrag using the “Compress” algorithm (iDefrag Lite ships with iPartition)
  • Reboot into MacOS and run the Bootcamp Assistant

After installing Vista (32bit) Bootcamp Drivers (from my personal torrent disks) + the 2.1 update everything worked quite well.

VM Ware Fusion detected the partition right away and lets me boot a virtual machine from it.

I use BootChamp from Kain Jow to restart into windows without changing the default boot partition.

The main drawback of booting windows natively is that you have no access to your MacOS HD. But that gap can be bridged by using the free read-only Paragon HFS for Windows or a fully-fledged MediaFour MacDrive (50 bucks), which I’ll give a try.

When you need write access to your NTFS-partition Paragon NTFS for Mac would be the choice. Read access to my NTFS was already enabled – might be it is done by MacFUSE.

Issues (updated)

I also found a really good workthrough with a lot of troubleshooting info here: Using Boot Camp to install Windows 7 on your Mac: The Complete Walkthrough – Simple Help

Older Posts »