Friday, July 30, 2004

Meaning and Value 

In attempting to define the nature of meaning, I keep coming back to the concept of value. How can anything continue to have value? Objects wear out and become obsolete, data become stale, degenerate corroded, rotten and irrelevant. How can value persist? Is there anything that can hold value -- that can continue to have meaning?

One answer to this set of questions is to stop looking at things, and instead look at actions. There is a sense in which the value of an action can compound over time to infinity. Every time you take an action you are opening up the possibility of a new future with opportunities of value, which in turn leads to actions that open up even more possibilities, without end.

But in some sense this begs the question of – value for whom? Value is a subjective concept that must be linked to a sense of agency. What is valuable for someone will not have the same value for someone else. For an action to have persistent value, its effect must propogate and select a future that has value to the actor. If we fix our definition of what things are, or more importantly who we are, there is a kind of entropy of closed systems that leads to an inevitable dissipation of value. One of the interesting things about actions is that they not only let us choose between a pre-defined set of definitions and possibilities, but they let us choose to define the future in different terms, including who we are.

The molecules that make up our body are constantly changing. The people that we interact with are changing. The way that we see the world and define ourselves is also in constant flux. Therefore, to understand the nature of meaning, it is essential to understand the difference between actions that select between a closed pre-defined set of things, and actions that change the nature of our definitions, that open us up to new possibilities. To keep alive the possibility of increasing value we must take actions that ultimately increase the scope of how we define ourselves.

links to this post (0) comments

Wednesday, July 28, 2004

The Emperors Got No Clothes On 

OO does == SOA
Basically, somewhere along the way, we've ended up defining OO programming to be about code encapsulating data and SOA to be separating things into data, service definition and implementation. I can readily build such things in OO languages and many of them have a programmatical equivalent of service definition built in. Why is that? Because OO is not really about wrapping data with code it's about building a system out of roles and responsibilities and allowing for implementation to be separate from interface. That doesn't require or suggest that all your code consist of data wrapped by code. SOA is simply an architectural abstraction - nothing more.
. . .
Web Services has it's place alongside all the other technologies we use but they shouldn't be used to solve every problem just as we shouldn't store all data in a database or build everything using an application server. They are just another weapon in the armoury of the software developer not a universal hammer for which all problems are nails. SOA and OO are actually one in the same thing once you get past the artificial separation that some people have invented based on their incorrect assumptions about what OO design/implementation is.

links to this post (0) comments

MyGeneration Code Generator 

MyGeneration Homepage
MyGeneration is a Development Tool written in Microsoft .NET. MyGeneration generates code from templates by combining either JScript, VBScript, DotNetScript C#, or DotNetScript VB.NET with a powerful database meta-data API. MyGeneration is 100% FREE and supports Microsoft SQL, Oracle, IBM DB2, MySQL, PostgreSQL, Microsoft Access, FireBird, and Interbase. MyGeneration can generate code for non-Microsoft operating systems. MyGeneration serves up meta-data from your DBMS system that you can access in your script files or templates to generate whatever you might need, including C# and VB.NET code, Stored Procedures, PHP, HTML and more. MyGeneration has a very unique feature that allows you to create your own Graphical User Interface and thereby provide a user interface for your script. Your scripts can then capture data through a Windows Graphical (not html) interface and copy it to a data structure for use in the actual code generation. Each Script has an optional User Interface code section.

links to this post (0) comments

Tuesday, July 27, 2004

New Modelling and Ascynchronous Articles 

A First Look at SQL Server 2005 Service Broker
Summary: Get an overview of how the new Service Broker functionality in SQL Server 2005 enables faster and easier development of SQL Server applications that rely upon asynchronous, queued operations.

Introduction to the Unified Dimensional Model (UDM)

Summary: This paper provides an introduction to the Unified Dimensional Model (UDM), including the basic end-user model, and a brief overview of the architecture and security models.

links to this post (0) comments

Mind Control 

via Sam Ruby

Destructive mind control can be understood in terms of four basic components, which form the acronym BITE:

I. Behavior Control
II. Information Control
III. Thought Control
IV. Emotional Control

links to this post (0) comments

Monday, July 26, 2004

RSS and XmlSerializer 

Tim Ewald
You have some XML you want to process using XmlSerializer, but you don't have a schema to feed to xsd.exe in order [to] generate CLR types. So what do you do? Write your serializable class by hand. It isn't very hard once you understand the basic mapping. Here's how it works.

links to this post (0) comments

Saturday, July 24, 2004

Building Data-Bound User Interfaces in XAML 

joe marini

Article Summary: Illustrates a new way of building dynamic user interfaces that automatically respond to changes in a data model and update their appearance by using binding relationships between the elements in the UI. This example uses a 100% XAML approach to demonstrate these relationships, called "bindings".

download Download the code for this tutorial

links to this post (0) comments

Wiki in the News 

Don Box
The Pluralsight folks were kind enough to give me wiki space.
Here's the link: http://pluralsight.com/wiki/default.aspx/Don.HomePage

Keith Brown is moving his new security book into a Wiki

links to this post (0) comments

Friday, July 23, 2004

Fixing InfoWorld's RSS growing pains 

Kevin Railsback
InfoWorld has been noticing a lot of congestion at the top of the hour when thousands of RSS clients all hit our servers simultaneously to check for updated feeds. We've done a number of things to alleviate this, but thanks to excellent feedback from the RSS community we've done a lot more today that will hopefully resolve some of these issues.
See also: Sam Ruby

links to this post (0) comments

Sunday, July 18, 2004

The XML Diff and Patch GUI Tool 

This article shows how to use the XmlDiff class to compare two XML files and show these differences as an HTML document in a .NET Framework 1.1 application. The article also shows how to build a WinForms application for comparing XML files.

links to this post (0) comments

Friday, July 16, 2004

Feedster reloaded 

Jon Udell
Congratulations to Scott Johnson and the rest of the Feedster gang for the launch of Feedster version 2. There are lots of new features to digest, but the ones that most interest me are those that enhance cross-blog conversation.

links to this post (0) comments

Tuesday, July 13, 2004

An no-nonsense guide to Semantic Web specs for XML people (Part I) 

Stefano Mazzocchi
The Semantic Web has a serious problem: the XML people don't understand it.

They think it's an utterly complex way to write metadata that you can do with simple namespaces. The two worlds (despite being both hosted inside W3C) don't talk very much. Many (if not all) W3C folks are all in the RDF camp (and have been there for a while) and they see XML as a half-baked attempt to solve issues that RDF already solves. Unfortunately, not having been in the XML camp at all, they have no way to communicate with the other side.

The XML camp, on the other hand, thinks that they know how to build things that work, while the RDF people are all sitting in their ivory towers telling them that what they are doing is wrong, but without understanding their real-world needs.

As it normally happens in a debate, both are right and both are wrong.

I find myself sitting in a very lucky position: right in the middle of both camps and I talk to both of them.

So, this is a RDF guide for XML people. A much needed one, IMO.

links to this post (0) comments

Friday, July 09, 2004

Roadmap to high performance XML 

links to this post (0) comments

Insights from the creator of Ruby  

Simplicity is NOT a Goal
  • Things too simple are difficult
  • Things too complex are difficult
  • Human thoughts are not simple
  • Programs are essentially complex
  • Combination of simple concepts can be complex very easily
Principle of Least Surprise
  • Principle of fulfilled expectation
  • Principle of pleasant surprise
  • Principle of Immersion
Principle of Succinctness
We're frustrated when we:
  • wasting time
  • can't focus on problem
  • are interrupted
TIME is an important factor.

Languages can be viewed as interfaces

Guidelines for good interfaces.

  • Consistency
  • Flexibility
  • Succinctness

links to this post (0) comments

Thursday, July 08, 2004

The Best Best Practices 

links to this post (0) comments

Friday, July 02, 2004

Deep thoughts on programming languages 

Daniel Friedman quotes Jon Rossie
Programming languages are the box outside of which most programmers, architects, and managers cannot think. Languages, for them, are things you choose, not things you build. When language specialists see simple solutions, the untrained see costly problems that will remain unaddressed.

links to this post (0) comments

Don Box Scores Windows Process/Communication Issues 

Services and Communications
We currently give you three "full-featured" ways to send a message from one process to another: MSMQ, DCOM, HTTP. I don't discuss .NET Remoting's binary/tcp protocol, as for one, it's not secure, and secondly, DCOM is typically faster. All three mechanisms allow you to send a secured and structured message from one program to another, including programs running on other machines.

All three mechanisms have rich programmatic support and again, what's interesting is how they differ.

Services and Processes

We currently give you three ways to get a process up and running: NT SCM, COM(+) SCM, and the IIS6 WAS.

All three mechanisms allow you to configure a deployed piece of code to start as a particular user account or one of the three service accounts (NetworkService/LocalService/LocalSystem).

All three mechanisms have programmable access to management and configuration. What's interesting is how they differ.

links to this post (0) comments

Thursday, July 01, 2004

The Road to Longhorn Goes Through Windows Forms  

Juval Lowy On Longhorn
I define a smart client application as a rich user interface application that resides on the client in a secure manner, connected to a back-end server, and is deployed over http.

Let's break that statement into its elements:

"Rich user interface" means Widows-based user interface. Users simply prefer rich user interface. They dislike the dull interface of the web. They want floating toolbars, graphics and 3D grids, that they can edit in-place, without clicking through dozens of web forms. The only way to do that using managed code today is using Windows Forms.

"In a secure manner" means it uses code-access security, to enable secure execution and deployment, provide the user with a consistent experience – regardless whether they try to access files, run scripts, download EXEs or controls, they will not be able to shoot themselves in the foot yet they can get a workable and usable application. There is no need for runtime user decision ("Do you trust all content coming from so and so..").

"Connects to a backend server" means that you would want to have the actual logic in one centralized place. In most scenarios where calling to the server involves crossing boundaries, web services will make the most sense. Boundaries can mean a security boundary (firewall, or domain trust), team boundary, component technology boundary, operating system, geographical boundary, etc.   

"Deployed over http" means no-touch-deploy, ClickOnce, or any web server (not necessarily IIS) capable of servicing the download. This is essential to overcoming internal IT groups resistance to deploying applications to numerous end-stations.

links to this post (0) comments

This page is powered by Blogger. Isn't yours?