Tuesday, August 31, 2004
When you go too far up, abstraction-wise, you run out of oxygen. Sometimes smart thinkers just don't know when to stop, and they create these absurd, all-encompassing, high-level pictures of the universe that are all good and fine, but don't actually mean anything at all. These are the people I call Architecture Astronauts. It's very hard to get them to write code or design programs, because they won't stop thinking about Architecture.
Monday, August 30, 2004
why should developers care about XAML now? I’ve discussed this with a number of my colleagues, and here is my take on the problems with embracing XAML. Declarative programming (and that is what XAML is about) is all about reusing objects, not recoding them, and that has been the holy grail for programmers for decades now. You basically declare your facts (the state of the objects) and let the environment handle the details (think SOA). But almost all of the developers out there have been trained in procedural languages, not declarative ones, so we have created a procedural coding mindset, and until we (the community) do a better job getting developers to think declaratively, 80% of all Windows programmers will not truly understand XAML. If you don’t believe me, take a look at the average web developer. How many web developers out there really understand CSS and use it to layout their web pages?
Thursday, August 26, 2004
You keep reading stories about how cellphones will be used for checking stock quotes and making trades, buying stuff, and other eCommerce. It seems business plans are based on people paying for such stuff. I think that eCommerce is not where things will go. . . . Buying isn't fun. Shopping is. Shopping is looking at things and imagining owning them or wearing them or using them. Shopping is looking for "just the right thing" out of many possibilities. Shopping is often around or with other people. People pay money to shop in interesting places, even if they don't buy much: Traveling to New York City to walk down 5th Avenue and look in at Tiffany's, Steuben Glass (until they moved), and FAO Schwartz; going to Italy to look at the stores with the designer clothes; buffets; etc. So, people will pay money for things that give them emotional satisfaction, especially those things that involve interacting with others, or have a high emotion content, like music.
Tuesday, August 24, 2004
SQL Server Reporting Services - Lessons Learned In Development and Deployment
Wednesday, August 18, 2004
Most programs that emit source code or other text output are unstructured blobs of generation logic interspersed with print statements. The primary reason is the lack of suitable tools and formalisms. The proper formalism is that of an output grammar because you are not generating random characters--you are generating sentences in an output language. This is analogous to using a grammar to describe the structure of input sentences. Rather than building a parser by hand, most programmers will use a parser generator. Similarly, we need some form of "unparser generator" to generate text.
Tuesday, August 17, 2004
The Basic Principles of Lean Development
Add Nothing But Value (Eliminate Waste)
Center On The People Who Add Value
Flow Value From Demand (Delay Commitment)
Optimize Across Organizations The Seven Wastes of Software Development
Overproduction = Extra Features
Inventory = Requirements
Extra Processing Steps = Extra Steps
Motion = Finding Information
Defects = Defects Not Caught by Tests
Waiting = Waiting, Including Customers
Transportation = Handoffs
Monday, August 16, 2004
see also Paul Prueitt
A realization of Hesse's Glass Bead Game is presented. By associating small images ("beads" and "tiles") with ideas described in ordinary prose, a new vocabulary of glyphs is developed; these glyphs are later assembled in special ways, such that their spatial arrangement asserts symbolic relationships between the corresponding ideas. In particular, arrangements take the form bead-tile-bead, signifying subject-predicate-object assertions. Arranging and connecting multiple bead phrases on a two-dimensional grid allows large groups of related assertions to be made in a compact and appealing visual space, and the communication of rich symbolic connectivity less lengthy and cumbersome than it would be with prose. The entire structure, including narrative, bead phrases, and imagery is represented in the technical forms of the Semantic Web; all beads and tiles are labeled with URIs, and bead phrases become reified RDF.
or for something really out there The Glass Bead Game
Friday, August 13, 2004
If database systems are like a respected, wise man telling a clear story, then workflow must be a buch of spoiled brats shouting their own truth at each other. With this statement I would like to point out that workflow management systems are at the very initial phase of the technology hype curve. We are heading for some exciting times in this area.See also (in discussion)
In the article, I show that state management is an important part of workflow and BPM. State management is not covered by normal programming logic. So the purpose of a workflow management system is to define a declarative extension that adds state management to plain programming. In its essence BPEL defines a programming language that is expressed in XML and has WSDL services as primitive constructs. BPEL does not have a notion for state. We should use programming languages for what they are good in and extend it with a notion for state management. BPEL takes a fundamentally wrong direction because it duplicates the notions in which a programming language is good (e.g. sequential execution, if-then-else, looping, ...) and it does not define an extension for state management. This conclusion is not affected by the fact that you could map WSDL to plain java method calls (which I would still consider a heavy-weight approach).
Thursday, August 12, 2004
The solution was to initiate the download of the PDF directly from the Windows Forms application and embed Adobe Acrobat inside our application - this had several neat benefits - first we keep our in-application experience, and second, we get a whole series of tool-bars for free which allow things like searching, printing, saving and e-mail the document - as well as the typical zoom type functionality.
Tuesday, August 10, 2004
If I'm ever going to write a weblog, or someone else is going to write one I'm going to use, here is an outline of what it should (or must) have.
Wednesday, August 04, 2004
The User Interface Process (UIP) Application Block, version 2, provides an extensible framework to simplify the process of separating business logic code from the user interface. You can use the block to write complex user interface navigation and workflow processes that can be reused in multiple scenarios and extended as your application evolves. This guide describes the design and features of the UIP Application Block and demonstrates how you can use the block in your applications.
Monday, August 02, 2004
The Enterprise Development Reference Architecture (EDRA) provides architectural guidance that an organization can use to standardize the development of distributed systems. The EDRA (previously known as Shadowfax) was developed by the patterns & practices team in conjunction with our community.
The EDRA uses four guiding principles to help ease the transition from tightly coupled distributed objects to standards-based, loosely coupled services:
- Separating the service interface from internal service implementation to allow for deployment scenarios optimized for scalability, reliability, security, performance, and availability.
- Separating business logic from cross-cutting concerns such as logging, monitoring, or raising business events.
- Separating business logic from the underlying transport so that multiple transports can be used to access a single service implementation.
- Developing stable service interfaces to ensure resiliency of deployed services.
We launched a new service last Thursday providing Microsoft.com Web sites with dynamic, scoped content feeds that are RSS-enabled.
These automated content feeds include things like:
- Security bulletins
- articles by MVPs
- most active Newsgroup discussions
- recent KB articles
- most popular Downloads
- MVP biographies
- the blog feeds that Tim mentioned below in his post last Friday
... and in the news few weeks we'll add additional feeds like upcoming Chats and Events.
Internally, we refer to these feeds as “Smart Components” because once an editor has deployed them 1) they update themselves automatically with fresh content each day, and 2) they can be scoped by the site editor to show content for any product, technology, language, etc. desired.
So, a site manager can set these controls to show Downloads and KB articles from Visual Studio, or hot newsgroup discussions in Japanese that related to Windows Server 2003 clustering, etc.