10 stories
·
0 followers

Microsoft's New Running Shoes

1 Comment and 4 Shares

When Ballmer famously said, "Linux is a cancer that attaches itself in an intellectual property sense to everything it touches," it was fair to characterize Microsoft's approach to open source as hostile. But over time, forces within Microsoft pushed to change this attitude. Many groups inside of Microsoft continue to see the customer and business value in fostering, rather than fighting, OSS.

Under the leadership of Scott Guthrie, the ASP.NET and Azure teams were trailblazers in this area. They were not the only trailblazers, but they were influential ones. Disclaimer, I'm a former employee of these teams so I am totally objective and devoid of any bias whatsoever.

While change carved its glacial path, its pace angered some who wanted to see more movement. The prevailing metaphor that folks like Scott Hanselman and I would use was this idea of "baby steps".

Here's a snippet from a post Scott wrote five years ago when we first released ASP.NET MVC 1.0 under a permissive open source license:

These are all baby steps, but more and more folks at The Company are starting to "get it." We won't rest until we've changed the way we do business.

Here's my use of the phrase in my notes about the release a year prior.

As I mentioned before, routing is not actually a feature of MVC which is why it is not included. It will be part of the .NET Framework and thus its source will eventually be available much like the rest of the .NET Framework source. It’d be nice to include it in CodePlex, but as I like to say, baby steps.

The point we tried to impress on people is that changes in momentum of a massive object (and a 90,000 person company is quite large) takes a lot of small forces that over time sum up to a big force.

However, Microsoft's recent remarkable announcements around the next generation of ASP.NET this week have made it clear that they've dispensed with the baby steps and have put on their running shoes.

David Fowler's summarizes some of the interesting changes in the next generation of ASP.NET which I've summarized even further:

  • ASP.NET vNext builds on NuGet as unit of reference instead of assemblies.
  • Roslyn-based runtime hackable compilation model.
  • Dependency Injection from the ground up.
  • No Strong-Naming! (See this discussion for the headache strong-naming has been)

But most exciting to me is that all of this is open source, accepts contributions, and hosted on GitHub. This isn't a project that just targets .NET developer. This is a project that wants all web developers to take it seriously.

In other areas of Microsoft they released Microsoft Office for the iPad and made Windows free for small devices. It's definitely a new Microsoft.

How did this come about?

Well breathless headlines would have you believe that Satya Nadella singehandedly built a new Microsoft in his first three months. It makes for a good story, but it's clearly wrong. It's lazy thinking.

Look at this contribution graph for Project K's Runtime.

Project KRuntime commit

The initial commit was on November 7, 2013. Satya become CEO on February 4, 2014. Now I'm no math major (oh wait! I was a math major!), but I'm pretty sure February 2014 comes after November 2013. It's apparent this had been underway for a long time before Satya became CEO.

To be clear, I don't want to take anything away from Satya's importance to the new Microsoft. While this effort didn't start under him, he does create the right climate within Microsoft for this effort to thrive. His leadership and vision sets these new efforts up for success and that's a big deal. The appointment of Satya makes Microsoft a force to be reckoned with again.

But efforts like this started in a more grass roots fashion, albeit with the support of big hitters like the Gu. In a large part, the focus on the Azure business paved the way for this to happen.

Azure provides an environment that is not limited to hosting .NET web applications. Azure makes money whether you host ASP.NET, NodeJs, or whatever. This is analogous to how the release of Office for iPad is a sign that Office will no longer help prop up Windows. Windows must live or die on its own merits.

In the same way, ASP.NET must compete on its own merits and to do so requires drastic changes.

In a follow-up post I'd love to delve a little more into the history of the ASP.NET changes and my thoughts on what this means for existing customers and backwards compatibility. If you find this sort of analysis interesting, let me know in the comments. Otherwise I'll go back to blogging about fart jokes and obscure code samples or something.

Read the whole story
andersoncj
3831 days ago
reply
Share this story
Delete
1 public comment
mrasscha
3837 days ago
reply
Really loving where Microsoft is going these days for .NET developpers.
Around Paris, France

Windows Phone 8.1 review

1 Comment
Click on the image to zoom in

This may seem odd, but I fully intend to get myself one of these—I’ve always liked the platform and the phone UX.


Read the whole story
andersoncj
3872 days ago
reply
I am in the same boat. Really impressed with Windows Phone.
Share this story
Delete

After Dark in CSS

1 Comment
Click on the image to zoom in

This takes me back…


Read the whole story
andersoncj
3902 days ago
reply
Awesome! The good ole days. Flying Toasters always gives me nostalgia.
Share this story
Delete

★ Working Backwards to the Technology

4 Comments and 5 Shares

At WWDC in 1997, Steve Jobs, having just returned to Apple, held a wide-open Q&A session. There’s video — albeit low-quality (VHS transfer?) — on YouTube. It’s a remarkable session, showing Jobs at his improvisational best. But more importantly, the philosophies and strategies Jobs expressed correctly forecast everything Apple went on to do under his leadership, and how the company continues to work today. In short, he’s remarkably open and honest — and prescient.

My quip today that Google is beginning to remind me of pre-NeXT Apple in the ’90s — announcing more cool R&D prototypes than they release actual cool products — brought to mind one of the segments from this session. There’s a five-minute clip of just this segment here.

It starts with a testy remark from an attendee upset about Apple having killed OpenDoc. Attendee: “It’s sad and clear that on several counts what you’ve discussed, you don’t know what you’re talking about.” Jobs deftly laughs off the insult, and goes on to explain that he has no doubt that OpenDoc contains some great technology — that it allowed for things no other technology could accomplish. But that that alone was not enough.

Then he says this:

One of the things I’ve always found is that you’ve got to start with the customer experience and work backwards to the technology. You can’t start with the technology and try to figure out where you’re going to try to sell it. And I’ve made this mistake probably more than anybody else in this room. And I got the scar tissue to prove it.

If it wasn’t obvious then, it’s certainly obvious in hindsight that NeXT itself was the biggest of those scars. Amazing technology — an operating system and developer frameworks that debuted in 1988 and today serve as the foundation for almost the entirety of Apple’s product line. But NeXT never turned that technology into a successful product. Without a focus on products, new technologies are a crapshoot.

That’s why Jobs dismantled Apple’s pure R&D department, the Advanced Technology Group. The work ATG had done wasn’t all thrown away, but what continued was product-focused rather than technology-focused. Starting with the product and working backwards to the technology instead of the other way around has made all the difference in the world for Apple.

Xerox had PARC and never made a successful product out of that work. AT&T had Bell Labs, created Unix, and never made a successful product out of that work. Microsoft, Intel, IBM, Google, and numerous other companies all outspend Apple on “R&D” today. The WSJ reported that between 2004 and 2007, Nokia outspent Apple on R&D by a factor of 9 ($22.2 billion vs. $2.5 billion). This discrepancy leads some to the conclusion that Apple underspends on research and development. I would argue instead that it shows that Apple is far more focused than any of its rivals.

What is focus? Again, we return to Jobs, on stage at WWDC, 17 years ago. The very first question in the session was, simply, “What about OpenDoc?”

Jobs:

What about OpenDoc? What about it? [Audience laughs.] It’s dead, right? Let me say something that’s sort of generic. I know some of you spent a lot of time working on stuff that we put a bullet in the head of. I apologize. I feel your pain. But Apple suffered for several years from lousy engineering management. I have to say it. And there were people that were going off in 18 different directions doing arguably interesting things in each one of them. Good engineers — lousy management. And what happened was you look at the farm that’s been created with all these different animals going in different directions and it doesn’t add up. The total is less than the sum of the parts.

And so we had to decide, what are the fundamental directions we’re going in? And what makes sense and what doesn’t? And there were a bunch of things that didn’t. And microcosmically they might have made sense; macrocosmically they made no sense. And you know, the hardest thing is… you think about focusing, right? You think, “Well, focusing is saying yes”. No, focusing is about saying no. Focusing is about saying no. And you’ve got to say no, no, no. When you say no, you piss off people.

Apple is going to keep saying no, no, no. And because of that, they are going to keep pissing people off.

Read the whole story
andersoncj
3919 days ago
reply
Good article about development management or engineering management.
Share this story
Delete
3 public comments
rosskarchner
3920 days ago
reply
I think both approaches have merit-- Apple's customer-first approach will pretty much guarantee hits, but Google's should lead to genuine discovery-- higher risk, but potentially higher reward.
Cafeine
3920 days ago
reply
Very nice read about what should drive dev. #apple #google #nokia #jobs
Paris / France
dbentley
3921 days ago
reply
It's a shame that people still say Xerox lost on PARC. Parc created the laser printer, which Xerox made more money oodles of money off of. Bell Labs made the transistor.
the7roy
3920 days ago
Hmm, looks like John re-considered that line. It has been removed but used to say, "Xerox had PARC and never made a successful product out of that work. AT&T had Bell Labs, created Unix, and never made a successful product out of that work"
gazuga
3920 days ago
Plays into rosskarchner's point above. For some technology there is no path backwards from a marketable product. Bell Labs developed the transistor anyway.

Drag and Drop and the Kinect

1 Comment

Today's project by Marcus Kohnert show us how we can Drag and Drop with the Kinect for Windows SDK v1.7.

Drag & Drop with Kinect for Windows

With the inclusion of the InteractionStream and the ability to detect a Grip gesture in the Kinect for Windows SDK Update 1.7 it’s now possible to grab UI elements on a screen and move them around. This blog post shows a possible implementation in a WPF application. Please notice that I’m using the following nuGet packages

image

image

Project Information URL: http://passiondev.wordpress.com/2013/12/03/drag-drop-with-kinect-for-windows/

Contact Information:

Read the whole story
andersoncj
3986 days ago
reply
Cool
Share this story
Delete

Saying "Hi!" to developing with HID in Windows 8.1

1 Comment

Today's Hardware Friday projects take us back to the HID world that's opened up in Windows 8.1. The first project by Bruno Capuano (aka El Bruno), shows how quickly you can take advantage of, and how easy it is, HID...

[#HDI] HowTo: List #HID devices connected in Windows 8.1

[Machine translated]

Hello!

First the most important thing: I almost forgot to write about this. Windows 8.1 have a new capability that allows us to work with HID devices, so my posts on the USB missile launcher connected to the Kinect or the USB post light notifier, is now much easy.

To have a good start, the first article you should read is this one:

It explains the new capabilities we have in Win8.1 to connect with:

  • 3D printers
  • USB devices
  • Human Devices Interfaces
  • etc.

For this example I’ll go with the capacity to connect with HDI. In the following example I’ll show who to create a Win8.1 app which displays the list of connected HDI devices.

1. Create an app Store Windows for Windows 8.1

2. Once created the app, we should define in its manifesto that it will connect with an HDI device. Appxmanifiest editor does not support this functionality, so we should edit in text mode. The section that we modify is Capabilities and in this section we define access to HID.

...

4. Once changed the appxmanifiest, we can add a listview and a button to display the connected devices. The following function performs this task.

5. If we launch the application, with the USB EMail Notifier (I wrote about this one here), we will see the following output

image

...

The next project by Dan Ardelean takes us deeper into using HID, focusing on how to interface with an Xbox 360 controller..

HID communication for Windows 8.1 Store applications

I've started thinking about this post a while ago when Windows 8.1 was still in preview (I actually did some testing at that time because I was really excited about this new "cool" scenario store applications) and after seeing this Build 2013 session: Apps for HID Devices.

As I did not had the cool missile launcher to play with I have chosen the XBOX360 Wireless controller connected to my PC using an USB adapter similar to this one. One of the reasons why I did this, apart from proof of concept post, is because I have some bluetooth toys that I like to "drive" using the Xbox360 controller (starting with version 8.1 we have full bluetooth support for the Store applications: SPP, OBEX, GATT/BLE ). The Xbox360 controller gives one of the best gaming experience, way better than any touchscreen, keyboard or motion controllers and also enables multiplayer gaming on the same device/screen.

In order to be able to connect to the Xbox controller we will need to find the VID, PID and UsagePage specific for our device. As I did not know these values I've used the HClient Sample application to retrieve them. To run the HClient sample you will need Microsoft Visual Studio 2013 and, more important, Windows Driver Kit (WDK) 8.1. HClient gives you detailed information on all the HID devices connected to your PC and to easily find out which HID device is the one you are looking for just disconnect the device from the computer, look at the items inside the list, reconnect the device and identify the new device. This way I identified that my XBOX360 controller has VID: 0x045E, PID: 0x02A1, UsagePage: 0x1, Usage: 0x5 (there might be multiple hardware versions of the desktop adapter that might have different PIDs):

...

Selecting the HID Caps for the controller we will see that the input report is 15 bytes long and we don't have an output or a feature report available for this device. This is one of the reasons why, in this case, it would be better to use XInput instead of HID because it would give you access to the lights and the motors inside the controller.
Now that we have the needed values we can start to build our Windows Store application. The first thing we need to do is to set the necessary Capabilities that enable communication between our application and the Xbox controller (manually edit the Package.appxmanifest inside your project using the View code option). In want to know more about the options you can set read How to specify device capabilities for HID.

...

If everything went fine we are now connected to at least one Xbox360 Controller and we can subscribe the InputReportReceived event. The input report contain all the 15 bytes that we need and we can manually parse the bytes or, even better, we can use the defined structures. In our case we have 10 BooleanControls which are our buttons :

image

image

...

There, two HID projects for the price of one. No more excuses now! HID is no longer hard, so use it already!

Read the whole story
andersoncj
4014 days ago
reply
Neat
Share this story
Delete
Next Page of Stories