Microsoft said on Monday that it will open up the data format behind its Outlook program.
In a blog posting, Microsoft group manager Paul Lorimer said the company is working to publish the specifications behind Outlook's .pst files.
"Data portability has become an increasing need for our customers and partners as more information is stored and shared in digital formats," Lorimer wrote. "One scenario that has come up recently is how to further improve platform-independent access to e-mail, calendar, contacts, and other data generated by Microsoft Outlook."
The move, he said, will "allow developers to read, create, and interoperate with the data in .pst files in server and client scenarios using the programming language and platform of their choice."
Lorimer said the documentation effort is still in its early stages. "We are engaging directly with industry experts and interested customers to gather feedback on the quality of the technical documentation to ensure that it is clear and useful."
Once released, Lorimer said Microsoft will offer it "under our Open Specification Promise, which will allow anyone to implement the .pst file format on any platform and in any tool, without concerns about patents, and without the need to contact Microsoft in any way."
It's a question we all face: with chips getting more processing cores instead of more gigahertz, is your next computer going to actually run your software faster?
Microsoft is one of the companies that feels the pressure to most acutely when it comes to putting those cores to work. Though it doesn't pretend to have the problem licked, Microsoft does believe Windows 7 provides a better foundation for using multicore systems than earlier versions of the operating system.
Jon DeVaan, head of Windows Core Operating System Division
(Credit: Microsoft)One key part of solving the PC's multicore problems draws from the world of big iron, and Windows 7 can support much bigger iron--servers with as many as 256 processor cores compared with 64 for its predecessor. Now a few years into the multicore era, even today's laptops are able to juggle as many tasks as reasonably powerful servers from just a few years ago. Intel's new Core i7 "Clarksfield" processor for mobile computers has four cores that manage a total of eight separate "threads" of work.
"One dimension is support for a much larger number of processors and getting good linear scaling on that change from 64 to 256 processors," said Jon DeVaan, senior vice president of Microsoft's Windows Core Operating System Division. "There's all kinds of depth in that change."
Linear scaling means that doubling the number of processors means a doubling in performance--something rarely achieved in real-world computing. But what does 256 or even 64 processors have to do with a PC with four or eight cores? In short, updating the Windows plumbing to support bigger servers also helps work run more smoothly on smaller multicore machines, for example by ensuring data cached in memory is close on hand to the processor core that needs it, DeVaan said.
It's crucial that Microsoft help solve multicore issues. The company is responsible not just for the most widely used personal-computer operating system but also for the programming tools many use to create the software that runs on it. That's why another broad attempt to ease multicore pains takes place within Visual Studio 2010, the upcoming version of Microsoft's programming tools.
"People have been working on this for a long time. So far there haven't been any magic bullets," Devaan said. "The commercial reality is creating a lot more urgency now, so I think we'll see a lot more approaches taken."
Unlocking multicore power is a point of competition, too: Apple's newest version of Mac OS X, Snow Leopard, adds a facility called Grand Central Dispatch to centralize management of all the various threads of programs as they run on a system.
Intel and Advanced Micro Devices bear responsibility, too, since they embraced multicore designs once heat problems put an end to the clock-frequency race, but Microsoft has much more clout in developer relations.
Windows 7 is due to ship October 22.
(Credit: Microsoft)Multicore designs can help easily when people are running many separate programs or when running programs that are "embarrassingly parallel"--in other words, when a task has many naturally independent subtasks, such as rendering each of a video's many frames. But many programs won't easily make the jump to a parallel design when they're set up as a single sequence of steps today.
"An operating system is never going to be able to take an application that isn't already parallel and make it so. Developers still need to multi-thread their apps," said Evans Data analyst Janel Garvin.
Visual Studio 2010
So it's good Microsoft is working on parallel programming aids within Visual Studio.
"Microsoft has done surprisingly little until recently to help developers write parallel applications, except for their alliance with Intel to promote Parallel Studio," an Intel collection of programming tools for parallel programming, Garvin said. "However, in the last year they've made some announcements and promises for Visual Studio 2010 about enhanced tools for parallel programming. It's likely that the success of Parallel Studio has impressed upon them the importance of providing Windows developers with the tools they need to remain competitive going into the future when manycore will be the standard."
Eventually, programmers will have to embrace parallel programming to be competitive, Garvin said. Parallel Studio helped bring the concepts to a much more mainstream audience, she said, and Evans Data's spring 2009 global developer survey found 40 percent of programmers are working on multithreaded applications today and another 15 percent plan to in the next year.
"Parallel programming is complex, difficult and labor-intensive, for even the most skilled developers, which has led developers to avoid writing parallel programs, leaving many CPU cycles unused," according to Steve Teixeira, Microsoft's principal product unit manager of parallel computing. The company's attempt to improve the situation comes not just in Visual Studio 2010 but also in another future product, version 4 of the company's .Net Development Framework.
Parallel programming tools
Among those features:
The Task Parallel Library, which lets .Net programmers write more parallel code in familiar terms. For example, programmers are used to "for loops" that repeat a particular task a specific number of times; library lets each step of the loop happen simultaneously instead of sequentially.
The new Intel Core i7 processor for mobile computers has four cores and can run eight threads.
(Credit: Intel) The Microsoft Concurrency Runtime can provides a shared resource for scheduling tasks and allocating resources--and which works better on Windows 7.
The Asynchronous Agents Library can permit separate threads of execution to pass messages among each other. That's useful in cases where separate threads need to head off no-no conditions such as when
Parallel Language Integrated Query (PLINQ) technology lets programmers perform some operations with data in parallel rather than sequentially.
The Parallel Pattern Library is designed to make parallel programming easier for those using the C++ language.
Microsoft knows none of this is truly easy, though. DeVaan wonders about cases when existing software is being parallelized--is each step in a parallel for loop really independent of the others? He sees "a lot of hand-waving" around the computing industry that glosses over the true difficulties.
"As an industry, we're going to be working hard to make it work better and working with broad set of developers to target (multicore programming) without undue work," DeVaan said. "Will these approaches really accomplish it? That's an open question."
A security hole in Internet Explorer that opened the browser to hackers since early July was caused by a single typo in Microsoft's code.
An errant ampersand ("&") took the blame for the exploit, admitted Microsoft in a blog published Tuesday at its Security Development Lifecycle (SDL) Web site.
Michael Howard, a security program manager at Microsoft, explained in his blog that the typo corrupted the code of an ActiveX control used by the browser. The control was created by Microsoft using an older library of code, which Howard admitted has flaws. Because of those flaws, the typo caused the code to write untrusted data, exposing the browser to the bad guys.
Outside of its regular Patch Tuesday routine, Microsoft issued an emergency fix for IE, which it said would block attempts to exploit the flaw in ActiveX controls.
Development tools like Microsoft's own Visual Studio use the same library of code, known as Active Template Library (ATL). On the same day it released the emergency patch for IE, the company also released a Visual Studio fix.
Howard said the typo would have been difficult to spot in a review of the code, and that none of Microsoft's code analysis methods would have uncovered it either.
In his blog, Howard played a high-tech version of "Where's Waldo?" by challenging readers to find the typo amid a few short lines of code, even hinting that it was a single character.
The code lines he listed were:
__int64 cbSize;
hr = pStream->Read((void*) &cbSize, sizeof(cbSize), NULL);
BYTE *pbArray;
HRESULT hr = SafeArrayAccessData(psa, reinterpret_cast
hr = pStream->Read((void*)&pbArray, (ULONG)cbSize, NULL);
And his riddle for readers:
"I'll give you one more clue - it's a one character typo. Give up? Look at the last line. The first argument is incorrect. It should be: hr = pStream->Read((void*)pbArray, (ULONG)cbSize, NULL);"
The hole was originally uncovered earlier this month by a pair of German researchers. Thomas Dullien (also known as Halvar Flake), CEO of Zynamics GmbH, and his friend Dennis Elser detailed their discovery in a blog. After the exploit became known, the two did some digging into the code and found the unwanted "&" character.
So what will Microsoft do to guard against future typos?
In his blog, Howard acknowledged the need to clean up the company's coding process. He said that Microsoft will update the tools it uses to find these types of errors. The company will also require its programmers to use the newer ATL code. In the past, Microsoft never told its programmers what to use. But says Howard in his blog, "We're going to change that!"
The E-mail Standards Project is urging Twitter users to pressure Microsoft to support better HTML formatting in Outlook.
(Credit: Screenshot by Stephen Shankland/CNET)Dave Greiner was distressed in 2007 when Microsoft decided to use Microsoft Word's relatively rudimentary technology to display HTML-encoded e-mail in Outlook. Now, facing the extension of that choice into the forthcoming Office 2010, he's agitating more loudly for change.
Greiner, a member of the informal E-mail Standards Project group, set up a Web site called FixOutlook.org and urged everybody who agrees with his position to publicize their dismay on Twitter; more than 19,000 did so by Wednesday afternoon.
Microsoft, while encouraging feedback on the matter, stood by its decision in a response published on the Microsoft Office Team blog.
... Read moreIn a move to tie their collaboration tighter, Microsoft and Lexmark on Tuesday announced that they have entered into a broad patent cross-licensing agreement.
Under the arrangement, Lexmark will license its patents for its printers and multifunction devices, as well as its other products, to Microsoft. And the Redmond, Wash., based company, in return, will offer access to a wide range of its software.
Terms of the agreement were not disclosed.
"We believe this agreement will improve the productivity of both our companies and result in enhanced product offerings and increased satisfaction for all our customers," Marty Canning, Lexmark's printing solutions and services division president, said in a statement.
Sample JavaScript using JQuery.
(Credit: Microsoft)Microsoft said Sunday that it plans to ship the JQuery JavaScript library with its Visual Studio developer tool suite.
The software powerhouse said that jQuery would be one of the libraries used to implement higher-level controls in the ASP.net Ajax Control Toolkit, and would also have a role in new Ajax server-side helper methods. The 15KB JQuery JavaScript library will be distributed as is, with no forking, and files will continue to adhere to the JQuery MIT license.
In addition, Microsoft said that it would contribute tests, bug fixes, and patches to the JQuery open-source project and that later this year it would extend product support to JQuery.
The announcement came in a blog post by Scott Guthrie, a vice president in Microsoft's developer division, who described the library's attraction:
A big part of the appeal of jQuery is that it allows you to elegantly (and efficiently) find and manipulate HTML elements with minimum lines of code. jQuery supports this via a nice "selector" API that allows developers to query for HTML elements, and then apply "commands" to them. One of the characteristics of jQuery commands is that they can be "chained" together - so that the result of one command can feed into another. jQuery also includes a built-in set of animation APIs that can be used as commands. The combination allows you to do some really cool things with only a few keystrokes.
Guthrie also pointed to a newly posted tutorial on Scott Hanselman's Computerzen blog about integrating JQuery with ASP.net Ajax.
Writing on the JQuery blog, John Resig said that mobile phone heavyweight Nokia also is adopting JQuery as part of its application development platform. As is the case with Microsoft, he said, Nokia isn't looking to make any changes to the library, and its developers will contribute to the JQuery project.
Resig, a lead developer of JQuery, wrote:
Nokia is looking to use jQuery to develop applications for their WebKit-based Web Run-Time. The run-time is a stripped-down browser rendering engine that allows for easy, but powerful, application development. This means that jQuery will be distributed on all Nokia phones that include the web run-time......The jQuery test suite is already integrated into the test suites of Mozilla and Opera and this move will see a significant level of extra testing being done on Internet Explorer and WebKit - above-and-beyond what is already done by the jQuery team.
There's no shortage of people talking about cloud computing these days. But are they all talking about the same thing?
Speaking with venture capitalist Ann Winblad at the Churchill Club onThursday, Microsoft CEO Steve Ballmer addressed those differences of opinion:
"I would have thought I knew what the word 'cloud computing' meant," he said, "until I sat with Anne and a bunch of venture capitalists this morning who used the word completely differently than I would have used it."
Ballmer declined to get into the specifics of Microsoft's vision, or to offer any details on its "Red Dog" project. That topic, he said, is something the company will open up about at its Professional Developer Conference in late October.
But he did offer this stab at a definition: "I think when people talk about cloud computing they're talking about taking some stuff, putting it outside the firewall, and perhaps putting it on servers that are also shared--or storage systems--that are also shared, perhaps with other companies that they know nothing about."
See also:
Ballmer on search: 'I don't like not being No. 1' Mundie: The cloud needs killer apps
Microsoft's Mundie outlines the future of computing
Ballmer jabs at VMware
CAMBRIDGE, Mass. -- Like others in the industry, Craig Mundie sees computing moving increasingly to the cloud. The big question is: what will be the "killer" applications driving demand?
Mundie, Microsoft's chief research and strategy officer, offered up the company's vision for the next phase of computing at the EmTech conference here on Thursday. That vision includes an increasing reliance on cloud-based computing, robotics, and far-flung sensors. And, Mundie says, client-based operating systems.
"Whether it's Windows or something else, something has to make all of this iron work. People say OS is irrelevant, (but) demands on the operating system are actually getting higher and higher," Mundie said.
Microsoft's Craig Mundie explains the company's client/cloud vision.
(Credit: Dan Farber/CNET Networks)Still, Mundie acknowledged that most people "don't choose Windows...they choose applications. It's the killer apps people are choosing and that will be true in the next generation" of computing.
"I think that will be true as we go forward with this new composite platform. People won't really care what the iron is, or the underlying OS."
Mundie's comments underscore a primary concern for Microsoft, as cloud computing becomes more widespread: How does the company keep Windows relevant?
That's a larger concern that Mundie, along with Chief Software Architect Ray Ozzie, will need to tackle with Microsoft's evolving "client/cloud" strategy that posits operating systems will perform a vital role in local processing. Adobe Systems--which only recently launched a Web-based services--agrees. But Google and other competitors clearly see Web-based applications as driving future development.
Despite the far-reaching vision that Mundie discussed here, it's the little things that still matter most to many Windows users.
One conference attendee asked Mundie how Microsoft can bring broad technological advances, such as Mundie's vision for what he calls "spatial computing," down to a more human level and allow computing technology to better recognize human error and misunderstanding.
The attendee, a recent convert to Vista, said that his wife could not find a way to shut down the PC and had reverted to unplugging it from the wall. Couldn't Vista have helped her?
In response, Mundie said that there has "always been a tension between advancing and maintaining capability with the past. Your wife should have easily been able to discover how to turn Vista off. But we are not there yet."
Mundie referenced the "ribbon" feature of Office 2007, which was intended to make it easier to find the hundreds of features within Office. He also mentioned a product called Bob, "a more derided product" that Microsoft marketed in the 1990s as a way to help new users navigate Windows. It flopped, though the company did keep at least one Bob innovation--and much-despised feature--called "Clippy" as part of Word for some years later.
"With Bob," he said, "we tried to create this product that would have a sidebar conversation with users to teach them how to do things. Clippy really wasn't enough help. If we want to make things simple, the software is a lot harder.
"As we get this change in computational capability, we need to include these technologies to let the machine help you better," he said.
The source code underlying Google's Chrome Web browser suggests that Google used a reverse-engineering technique called disassembly to figure out how to employ a useful Windows Vista security feature, but the company said it didn't, in fact, do so.
The Chrome source code said a particular security feature available on Vista, Data Execution Prevention, can be used on Windows XP SP2 and Windows Server 2003 SP1, though it's not documented for the older operating systems. The source code also said the feature can be understood with a disassembler, a method of reverse-engineering that deconstructs a binary file--such as Windows--into instructions more easily understood by a human.
An explanatory comment in the Chrome source code mentions use of a disassembler to figure out the security feature. "Completely undocumented from Microsoft. You can find this information by disassembling Vista's SP1 kernel32.dll with your favorite disassembler," the comment says.
But Google itself didn't take that route. "We did not disassemble this code," the company said in a statement. "The source code indicates that the technique came from http://www.uninformed.org/?v=2&a=4. Please also note that...disassembling is just one of several methods one can use to find this information."
Software companies trying to protect their proprietary software often aren't fans of disassemblers. For example, Vista's End-User License Agreement (PDF) states, "You may not...reverse-engineer, decompile, or disassemble the software, except and only to the extent that applicable law expressly permits, despite this limitation."
Google stuck up for the practice, though. "Disassembling is a common and accepted practice in software development, frequently used to make sure software features are compatible with other software programs or operating systems," the company said.
Regarding the Data Execution Prevention interface, the Chrome source code says, "Try documented ways first. Only available on Vista SP1 and Windows 2008." The method described at Uninformed comes in a later section, labeled thus: "Go in darker areas. Only available on Windows XP SP2 and Windows Server 2003 SP1."
Correction 8:40 a.m. PDT Sept. 19: Google didn't disassemble Vista to employ the security feature described below. See this separate blog post for details.
During Google's launch of its Chrome Web browser, the company went out of its way to acknowledge the debt it owes two open-source projects, Firefox and WebKit. But Microsoft, an uncommon ally in the open-source realm, might also deserve a tip of the hat.
After some digging through the Chrome source code, Scott Hanselman, a senior programming manager for Microsoft, found that the browser uses an open-source Microsoft project called the Windows Template Library, software for building a Windows user interface. (It uses an abstraction layer so other interface software can be employed on other operating systems.)
Microsoft's WTL project is available on SourceForge.net, a repository of open-source projects.
(Credit: SourceForge.net)On its open-source Chromium site, Google lists WTL 8.0 as included third-party software.
Microsoft, while keeping its crown jewels proprietary, has been lurking around the fringes of the open-source realm for years now. Open-source software may be moved freely from one project to another; though license particulars sometimes erect barriers, both Chrome and WTL use relatively liberal licenses.
There's a bit more intrigue with some other Microsoft technology, though. For security technology called Data Execution Prevention, which can help block various forms of attacks, Google also apparently used an undocumented interface from Microsoft to get the feature working in Windows XP SP2.
Microsoft's Arun Kishan said the interface is "undocumented and unsupported" and "initially only intended for our own use" on a Microsoft forum posting. Using such APIs (application programming interfaces) can get software into trouble, because operating system companies offer no guarantees future software will support them, so upgrades can break compatibility.
And in describing how to use the security feature, Google said people could disassemble the Windows Vista's underlying source code--in other words, extract the operating system's low-level instructions from the Vista binary. Disassembly is one form of reverse-engineering.
Google spotlighted the technology in a comment in the Chrome source code: "Completely undocumented from Microsoft. You can find this information by disassembling Vista's SP1 kernel32.dll with your favorite disassembler."
The software takes the high road if possible, according to another comment: "Try documented ways first. Only available on Vista SP1 and Windows 2008."
Google didn't immediately comment on the move.
Matt Asay, a Mac user and an executive at open-source firm Alfresco, pines for a Mac version of Chrome, suggesting that leading off with Windows may have been a "strategic error" even if the Windows Template Library made it easier to get the Windows version out first. "It might make sense to aim for the mainstream (i.e., corporate IT, which would get the most benefit from an JavaScript-optimized Web browser), but the mainstream isn't in the habit of trying out the latest and greatest," Asay said.
Google's not dumb, though: there are plenty of programmers and early adopters using Windows, even if the cutting-edge crowd might be proportionally larger with Mac OS X or Linux. Besides, making headway in today's browser wars will take more than a few months and one beta version, and the Mac OS X and Linux versions of Chrome are under development.
(Via Redmond Developer News.)




