stm_bm(["menu2",700,"/images","blank.gif",0,"","",0,0,250,50,1000,1,1,0,"","100%",117440555,0,1,1,"default","hand",""],this);
stm_bp("p0",[0,4,0,0,5,0,0,7,100,"progid:DXImageTransform.Microsoft.Wipe(GradientSize=1.0,wipeStyle=0,motion=forward,enabled=0,Duration=0.20)",6,"",-2,90,2,3,"#7F7F7F","#990000","",0,1,1,"#666666"]);
stm_ai("p0i0",[0," Home ","","",-1,-1,0,"/","_self","","","","",0,0,0,"","",0,0,0,0,0,"#FF0000",1,"#FF0000",1,"","",3,3,0,0,"#FFFFFF","#FFFFFF","#FFFFFF","#F2E205","bold 9pt Verdana","bold 9pt Verdana",0,1]);
stm_ai("p0i1",[6,1,"#FFFFFF","",-1,-1,0]);
stm_aix("p0i2","p0i0",[0," Development ","","",-1,-1,0,"/development.jsp","_self","","Custom software architecture, development and troubleshooting"]);
stm_aix("p0i3","p0i1",[]);
stm_aix("p0i4","p0i0",[1,"EmpathyWorks&trade;","","",-1,-1,0,"/products/lum/index.jsp","_self","","Artificial Personality for AI Systems"]);
stm_aix("p0i5","p0i1",[6,1,"#FFFFCC"]);
stm_aix("p0i6","p0i0",[1," Publications and Videos  <img src=\"/menu/arrow_d.gif\"/> ","","",-1,-1,0,"","_self","","We give technical presentations and publish technical material on the Adobe Flash Platform for enterprise computing under the SlinnBooks imprint.","","",0,0,0,"","",7,7]);
stm_bpx("p1","p0",[1,4,0,0,1,5,0,0,100,"progid:DXImageTransform.Microsoft.Wipe(GradientSize=1.0,wipeStyle=0,motion=forward,enabled=0,Duration=0.20)",6,"",-2,90,2,3,"#7F7F7F","#F2F2F2"]);
stm_aix("p1i0","p0i0",[0,"Introduction","","",-1,-1,0,"/publications/index.jsp","_self","","A few words of introduction to the portfolio","","",0,0,0,"","",0,0,0,0,0,"#990000",0,"#990000",0]);
stm_aix("p1i1","p1i0",[0,"Mike\'s Typesafe Notes","","",-1,-1,0,"http://scala.micronauticsresearch.com","typesafe","",""]);
stm_aix("p1i2","p1i0",[0,"Adobe Flash Security White Paper","","",-1,-1,0,"/publications/flashSec.jsp","_self","","White Paper: End-to-End Client/Server Security with the Adobe Flash Platform"]);
stm_aix("p1i3","p1i0",[0,"Adobe Flex Data Services, Hibernate and Eclipse","","",-1,-1,0,"/publications/serverSideFlex.jsp","_self","","Book: How to design, build and test the Flex clients, BlazeDS and LCDS. "]);
stm_aix("p1i4","p1i0",[0,"Adobe Flash Platform for the Enterprise","","",-1,-1,0,"/publications/enterpriseFlash.jsp","_self","","Slide show: Adobe Flash Platform for the Enterprise"]);
stm_aix("p1i5","p1i0",[0,"Getting Started with Adobe LiveCycle Data Services ES","","",-1,-1,0,"/publications/lcdsRefcard.jsp","_self","","DZone Refcard: Getting Started with Adobe LiveCycle Data Services ES"]);
stm_aix("p1i6","p1i0",[0,"Using Adobe Flex with Enterprise Web Services","","",-1,-1,0,"/publications/flexSoap.jsp","_self","","Slide show: Using Flex with Enterprise Web Services"]);
stm_ep();
stm_aix("p0i7","p0i1",[]);
stm_aix("p0i8","p0i6",[1," Portfolio <img src=\"/menu/arrow_d.gif\"/> ","","",-1,-1,0,"","_self","",""]);
stm_bpx("p2","p1",[]);
stm_aix("p2i0","p1i0",[0,"Introduction","","",-1,-1,0,"/flex/portfolio/index.jsp"]);
stm_aix("p2i1","p1i0",[0,"Microstrategy Flex SDK for eBay","","",-1,-1,0,"/flex/portfolio/mstr.jsp","_self","","EBay is Microstrategy\'s largest customer.  We were the first to extend the Flex SDK, and were singled out at Microstrategy World as a result."]);
stm_aix("p2i2","p1i0",[0,"Health Care Process Automation","","",-1,-1,0,"/flex/portfolio/healthCare.jsp","_self","","We mentored a group of Delphi programmers that worked for a health care software vendor, and helped them port their application suite to Adobe AIR and BlazeDS.  Here are some early iterations of the user interface."]);
stm_aix("p2i3","p1i0",[0,"SOAP Web Services Enhancements","","",-1,-1,0,"/flex/portfolio/wsdl.jsp","_self","","We extended the Flex SDK WSDL parsing capabilities and wrote an enhanced runtime framework that complements the Flex SDK.  We also created a software tool that generated value objects and the code for an enterprise application data layer."]);
stm_aix("p2i4","p1i0",[0,"Flex Data Services Channel Designer","","",-1,-1,0,"/flex/portfolio/FDSCD.jsp","_self","","This tool is distributed with Michael Slinn\'s book \"Flex Data Services, Hibernate, and Eclipse\"; it helps you to easily understand and design channels and endpoints for BlazeDS. Click on the image to load and run the application."]);
stm_aix("p2i5","p1i0",[0,"Application Builder","","",-1,-1,0,"/flex/portfolio/appBldr.jsp","_self","","We prototyped a builder for a distributed real-time applications, composed of dynamically loaded data and subapplications using Flex and AIR. Here are screenshots of some of the components we created for the builder. The components were dynamically skinned."]);
stm_aix("p2i6","p1i0",[0,"Artificial Personality Configurator","","",-1,-1,0,"/flex/portfolio/lum.jsp","_self","","We built a configuration utility for an artificial personality modeler.  Some complex custom components were required.  The application was originally built with Flex SDK 3 (Halo); the port to Flex SDK 4 (Spark) is nearly complete."]);
stm_aix("p2i7","p1i0",[0,"Financial Suite Administration","","",-1,-1,0,"/flex/portfolio/financeAdmin.jsp","_self","","We assisted a vendor of a financial software suite port to Flex and BlazeDS on JBoss. This documentation was created to train staff."]);
stm_ep();
stm_aix("p0i9","p0i5",[]);
stm_aix("p0i10","p0i0",[1," About <img src=\"/menu/arrow_d.gif\"/> ","","",-1,-1,0,"","_self","","","","",0,0,0,"","",7,7,0,0,0,"#990000"]);
stm_bpx("p3","p1",[]);
stm_ai("p3i0",[0,"Contact","","",-1,-1,0,"/about/contact.jsp","_self","","","","",0,0,0,"","",0,0,0,0,0,"#990000",0,"#A3012A",0,"","",3,3,0,0,"#FFFFFF","#FFFFFF","#FFFFFF","#F2E205","bold 9pt Verdana","bold 9pt Verdana",0,0]);
stm_aix("p3i1","p3i0",[0,"People","","",-1,-1,0,"/about/people.jsp"]);
stm_aix("p3i2","p3i0",[0,"Jobs","","",-1,-1,0,"/jobs"]);
stm_ep();
stm_ep();
stm_em();

