Skip to main content

a silhouette of a person's head and shoulders, used as a default avatar

Back to the binaries! Yeah!

Back to the binaries! Yeah!

After all this XML work the binary file formats are a different world. For the fields work I needed to analyze the “form field” structure of the binary .DOC format:

The header: Actually a misused PICT structure:

b10

b16

field

Type

size

bitfield

comments

0

0

lcb

U32

Count of bytes of the whole block.

4

4

cbHeader

U16

Always 0x44

6

6

U8[62]

Contains zero. In fact this is the PICT struct, but since its not need we can fill it with zeros.

The formfield payload (Unicode Variant)

b10

b16

Field

Type

size

bitfield

comments

0

0

cUnicodeMarker

U8[32]

Contains {0xFF,0xFF,0xFF,0xFF}

4

4

fftype

U8

:2

03

Type:

0 = Text

1 = Check Box

2 = List

ffres

U8

:5

7C

Result field for a form field. Values from 0 to N-1, where N is the number of \ffl entries.

In case of check boxes: 0==unchecked; 1==checked.

ffownhelp

U8

:1

80

1 if there is associated Help text, 0 otherwise.

5

5

ffownstat

U8

:1

01

1 if there is associated status line text, 0 otherwise.

ffprot

U8

:1

02

1 if this field is protected, 0 otherwise.

ffsize

U8

:1

04

Type of size selected for check box field:

0 = Auto

1 = Exact

fftypetxt

U8

:3

38

Type of text field:

0 = Regular text

1 = Number

2 = Date

3 = Current date

4 = Current time

5 = Calculation

ffrecalc

U8

:1

40

1 if the field should be calculated on exit, 0 otherwise.

ffhaslistbox

U8

:1

80

1 if this field has list box attached to it, 0 otherwise.

6

6

ffmaxlen

U16

:15

7FFF

Number of characters for text field. Zero means unlimited.

U16

:1

8000

Unknown. Set to zero.

8

8

ffhps

U16

Check box size (half-point sizes).

10

A

xstz_ffname

Xstz_UString0

Form field name

xstz_ffddeftext

Xstz_UString0

Default text for field. Only if type==0.

ffdefres

U16

Default resource for list field. Default value for check box (0=default unchecked; 1=default checked). Only if type!=0.

xstz_ffformat

Xstz_UString0

Format for text field

xstz_ffhelptext

Xstz_UString0

Help text

xstz_ffstattext

Xstz_UString0

Status line text

xstz_ffentrymcr

Xstz_UString0

Macro to execute upon entry into this form field

xstz_ffexitmcr

Xstz_UString0

Macro to execute upon exit from this form field

cUnicodeMarker2

U8[2]

Contains {0xFF, 0xFF}; Padding and/or indicator for Unicode?

fflLen

U32

Num of ffls

ffl

Xstz_UString[fflLen]

Resource string for lists.

An Xstz_UString has the following form:

b10

B16

Field

type

size

bitfield

Comments

0

0

Len

U16

Len of the String.

2

2

Unicode char

U16[len]

Unicode chars

An Xstz_UString0 has the following form:

b10

B16

Field

type

size

bitfield

Comments

0

0

len

U16

Len of the String.

2

2

Unicode char

U16[len]

Unicode chars

2+2*len

Zero

U16

Trailing “0”

In case of non-Unicode encoding then the Unicode Marker disappear and the string chars have U8 size.

You might also want to take a look at the ffData element in OOXML ;-)

a silhouette of a person's head and shoulders, used as a default avatar

Report from Management Developers Conference

About Management Developers Conference


Management Developers Conference (ManDevCon, MDC) is the annual conference of the Distributed Management Task Force (DMTF).
The DMTF is the leading industry organization for interoperable management standards and initiatives. Mostly known for their Common Information Model (CIM) and the Web Services for Management (WS-Management) standards.
The full conference schedule can be viewed here.


I already had the opportunity to attend this conference last year. This year, I was accepted as a speaker with two presentations about WS-Management.


Conference overview


The conference has three blocks, one for learning ('university day'), one for demo and interop ('interop lab') and one for presentations.

It was interesting to see how the conference topics changed year over year. Last year, protocols and APIs were still under discussion. In 2006, the WS-Management and WSDM (OASIS Web Services Distributed Management) protocols were still competing. This year, working implementations of various standards dominated.
From a protocol perspective, WS-Management is the clear winner with virtually every systems vendor showing implementations. Microsofts adaption of WS-Management for all remote management on Windows (WS-Management comes build into Vista and is available as an add-on to Server 2003 and XP) was probably the driving force here. Openwsman, an open source implementation of WS-Management provided by Intel, is also picked up by lots of embedded vendors.

The interop lab revolved around implementations for CDM, DASH and SMASH.

CDM, the Common Diagnostic Model, is a CIM extension for diagnostic instrumentation. Its primary use is for vendor-agnostic remote health evaluation for hardware. Hewlett-Packard uses this extensively for their systems and requires each of their component suppliers for test routines available through CDM.
DASH (Desktop and mobile Architecture for System Hardware) and SMASH (Systems Management Architecture for Server Hardware) target management and monitoring of hardware components based on the WS-Management protocol.


Attended presentations


  • Opentestman

  • Opentestman is validation test suite for ws-man, ws-cim and dash-1.0. Its a (wild) mixture of bash scripts and java based utility tools. Tests are described in xml-based 'profile definition documents' (PDD), making the tests data-driven. It currently covers all mandatory and recommended features of the WS-Management and WS-CIM standards. More than 160 test cases exist for all 14 DASH 1.0 profiles. [DASH 1.1 was released early December]
    [Hallway discussions showed, that the current implementation of Opentestman is in urgent need of refactorization. So don't look too close at the code or it might hurt your eyes.]

  • ITSM and CIM

  • ITSM, Information Technology Service Management, can be described as managing the systems management. The presentation gave an overview on existing technologies and asked for participation to model this topic in CIM. Currently, several (policy/modeling) standards exist for this topic, e.g. Cobit (Control Objectives for Information and Related Technology; mostly US, covering business and process mgmt), ITIL (Information Technology Infrastructure Library; mostly Europe, covering service and process mgmt) and CIM (resource mgmt). IT process management has seen a big push recently. Lots of tools and companies appeared in the last couple of years offering services.
    With SML, a service modeling language exists. Other areas like availability management, performance/capacity management or event/incident/problem management do not have any established standard.

  • Using the CIM Statistical Model to Monitor Datapresentation

  • Brad Nicholes from Novell showed recent work to integrate existing open source solutions (using non-standard models and protocols) with CIM.
    Ganglia, a "scalable distributed monitoring system for high-performance computing systems such as clusters and Grids" uses rrdtool (round robin database tool) to view stastistical data with different granularity.
    One feature of Ganglia is to provide trending information (as opposed to simple alerting) to support capacity planning.
    Ganglia consists of a statitics gathering agent (gmond) running on every client. These agents are grouped in clusters, sharing all information within the cluster to ensure failover capabilities. The statistics aggregation agents (gmetad) run on specific managment servers, reporting to an apache web frontend.
    Brad has defined a CIM model and implemented CIM providers to access the data. Its basically rrdtool access, thereby drastically reducing the amount of data transported over CIM.

  • CIM Policy Language

  • This was a report from the DMTF policy working group defining CIM-SPL.
    SPL, the simplified policy language, defines more than 100 operators to express relations (examples given: os 'runsOn' host, os 'hasA' firewall) and actions (Update of CIM properties, execution of CIM methods).
    There exists a cli tool and an Eclipse plugin for developing and testing policies. The Apache Imperius project is about to release a sample implementation. Similar plans exist for the Pegasus CIMOM.

  • Nagios through CIM

  • This was another example of bringing open source, but non-standard implementations and CIM together.
    Nagios is a very popular monitoring and alerting framework. It comes with a rich set of data gathering plugins, available on nagiosexchange.org.
    Intel has developed an adapter layer to expose Nagios data through CIM. One can also mix a traditional CIM provider with a Nagios plugin, filling only particular properties from the plugin.
    The source code is not available publically (yet...).

  • Cimple and Brevity

  • Cimple and Brevity are code generator tools making it easier to develop CIM providers and tools. Cimple is a CIM provider generator. It takes a CIM class description (MOF file) as input and generates stubs for a CMPI provider. This way, a developer does not have to fight with the provider API but can concentrate on the instrumentation part. [The amount of code generated is still huge. For SLE11, Python providers are the better choice for most cases.]
    Brevity tries to ease writing client tools. For people developing in C or C++, Brevity is worth a look.
    [For modern scripting languages, better bindings exist. E.g powerCIM for Python and rwscim for Ruby.]

  • Management Frameworks

  • This talk was meant as a call for help to collaborate on a client framework standard. There are sufficient standards and implementations for getting instrumenting managed devices. But on the management application side, everyone reinvents the wheel.
    Mergers drive this on the side of traditional (closed source) vendors, else they end up with lots of different APIs.
    The proposed 'integrated framework and repository for end-to-end device view' consists of an 'agent tier' (instrumentation), a 'service tier' (see below) and an 'application tier' (API for management applications).
    Services can be divided into infrastructure (discovery, collectors (caching), notifications) and core services (data model, topology, policy, scheduling, security, framework service management, domain specific services).
    This is ongoing work sponsored by Sun Microsystems looking for further participation.

  • openwsman

  • Openwsman is an open source implementation of the WS-Management and WS-CIM protocol standards. Its currently at version 1.5.1 with 1.6.0 scheduled for end of year and 2.0 end of march '08.
    It consists of a generic library, a client library and a server library and daemon. The daemon can be used in parallel to existing CIMOM implementations, translating between WS-CIM and CIM/XML. The mod_wsman plugin for Apache provides co-existance of WS-Management and the Apache web server through the same port.
    Main features for next years 2.0 release are
    • full compliance to the specification (The current WS-Management specification is still not final)

    • WS-Eventing (asynchronous indications, for alerting etc.)

    • A binary interface to sfcb (to connect to cim providers without a cimom)

    • better support for embedded devices

    • Filtering (CQL, cimom query language; WQL, WS-Management query language, xpath, xml query language)




a silhouette of a person's head and shoulders, used as a default avatar

Making a hash of it

The Economist recently ran an article titled Making a hash of it. Neither the article nor the actual story is news, of course. What surprised and impressed me was the relative depth of the coverage of the subject, which is very rare in the mainstream media.

It's true that The Economist oversimplified what hashing functions do and understated how difficult it is to find collisions. Still, for people who don't program, writing a program to find a one-in-one-thousand collision is no more or less baffling than finding a one-in-one-hojillion collision. So, even if such simplifications make more technically astute readers cringe, the simplifications were necessary for the majority of its readership.

For those for whom simplified discussion of hash collisions is too esoteric, I offer you instead this link to a story about the rights of poop-eating worms.

a silhouette of a person's head and shoulders, used as a default avatar

How to create a favicon for your site

Favicon is a 16×16 bitmap in Microsoft icon resource file format. There are a lot of tools available to create a favicon.ico. I used GIMP, which is available for any linux/unix system or can be downloaded from http://www.gimp.org and can be also used on windows. So, first step is to rescale your image to 16x16 pixels and save your rescaled image in pnm or ppm format. Using the command line utility ppmtowinicon which is part of Netpbm package you can obtain the favicon:

ppmtowinicon -output favicon.ico \<inputfile.pnm | inputfile.ppm\>

The other method is to use convert command which is part of ImageMagick package. Since almost all Linux distributions install ImageMagick by default, all you need to generate your own favicon.ico is a shell access to a Linux box:

convert file.jpg -resize 16x16! favicon.ico

All you need now is to copy favicon.ico in your web site root folder and add to your webpage next line, to the \<head> section:

\<link rel="Shortcut Icon"
href="http://www.yourdomain.com/favicon.ico"\>

That's all.

the avatar of Stephan Kulow

a silhouette of a person's head and shoulders, used as a default avatar

No El Guapo for me when I'm in Massachusetts in a few weeks

I just found out that El Pelón, my favorite taquería (outside of Mexico, anyway), burnt down. I used to eat there a lot, when I worked in the Ximian office in the Fenway.

(There's more info on some livejournal community page, but they ruined it by adding a lolcat image. I won't link to it. Lolcats are not funny.)

Oh well. I be extra sure, now, to not miss another of my old haunts in Boston, Pino's.

a silhouette of a person's head and shoulders, used as a default avatar

Mapping the IT Universe

The annual Management Developers Conference organized by the DMTF started yesterday with the University Day.

DMTF (Distributed Management Task Force) is an industry organization leading the development, adoption and promotion of interoperable management standards and initiatives. Its mission is no less than Mapping the IT Universe by standardizing an object-oriented model (CIM) and related protocols (WBEM).

The conference was opened by a reception celebrating 15 years of DMTF and 10 years of CIM. Winston Bumpus gave a short overview on the history of the DMTF.

The DMTF was founded in 1992 as the Desktop Management Task Force, focussing on standards for managing desktop PCs. Two years later, the Desktop Management Interface (DMI) was published and quickly adopted. After releasing DMI 2.0 in August 1996, their mission was accomplished and the board considered closing the DMTF.

At that point, Patrick Thompson from Microsoft proposed to extend the management standardization beyond desktops and to cover the complete IT landscape. The original proposal already contained the key aspects and architectural components which are still valid today:

  • HMMS (Hypermedia Management Schema) — CIM today

  • HMOM (Hypermedia Object Manager) — CIMOM today

  • HMMP (Hypermedia Management Protocol) — CIM/XML over HTTP today

Initially a gang of five, namely BMC, Compaq, Intel, Microsoft and Sun accepted the proposal and continued funding the DMTF. In a tour de force with biweekly meetings over a period of 6 months the DMTF was able to present the Common Information Model 1.0 (CIM) in April 1997. It only covered the object-oriented modelling without any transportation protocol. This was added another year later (August 1998) with the Web Based Enterprise Management (WBEM) standard.

In 1999, the DMTF was renamed to Distributed Management Task Force, keeping the acronym (and all the advertising materials).


Today more than 200 companies with over 4000 participants contribute to the ongoing standardization efforts. In the 'Industry Showcase' and 'Interop Lab' rooms of the Conference, a wide variety of devices, tools and applications based on CIM are shown.

With the broad acception of Web Services for Management (WS-Management) true interoperable systems management now becomes a reality. Implementation range from baseboard management controllers (see here for drivers) and embedded devices to Open Source stacks and Microsoft Windows.

a silhouette of a person's head and shoulders, used as a default avatar

I'll find my way through night and day

Mouse, I bought a christmas calendar. The de luxe version with huge pieces of chocolate. And we had the first Glühwein yesterday. That was before we went to the Irish pub and had some chowder and that was before we went to the other Irish pub with the jam session and the Irish flag. And that was before we staggered home. And now I have this song in my head and can't get rid of it. Must have been the last song they played yesterday.

a silhouette of a person's head and shoulders, used as a default avatar

Memories from the past

I am in the heart of Silicon Valley visiting the Management Developers Conference which starts on Monday. More on that in a later post.

The first day I visited the Computer History Museum (CHM) with its marvelous collection of historic computers and parts. The majority of which is stored in the archive, vacuumed and wrapped in plastics preserved for future generations. Only a small fraction of artifacts is on display, dubbed visible storage.

Here one can see parts of the original ENIAC computer, a real IBM System/360, the Apollo Guidance Computer or a ZUSE Z23. Too bad I didn't bring my camera.

Whats unique about this museum are the - excuse me - human artifacts. Those guys and gals still living in Silicon Valley who designed and hacked the early machines. I really enjoyed a guided tour given by Ray Peck which was sprinkled with background information and anecdotes. Just wonderful.
Next was a live demonstration of the PDP-1 restoration project. One could see a 1961 computer up and running, demoed by Peter Samson and Lyle Bickley. They both hacked the PDP-1 during their student time at MIT. Peter is the original author of the PDP-1 music program and gave an example of his work. Hilarious !

On my way out, I picked up a free copy of Core, the museums biannual publication. The article about rescued treasures was most interesting, showing how challenging preserving history can be.

To quote from the museums flyer: "It's ironic that in an industry so concerned with memory, how quickly we forget."

Powered by ScribeFire.

a silhouette of a person's head and shoulders, used as a default avatar

Reese's Peanut Buttercups

Got news from mouse. He's hooked on Reese's Peanut Buttercups. They give him so much strength that he fights all the cats in the area. He's only afraid of the whirlpool, the sissy :-).