Thursday, April 09, 2009

New LiveCycle Video Tutorial

This video show how to remotely invoke services using the APIs and SOAP endpoints. This contains step by step instructions for setting up the project, writing the code, and compiling and running the application.

UPDATE: If you cannot see the video, I have now posted it to Google video here:

http://video.google.ca/videoplay?docid=2601122249633361252


Watch Adobe LiveCycle ES Java Service Invocation in Tech & Gaming | View More Free Videos Online at Veoh.com

Invoking the LiveCycle ES 8.2.1 Distiller API from Java

Scott MacDonald and I created a tutorial to help LiveCycle ES developers better understand the process around using the Quick Start guides available from the LiveCycle area of the Adobe Developer Connection. In this tutorial, you will learn how to download and configure the code samples, configure the right JAR files, set user permissions, and invoke a LiveCycle ES SOAP endpoint to convert a PostScript file into a PDF file.

Before you start:

You will need to ensure you have the following on your local drive. I used a MacBook Pro laptop to conduct this lab.

  • Java JDK 1.5 – ensure your environment variables are set as per the instructions from the LiveCycle ES documentation
  • Eclipse 3.4 (Ganymede)
  • The LiveCycle ES Client SDK JAR files. You will need the following JAR files to make this lab work:


/*
* This Java Quick Start uses the EJB mode and contains the following JAR files
* in the class path:
* 1. adobe-encryption-client.jar
* 2. adobe-livecycle-client.jar
* 3. adobe-usermanager-client.jar
* 4. adobe-utilities.jar
* 5. jbossall-client.jar (use a different JAR file if LiveCycle ES is not
* deployed on JBoss)
*
* These JAR files are located in the following path:
* {install directory}/Adobe/LiveCycle9.0/LiveCycle_ES_SDK/client-libs/common
*
* The adobe-utilities.jar file is located in the following path:
* {install directory}/Adobe/LiveCycle9.0/LiveCycle_ES_SDK/client-libs/jboss
*
* The jbossall-client.jar file is located in the following path:
* {install directory}/Adobe/LiveCycle9.0/jboss/client
*/
 


You will also need the third-party JAR files to use the SOAP stack rather than EJB endpoints. If you want to invoke a remote LiveCycle ES instance and there is a firewall between the client application and LiveCycle ES, then it is recommended that you use the SOAP mode. When using the SOAP mode, you have to include additional JAR files located in the following path:


/*
{install directory}/Adobe/LiveCycle9.0/LiveCycle_ES_SDK/client-
* libs/thirdparty
*/
 


For information about the SOAP and EJB mode, see "Setting connection properties" in Programming with LiveCycle ES.

For complete details about the location of the LiveCycle ES JAR files, see "Including LiveCycle ES library files" in Programming with LiveCycle ES.

1. Open up Eclipse and set up a new Java project by choosing File > New > Project.

2. Select Java Project.



3. Type a name for the project and click Finish.



4. When the new project opens in your workspace navigator, right-click (Windows) or Control-click (Mac) on the src folder under the project.

5. Choose New > Package.



6. Type a name for your package (I used “org.duanesworldtv.samples”) and click Finish. This step is important because it keeps your class files distinct from other class files with the same names under your workspace by namespace qualifying them.

7. Right-click on the package name you just created (under your project) and choose New > Class to create a new class file.



8. In the New Java Class dialog box, type the name for your class (I used “CreatePDF”) and click Finish.




9. You should see some skeleton code under your new project. Highlight all code below the package name and delete it.

10. Replace the deleted skeleton code with this source code:

package org.duanesworldtv.samples;

/*
* This Java Quick Start uses the following JAR files
* 1. adobe-distiller-client.jar
* 2. adobe-livecycle-client.jar
* 3. adobe-usermanager-client.jar
* 4. adobe-utilities.jar
* 5. jbossall-client.jar (use a different JAR file if LiveCycle ES is not deployed
* on JBoss)

*
* These JAR files are located in the following path:
* /Adobe/LiveCycle8/LiveCycle_ES_SDK/client-libs
*
* For complete details about the location of these JAR files,
* see "Including LiveCycle ES library files" in Programming
* with LiveCycle ES
*/
import java.io.File;
import java.io.FileInputStream;
import java.util.Properties;
import com.adobe.livecycle.generatepdf.client.CreatePDFResult;
import com.adobe.idp.Document;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties;
import com.adobe.livecycle.distiller.client.DistillerServiceClient;

public class CreatePDF {

public static void main(String[] args)
{
try
{
//Set connection properties required to invoke LiveCycle ES
Properties ConnectionProps = new Properties();
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "http://{your_server_IP}:{HTTP_PORT}");
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL);
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, "JBoss");
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME, "{username_of_privileged_user}");
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD, "{password}");

// Create a ServiceClientFactory instance
ServiceClientFactory factory = ServiceClientFactory.createInstance(ConnectionProps);

DistillerServiceClient disClient = new DistillerServiceClient(factory );

// Get a PS file document to convert to a PDF document and populate a com.adobe.idp.Document object
String inputFileName = "/Users/duane/Desktop/eclipse/workspace/JavaOne2009-docs/test.ps";
FileInputStream fileInputStream = new FileInputStream(inputFileName);
Document inDoc = new Document(fileInputStream);

//Set run-time options
String adobePDFSettings = "Standard";
String securitySettings = "No Security";

//Convert a PS file into a PDF file
CreatePDFResult result = new CreatePDFResult();
result = disClient.createPDF(
inDoc,
inputFileName,
adobePDFSettings,
securitySettings,
null,
null
);

//Get the newly created document
Document createdDocument = result.getCreatedDocument();

//Save the PDF file
createdDocument.copyToFile(new File("/Users/duane/Desktop/eclipse/workspace/JavaOne2009-docs/DuanesWorldTest.pdf"));
}
catch (Exception e) {
e.printStackTrace();
}
}
}

 


11. When you paste this code into your project, you will notice several red Xs beside various lines. This is because you have not yet imported any of the LiveCycle ES JAR files.

There are a couple of gotchas you need to know about with respect to these JARs.

First, the JARs must be from the same release of LiveCycle as the instance you are going to connect to. JARs from 8.0, for example, might not always work with an 8.2.1 instance.

Second, the JARs are in various locations and not always easy to grab. (See above for the exact locations.)

We put our jars into a parallel directory that we created under our Eclipse workspace called “JavaOne2009_libs”. This allows us to easily use these JAR files for multiple projects.



12. To add the JARs to your project, highlight the project name in the navigator tab, then right-click and open the project Properties dialog box.



13. Select Java Build Path and then the Libraries tab. Click Add External Jars. Select all the JARs under the “thirdparty” folder (for SOAP only – these are not required for EJB endpoints invocation). You will also need to import the Adobe LiveCycle Client JARs. (Note: In the image below we have highlighted some extra jars because we plan to add more class files to this project later.)



14. Once your JAR files are added, your build path should look similar to this:



15. Click OK, check any warnings in Eclipse, and correct as needed.

16. Now locate the lines of code that set the connection properties. They are at around line 14 and look like this:


//Set connection properties required to invoke LiveCycle ES
Properties ConnectionProps = new Properties();
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "http://{your_server_ip}:{http_port}");
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL);
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, "JBoss");
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME, "{username_of_privileged_user}");
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD, "{password}");
 



17. You will have to change three values. The first is the server IP address and port. If the server is on the same machine, http://localhost:8080 should suffice. Change it as required to match your server's location.

18. Next, you will be required to supply a username and password of a user with the right privileges. We used the username "kvarsen" because it is installed by default when you install the LiveCycle ES samples. The matching password for kvarsen is “password”, all lowercase.

To run the code in this tutorial, however, you will need to update the roles assigned to kvarsen. To do this, you must have administrator access to the LiveCycle Server you wish to connect to. Log in to the adminui at http://{your_server_ip}:{http_port}/adminui. For example, ours was http://duanesworldtv.org:8080/adminui. Once inside, navigate to Home > Settings > User Management > Users and Groups.



19. Type the user's name in the Find text box (for Kel Varsen, type “varsen”) and click Find. The user's name will come up in the list with a hyperlink. Click on the name to show what permissions the user has.



20. Click the Role Assignments tab.




21. This will bring up a screen that shows all the roles and permissions that this particular user has. For this tutorial, you want to ensure that Kel Varsen is privileged with the PDFG (PDF Generation) service. (In the screenshot below the user is already assigned the PDFG User role; your setup will likely not show this yet.)



22. To find the appropriate roles, click Find Roles, which will bring up a list.




23. Locate and select the PDFG User role, and then click OK. You can then log out of the adminui console.




24. You are almost ready to run the code. Back in Eclipse, you will notice two lines of code that contain path references. One is a reference to a PostScript document. You need to change this to correspond to an absolute path to a PostScript document on your hard drive. The path we used is:

// Get a PS file document to convert to a PDF document and populate a com.adobe.idp.Document object
String inputFileName = "/Users/duane/Desktop/eclipse/workspace/JavaOne2009-docs/test.ps";
 


25. Replace this path with a path to a valid Postscript file.

26. You also need to specify the path used to save the file when it comes back from LiveCycle ES. This is around line 72 and looks something like the code below. Change the path to a location on your system for which you have access.

//Save the PDF file
createdDocument.copyToFile(new File("/Users/duane/Desktop/eclipse/workspace/JavaOne2009-docs/DuanesWorldTest.pdf"));
 


27. Now run the application. You should see the console output working with no errors. Go to the location you referenced in the previous step and you should find a file there titled “DuanesWorldTest.pdf” or whatever you named your file.

Congratulations – you have just invoked your first remote SOAP endpoint using LiveCycle ES!

Tuesday, April 07, 2009

Adobe Stimulus Plan - free product, learn Flex in one Week!

During the last year there has been a worsening financial crisis. While some may look at this as a bad thing, I look at it as opportunity. Have you ever thought about upgrading your skills? Wanted to work in high tech? If you recently lost your job, now might be the time - and Adobe (and the evangelism team) is here to help!

Fact: Flex and AIR developers are in short supply! Don't believe me, look at the search result below. Over 1.7 million results for "Flex Developer Wanted".

http://www.google.com/search?source=ig&hl=en&rlz=&=&q=flex+developers+wanted&btnG=Google+Search&aq=f&oq=


Inference: there is more demand than there is supply for skilled IT workers.

Rationale: Think about why. As the economy got worse, big firms failed and got acquired by others. What is the first thing they want done? Integration of computer systems and re-branding, both of which require programmers and architects. The demand is out there.

Solution: We are giving away FREE Flex Builder licenses to anyone who has recently been laid off. You can simply go to this location and apply:

https://freeriatools.adobe.com/

Of course, free tools don't just build stuff themselves so we need to help out even more and train you. I have taken it upon myself to do this and I have made a full day of training available here.

http://www.web2open.org/courses.html

On top of that, I have started some full day, hands-on intensive courses for those who want to learn how to use Flex Builder. There are two events scheduled.

Vancouver - May 28 - Full day 100% free Flex, AIR camp (details)

Berlin - June 14 - Full day 100% free Flex, AIR camp (details TBA)

and

Possibly a third at Hamburg. If you are interested in Hamburg training in the time frame of June 15-25, please drop me a comment here. Ja - ich kann auch Deutsche sphreche und ich liebe gut Deutches Bier!

I will also entertain coming to other cities around the world to help train those who are interested in changing their lives and joining us. We are all part of a global community and it is only an illusion that we are separate. What harms you harms me. What helps you helps me. Pay it forward and good karma shall be yours.

On top of that, Adobe has made one full week of video training available to take online. See here for details:

http://technoracle.blogspot.com/2009/03/learn-flex-in-one-week.html

Oh yeah - did I mention this is all free!

WOOT!

Monday, April 06, 2009

Registration open for free Flex/AIR training in Vancouver

Last month I blogged about a free developers day of training for Adobe Flex and AIR. The date has been set at May 28 and the registration is open:

http://flash.meetup.com/110/calendar/10129317/


This course will be largely hands-on and everyone there will build several applications and complete labs to get trained in RIA web development.

There are limited slots available and in the first hour almost 1/7 of the seats has gone. Register now!

Become an Adobe affiliate

Fan of Adobe? Want to make some extra cash? You may not be aware of this but there is an Adobe affiliate program in place to allow anyone to make money by referring customers to Adobe technologies.

Anyone (except Adobe employees!) can signup and direct folks to the online store -- any purchases made after referral receive a 6% commission. That's over $40 for a single copy of Flex Builder Pro.

Here are details on the program:

http://www.adobe.com/buy/affiliates/

Wednesday, April 01, 2009

I can finally talk about my Apple Microwave

I have been part of a group of people who were selected to test Apple's move into the consumer appliances market. While being under NDA has been difficult, it officially ended Mar 31, 2009 and I can now share the results (and where you can order one - below). It makes sense for Apple to move in this direction, after all - they have dominated the phone and TV market places. Moving to Microwaves, Fridges and Stoves is a logical next move for the consumer electronics giant, joining companies like Sony, General Electric, Siemens and others. If Apple's past reputation is anything of an indicator, I think they will be a serious threat in this marketplace. My experience was very good.

I was selected to preview the new Apple Microwave. Let me tell you - this is no ordinary appliance. Apple has integrated components from their computer platform such as Bluetooth, network access, pinhole cameras and a range of other sensors. The Apple Microwave is so easily integrated with their other products, you can actually use it with your iPhone (as long as you're within Bluetooth range).



How it works:

The Apple microwave has a small pinhole camera which transmits images on Bluetooth. These can be picked up with a standard iPhone or iPod as well as any Mac laptop that is Bluetooth enabled. The Microwave also has sensors that probe the surface temperature of the dish you are cooking and even track it as the food turns on the turnstyle. The images are overlayered with temperature readings.

Nits:

- In Canada (and most of the rest of the world) we use Celsius. The current model I tested only had Fahrenheit. I am sure this will be fixed in the next release. See image below. The number in the top left-hand corner is the timer showing 33 seconds left.



- There is a delay in transmitting images to the iPhone (I haven't tested any other BT device). Note that in the photo below, the rotation of the food shown on the iPhone is about 2.5 seconds behind the rotation of the food on the turnstyle. The rotation in this case is going clockwise.



- I would also like to see network connectivity to monitor thawing food from other rooms in my house.

Summary:

I love it. I haven't been asked to give it back yet and I would not want to. Apple is supposed to open up their beta program later this week. Keep your eye on the following URL where you will be able to apply. I am not sure how much the final consumer pricing will be.

http://www.apple.com/microwave/

Friday, March 27, 2009

LiveCycle Error Code Dictionary Online

Have you ever worked with Adobe LiveCycle ES and got error codes like the following?

ALC-DSC-031-000: com.adobe.idp.dsc.net.DSCNamingException: Remote EJBObject lookup failed for ejb/Invocation provider at com.adobe.idp.dsc.provider.impl.ejb.EjbMessageDispatcher.initialise(EjbMessageDispatcher.java:97) at com.adobe.idp.dsc.provider.impl.ejb.EjbMessageDispatcher.doSend(EjbMessageDispatcher.java:130)
... 10 more

If so, you know the frustration of not having anywhere to look it up. Well - that has now changed. Next time you get one of these cryptic messages, jump on over to


http://help.adobe.com/en_US/livecycle/8.2/errorCodeReference.pdf

Note that not all error codes are on this but it is a great start! Happy debugging.

Thursday, March 26, 2009

Free full day Flex/AIR/Flash Camp in Vancouver-Berlin!

We just booked a room and can now confirm that there will be a full day of 100% free hands on training for RIA development in Vancouver, BC May 28 at Vancouver Harbor Centre. The day will run from 8:00 AM to 5:00 PM with a possible evening event with a live band. The venue will be the Fletcher Challenge Canada Theatre (room 1900) in Harbour Centre.

While we have not yet confirmed all speakers, the lineup will likely include Peter Armstrong (Author - Flexible Rails, RoR and Flex guru), Andre Charland (CEO - Nitobi, PhoneGap), Doug Schmidt (Effective UI and Moose killing shovel wielding Ninja), Clive Goodinson (Pixton), Ross Ladell and others. For RIA development, this is the one chance in a year of seeing all the top Vancouver developers under one roof. Bring your laptops and code along! You'll likely leave with tons of new code samples and ideas.

Call to action!

We want to make this a community driven event - if you want to present a code snippet, please email me! We'll try to make the afternoon presentations democratic.

The day will be 100% community driven and hands on. Anyone is welcome to join. We have not yet set up a registration site but in the meantime, please email me dnickull at adobe dot com.

There will also be a similar event in Berlin, Germany in June 2009 sometime between June 15-19 2009. Ich liebe Deutschland!! I have already booked my flight.

As for Vancouver, the Vancouver Flash/AIR/Flex User Group is simply one of the best groups ever. Here is a shot of me and my homies hanging out after last month's User Group meeting.

Wednesday, March 25, 2009

Adobe MAX 2009

We finally announced the MAX 2009 event schedule. Ted Patrick sent out the message this morning.

"Despite the challenges presented by the economy this year, Adobe is excited to be moving forward with our largest designer/developer event Adobe MAX 2009. MAX will take place October 4-7, 2009 in Los Angeles and online. We will not hold a unique Europe event in 2009, however, we are actively exploring options to make the Los Angeles event more accessible for our worldwide community.

MAX Europe has been a real success for Adobe and it is our intention to return to Europe in the future. Personally having been a part of every MAX Europe event, I know how important the event is to our global community. In order to make MAX a more global event, I want to encourage everyone, regardless of location, to participate in the "MAX Call for Sessions and Labs".

We are actively working to bring Adobe MAX to a far larger audience online in 2009. In 2008, we recorded MAX sessions and published them on AdobeTV for everyone to view. To date, MAX session content has been viewed by over 250,000 users, 50 times larger than physical MAX attendance in 2008. This year will be taking the online experience to the next level."

Tuesday, March 24, 2009

Form Design 2008 Courseware Online

At the last three MAXs, I have given a talk on form design called "Forms Gone Wild". Despite the talk's title seemingly indicating that a bunch of forms went down to party in Florida for spring break, it does contain some great tips and thoughts for form designers. Every year I update this talk based on really bad forms. If you come across any bad forms that might be candidates for the talk in 2009, please send them to me at dnickull at adobe dot com.

http://tv.adobe.com/MAX-2008-Design/Forms-Gone-Wild-(2008)-by-Duane-Nickull.html#vi+f15383v1076

Monday, March 23, 2009

Boycott FOX!

Fox news has sunk to a new low in disgraceful behavior. Canadian soldiers are dying in Afghanistan. Many other Canadians, including myself, are working on projects to help the US government. We are all making sacrifices to root out evil and terror and confront it. Our troops are getting the hardest tasks and holding their ground (as we did in WW1 and WW2).

Last night Fox news crossed the line. The comments of Greg Gutfeld, host of "Red Eye with Greg Gutfeld," a round-table chat show that airs late night on weekdays on Fox News, have evoked outrage among the Canadian public. The message I am writing is don't mess with us. We are there to fight a war on terror. Fox news is now mocking our sacrifices? The majority of Canada *were* behind the US until this came out. Now the US needs to do something pretty fast about Fox.

Here is what he said:

"Once their Afghan mission winds down sometime in 2011, certain members of the Canadian military are looking to take a much-deserved break. And by certain members I mean all of them," Gutfeld said.

"Meaning, the Canadian military wants to take a breather to do some yoga, paint landscapes, run on the beach in gorgeous white Capri pants."

"Why don't we just invade this silly little country (Canada)"

These comments were made almost 7 days ago by Gutfeld. We are outraged!!! They have come to the top of the news when Canadians were showing respect to four soldiers recently killed in roadside bombs blasts in southern Afghanistan.

Gutfeld better not come to Canada. I am now going to call my cable provider to make sure Fox is unbundled from my cable.

Critical patch out - please use!

A critical vulnerability has been identified in Adobe Reader 9 and Acrobat 9 and earlier versions. This vulnerability would cause the application to crash and could potentially allow an attacker to take control of the affected system. There are reports that this issue is being exploited.

Adobe recommends users of Adobe Reader and Acrobat 9 update to Adobe Reader 9.1 and Acrobat 9.1. Adobe recommends users of Acrobat 8 update to Acrobat 8.1.4, and users of Acrobat 7 update to Acrobat 7.1.1. For Adobe Reader users who can’t update to Adobe Reader 9.1, Adobe has provided the Adobe Reader 8.1.4 and Adobe Reader 7.1.1 updates. For more information, please refer to Security Bulletin APSB09-04. Adobe now plans to make available Adobe Reader 9.1 for Unix by March 24.

more ...

http://www.adobe.com/support/security/bulletins/apsb09-03.html

Wednesday, March 18, 2009

Social Networks are not new or the rage of Web 2.0?

Social networks have been around since we have had societies. Everyone has a social network. Even if you have no friends or contacts with anyone else, you still have a social network (in this case of one person - yourself).

So why do people think Web 2.0 is social networking? The epiphany I had is that "declaring" our social networks is what is really new. This is done via a variety of platforms for various types of relationship circles. MySpace, Plaxo, Facebook, LinkedIn, and so on are ideal platforms for these declarations. Each platform has its unique appeal.

What is leading to the end of this phenomena is that people are tired of having to redeclare every relationship every time a new platform comes out. It is long overdue that OpenSocial becomes the lasting monument whereby we can create our declarations once and have them syndicate outwards based on a permissions-based system. So what is stopping this from happening? Simple - a general lack of understanding of binary and n-ary relationships. Here is what I mean.

Here is a declaration: I am friends with Dave Watson.

So what does this really mean? In short, the truth is plain and simple - I have made a unilateral declaration that Dave and I are friends. Why is this potentially errant? Pragmatics and inference errors are abound. We don't know if Dave reciprocates that statement. Is the relationship asymetrical or even traversable? Is it reflexive? Do Dave and I have the exact same definition of "friend"?

You can see how this quickly becomes ambiguous. The solution is to use an upper-level or mid-level ontology to help people understand the nature of these declarations and guide them to correct use. I wrote about this two years ago after a Web 2.0 conference in Berlin here.

James Governor wrote about this pattern of declarative living in a chapter for our upcoming book on Web 2.0. He realized this concept more than two years ago. I guess it took me a while to figure out what he was talking about but the genius of his thinking is still bringing new realizations on a daily basis. Just like I am declaring in this blog article today!

Is IBM buying Sun a good move or bad?

There are rumors about IBM perhaps negotiating to buy Sun Microsystems. They are nothing more than rumors at this point yet one cannot help but ponder if this is in fact a good move for IBM. Java, ODF, *nix based operating systems galore are all commonalities. On the other hand, what revenue stream does Sun have? How much redundancy is there? Who will now keep Java from forking?

What do you think?

Tuesday, March 17, 2009

The dangers of Wikipedia

Wikipedia is a collectively authored work purporting itself to be an accurate depiction of our history. What I am seeing more and more is that Wikipedia is a dangerous tool whereby a handful of editors can singlehandedly rewrite major portions of our history. It is often cited as a reference of absolute truth, which compounds this danger.

I have personally encountered several instances of having truth censored by editors. One such case was ebXML. I chaired the Technical Architecture group and also helped write several of the specifications including the Technical Architecture, Registry-Repository, and Core Components specifications. Wikipedia reported as fact that ebXML had only 4 parts when it in fact had 6 parts. When I changed this to reflect what actually happened, some editor (who shall remain nameless) removed my contribution and changed it back to 4. Only through perseverance and pushing the issue was I able to succeed in a compromise. It now reads:

"The original project envisioned five layers of data specification, including XML standards for:

* Business processes,
* Collaboration protocol agreements,
* Core data components,
* Messaging,
* Registries and repositories

All work was completed based on a normative requirements document and the ebXML Technical Architecture Specification."


This is still obviously errant as these are not and were never considered "data" specifications. There were 6 parts to ebXML plus the normative Requirements document. The page is riddled with errors. I cannot change it as my IP has apparently been suspended for "vandalism" (I guess that is what they call "writing the truth" in Wikipedia language). Yes - I could easily use another computer or IP address via VPN to change it but why bother?

The real danger here is that people who lack any reference to ebXML and use this as the single authoritative source for knowledge will leave with the wrong impression. What happens when those people turn out to be university professors, scholars etc? Simple - history is rewritten reflecting non-truth.

Wikipedia is one of the most dangerous institutions in our time. As people such as myself gradually concede and give up trying to make Wikipedia accurate after being whittled down by years of naive editors who think they control their petty fiefdoms, the truth becomes lost and replaced by the editors' version. This reminds me of a quote from Randy Rampage, the front man for a band I play in called "Stress Factor 9":

"you're getting what you pay for when your info is free"

Of course, you cannot look up Stress Factor 9 on Wikipedia as it was deleted. The reason was explained as follows:

23:42, 7 December 2007 Marasmusine (talk | contribs) deleted "Stress Factor 9" ‎ (CSD A7: Article does not indicate subject's importance or significance: content was: '{{db-band}} {{Copyedit|date=September 2007}} :''For other uses of the acronym, see DOA''. {{Infobox musical artist | Article does not indicate subject's importance or significance"

When I helped contribute to this page, we noted that the singer for SF9 was Randy Rampage, one of the founding members of DOA. DOA is a legendary punk band that influenced a huge section of modern music including everyone from the Red Hot Chili Peppers to Bif Naked. They are often considered to be the founders of the "Hardcore" sound. Also of note in SF9 was drummer Ray Hartman, the first drummer for the premier metal band Annihilator.

Note that on Randy's personal page, there is a link to Stress Factor 9 including my stage name "Duane Chaos". The link to my band's home page has also been removed as it was deemed insignificant. I wonder how that should be explained to the 100,000 + people who have downloaded our music or come to see us live?

The short end of this stick is that we (society) are having our collective history rewritten by a handful of editors who make decisions about what is important and what is not, what is truth and what is not. Even when confronted with facts, they are often unwilling to accept defeat and allow their own personal views to be recorded as fact.

I am not alone in this criticism of Wikipedia. They are many like me who have had our voices silenced including university professors and many more.

The press and media are watched by watchdog agencies. I think it is time we do the same with Wikipedia.

Monday, March 16, 2009

Epic day skiing!

I've been working like a dog (more like a dog that only works and never plays) so today I took off to grab some fresh powder at Cypress Mountain, only 35 minutes from my Vancouver home near the beach. This was an epic day. Snow was being puked out of the clouds, not bad visibility, and no one on the mountain.

I tried out my new Head Xenon Xi 10.0s. They are simply an amazing ski. In deep powder you can close your eyes and carve, even in semi tracked-out conditions. I found myself jumping quite a bit higher as confidence was way up. This is a shot taken in the air (super fast f-stop).



This shot was on the chair lift. I am smiling although you cannot tell.

Sunday, March 15, 2009

Monday, March 09, 2009

Computational Intelligence takes huge leap forward

Skynet is here!

Well not quite but there is an important development on the computational intelligence front this week. The launch of the Wolfram Alpha system should be written in history as a key event in the pursuit of computational reasoning. While some pundits in the press think it is just another challenge to Google, the true magnitude of the genius behind this is only the beginning.

Stephen Wolfram is an outstanding mathematician. He has engineered the Mathematica system, which, in the words of Semantics and Ontological guru John Sowa, "is the premier mathematical computing system available."

I have been working with the Ontolog Forum for years and we have argued back and forth whether this type of application is even possible. The consensus seems to be it should be possible but none of us can wait until May 2009 when anybody will be able to ask the Wolfram Alpha a factual question and see the results of that question being answered by formal reasoning or computation from material available on the WWW.

Following is Wolfram's summary of the project:

http://blog.wolfram.com/2009/03/05/wolframalpha-is-coming/

The link below is a testimony by someone who has had hands-on
experience with Wolfram Alpha and seems to believe it has not yet failed:

http://www.twine.com/item/122mz8lz9-4c/wolfram-alpha-is-coming-and-it-could-be-as-important-as-google


This is such a foundationally cool development in the computational intelligence circles and it is creating even some mainstream buzz. What we have discussed and theorized for the last 8 years in the Ontology Forum has apparently come to fruition – a queryable code base using JIT resources classified by FOL and formal set-theory predicate calculus. A machine that emulates a human being able to answer questions by harnessing statements on the web. Imagine!!

This is not the end all for semantic research as there are still lots of un-factual statements on the web, however, what is really impressing me, is that the Wolfram Alpha should apparently be able to resolve conflicts in logic and assess which statements are true and which are not by accessing various resources. While rudimentary and likely comparatively slow (to Google) in process, this is akin to a child just learning to speak and dynamic algorithms could eventually build its knowledge into a true artificially created sentient force capable of reasoning.

Next on my todo list? I want to get on the alpha list!!!

This is, in short, beyond belief and probably an important evolution in our history. Skynet is here!!!

Sunday, March 08, 2009

Why I love my ISP

Shaw High Speed Internet just rocks. Not much else I can say other than see the graphic below. On top of this, a human usually answers the phone within 3 minutes if you ever need service or technical help. In this day and age, that sort of exceptional combination gets my business.

Friday, March 06, 2009

Media not reporting full truth about financial markets

I watched the financial news this week. Every news media outlet reported more or less the same story. The Dow Jones Industrial Average was below 6500 this morning and the subject lines are "Dow Jones industrial average drops below 7,000 for first time since 1997". This is bad but it stops short of telling the whole story.

This comparison uses a linear graph across a temporal variance. The problem is that this excludes inflation. If you inflation adjust the Dow Jones IA, you have to go back quite a few more years. For example, if the Dow was 6,304.87 on December 13, 1996 (as reported by Google Finance), and the inflation rate since 1996 averages around 2.8%, then the inflation adjusted bottom we would have to cross today would be 9,027. Whoops!! What are we at today? 6450 right now?

So what does this mean? Well, I started to do some rough calculations. Without going into all the details, I could not quite find where the inflation adjusted equivalent of today's index was specifically as I did not feel like researching the annual inflation rates to make the calculations, but I did surmise it should be around 1993-5.

The Dow in general though is only accounting for the top 30 stocks on the NYSE. To get a fuller picture, I prefer to use the S&P index. This tells a more thorough story as it is a value weighted index published since 1957 of the prices of 500 large cap common stocks actively traded in the United States.

Take a look at the graph and tell me where you find a year where the S&P index is inflation adjusted to where we are today. The graph is here.

Be vigilant - question everything including this blog post.