Gulp – a WPF-based text editor for Visual Studio 10?

According to this, the next version of Visual Studio (v2008 + 1), will have an editor written using WPF.

VS10: new WPF-based text editor w/ fine-grained extensibility, Microsoft Extensibility Framework (MEF, a.k.a. COM for managed code), new features support multiple languages

A very common scenario where I work is to use Remote Desktop for code editing, so if the code editor and shell is WPF — I’m very worried about the desktop remoting scenarios.

What’s your thoughts? Do you want your development tool to be the real first “giant” application produced by Microsoft using WPF? It certainly makes sense for many areas (like visualizations) – but ….

A "low bandwidth" mode for MSDN?

Via Jon’s blog, “MSDN Low Bandwidth Bookmarklet.” There’s an experimental mode of MSDN that significantly reduces the page size for a typical MSDN entry.

You can try it here: http://msdn.microsoft.com/en-us/library/system.array(loband).aspx.

Notice the “(loband)” in the URL? That’s the secret. Jon created a bookmarklet which turns on and off the feature via a cookie.

I noticed that if I navigate to system.array in the low bandwidth mode, it takes about 1.5 seconds to load the page completely. When the normal page loads, it takes about 6 seconds on my 1.5Mb DSL connection.

I’d like to see a few different modes/options to speed up MSDN:

  • Tree-less: I don’t use the tree feature much on the web, I could live without it usually. Opt-in please.
  • “Chrome-less”. Just give me MSDN, without the tabs, logos, etc. I don’t use them. You can leave search though — that can be useful. (Although, Google often does a better job!)
  • Load only my language selection (not all languages). I never use VB.NET for example.
  • Delay load: inheritance, platforms, version, and see also sections.

Oslo — what?

According to Don Box, the best explanation of Oslo is here at eWeek.

I read it.

Oslo is aimed at empowering nondevelopers to build distributed applications. The initial version of Oslo won’t let a complete novice build applications, but it will ease development. It will also, hopes Microsoft, broaden the developer base.

It goes on to detail all the elements…

Box said that Oslo is designed to capture people’s ideas, requirements and hopes for software, “so that we can then do all kinds of processing on top of it. But we’re really trying to turn the software development problem into a data design—that’s the simplest way to talk about what we’re doing. And so part of that premise is making it easy for people to interact with that data. And one way to interact with data is through visualizations and diagrammatic things, box and line designers, all kinds of charts.”

Oh, I get it. It’s diagrams and stuff. :) And a software package that captures hope? That’s power.

I’ll be at PDC and probably see more about it, but I remain skeptical.

How will they empower non-developers to build a distributed application? How will it efficiently access data and not thrash database servers with generated queries, etc.? Who is this marketed to? The article refers to business analysts? What kind of market will that be? Is it worth spending all this Microsoft brainpower on this problem? How does it interact with other languages (like .NET?).

Why a new language? Because to pull off the Oslo goal, “we needed a revolution in developer productivity,” said Steven Lucco, a distinguished engineer in Microsoft’s Developer Division who helped develop the vision for CSD and the Oslo effort.

It goes on …

An Oslo user need not learn the D language to use Oslo, however. “The language is a technical detail for a certain audience,” Lovering said.

So, they needed a new language that the user doesn’t need.

If Microsoft had taken a poll — is this what their bread and butter audience would have voted for? Would you? I’ll reserve final judgement until I see it.

Coding Challenge #22

Coding Challenge Series / Technical Interview Series

Now that you’ve become an expert in efficiently copying bytes (you did solve the last challenge, didn’t you?), I have an even more challenging question….

You have a large block of byte oriented data representing a 256-color LCD panel. Each byte represents the color of the pixel.

You’ll need to write a Copy Image function for me …

Your function is provided: width and height of the LCD panel, a reference (or pointer) to the LCD pixel storage, an array with the new colors to set, and a rectangle with the bounds for the new pixels.

The LCD display’s size may not be evenly divisible by 8, yet a pixel row must end on a boundary that is evenly divisible by 8. The image bytes as being provided do not have this behavior.

Copy the new pixels/colors into the LCD storage.