<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>RSS feed for InstantSpot site Daily Investigations</title><link>http://dionrecaps.instantspot.com</link><description>To recap my daily research in different areas</description><language>en-us</language><copyright>This work is Copyright &#xA9; 2010 by Daily Investigations</copyright><generator>RSSVille ColdFusion FeedMaker, version 1.0</generator><pubDate>Thu, 18 Mar 2010 01:55:51 GMT</pubDate><item><title>Fusebox Lifecycle - Prototyping</title><link>http://dionrecaps.instantspot.com/blog/2007/01/03/Fusebox-Lifecycle--Prototyping/</link><description>&lt;p&gt;  This is a quick introduction to the next phase I use of the FLiP process, prototyping.&amp;nbsp; The way I implement prototyping is to take the completed wireframe and get any other field requirements and start coding the frontend of the application using the fusebox framework.&amp;nbsp; To imitate data I either hard code the entries or utiize &lt;a href=&quot;http://www.halhelms.com/index.cfm?fuseaction=code.detail&quot;&gt;cf_querysim&lt;/a&gt;.&amp;nbsp;&amp;nbsp;   &lt;/p&gt;  &lt;p&gt;  I do tend to try to get the circuits as close the finished production as possible but I do not worry how close I get the fuses.&amp;nbsp; I have tried to worry about the fuses in the past and I was then missing the backend design with the frontend presentation layer and it created to much havoc.&amp;nbsp; Recap: Circuits are close - Fuses maybe/maybe not.  &lt;/p&gt;  &lt;p&gt;  The prototype has to come with a couple of warnings:  &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Watch out for scope creep.&amp;nbsp; The business can start to believe you are a GOD for being able to take their every little request and insert it into the prototype.&amp;nbsp; But be warned you are making a working application you are just painting a picture.&amp;nbsp; Keep a list of High Risk requests and get confirmation on what is a want and what is a need.&amp;nbsp; Needs get put in and wants get considered if they will not cause delays. &lt;/li&gt;   &lt;li&gt;Warn, Warn, Warn the business owner that this is the fast interactive part for them.&amp;nbsp; If you played the GOD card during prototyping it will usually backfire because they will think the applicaiton is basically done and the weeks that follow for development will appear you have forgotten about them.&amp;nbsp; In addition, if you promised them everything from the prototype (wants and needs) they have a memory like a trap and say things like I thought we talked adding the ability for this to make gold out of lead and you said yeah.&amp;nbsp; &lt;br /&gt;   &lt;/li&gt;   &lt;li&gt;Set expectations from realistic to low, if you deliver on time they can trust you if you come in ahead they think you padded the estimate, if you are late they think you are just another one of those tech guys.&lt;/li&gt;  &lt;/ol&gt;  &lt;p&gt;  Prototyping will flush out requirements that most do not find until 2-3 weeks into production.&amp;nbsp; When you get to see what you are talking about the business owner and programmer can share what the finished production will be before it is actually done.&amp;nbsp; When both parties agree the prototype covers everything that is needing and some of the wants get them to physically sign off before development is started.&amp;nbsp; Business owners tend to get very serious when you ask for a signature and you might find yourself with a 2 week delay while they double check everything again.  &lt;/p&gt;  &lt;p&gt;  The sign off is the last part of the prototype phase.&amp;nbsp; I then copy the prototype to a new branch in CVS or just copy the project and start with the backend development and design.&amp;nbsp; The reason I do a branch or copy is to be able to pulll up the signed off prototype and the actual application and except for the dynamic data the business user can not determine the difference.&amp;nbsp;  &lt;/p&gt;  &lt;p&gt;  &amp;nbsp;  &lt;/p&gt;  </description><pubDate>Thu, 04 Jan 2007 04:14:59 GMT</pubDate><guid>http://dionrecaps.instantspot.com/blog/2007/01/03/Fusebox-Lifecycle--Prototyping/</guid><category>Methodology</category></item><item><title>Fusebox Lifecycle - Wireframing</title><link>http://dionrecaps.instantspot.com/blog/2007/01/02/Fusebox-Lifecycle--Wireframing/</link><description>&lt;p&gt;  For those who are new to methodologies in the development of software, there is a very complete and mature methodology named FLiP.  FLiP stands for Fusebox Lifecycle process but does not rely on you using the Fusebox framework.  FLiP  starts with a basic conversation with the end user to discuss what it is they demand.  If after talking with them and taking some basic requirements, most will have prepared but scattered documentation, you can use a tool or process called Wireframing.  &lt;/p&gt;  &lt;p&gt;  Wireframing helps you create a flow and text based description of each segment of the proposed application and allows everyone to view the results.  The wireframing tools, coldfusion based, are mature and work very nicely.  The cool aspects of Wireframing that sometimes is not commented are the following:  &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;The business user is so excited about being able to actively participate in the development process they document and flush out several requirements before you ever start.&lt;/li&gt;   &lt;li&gt;This makes you look really high tech to actually have a tool that is editable online than others tools that people use to represent screen shots.  I hate looking at any plain vanilla border rich screen shot created by a PM who knows how to created a table with border=1 in word or powerpoint.&lt;/li&gt;   &lt;li&gt;The workflow is useful in the creation of use cases.&lt;/li&gt;  &lt;/ol&gt;  &lt;p&gt;  &lt;br /&gt;  I have used this on several projects where I am on the east coast and the business user is on the west coast and we do not have to spend time trying to coordinate schedules.  I did the wireframing and sent them the link they added tons of documentation that I imported for into my project documentation, help documentation and used for a more complete prototype.    &lt;/p&gt;  &lt;p&gt;  To summarize, my advice is to get some form of methodology when developing software and just not in your head methodology.  Have a written process and inform your business users of the high level steps needed to complete the process.  Wireframing is a great tool for visualizing a project when you are still in discussion mode.  &lt;/p&gt;  &lt;p&gt;  Resource links:  &lt;/p&gt;  &lt;p&gt;  &lt;a href=&quot;http://www.teratech.com/index.cfm?go=FLiP.Wireframing&quot; target=&quot;_blank&quot;&gt;Wireframing from the new owners Tera Tech &lt;/a&gt;   &lt;/p&gt;  </description><pubDate>Wed, 03 Jan 2007 04:53:24 GMT</pubDate><guid>http://dionrecaps.instantspot.com/blog/2007/01/02/Fusebox-Lifecycle--Wireframing/</guid><category>Methodology</category></item><item><title>Toyota Production System</title><link>http://dionrecaps.instantspot.com/blog/2006/12/30/Toyota-Production-System/</link><description>&lt;p&gt;  Interesting read today about the Toyota Production System.  It has enabled Toyota to take over the number 2 spot in the in the automobile world, right behind GM.  The details of how this system works is too much for this blog but it is worth of recognizing some key points.  &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;When a problem is found stop and correct it.  Take the beating now and reap the benefits of a problem free system.&lt;/li&gt;   &lt;li&gt;Do not skip for the short term award, keep to the long term goal.&lt;/li&gt;   &lt;li&gt;Eliminate waste whenever possible. ( I take this as watching the users and eliminate as many key strokes, clicks as possible, make it fast for them to use)&lt;/li&gt;  &lt;/ol&gt;  &lt;p&gt;  There are several good articles about this but one of the best overall descriptions of the process is once again wikipedia.  &lt;/p&gt;  &lt;p&gt;  &lt;a href=&quot;http://en.wikipedia.org/wiki/Toyota_Production_System&quot; target=&quot;_blank&quot;&gt;Wikipedia TPS&lt;/a&gt;  &lt;/p&gt;  &lt;p&gt;  Anyway I created a word doc with some of the basic principles of TPS and placed it in my office to remind me there is always improvements to anything that is done.   &lt;/p&gt;  &lt;div style=&quot;border: 2px none #000000; overflow: auto; background-color: #efefef; width: 500px; height: 300px&quot;&gt;  &lt;p&gt;  &amp;nbsp;  &lt;/p&gt;  &lt;p&gt;  Eliminate these 7 things  &lt;/p&gt;  &lt;ol&gt;   &lt;li class=&quot;MsoNormal&quot;&gt;Over-production&lt;/li&gt;   &lt;li class=&quot;MsoNormal&quot;&gt;Motion (of operator or   machine)&lt;/li&gt;   &lt;li class=&quot;MsoNormal&quot;&gt;Waiting (of operator or   machine)&lt;/li&gt;   &lt;li class=&quot;MsoNormal&quot;&gt;Conveyance&lt;/li&gt;   &lt;li class=&quot;MsoNormal&quot;&gt;Processing Itself&lt;/li&gt;   &lt;li class=&quot;MsoNormal&quot;&gt;Inventory (raw material)&lt;/li&gt;   &lt;li class=&quot;MsoNormal&quot;&gt;Correction (rework &amp;amp;   scrap)&lt;/li&gt;  &lt;/ol&gt;  &lt;p class=&quot;MsoNormal&quot;&gt;  Philosophy  of TPS  &lt;/p&gt;  &lt;ol&gt;   &lt;li class=&quot;MsoNormal&quot;&gt;Base your management   decisions on a long-term philosophy, even at the expense of short-term   goals&lt;/li&gt;   &lt;li class=&quot;MsoNormal&quot;&gt;Create continuous process   flow to bring problems to surface&lt;/li&gt;   &lt;li class=&quot;MsoNormal&quot;&gt;Use &amp;ldquo;pull&amp;rdquo; systems to avoid   overproduction&lt;/li&gt;   &lt;li class=&quot;MsoNormal&quot;&gt;Level out the workload&lt;/li&gt;   &lt;li class=&quot;MsoNormal&quot;&gt;Build a culture of stopping   to fix problems, to get quality right the first time&lt;/li&gt;   &lt;li class=&quot;MsoNormal&quot;&gt;Standardized tasks are the   foundation for continuous improvement and employee empowerment&lt;/li&gt;   &lt;li class=&quot;MsoNormal&quot;&gt;Use visual control so no   problems are hidden&lt;/li&gt;   &lt;li class=&quot;MsoNormal&quot;&gt;Use only reliable, thoroughly   tested technology that serves your people and processes&lt;/li&gt;   &lt;li class=&quot;MsoNormal&quot;&gt;Grow leaders who thoroughly   understand the work, live the philosophy, and teach it to others&lt;/li&gt;   &lt;li class=&quot;MsoNormal&quot;&gt;Develop exceptional people   and teams who follow your company&amp;rsquo;s philosophy&lt;/li&gt;   &lt;li class=&quot;MsoNormal&quot;&gt;Respect your extended network   of partners and suppliers by challenging them and helping them improve&lt;/li&gt;   &lt;li class=&quot;MsoNormal&quot;&gt;Go and see for yourself to   thoroughly understand the situation (genchi genbutsu)&lt;/li&gt;   &lt;li class=&quot;MsoNormal&quot;&gt;Make decisions slowly by   consensus, thoroughly considering all options; implement decisions rapidly&lt;/li&gt;   &lt;li class=&quot;MsoNormal&quot;&gt;Become a learning   organization through relentless reflection and continuous improvement&lt;/li&gt;  &lt;/ol&gt;  &lt;!--[if !supportEmptyParas]--&gt;&lt;!--[endif]--&gt;  &lt;p class=&quot;MsoNormal&quot;&gt;  &lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;  &lt;/p&gt;  &lt;h2&gt;&lt;span class=&quot;mw-headline&quot;&gt;Long-Term Philosophy&lt;/span&gt;&lt;/h2&gt;  &lt;p&gt;  Base your management decisions on a long-term philosophy, even at the  expense of short-term financial goals.  &lt;/p&gt;  &lt;h2&gt;&lt;span class=&quot;mw-headline&quot;&gt;The Right Process Will Produce the Right Results&lt;/span&gt;&lt;/h2&gt;  &lt;ol&gt;   &lt;li class=&quot;MsoNormal&quot;&gt;Create continuous process   flow to bring problems to the surface&lt;/li&gt;   &lt;li class=&quot;MsoNormal&quot;&gt;Use the &amp;quot;pull&amp;quot; system   to avoid overproduction&lt;/li&gt;   &lt;li class=&quot;MsoNormal&quot;&gt;Level out the workload   (heijunka). (Work like the tortoise, not the hare.)&lt;/li&gt;   &lt;li class=&quot;MsoNormal&quot;&gt;Build a culture of stopping   to fix problems, to get quality right the first time&lt;/li&gt;   &lt;li class=&quot;MsoNormal&quot;&gt;Standardized tasks are the   foundation for continuous improvement and employee empowerment&lt;/li&gt;   &lt;li class=&quot;MsoNormal&quot;&gt;Use visual control so no   problems are hidden&lt;/li&gt;   &lt;li class=&quot;MsoNormal&quot;&gt;Use only reliable, thoroughly   tested technology that serves your people and processes.&lt;/li&gt;  &lt;/ol&gt;  &lt;h2&gt;&lt;span class=&quot;mw-headline&quot;&gt;Add Value to the Organization by Developing Your  People and Partners&lt;/span&gt;&lt;/h2&gt;  &lt;ol&gt;   &lt;li class=&quot;MsoNormal&quot;&gt;Grow leaders who thoroughly   understand the work, live the philosophy, and teach it to others.&lt;/li&gt;   &lt;li class=&quot;MsoNormal&quot;&gt;Develop exceptional people   and teams who follow your company&amp;#39;s philosophy&lt;/li&gt;   &lt;li class=&quot;MsoNormal&quot;&gt;Respect your extended network   of partners and suppliers by challenging them and helping them improve.&lt;/li&gt;  &lt;/ol&gt;  &lt;h2&gt;&lt;span class=&quot;mw-headline&quot;&gt;Continuously Solving Root Problems Drives  Organizational Learning&lt;/span&gt;&lt;/h2&gt;  &lt;ol&gt;   &lt;li class=&quot;MsoNormal&quot;&gt;Go and see for yourself to   thoroughly understand the situation (Genchi Genbutsu&lt;/li&gt;   &lt;li class=&quot;MsoNormal&quot;&gt;Make decisions slowly by   consensus, thoroughly considering all options; implement decisions rapidly&lt;/li&gt;   &lt;li class=&quot;MsoNormal&quot;&gt;Become a learning   organizatoin through relentless reflectoin (hansei) and continuous   improvement (Kaizen)&lt;/li&gt;  &lt;/ol&gt;  &lt;!--[if !supportEmptyParas]--&gt;&lt;!--[endif]--&gt;  &lt;p&gt;  &amp;nbsp;  &lt;/p&gt;  &lt;/div&gt;  </description><pubDate>Sun, 31 Dec 2006 03:52:44 GMT</pubDate><guid>http://dionrecaps.instantspot.com/blog/2006/12/30/Toyota-Production-System/</guid><category>Methodology</category></item><item><title>Coldusion MX7 read excel for free (Apache POI) </title><link>http://dionrecaps.instantspot.com/blog/2006/12/29/Coldusion-MX7-read-excel-for-free-Apache-POI-/</link><description>&lt;p&gt;  Recently I had the need to utilize existing spreadsheets uploaded to our Capital Appropriation applicaiton.  The problems you can encounter at the enterprise level is getting approval to buy any type of software to do this, then you have to put in the requests to get everything installed and then you must fill out security documents to get the admins the access to install the software, blah, blah, blah, red tape.    &lt;/p&gt;  &lt;p&gt;  I did some intial research and found all types of examples where Coldfusion uses Apache POI to create excel documents but i did not acutally find where it would read documents.  I found it was a little tricky to read excel documents but I got it working in a couple of days and thought it would be good to share.  &lt;/p&gt;  &lt;p&gt;  The code example I am listing is not a perfect example of how to read an excel spreadsheet but it goes a long way to get all the formatting to actually give a way to do a html conversion of an excel document.  &lt;/p&gt;  &lt;p&gt;  I hope this gives some other coldfusion developers a way to start reading existing excel spreadsheets in your business environment.  &lt;/p&gt;  &lt;p&gt;  Some of the ideas I had for this are:  &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;A new querysim (Hal Helms) that uses excel instead of a text file&lt;/li&gt;   &lt;li&gt;Security document (fusebox fuseactions) a column of fuseactions and columns for each group level of access.  The matrix could have yes, no or 1,0 to show this group has or does not have access to a specific fuseaction.  This would be loaded into application structure and called as a security prefuseaction.&lt;/li&gt;  &lt;/ol&gt;  &lt;br /&gt;  readExcel.cfm&lt;br /&gt;  &lt;div style=&quot;border: 1px none #000000; padding: 5px; overflow: auto; width: 500px; height: 200px; background-color: #efefef&quot;&gt;  &amp;lt;!--- Header begin ---&amp;gt;&lt;br /&gt;  &amp;lt;!--- Insert page title here ---&amp;gt;&lt;br /&gt;  &amp;lt;br /&amp;gt;  Reading an Excel with MX7 &amp;amp; Apache POI for free  &amp;lt;!--- Link to your standard stylesheet ---&amp;gt;&lt;br /&gt;  &amp;lt;!--- Link to standard Javascript file that provides row and button hover functionality to IE ---&amp;gt;&lt;br /&gt;  &amp;lt;!--- Include links to any application specific stylesheets, scripts here ---&amp;gt;&lt;br /&gt;  #supportNavigation {  position: relative;  z-index: 100;  padding-left: 14px;   padding-top:2px;   float: left;  height: 50px;   clear: left;  margin: 0px;  }   &amp;lt;div id=&amp;quot;header&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;!--- Insert application name here ---&amp;gt;&lt;br /&gt;  &amp;lt;div id=&amp;quot;appName&amp;quot;&amp;gt;&lt;br /&gt;  Reading an Excel or Word Document with MX7 &amp;amp; Apache POI  &amp;lt;/div&amp;gt;&lt;br /&gt;  &amp;lt;!--- Insert user information/assistance here ---&amp;gt;&lt;br /&gt;  &amp;lt;div id=&amp;quot;greeting&amp;quot;&amp;gt;&lt;br /&gt;  Welcome   &amp;lt;/div&amp;gt;&lt;br /&gt;  &amp;lt;div id=&amp;quot;divider&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;/div&amp;gt;&lt;br /&gt;  &amp;lt;/div&amp;gt;&lt;br /&gt;  &amp;lt;!--- Header end ---&amp;gt;&lt;br /&gt;  #excel{  border: 1px solid #808080;  background-color: #DDDDDD;  text-align: center;  }  &amp;lt;!--- store the package in a variable for more compact code ---&amp;gt;&lt;br /&gt;  &amp;lt;!--- create a new workbook ---&amp;gt;&lt;br /&gt;  &amp;lt;!--- Find out if the spreadsheet is protected ---&amp;gt;&lt;br /&gt;  &amp;lt;!---   Beginning logic for colspan and rowspan probably should move to div layers---&amp;gt;&lt;br /&gt;  &amp;lt;!--- &amp;lt;cfdump var=&amp;quot;#sheet#&amp;quot;&amp;gt;&lt;br /&gt;  ---&amp;gt;&lt;br /&gt;  &amp;lt;div id=&amp;quot;container&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;div id=&amp;quot;content&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;table border=&amp;quot;0&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;tbody&amp;gt;&lt;br /&gt;  &amp;lt;tr&amp;gt;&lt;br /&gt;  &amp;lt;td id=&amp;quot;excel&amp;quot;&amp;gt;&lt;br /&gt;  &amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;  &amp;lt;td id=&amp;quot;excel&amp;quot;&amp;gt;&lt;br /&gt;  #ucase(GetAlphabetPosition(myPrePos))##ucase(GetAlphabetPosition(myColPos))#  &amp;lt;/td&amp;gt;&lt;br /&gt;  &amp;lt;/tr&amp;gt;&lt;br /&gt;  &amp;lt;tr&amp;gt;&lt;br /&gt;  &amp;lt;td id=&amp;quot;excel&amp;quot;&amp;gt;&lt;br /&gt;  #myTmpRow#&amp;lt;/td&amp;gt;&lt;br /&gt;  &amp;lt;!---       &amp;lt;cfset myFGColor=wb.getCustomPalette().getColor(javacast(&amp;quot;int&amp;quot;,myFGColor)).getHexString()&amp;gt;&lt;br /&gt;  ---&amp;gt;&lt;br /&gt;  &amp;lt;td&amp;gt;&lt;br /&gt;  colspan=#myColSpan[&amp;quot;#CC#,#DD#&amp;quot;]#  style=&amp;quot;padding:3px;#fnFont(myFont,myUnderline,myItalic,myStrikeout,myFontHeight,myBoldWeight)# #fnHAlignment(myHalignment)# #fnVAlignment(myValignment)#  #fnFGColor(myFGColor)#  #fnBorder(myLBorder,myTBorder,myRBorder,myBBorder)#&amp;quot;&amp;gt;  &amp;lt;!--- &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;#CC#,#DD#&amp;quot; value=&amp;quot; ---&amp;gt;&lt;br /&gt;  &amp;lt;!--- HSSFCell.CELL_TYPE_NUMERIC ---&amp;gt;&lt;br /&gt;  &amp;lt;!--- Check to see if numeric value has date formatting and use the correct method ---&amp;gt;&lt;br /&gt;  #dateformat(wb.getSheetAt(0).getRow(javacast(&amp;quot;int&amp;quot;, CC)).getCell(javacast(&amp;quot;int&amp;quot;, DD)).getDateCellValue(),&amp;quot;mm/dd/yyyy&amp;quot;)#   #wb.getSheetAt(0).getRow(javacast(&amp;quot;int&amp;quot;, CC)).getCell(javacast(&amp;quot;int&amp;quot;, DD)).getNumericCellValue()#  &amp;lt;!--- HSSFCell.CELL_TYPE_STRING ---&amp;gt;&lt;br /&gt;  #wb.getSheetAt(0).getRow(javacast(&amp;quot;int&amp;quot;, CC)).getCell(javacast(&amp;quot;int&amp;quot;, DD)).getStringCellValue()#  &amp;lt;!--- HSSFCell.CELL_TYPE_FORMULA ---&amp;gt;&lt;br /&gt;  #trim(numberformat(wb.getSheetAt(0).getRow(javacast(&amp;quot;int&amp;quot;, CC)).getCell(javacast(&amp;quot;int&amp;quot;, DD)).getNumericCellValue(),&amp;quot;999,999,999.99&amp;quot;))#  &amp;lt;a style=&amp;quot;text-decoration: none&amp;quot; xhref=&amp;quot;javascript:void(0);&amp;quot; mce_href=&amp;quot;javascript:void(0);&amp;quot; onmouseover=&amp;quot;return overlib(&amp;#39;#JSStringFormat(wb.getSheetAt(0).getRow(javacast(&amp;quot; onmouseout=&amp;quot;nd();&amp;quot;&amp;gt;&lt;br /&gt;  *&amp;lt;/a&amp;gt;&lt;br /&gt;  &amp;lt;!--- HSSFCell.CELL_TYPE_BLANK ---&amp;gt;&lt;br /&gt;  &amp;lt;!--- HSSFCell.CELL_TYPE_BOOLEAN ---&amp;gt;&lt;br /&gt;  #wb.getSheetAt(0).getRow(javacast(&amp;quot;int&amp;quot;, CC)).getCell(javacast(&amp;quot;int&amp;quot;, DD)).getBooleanCellValue()#  &amp;lt;!--- HSSFCell.CELL_TYPE_ERROR ---&amp;gt;&lt;br /&gt;  #wb.getSheetAt(0).getRow(javacast(&amp;quot;int&amp;quot;, CC)).getCell(javacast(&amp;quot;int&amp;quot;, DD)).getErrorCellValue()#  Cell type is numeric value of #wb.getSheetAt(0).getRow(javacast(&amp;quot;int&amp;quot;,CC)).getCell(javacast(&amp;quot;int&amp;quot;,DD)).getCellType()#  &amp;gt;  &amp;lt;!---  &amp;quot;&amp;gt;&lt;br /&gt;  ---&amp;gt;&lt;br /&gt;  &amp;lt;!---   &amp;lt;cfdump var=&amp;quot;#cfcatch#&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;cfabort&amp;gt;&lt;br /&gt;  ---&amp;gt;&lt;br /&gt;  &amp;lt;/td&amp;gt;&lt;br /&gt;  &amp;lt;/tr&amp;gt;&lt;br /&gt;  &amp;lt;/tbody&amp;gt;&lt;br /&gt;  &amp;lt;/table&amp;gt;&lt;br /&gt;  &amp;lt;/div&amp;gt;&lt;br /&gt;  &lt;/div&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;!--- Footer end ---&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;!--- Footer end ---&gt;  plugExcel.cfm&lt;br /&gt;  &lt;div style=&quot;border: 1px none #000000; padding: 5px; overflow: auto; width: 500px; height: 200px; background-color: #efefef&quot;&gt;  &lt;br /&gt;  /**  * Returns the numeric value of a letter&amp;#39;s position in the alphabet, or the returns matching letter of a number in the alphabet.  *   * @param charornum   Either a character or number.   * @return Returns either a character, number, or empty string on error.   * @author Seth Duffey (sduffey@ci.davis.ca.us)   * @version 1, January 7, 2002   */  function GetAlphabetPosition(charornum) {  var a_numeric = asc(&amp;quot;a&amp;quot;);  charornum = lCase(trim(charornum));  if (charornum eq &amp;quot;&amp;quot;){  return &amp;quot;&amp;quot;;  }  if(isNumeric(charornum)) {  if(charornum lte 0 OR charornum gte 27) return &amp;quot;&amp;quot;;  return chr(charornum+a_numeric-1);  } else {  if(len(charornum) gt 1) return &amp;quot;&amp;quot;;  if(REFind(&amp;quot;[^a-z]&amp;quot;,charornum)) return &amp;quot;&amp;quot;;  return asc(charornum) - a_numeric + 1;  }  return 1;  }  function fnHAlignment(this_cell){  switch(this_cell){  case &amp;quot;1&amp;quot;:   return &amp;quot;text-align:left;padding-left:.5em;&amp;quot;;  break;  case &amp;quot;2&amp;quot;:   return &amp;quot;text-align:center;&amp;quot;;  break;       case &amp;quot;3&amp;quot;:   return &amp;quot;text-align:right;padding-right:.5em;&amp;quot;;  break;                  }  return &amp;quot;&amp;quot;;   }  function fnFont(myFont,myUnderline,myItalic,myStrikeout,myFontHeight,myBoldWeight){  var myReturnFont=&amp;quot;font-size:&amp;quot;&amp;amp;myFontHeight&amp;amp;&amp;quot;px;&amp;quot;;  myReturnFont=myReturnFont&amp;amp;&amp;quot;font:&amp;quot;&amp;amp;myFont&amp;amp;&amp;quot;;&amp;quot;;  myReturnFont=myReturnFont&amp;amp;&amp;quot;font-weight:&amp;quot;&amp;amp;myBoldWeight&amp;amp;&amp;quot;;&amp;quot;;  if (myUnderline){  myReturnFont=myReturnFont&amp;amp;&amp;quot;text-decoration:underline;&amp;quot;;  }  if (myItalic){  myReturnFont=myReturnFont&amp;amp;&amp;quot;font-style:italic;&amp;quot;;   }  return myReturnFont;  }  function fnVAlignment(this_cell){  switch(this_cell){  case &amp;quot;0&amp;quot;:   return &amp;quot;vertical-align:top;&amp;quot;;  break;  case &amp;quot;1&amp;quot;:   return &amp;quot;vertical-align:middle;&amp;quot;;  break;       case &amp;quot;2&amp;quot;:   return &amp;quot;vertical-align:bottom;&amp;quot;;  break;                  }  return &amp;quot;&amp;quot;;   }  function fnFGColor(this_color){  return &amp;quot;background-color:&amp;quot; &amp;amp; fnColor(this_color) &amp;amp; &amp;quot;;&amp;quot;;  }  function fnBorder(this_left, this_top, this_right, this_bottom){  var myBorder=&amp;quot;&amp;quot;;  if (this_left){  myBorder=&amp;quot;border-left:1px solid ##000000;&amp;quot;;  }   if (this_top){  myBorder=myBorder&amp;amp;&amp;quot;border-top:1px solid ##000000;&amp;quot;;  }    if (this_right){  myBorder=myBorder&amp;amp;&amp;quot;border-right:1px solid ##000000;&amp;quot;;  }     if (this_bottom){  myBorder=myBorder&amp;amp;&amp;quot;border-bottom:1px solid ##000000;&amp;quot;;  }     return myBorder;  }  function fnColor(this_color){  switch(this_color){  case &amp;quot;1&amp;quot;:  return &amp;quot;##000000;&amp;quot;;  break;   case &amp;quot;2&amp;quot;:  return &amp;quot;##ffffff;&amp;quot;;  break;       case &amp;quot;10&amp;quot;:  return &amp;quot;##ff0000;&amp;quot;;  break;       case &amp;quot;4&amp;quot;:  return &amp;quot;##00ff00;&amp;quot;;  break;       case &amp;quot;18&amp;quot;:  return &amp;quot;##0000ff;&amp;quot;;  break;       case &amp;quot;13&amp;quot;:  return &amp;quot;##ffff00;&amp;quot;;  break;       case &amp;quot;7&amp;quot;:  return &amp;quot;##ff00ff;&amp;quot;;  break;       case &amp;quot;8&amp;quot;:  return &amp;quot;##00ffff;&amp;quot;;  break;    //9     case &amp;quot;60&amp;quot;:  return &amp;quot;##800000;&amp;quot;;  break;       case &amp;quot;57&amp;quot;:  return &amp;quot;##008000;&amp;quot;;  break;       case &amp;quot;11&amp;quot;:  return &amp;quot;##000080;&amp;quot;;  break;       case &amp;quot;12&amp;quot;:  return &amp;quot;##808000;&amp;quot;;  break;       case &amp;quot;11113&amp;quot;:  return &amp;quot;##800080;&amp;quot;;  break;       case &amp;quot;14&amp;quot;:  return &amp;quot;##ff0000;&amp;quot;;  break;   case &amp;quot;22&amp;quot;:  return &amp;quot;##c0c0c0&amp;quot;;  break;  case &amp;quot;16&amp;quot;:  return &amp;quot;##808080&amp;quot;;  break;      case &amp;quot;17&amp;quot;:  return &amp;quot;##9999ff&amp;quot;;  break;      case &amp;quot;11118&amp;quot;:  return &amp;quot;##993366&amp;quot;;  break;      case &amp;quot;19&amp;quot;:  return &amp;quot;##ffffcc&amp;quot;;  break;      case &amp;quot;20&amp;quot;:  return &amp;quot;##ccffff&amp;quot;;  break;      case &amp;quot;21&amp;quot;:  return &amp;quot;##660066&amp;quot;;  break;            case &amp;quot;2299&amp;quot;:  return &amp;quot;##ff8080&amp;quot;;  break;      case &amp;quot;23&amp;quot;:  return &amp;quot;##0066cc&amp;quot;;  break;        case &amp;quot;24&amp;quot;:  return &amp;quot;##ccccff&amp;quot;;  break;      case &amp;quot;25&amp;quot;:  return &amp;quot;##000080&amp;quot;;  break;      case &amp;quot;26&amp;quot;:  return &amp;quot;##ff00ff&amp;quot;;  break;      case &amp;quot;27&amp;quot;:  return &amp;quot;##ffff00&amp;quot;;  break;      case &amp;quot;28&amp;quot;:  return &amp;quot;##00ffff&amp;quot;;  break;      case &amp;quot;29&amp;quot;:  return &amp;quot;##800080&amp;quot;;  break;      case &amp;quot;30&amp;quot;:  return &amp;quot;##800000&amp;quot;;  break;      case &amp;quot;31&amp;quot;:  return &amp;quot;##008080&amp;quot;;  break;      case &amp;quot;32&amp;quot;:  return &amp;quot;##0000ff&amp;quot;;  break;      case &amp;quot;33&amp;quot;:  return &amp;quot;##00ccff&amp;quot;;  break;      case &amp;quot;34&amp;quot;:  return &amp;quot;##ccffff&amp;quot;;  break;      case &amp;quot;35&amp;quot;:  return &amp;quot;##ccffcc&amp;quot;;  break;      case &amp;quot;43&amp;quot;:  return &amp;quot;##ffff99&amp;quot;;  break;      case &amp;quot;37&amp;quot;:  return &amp;quot;##99ccff&amp;quot;;  break;      case &amp;quot;38&amp;quot;:  return &amp;quot;##ff99cc&amp;quot;;  break;                     case &amp;quot;39&amp;quot;:  return &amp;quot;##cc99ff&amp;quot;;  break;      case &amp;quot;40&amp;quot;:  return &amp;quot;##ffcc99&amp;quot;;  break;      case &amp;quot;41&amp;quot;:  return &amp;quot;##3366ff&amp;quot;;  break;      case &amp;quot;42&amp;quot;:  return &amp;quot;##33cccc&amp;quot;;  break;      case &amp;quot;99&amp;quot;:  return &amp;quot;##99cc00&amp;quot;;  break;      case &amp;quot;44&amp;quot;:  return &amp;quot;##ffcc00&amp;quot;;  break;      case &amp;quot;45&amp;quot;:  return &amp;quot;##ff9900&amp;quot;;  break;      case &amp;quot;46&amp;quot;:  return &amp;quot;##ff6600&amp;quot;;  break;      case &amp;quot;47&amp;quot;:  return &amp;quot;##666699&amp;quot;;  break;      case &amp;quot;48&amp;quot;:  return &amp;quot;##969696&amp;quot;;  break;      case &amp;quot;49&amp;quot;:  return &amp;quot;##003366&amp;quot;;  break;      case &amp;quot;50&amp;quot;:  return &amp;quot;##339966&amp;quot;;  break;      case &amp;quot;51&amp;quot;:  return &amp;quot;##003300&amp;quot;;  break;      case &amp;quot;52&amp;quot;:  return &amp;quot;##333300&amp;quot;;  break;      case &amp;quot;53&amp;quot;:  return &amp;quot;##993300&amp;quot;;  break;      case &amp;quot;54&amp;quot;:  return &amp;quot;##993366&amp;quot;;  break;      case &amp;quot;55&amp;quot;:  return &amp;quot;##333399&amp;quot;;  break;      case &amp;quot;56&amp;quot;:  return &amp;quot;##333333&amp;quot;;  break;   }  return this_color;                       }  &lt;br /&gt;  &lt;/div&gt;  </description><pubDate>Sat, 30 Dec 2006 04:14:34 GMT</pubDate><guid>http://dionrecaps.instantspot.com/blog/2006/12/29/Coldusion-MX7-read-excel-for-free-Apache-POI-/</guid><category>Coldfusion</category></item></channel></rss>