Interview with Jeff Raikes
, president of the Microsoft Business Division and a member of the senior leadership team, from the Guardian covering piracy, Office 2007 UI, SharePoint, etc.
But the part that caught my eye was:
"As an example, what happened with Mac Excel in 1985 was that we had a
programmer called Steve Hazelrig who was doing the printing code. Laser printers
were expensive then, and ours was way down the hall, so Steve wrote a little
routine that put an image of the page up on the screen, with a magnifying glass
so he could examine every pixel to make sure he had an accurate rendering of the
page. The program manager Jake Blumenthal came down the hall and said: "Wow,
that would be a great feature." That's how Print Preview made it into all of our
products: no customer ever asked for it.
So the trick is to understand the things people want to do, and they may not
know to ask for them, but the opportunity is there. So I think it's more
important to understand what customers really want to do, and to make sure we
deliver on that."
Whether that is completely true or not, it's a good reminder to understand what people really
want do with software and it work for them.
I thought this was an interesting post
talking about how to login to an expired (Windows Genuine Advantage activation system) Windows machine.
Basically involves using the Narrator program for accessibility to launch Internet Explorer where you can then browse to your local files, etc.
What I find interesting is by a simple hyperlink in an about box you can bypass the intended security - one simple looking change that wasn't completely thought through in all usage scenarios.
Disclaimer: I do not agree with breaking your EULA by doing this.
Handy tool, Splitview
, for people wanting to simulate dual screens over Citrix / RDP sessions.
I've mentioned before about productivity boost of having multiple monitors and Scott Hanselman agrees
Not related but on similar note, Visual Studio 2008 will going to support viewing/editing code and design together
I was asked the other day if I knew how this piece of software works, MojoPac
It is a relatively new product funded mainly by venture capital, the idea being a portable virtualization platform. It can be installed on a USB key and then when plugged into a host brings up your MojoPac desktop with your applications/data available but without the performance overhead or client install = great for corporate mobile workers.
After a bit of poking around using task manager, process explorer and other sysinternals tools
it seems to be dynamically loading a kernel level driver to 'hide' itself similar to how rootkits work.
Good interview Steve Gibson and RingThree
which confirms my thoughts.
That seems a bit scary to me and also likely to be closed or made more difficult by Microsoft if it is using undocumented or security holes to work.
Rootkits got alot of press from the Sony DRM issue
from Sysinternals is a handy tool and Microsoft Research
also have tools to help you check for hidden kits.
Another very good resource is this presentation, Hidden RootKits in Windows (ppt)
A interesting product that I'll watch, but think risk of how they achieve the technology and Microsoft Softgrid on the eventually shipping horizon might overshadow in the long term.
I saw this advert for Microsoft Office 2007 recently on the Sky News website and had to look twice. Clearly the marketing team
has made the same mistake for Excel's calculation engine (numbers don't add up) as they did with Frontpage's Html validation
Although they did create a nice integrated advert for Office 2007 on MSN
the other day.
As well as the other fanastic Sysinternals
tools comes a new one from Mark Russinovich
, Active Directory Explorer 1.0
Very useful for discovering properties and attributes available in your Active Directory.
There are a number of code-review products on the market, including Cenqua Crucible
and features inside Jetbrains IntelliJ
but it's worth remembering a few key points as described by MarkLon
1. Does the code do what it is supposed to do?
2. Does the code cover all cases?
3. Is the code quality good?
4. Does the code do too much?
5. Does the code do too little validation?
6. Does the code expose too much?
7. Are all exceptions handled?
8. When modifying code, has a new path into the internals of the code been created?
9. Comments that make you think the code does something but actually it is different.
Also well worth all developers reading Refactoring
and Code Complete
every couple of years (or even months).
Thought this looked an interesting free tool for small businesses who don't run Microsoft Operations Manager (MOM) or one of the new System Center suite
Spiceworks IT Desktop
Your network may be complicated and expensive but your IT management tools don't need to be. Spiceworks IT Desktop is the only application that combines Network Inventory, Help Desk, Reporting, Monitoring and Troubleshooting in a single, easy-to-use interface designed for IT teams in small and medium businesses. Plus, Spiceworks lets you collaborate with IT pros around the world to solve problems, share ideas and decide what additional features you need in Spiceworks.
I haven't tried it myself but it certainly looks impressive for a free product.
Came across this interesting issue when changing code access security (CASPOL) setting via the Microsoft Management Console (MMC) snap-in.
There are separate policies on a 64-bit machine, ie. for 32 and 64-bit runtime versions.
Good explanation why and how to run different mmc versions
via command line parameters.
In the article, A Profile of Don Ferguson
, in the Microsoft Architecture Journal
was featured the month before).
When asked what makes a good software architect:
Firstly, at IBM we had an architect board in the Software Group, which helped me form a network. It took me a while to understand the importance of a network. Being a New Englander, I tend to be a little taciturn and by myself. You should never underestimate the importance of a social network. You don't know what you don't know. You don't know what someone may say to you that can push the reset button in your brain and make you think differently.
Secondly, as a software architect, never stop coding. I write code. It's not good or particularly deep code, but I do code. A lot of it is educational and related to my spare-time activities. For example, recently, I've been working on a portal that connects my family using TikiWiki and PHP. I installed the products, but they didn't work for me right out of the box. So, I had to go in and hack them. It was cool. Another example is the nursery school that my daughter attends. They asked me to set up a Web site using [Microsoft] FrontPage, which was another learning experience.
Thirdly, communication skills matter. They really do. It's really important to understand how to write well and how to present well.
Finally, the most important thing is to connect with customers. Spend as much time as possible with them. Learn what they are trying to do, and look at what works and what doesn't. Help them use your products. There's no substitute for spending time with customers and helping them solve problems. Doing this, we often learned that customers used things in ways that we never dreamed they would. We also came up with amazing new ideas.
On a similar note, What Does a Microsoft Program Manager really do? blog post by Farshid Sedghi has some really good points. Chris Sells did a similar set of postings on being a PM.
- Confidence - includes knowing your stuff inside out
- Impact and Influence - If you can't have any impact and influence in the work, it probably is a good sign that you are not a good fit for the job or your position should not exist.
- Cross-group collaboration - Whether you like it or not sooner or later everybody here has to do some of this and you better be good at it.
- Interpersonal awareness
- Be smart and get things done - Also goes without saying.
101 LINQ Samples
... for future reference.
This annoucement by Microsoft and leading telecoms companies
recently to better integrate the hardware phone devices
with the desktop software space looks set to push things forward.
Most companies already have Voice Over IP (VOIP), Computer Telephony Integration (CTI) and use of conference calls for global team working and integration of address books from the PC to the phone is great.
“Today’s office phone is marooned on an island, separate from the rest of the
communications tools that information workers rely on to do their jobs,” said
Jeff Raikes, president of the Microsoft Business Division. “By weaving the
business phone together with e-mail, instant messaging, presence, conferencing
and the productivity software people use most, we are putting voice
communications back into business.”
The UI on the phones makes more sense than alot of devices I've used in the past.
I think presence should be thought of separately from instant messaging alot more, embedding it into line-of-business applications where user context\communication might be required. This can be done by leveraging the Office Communication Server SDK\APIs
The upcoming release of Microsoft Office Communication Server 2007
(rewrite of Placeware) looks set to incorporate 360 degree video conferencing using hardware developed by Microsoft Research.
But the level of complexity in libraries like dojo
and Microsoft ASP.NET AJAX
can be a huge learning difference.
So this article in MSDN Magazine, Create Advanced Web Applications with Object-Orientated Techniques
, is a great read.
, which has good tips around closures and memory leaks towards the end.
Aside from the Silverlight announcements which seem to have stolen the show so far at Mix07.
A couple of other interesting pieces to watch, codename: Astoria:
The goal of Microsoft Codename Astoria is to enable applications to expose data as a data service that can be consumed by web clients within a corporate network and across the internet. The data service is reachable over HTTP, and URIs are used to identify the various pieces of information available through the service. Interactions with the data service happens in terms of HTTP verbs such as GET, POST, PUT and DELETE, and the data exchanged in those interactions is represented in simple formats such as XML and JSON.
And codename: Jasper:
Project Jasper is geared towards iterative and agile development. You can start interacting with the data in your database without having to create mapping files or define classes. You can build user interfaces by naming controls according to your model without worrying about binding code. Project Jasper is also extensible, allowing you to provide your own business logic and class model. Since Project Jasper is built on top of the ADO.NET Entity Framework, it supports rich queries and complex mapping.
I'm finding the what's being released when and with what ship vehile is getting confusing/complicated, with .NET 3.5, C# 3.0, Visual Studio Orca beta 1, ADO.NET EF, Linq, etc. and I'm not the only one.
Some ideas being rumoured around around the Microsoft's Live development platform, Microsoft to roll out dynamic-language layer for .NET
. Also direction on LINQ 2.0 (PDF)
Need to look into what labs.biztalk.net
is and the idea of Internet Service Bus.
Good interview, "The Man Who Would Change Microsoft: Ray Ozzie's Vision for Connected Software", where Ray Ozzie talks about Microsoft changing to ship both software to the desktop and connected services.
He talks not about only "Software as a Service" but the combination and lifetime of software deployment.
"Ozzie: Well let me just start by saying that, in my view, we only have one shared future as a software industry. And that is centrally deployed code that has a different lifetime associated with it on the device it's deployed to.
All apps -- whether Win32 code, Flash code, managed WPF [Windows Presentation Foundation] code -- are going to have those lifetime choices and will all be centrally deployed, whether that central deployment is from an enterprise or from a service provider on the web. The concept of CD-based installs, floppy-based installs or USB stick installs are artifacts of a time when we were not fully connected.
So I don't see radical differences in the approaches that Adobe might be taking, that we're taking, or that the web industry in general is taking. The languages and run-times may be different. And we come at it from a history of the desktop coming up to the web. They are coming from a history of being on the web and going down to the desktop, but the endpoint is the same."
Interesting times, let's see how things pan out as revenue streams are split more and more by free and same vendor competitive products by different platforms...
Microsoft has announced the name of WPF/E as Silverlight, together with a new website.
"Microsoft Silverlight is a cross-browser, cross-platform plug-in for delivering the next generation of media experiences and rich interactive applications (RIAs) for the Web."
I'm still yet to be convinced by any of the demos that it is much more than Flash/Flex and it still leaves a grey area of UI choices between Html, DHtml (AJAX), SilverLight, Flash/Flex, WPF (xbap), WPF/Winforms.
If Microsoft 'merged' the full WPF xbap into Silverlight, so support for databinding, templates, text entry, grids, 3D, etc. was available cross-browser, cross-platform and it was seen as tool for rich client-side interactivity that would be a better story - as it is the video playback seems to be high priority than business data representation.
Maybe things become clearer over time, as point 10 from Tim Sneath's list is revealed and other content demo'ed at Mix07.
Great user experience (UX) is difficult to achieve but often so simple - improvements can be blindingly obvious afterwards.
The Windows Vista UX guide, gives the example of the Spelling and Grammar checking dialog
, it was "powerful" but a "powerful and simple" in-place design is even better.
But simplicity isn't simple
, what is the 80/20 percent of your software application that your users actually use everyday?
Look at these examples of badly thought-out charts illustrating quantitative information
If you need some ideas for visualizations methods, this periodic table
has some good examples.
Jakob Nielsen talks about Return on investment for Usability
, of IStartedSomething, points to the updated Windows Vista UX Guidelines on MSDN.
Including guidelines on warning messages and suggestions on how to avoid, "Users are more likely to focus on getting rid of the warning than fixing the underlying problem".
Also we are starting to see information on "Designing with Windows Presentation Foundation
", touching on animation being appropriate, aesthetically pleasing often in a subtle way.
How Pragmatic Architecture can be applied to user interfaces
and segmenting UI fundamentals into five parts: style, implementation, perspectives, cardinality and locality
I'll talk in a future post about my thoughts on WPF and UX.