Microsoft China rips off Plurk source code, yawnnnnn

committed to database on December 14, 2009 at 2:33 pm Eastern Standard Time 33 comments digg this

PRC Flag with skull and bones overlay Tom Warren, over at Neowin, just shot me a note about a post he just wrote up. The short story is Microsoft China took a bunch of source code from a popular Asian site called Plurk. While this is interesting, given the recent GPL fiasco, I’m going to say what everyone else is already thinking: Do we expect anything less from the Chinese? While I understand this may sound like a gross over-generalization of who’s at fault, and may even offend some readers, let me rationalize my thinking by providing IIPA’s copyright piracy figures from 2007 and 2008. China ranked in as #1 in terms of estimated losses due to copyright piracy, more specifically over 3 billion US dollars. A commenter on Neowin said it perfectly:

If this was in the US (or just about anywhere else in the world) I'd think it was a big issue, but it's China. Do they even have intellectual property laws?

(Jonathan Marston)

[removed unnecessary jab, may be construed in ways I don’t intend]

Microsoft ends GPL saga; WUDT source code released

committed to database on December 9, 2009 at 2:18 pm Eastern Standard Time 17 comments digg this

Back in November, I wrote about Microsoft lifting GPL licensed code for use in a Microsoft Store tool, more specifically the Windows 7 USB/DVD Download Tool. A few days after the initial report, Microsoft confirmed my findings and vowed to set things right.

Only a month later, access to the tool has now been restored and a new Microsoft Codeplex project has been stood up, housing all the source code for all to consume. I personally built the downloadable binary from the source, so I know it works as advertised.

WUDT source open in Microsoft Visual Studio (Form design view)

Figure: WUDT project open in Microsoft Visual Studio 2008

You’re probably wondering... where did the ImageMaster project go? Microsoft unpublished the project from Codeplex after receiving a request from the author to do so. I suspect he freaked out after half the internet started linking to the project – understandable – and pulled the code. Here’s hoping the author returns...

For those curious, I’ll be submitting a patch to support imgburn-created ISOs, eliminating the need for my separate tool.

Windows 7 Starter hides but allows ad-hoc networking

committed to database on December 2, 2009 at 9:55 pm Eastern Standard Time 52 comments digg this

This week, I was disassembling software that a major, to-remain-nameless OEM, put out for their netbook customers. I was ready to call them out on code that deliberately bypassed a licensed feature check in Windows, enabling ad-hoc wireless networking… but when I booted up an Eee PC, ad-hoc wireless networking worked out of the box.

Huh? But why does Microsoft explicitly state Starter Edition cannot participate in ad-hoc networks? And why is this OEM patching Windows code? More specifically, why were they intercepting the SLGetWindowsInformation function (within the Explorer process), waiting for Microsoft-Windows-DOT11PREF-AllowAdhoc as a parameter and returning a true value every time? (Some of us call this a “crack”.)

I couldn’t find the difference in ad-hoc networking between the Starter and Home Premium editions. Paul Thurrott did, however. (Of course he did, he’s a robot.)

Set Up a Connection or Network dialog with ad-hoc network link.

Yep, that’s the difference.

On Windows 7 Starter Edition, the “Set up a wireless ad hoc network” link in the dialog above is missing. That’s the licensed “feature” you’re missing out on. I repeat: You’re licensed to use ad-hoc networking. You’re not licensed to use the shortcut in this dialog. To access the wizard that this link normally points to, simply Start Menu search for ‘adhoc’. It’s a lot of work, I know.

Comparison of Starter and Home Premium Editions of Windows.

Given how ridiculous this behaves, I believe it’s safe to assume this is an unintentional screw up. Enjoy it while you can, netbook cheapos -- it’ll probably be fixed in a future hotfix or service pack. Kudos to the unnamed OEM for “fixing” this screw up in their software.

Microsoft Live Labs Pivot available to handful, code giveaway

committed to database on November 20, 2009 at 10:59 pm Eastern Standard Time 13 comments digg this

While the read on the site may be a bit verbose, the video does a great job at summarizing what Pivot is: “A brand new technology [...] that enables you to see massive amounts of visual information at one time.” I haven’t had a chance to dig deep into Pivot, but the visualization capabilities look awesome. Video follows.

If you’re interested in playing with/testing Pivot, ensure you follow me (@WithinRafael) on Twitter. I’ll be giving away codes this weekend and throughout the following week.

PDC 2009 (Day 2): Keynote Liveblog #2

committed to database on November 18, 2009 at 11:56 am Eastern Standard Time 0 comments digg this

PDC 2009 (Day 1): Windows Ribbon Technical Deep Dive

committed to database on November 18, 2009 at 12:07 am Eastern Standard Time 0 comments digg this

After our keynote live blog (numero uno), myself, Tom Warren, Long Zheng and Andrew Lyle ran a few doors down to the Windows Ribbon Technical Deep Dive. It started out okay but quickly deteriorated after about 15 minutes. Why? Well it didn’t help that the speaker started implementing mass amounts of code via custom macros. The real downer, however, was the actual code itself. Why isn’t there a tighter wrapper for easier implementation? With third-parties wanting to emulate current Ribbon-based software out there, I don’t see an immediate need for the level of granularity they demo’ed. Kudos for trying though.

If you find yourself in the mood to write Ribbon-enabled applications, make absolutely sure you grab the Ribbon preview tool. You can easy cook and debug Ribbon UI XML with this tool. Some photos covering the recommended implementation steps follow.

 

PDC 2009 (Day 1): Keynote Liveblog #1

committed to database on November 17, 2009 at 11:28 am Eastern Standard Time 1 comment digg this

Webcam chat at Ustream

PDC 2009 (Day 0): Windows 7 Developer Boot Camp

committed to database on November 16, 2009 at 2:23 pm Eastern Standard Time 1 comment digg this

After a quick (and ungodly expensive) breakfast in the morning, Tom Warren, Long Zheng, Paul Thurrott, Stephen Chapman, et al, made a run (almost literally) to the already-started Windows 7 Developer Boot Camp with Mark Russinovich and gang. Paul and I ran to the front and managed to somehow snag seats right next to Mark Russinovich! Sweet.

Speaker Speaker w/ slidedeckSlide

Decphering Task Manager slide 4109559199_51c368aa2b_m[1]

Yep, we’re live-blogging Microsoft PDC 2009 again

committed to database on November 12, 2009 at 8:57 pm Eastern Standard Time 2 comments digg this

Like last year, I’ll be teaming up with several other hacks bloggers to cover the two keynotes during the Microsoft Professional Developers Conference next week. The live blog, powered by Cover It Live, will be embedded in a future post here. Stay tuned.

Microsoft PDC 09 Keynote Liveblog

Day 1: Tuesday, November 17 8:30am - 10:30am (PDT)
(See other time zones)

Day 2: Wednesday, November 18 8:30am - 10:30am (PDT)
(See other time zones)

Microsoft lifts GPL code, uses in Microsoft Store tool

committed to database on November 6, 2009 at 10:53 pm Eastern Standard Time 268 comments digg this

Update 11/7: The example I provided yesterday (ReadBytes) was replaced with a new one. Note that it is only an example. I’m not here to prove my case in a huge exhaustive post for you. That’s left as an exercise for the reader.

Update 11/7 (2): The code in question is not a part of the IMAPIv2 Code Samples. If you visit Codeplex and actually download the source code, you’ll see this code is separate.

Update 11/7 (3): ImageMaster UDF parsing is a valid derivative work licensed under GPL. The original parsing code is from LGPL 7zip. Here’s a comparison. And another.

Update 11/9: Microsoft has pulled the tool pending further investigation.

Update 11/13: Microsoft has acknowledged the code use, see Port 25 for more details.

Microsoft Store logo taped over GNU logo While poking through the UDF-related internals of the Windows 7 USB/DVD Download Tool, I had a weird feeling there was just wayyyyyyyyy too much code in there for such a simple tool. A simple search of some method names and properties, gleaned from Reflector’s output, revealed the source code was obviously lifted from the CodePlex-hosted (yikes) GPLv2-licensed ImageMaster project. (The author of the code was not contacted by Microsoft.)

I see two problems here. (I’m not a FSF professional, so there may be more.)

First, Microsoft did not offer or provide source code for their modifications to ImageMaster nor their tool. According to GPLv2:

3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:

a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)

Second, Microsoft glued in some of their own licensing terms, further restricting your rights to the software (TermsOfUse.rtf). According to their terms:

1. Scope of License. The software is licensed, not sold. This agreement only gives you some rights to use the software. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the software only as expressly permitted in this agreement. In doing so, you must comply with any technical limitations in the software that only allow you to use it in certain ways. You may not
· work around any technical limitations in the software;

· reverse engineer, decompile or disassemble the software, except and only to the extent that applicable law expressly permits, despite this limitation;

· make more copies of the software than specified in this agreement or allowed by applicable law, despite this limitation;

· publish the software for others to copy;

· rent, lease or lend the software;

· transfer the software or this agreement to any third party; or

· use the software for commercial software hosting services.

I understand Microsoft is a big company and that this could have been externally contracted work, but someone dropped the ball during code review/licensing. Cue the fail horns, Drew.

Example of reflected Microsoft tool code and ImageMaster source code on CodePlex

Example of reflected Microsoft tool code and ImageMaster source code on CodePlex