Friday, January 01, 2010

predictions for 2010

same procedure as every year but as Yogi Berra mentioned 
It’s tough to make predictions, especially about the future.
 so just stop trying to be one of currently 5,130,000 tries according to google or 12,600,000 according to bing.

In this sense -- 

The ultimate function of prophecy is not to tell the future, but to make it. Your successful past will block your visions of the future.
Joel A. Barker



Monday, December 28, 2009

Software Globalization

Software Globalization is always a big deal and to be honest i do not know many software application with more or less shortcomings in this area. Globalization consists of Internationalization (preparing the application that they can be adapted to different locales) and Localization (translation of content for a specific locale).

you have to deal with locale specific
  • messages
  • dates
  • numbers and currencies
  • replacements
  • conversions
  • encodings
  • sorting / collation
  • test bounderies
  • layouts
  • .....
most of them seems to be easy for 95% of the use-cases but getting 100% done is at least tricky once you do not have the corresponding and suitable software infrastructure.

the best open source library in this domain I'm aware of is ICU. As always a software tool does not solve the problem itself it just gives you a solid base once you understand what needs to be done ;-)

related links:


Sunday, June 14, 2009

who has locked my account?

if you have to identify on which windows client / server a given account is currently logged on sysinternals utility "psloggedon" is your friend.

a simple "psloggedon account" identifies all computers the given account is currently logged on (and part of the same domain you start this command).

this tool is part of sysinternals huge amount of useful tools and command line helpers which helps to answer or identify common maintenance issues, like

  • does my application doesn't close all used handles
    Process Explorer
  • which resources (filesystem, registry, ...) does my application access
    Process Monitor
  • capture of debug output (traces using OutputDebugString, DbgPrint) without using a debugger
    DebugView
  • .....
and all utilities are free. the team creating and maintaining those utilities are now part of Microsoft. up to now this has any negative effect to utilities they provide beside there is no source code available anymore which prevents to see how certain information can be / must be retrieved to be on the safe side.

Friday, June 12, 2009

transform pdf to word / excel

online conversion from pdf to word / excel is available from http://www.pdftoword.com/. you have to upload your pdf and will receive the converted word / excel file as long as the result is smaller than 12 MB. result looks good for most use-case. of course you have to manual rework based on the intension you have with the result but content, images and layout is converted and accessable for subsequent tasks.

i like that kind of advertising - a easy to use subset of the functionality is available for free and if i like the feature and want more enterprise features i will probably pay the price.

ux tools for windows

useful unix tools (e.g. grep / find) for windows are available here
http://unxutils.sourceforge.net/
advantage compared to cygwin you can use them right from the windows command line without any additional layer.

make usage of command line much easier....

Sunday, June 07, 2009

(re)use of content

(re)use of content is a common topic in almost each domain has to deal with content. the rational is obvious and easy: use of existing content is faster and cheaper than creating new one.

there are two major requirements to (re)use content:
  • you need a business object the content belongs to
    otherwise it is impossible to identify existing content and determine if this content is worth to use
  • you need a well defined information type the content belongs to
    only if you know what type of content you have to create allows you to identify if it may already exist
based on those two trivial requirements you can define rules in which case (re)use is possible:

if existing content is created for the same business object and for the same information type as the new content you have to create.

to extend this scenario you can deviate your content from existing one if either the business object or information type is also derivate from the content you intend to use.

to derivate a test case from corresponding use case is obvious and valid as long as the business object both belonging to are the same. if a certain engine exists in three variants each derivate from a common building block the corresponding content is obvious also valid to use and derivate.

as you see usage of content requires both knowledge and connection to the business and to the content itself.
because of this many (re)use scenario fails in the real world (look into your own domain -- do you satisfy with your content (re)use?)

if you look at the two dimension enables usage of content you might understand that in many cases the usage of content between companies might be higher than the usage of content within one company. in many cases competitors dealing with similar business objects and information types beside different departments within one company might not.

this means that if the information types are not critical for a certain domain cross domain usage of content will become a possibility once the information itself is interchangeable (thats a topic for its own).

usage of translation is one of the most obvious scenario for cross company usage. because translation becomes more and more a cost center but is also a business driver the usage of common translation memories between companies working in the same domain is of course thinkable. content already translated for nokia might be used by sony as well, same is true for BMW and Daimler.

the "Language Data Exchange Portal" shows how this might work. each member provides content and funding and can participate from the complete pool of data available. as better the content is classified as better the results each company has......more to come?

Tuesday, June 02, 2009

Google Wave: backbone for real information collaboration

beside Microsoft still working on getting search on existing information done (last try http://www.bing.com/) Google tries to re-invent the creation, usage and collaboration of information with upcoming "Google Wave".

having a deeper look into the already available information the most interesting part of the design is that the complete architecture is based on hosted information transformation based on a group of humans and automated participants. the overall architecture looks clean and the demo provided here: http://www.youtube.com/v/v_UyVmITiYQ&hl=en&fs=1&rel=0 looks promising.

such kind of infrastructure has the capability to be used in all kind information centric workflows especially those happens in the "cloud". creation and further development of engineering artifacts from customer requirements to user stories to design documents and testing artifacts up to the usage of the same information in technical docs created for them. such workflow always requires a information object centric architecture and in addition collaboration feature sets.

we have to see if Wave will succeed, means if developer comunity contribute and use the existing extension points if so, i'm looking forward to see what can be done with this promising infrastructure.....

in my point of view the future of information goes away from document paradigm and end up in the a more message oriented paradigm where a group of people work on structured / semi-structured information objects (messages / topics) and assemble them in a final stage in each business workflow to a document, web-page, calculation sheet, ..... this means a document is "just one output for one audience" and describe just one usage of the information at a certain time.

in those days search is still essential but just as one way to navigate through the specific information pool and only if the hits are relevant for further usage (try to search for "Microsoft" on www.bing.com and see if the provided hits are relevant enough for you.....)

see also:

http://www.infoq.com/news/2009/06/wave
http://mashable.com/2009/05/31/google-wave-features/

CMIS resources

nice summary of background material about CMIS can be found here: http://wiki.alfresco.com/wiki/Draft_CMIS
especially the list of available provides and consumers are useful for those try to further investigate into this new standard effort. sample code says more than thousand words....

Thursday, May 21, 2009

Open Source TMS: GlobalSight

few days ago i stumbled over GlobalSight a open source TMS solution formally known as Ambassador.

the marketplace for TMS products are dominated by a few commercial vendors most of them doesn't make big money with those products.

why?

the translation / localization domain requires strong domain knowledge which isn't widespread especially the combination of IT knowledge and linguistic, translation and localization knowledge is hard to achieve.

in addition translation / localization today still means to process input files from pretty heterogeneous and in many cases proprietary file formats (e.g. HTML, Word, Framemaker, Quark, Excel, XML, software resources, .....), translate them and create output files using localized content and layout. that is one of the most appalling jobs you can think of as a developer.

in general XML can reduce the requirements for TMS but the majority of users are still not using XML based content creation and therefore are not able to use XML as data format for localization.

what does this mean for success of the solution GobalSight?

to be honest i do not expect huge developer community dive into further development or even contribution in this solution because of the reason mentioned above. only if additional companies (like those part of the mentioned Steering Committee) provide development resource to this project this can be more than "just another way to herald end of life of a not successful product"
different views?

Monday, April 27, 2009

cmis: Apache Chemistry

good news on CMIS front. Apache incubating a new project called "Chemistry".

project description

Apache Chemistry is a generic Java language implementation of the upcoming OASIS CMIS specification.

Proposal

Apache Chemistry is an effort to provide a Java (and possibly others, like JavaScript) implementation of an upcoming CMIS specification, consisting of a high-level API for developers wanting to manipulate documents, a low-level SPI close to the CMIS protocol for developers wanting to implement a client or a server, and default implementations for all of the above. Chemistry aims to cover both the AtomPub and SOAP bindings defined by the CMIS specifications.


with success of this project there might be an open source CMIS reference implementation not coupled with a existing CMS and therefore has the change to on the one hand provide a potential good starting point for vendor specific integration work and on the other hand a reference makes the specification "real" and touchable.

see also:

win32 memory management

i believe that one year from now 64bit operating systems are mainstream in server infrastructure. by the way currently there are still 32bit windows server / software out there. therefore it's time to understand limitation you leave behind using 64bit OS. so don't miss

EXtensions...xml processing

you always faced with "missing features" if you working with existing standards.

two reasons for that:
  1. the feature is specific to your domain or solution
  2. the feature is common but for some reasons (and there might be good ones) didn't get it in the existing standard
for the second case common EXtensions might be the area you looking for. in the xml domain the following projects trying to define "standard extensions". this means that extending an existing standard out of the scope of the standard process itself but without loosing the portability of applicaton using the extensions.

projects
beside EXSLT which is well-known and already produced a sufficient amount of output all other EX communities are brand new and therefore doesn't provide any output so far.

watch and contribute......

Thursday, April 23, 2009

Programming is Fun But Shipping is Your Job

pretty old but always valid post on common shortcoming of developers.
one of the most critical part of each software project is to get the last 2 % of the job done. regardless which development process you choses (waterfall, agile, rup, ...) you are always faced to get the team focused until the stakeholders of the project are really happy (and not only the developers creating the assets).

identify content: powerful but tricky

regular expression and xpath are two approaches to identify a matching subset of content within a given amount of content for further usage. the first one based on plain text the second one based on xml.

both are powerful but if you not using it on a day by day basis are tricky and error prone. error prone means that you have to avoid all edge cases where a given expression shouldn't match but it does or the other way around where a given expression should match but it doesn't.

if you work in XML related world you often need both approaches e.g. using XSLT or XQuery.

there are few commercial IDE's which helping out to develop the right expression for the required use case but there are two which i'm often use dedicated to help you dealing either with regular expressions or xpath

SketchPath

powerful standalone tool to create and verify xpath expression. support for xpath 2.0 and most features you ask for in this context. this tool is based on well-known Saxon for xpath 2.0 and .net subsystem for xpath 1.0

home: http://pgfearo.googlepages.com/

Regulator

powerful standalone tool to create and verify regular expression. with buildin regex analyser and on-the-fly validation, code generation (for .net and vb only), ....

download: http://downloads.sourceforge.net/regulator/Regulator20Bin.zip?modtime=1189740236&big_mirror=0

Monday, April 13, 2009

... too long.

if you read

http://www.sharepointreviews.com/sharepoint-articles/104-sharepoint-workflows/480-how-long-is-a-sharepoint-project.html

i would say, too long. because i really do not have any statement of goal and expected improvements in the mentioned list.

last statement is at least strange:
If you add up the weeks in brackets you will see that it comes to 26 weeks which is six months. This is purely an estimate and project length really depends on the workload of the Project Team as well as the amount of data involved.
if only those two constrains are responsible for project length is do not expect any measurable outcome beside "making IT people and consultants happy"....

thats also a good example for "IT centric projects likely to fail"

save money means save money

the following blog post from Mark Woeppel "Is Your Continuous Improvement Organization a Profit Center?" summarize one of the major misunderstanding of continuous improvement in many companies. not too much to add, beside that i can agree to the suggestion within the post based on personal experience.

same statements must be made for any (IT) project claim to improve existing processes. while working with the stakeholders to identify the scope, requirements and more important the rational for those i often hear the statement that a particular requirement / process change / feature improves the process and therefore saves money.

after the project is finished and in operation, the same amount of people with at least the same amount of budget working on the "improved process" and the upfront investment already gone. based on simple calculation, the company just loose money with such a project (even if the cause - see below - might be different).
that leads to continues and increasing management distrust in changes stated as "money saver" and subsequent projects are more likely to rejected from senior management.

why?
  1. project scope or requirement's simple wasn't target oriented. means they do not really help to improve the overall process they more or less leads to "doing the same in a different way".
    that is a common project failure and can be avoided if project / requirement / system management skills are improved or more simple by doing a better job. the project teams fails to address the goals.
  2. other process parameters are changed as well. for example the process throughput increase, additional process outputs are created or budget / people now assigned to other activities within the same department to resolve bottlenecks in this areas, ....
the second one is the more important one, because this means that the change has an impact but the company isn't able to express / see this in terms of cash. means budget is simple moved from one service item to others.

how to avoid this?

divide the individual rationals for a project in measurable and independent topics and for each of them assign responsible person from senior management. means if a certain amount of requirement state to save money, the budget schedule for the period the result of the project is in operation must be reduced. if on the other hand upcoming new demands must be addressed those must be implemented in budget schedule as dedicated position.

sounds trivial, but believe me that does not happen very often in real world situations. the reason for this is simple -- it is a pretty hard work and sometimes not easy to define the saved money. This not only helps to get project agreed, provide traceability for senior management but also tries to get the bottom of the stated effect (which sometimes simple is not right which leads to effect described in 1. reason).

goal

the different goals and results can be traced and measured and if a project or few parts of a improvement projects intent to save money, you have to save money means you have to have reduced budget if the project succeed.

summary

save money must mean saved money at the end. All other "statements" and explanations are not valid especially in todays business context....

cash is kind

"cash is king" is a principle that many companies today have to follow. this simple means all decision must follow to increase cash flow.

for all activities and departments of a company with no direct impact to the core business process this means that they are forced to immediate reduce their budget to a minimum / essential value.

HR, IT, TechDoc, .... are examples for affected units.

the current situation is not designed for mid or long term investments in the mentioned buisness areas which "only" improves long term operation. what you need is short term benefit without too much investment.

good opportunity for outsourcing, isn't it? i expect significant amount of companies try to reduce their supporting activities through outsourcing services even if the services doesn't fit 100% to their specific needs and the missing parts isn't essential for daily operation.

what do you need for service outsourcing:
  1. service function must be fully defined (in technical context this means that the interface must be fully defined)
  2. service availability must be defined
  3. service security must be defined
    =>what happens with the data maintained by a different organization?
  4. service termination must be defined
    =>what happens if service is moved in-house again or moved to different service provider?
  5. price must be defined
    =>pay per use / per time period / ?
having this in mind i expect increasing request to ASP / PaaS / SaaS / PRaaS buisness models and companies can provide such services in certain domains.

ASP
provide IT infrastructure (software & hardware) for daily operation for a dedicated amount of money.
=>IT assets based

PaaS
provide a dedicated platform to implement and host a application for a dedicated amount of money.
=>development asset based

SaaS
provide a dedicated set of software features for a dedicated amount of money.
=>software application / function based

PRaaS
provide a dedicated Process / Business function incl. the corresponding IT asserts for a dedicated amount of money.
=>business process based

the amount of semantic involved is increasing from top to down. therefore the potential value but also the potential risk for the requesting company increase. todays knowledge and IT infrastructure make usage of those business models not only possible for big, enterprise companies but also for mid and small size ones.

but beside few other points you still have to trust in trust if you want to go this direction.....

Sunday, April 12, 2009

model a DITA compliant model

DITA today is more and more adopted at least in the techdoc domain. the success and adoption rate is based on two major advantages over other existing standards:
  • adaptability
    the DITA data model can be adapted based on defined rules to specific needs and domains. this concept is called specialization
  • modularization
    content creation is not based on document paradigm but on module paradigm. authors no more create documents they create topics which represent some artifact of the system they describe.
problem for an information architect

since i started working with DITA i reviewed several data models from coworkers, from customers and last but not least created by myself. All of them claimed to be DITA compliant.
Using them with also DITA complaint tools often fails for certain features or in some cases completely.

reason
  1. the created models wasn't valid according to the released specification
    creating a complaint DITA model (DTD or W3C Schema) requires to know all rules and requirements the DITA specification provides without having any tool support goes beyond the support of creating regular DTD's and W3C Schema's. this means the information architect is leaving alone with the underlying complexity.

    i do not know exactly but based on data models i'm faced with i expect that at least 50% of customized DITA models out there are not complaint to the DITA spec.



    few years ago i already posted this here: http://dita.xml.org/how-verify-certain-datamodel-dita-complaint
  2. the used tools requires additional, tools specific configuration or semantic or simple doesn't implement a feature according to the specification
the second reason is getting better over time and today you find a bunch of tools which are production ready even for enterprise usage.

the first reason still not resolved.

you might argue, why not use the DITA model out of the box?
  • if you have specific requirements in your business process and you require additional semantic to support those
  • if you have to simplify the usage of content creation for the authors and users to get better and more consistent content outcome.
    note: i consider DITA subsetting / configuration as just another way for the generic concept specialization
  • if you introduce new business domain / taxonomy into your content maintenance strategy.
issues if your model doesn't really confirms to the specification?
  • interoperability is no more guaranteed
    this is mainly a problem for the enterprise and in most cases not at the beginning of the usage of DITA
    but if you once look into this problem you forced to fix all content created against your model or adopt the processing chain your content is delivered to
  • process chain does not work
    you add new tools to your environment and certain features doesn't work. you again can fix all your existing content and the data model and tools or adopt the tool with certain workarounds
this week i stumbled over DITAworks modeling module which is the first tool I'm aware of addresses the modeling use-case in the DITA domain.

I'm not yet verified it to see to until which extend this tool supports the modeling / validation process and how much manual work is still involved and how complete the implementation currently is. because this tool is still beta and is brand new i expect much outstanding work but i hope this tool opens the door for speed up DITA related development work and the more important part of the story improve quality for DITA related information models.

i know that the amount of money / amount of customer can be found in this domain is pretty small and the complexity of the problem isn't small enough therefore i do not expect too much competitors in near future, but i might be wrong.

time will show....