January 29, 2004
CF Updates
Two Security Patches were released yesterday.
MPSB04-02 Security Patch available for ColdFusion MX 6.1 form fields Denial of service
MPSB04-01 Security Patch available for ColdFusion MX sandbox security
Also a Hot Fix for CFQuery/CFQueryParam regarding single quotes.
ColdFusion MX 6.1: Hot fix for cfquery/cfqueryparam
And a good article on metrics logging.
ColdFusion MX: Enabling metrics logging
January 28, 2004
Chatty Fig
Looking for some good list serves on Macromedia Products?
Try Checking out the following:
Chatty Fig
Mach II at Topica
CFCDev
cf talk
IT SKILLS
A couple of days ago, in my surfing, I came across Matthew's
entry on the Missing Skills in IT.
<--- Snipped from Project CMS --->

After debating it for a little while, most of these skills are not taught in schools or training. Most of the skills would be taught in a mentoring setting. Since these skills are missing in IT, maybe in order to learn them, we would need to be mentored by the business users?
January 25, 2004
Health Care IT Forums
Its truly amazing what one can do with a CMS and a little time. Using postnuke and PNphpBB, I put together the Health Care IT Forums site.
Hopefully the site will help to create a sense of community for healthcare technologist. Take a look and please register.
Mind Map for an Electronic Health Record
Things seems to be moving in a forward direction again. With President Bush's state of the union address, HIMSS has released a mind map for an Electronic Health Record.
January 24, 2004
Open Source Content Management Systems
Found a couple of good open source Content Management System for the price over at www.opensourcecms.com
The ones that look good for a beginning site are php-nuke, md-pro, drupal, and possibly even E107 for CMS systems.
The site also has opensource cms groupware, forums, e-learning, blogs, e-commerce, and portals.
January 23, 2004
System Testing
An idea I've been tooling around with for a while is system testing through test tools.
I have one integrated system, I would love to run through test scripts every night. Our hospital registration, billing, interface, labs, result reporting, pharmacy, and encoding system. I think it would be great to be able to kick off a set of standardized integrated tests at 7:00 pm, and come into work in the morning looking at the results. I also think we can do it, I'm sure there are tools out there that would automate the feed into a mainframe or unix emulation session. I also think some of the vendors for the data entry client server app, might have a way to automate it for their testing before releases. And there are tools that automate testing of a web system.
If we got a standard set of test cases, then from that pool agreed which would need to be tested for a certain requests. I believe this would be a much better mechanism, and save people time in the long, in addition to providing a better quality overall.
Thinking Mindset
Yesterday, a good friend shared with me a little phrase that determines one's personal philosophy, you get to choose where to insert the words short and long.
If we take care of the ______ term, the ______ term will take care of itself.
The funny thing is that this little phrase determines your perspective to your possible political affliations.
I, however, would prefer to take care of the long term, because then the short term will take care of itself. However, in reality, I believe there is an order, first fix the short term, then fix what was broke in history, but always look to take care and improve the process for the long term, and implement those opportunities.
January 22, 2004
IS Shortcomings
TechRepublic has a recent article on The seven habits of wildly unsuccessful CIOs
<--- snipped from techrepublic --->
1. Acquire technology simply because it's new.
2. Exhibit a knee-jerk reaction against open source.
3. Create solutions in search of a problem.
4. Eagerly reach beyond competency level.
5. Act as CMOs--chief marketing officers.
6. Fail to understand relationship between technology and business.
7. Don't communicate well with nontechs.
Honestly, this doesn't just apply to CIO's. It can be an organizations cultural shortcoming or an is individuals.
Certifications in the Industry
One of my thoughts on certifications versus education is that it isn't a versus. My impression is that it needs to be a combined item.
A good solid education brings a thinking pattern, and more importantly an analysis thought process, that is essential to problem solving. Formalized collegiate educated reiterates the basics(datastructures), and then expands the concepts (algorithms). However, that is not all one learns, basically and hopefully while you are either spending your parents money or going massively into debt, you learn how to work with a group, how to attack a problem, and appreciate different thoughts - on the educational side of things. ;)
My thoughts on certification is that it shows an expertise in a software package. That expertise allows one to manipulate the software package to find a good solution. In my opinion, it is better to get a vendor based certification than a brainbench certification. For example, a while back, I took and passed the brain bench access test. I took the exam for simple curiosity to see where I stood. I have never taken the microsoft access certification, but in my opinion it is better to have the vendor statement. The issue with any certification is that in a couple of years, you will probably need to take another one. That is just the way technology is. However, education gives one a good solid foundation that help to understand and manipulate new items.
Why am I writing on this? The other day I came across a father and son in my favorite bookstore. The son was trying to say why waste the money on a college education, when people are looking for a certification that is under 300. (books and testing). The father, looking exasperated, asked me my opinion. The one above is what I gave him.
January 21, 2004
Humans and Machines
I saw this over at the Business Word.
The gist of the entry is an email from Siemens stating to error is unacceptable. Considering that their new flagship product Soarian is still in the ironing out the kinks stage, its an interesting letter.
Monthly Status
Think you have alot of projects going on, I came a the monthly projects status reports of John Hopkins. Boy, they are busy!
HL7 Interface Engines
One of the main integration tools in a hospital setting is an interface engine. This little wonder sends all of the data elements to every system. Admission, Discharge, Transfer information are interfaced from the registration system to the patient care information, clinical information systems, medical records systems, and billing system. Also it provides an interface for the clinical information systems results to the patient care information result reporting.
I came across this report here, that sees to rank interface engines in 2003.
I've worked with openlink and see-beyond datagate. OpenLink is easier and more user friendly, the target audience is a non-programmer mindset. By that I mean someone more use to manipulating an application instead of a language.
Datagate use monk oriented towards a programmer mindset. I haven't had any experience with cloverleaf, although I have heard it is nice.
January 20, 2004
MT v2.66* and MT-Blacklist v1.6.2
Looks like the latest and greatest MT and MT-Blacklist have some issues. Find the full post here.
The Business of Canned Reports
One of the annoyances of legacy systems, and sometimes even newer systems. Is the holding hostage of data via canned reports.
What is a canned report. It is a report that just shows up on a printer somewhere for the user to utilize. They may utilize this report to determine the current outstanding receivable, to determine who was admitted yesterday from the emergency department, or how many cases had a certain data entry field filled out. Its a report delivered by IS to the users, where the users have to go through IS to change or enhance the report. It comes via paper, not another tool like excel that can help with data analysis.
Enabling users to create and run reports off of their data, is a good way to go. The users have the best understanding of the nuances of their data for reporting. Most Institutions have several teams of people whose full time job is to analyze data, and create reports from that data. I think it is essential to give those people the knowledge needed to operate the technical tools, the technical tools, and a dimension reporting look at the operation data.
January 18, 2004
Mach II: framework or methodology
There's a good question, and it was recently elaborated upon by my buddy, dave in this post.
Mach II came to life out of fusebox. My understanding is there was a divide in the fusebox community, some people wanting to utilize a procedural framework, and some people wanting to go an object oriented structure. If anyone can elaborate, please I'd like to hear the history.
So what is a framework?
A definition I've come across is that a framework is a class library that captures patterns of interaction between objects. A framework consists of a suite of concrete and abstract classes, explicitly designed to be used together. Applications are developed froma a framework by completion of the implementation of abstract classes. A framework can be also utilized to include additional utilities to aid in the completion of end-user applications.
So if we agree this defines a framework, what is a methodology?
A methodology is a codified set of recommended practices. I think that summarizes it up.
So what is Mach II. Well Mach II is definitely a framework, but utilizing that framework based software development, is a methodology. Utilizing a framework brings a different approach to solving a problem. One works from within the constraints of the framework, because the framework is extended for multiple applications.
So the code of Mach II itself is a framework, but utilizing Mach II in application development is a methodology.
Window NT Error 232 and 109
Ever look at your logs and notice the 232 and 109 windows nt errors.
Error number 232 refers to the pipe is being closed, and 109 refers to the pipe being opened.
Macromedia has a nice guide on how to address these issues, if necessary.
requestTimeOut
In ColdFusion there are several places that one can manipulate the requestTimeOut Setting.
First in the CF Administrator there is the Timeout Requests after (seconds). On a Default install of CF, this value is uncheck. The value stops poorly performing webpages. When enabled, it will cause the page to go to an error, saying timeout value reached.
If you do enable, Timeout Request. Sometimes there is a page or scheduled task that needs some time to run that goes beyound the default timeout request. To override that value, in the page itself you can set use the cfsetting tag.
<cfsetting RequestTimeout = "1800">
(The page will timeout in 30 minutes.)
In the scheduled task, you can set the timeout value for each scheduled task.
January 17, 2004
The Well-Managed Healthcare Organization
I've started reading the Well-Managed Healthcare Organization by John R. Griffith. It covers the entire HealthCare Delivery System. I plan on blogging on items as I read to gain a better understanding of the topic. In anticipation of doing so, I've added a new category, the healthcare organization.
Access for BackEnd DBs
A personal preference of mine is not to use Microsoft Access as a backend for a database.
Access has a tendency to behave poorly with many users or hits at the same time. Also alot of people forget to close all sessions to access and leave a .ldb file out there when a copy is made. The .ldb file indicates which records are locked and by whom on a shared database.
Microsoft Access also has size limitations. 1 GB for Access 97, 2 GB for Access 2002 and 2000.
Access Corruption occurs under varying circumstances found here.
January 16, 2004
OLIE and .prn
If you use a Siemens Health Care system, you have probably heard of OLIE Scripting. OLIE (Online Interface Express) is a tool that manipulates the terminal session of a product. So you can go through and automate the changes or add data to a system, through the User Interface. The data one inputs is normally stored in a .txt or .prn file.
So today there was some data in an excel spreadsheet, that someone wanted to get into a .prn file. A prn file is a formatted text, space delimited file layout. The only problem is that excel only saves 240 characters. If you need 250, you are out of luck.
However, Microsoft has noted this problem, and this KNB is a great aid. The code works great for a solution.
However, I tweaked the code a little today, so that the popup wouldn't occur, and people could just select via the columns or page. Remember, first select the entire workbook, make the style Courier, and then Autofit all columns, then run the macro.
That code is below. Just remember, the macro by default goes into a workbook. If you want it on your desktop permanently, unhide the personal.xls and add the macro there. When you are finished, rename the file externsion on your .txt file to .prn.
Sub ExportText()
Dim delimiter As String
Dim quotes As Integer
Dim Returned As String
delimiter = " "
' Call the WriteFile function passing the delimiter and quotes options.
Returned = WriteFile(delimiter)
' Print a message box indicating if the process was completed.
Select Case Returned
Case "Canceled"
MsgBox "The export operation was canceled."
Case "Exported"
MsgBox "The information was exported."
End Select
End Sub
'-------------------------------------------------------------------
Function WriteFile(delimiter As String) As String
' Dimension variables to be used in this function.
Dim CurFile As String
Dim SaveFileName
Dim CellText As String
Dim RowNum As Long
Dim ColNum As Long
Dim FNum As Long
Dim TotalRows As Double
Dim TotalCols As Double
' Show Save As dialog box with the .TXT file name as the default.
' Test to see what kind of system this macro is being run on.
If Left(Application.OperatingSystem, 3) = "Win" Then
SaveFileName = Application.GetSaveAsFilename(CurFile, _
"Text Delimited (*.txt), *.txt", , "Text Delimited Exporter")
Else
SaveFileName = Application.GetSaveAsFilename(CurFile, _
"TEXT", , "Text Delimited Exporter")
End If
' Check to see if Cancel was clicked.
If SaveFileName = False Then
WriteFile = "Canceled"
Exit Function
End If
' Obtain the next free file number.
FNum = FreeFile()
' Open the selected file name for data output.
Open SaveFileName For Output As #FNum
' Store the total number of rows and columns to variables.
TotalRows = Selection.Rows.Count
TotalCols = Selection.Columns.Count
' Loop through every cell, from left to right and top to bottom.
For RowNum = 1 To TotalRows
For ColNum = 1 To TotalCols
With Selection.Cells(RowNum, ColNum)
Dim ColWidth As Integer
ColWidth = Application.RoundUp(.ColumnWidth, 0)
' Store the current cells contents to a variable.
Select Case .HorizontalAlignment
Case xlRight
CellText = Space(ColWidth - Len(.Text)) & .Text
Case xlCenter
CellText = Space((ColWidth - Len(.Text)) / 2) & .Text & _
Space((ColWidth - Len(.Text)) / 2)
Case Else
CellText = .Text & Space(ColWidth - Len(.Text))
End Select
End With
CellText = CellText & delimiter
Print #FNum, CellText;
' Update the status bar with the progress.
Application.StatusBar = Format((((RowNum - 1) * TotalCols) _
+ ColNum) / (TotalRows * TotalCols), "0%") & " Completed."
' Loop to the next column.
Next ColNum
' Add a linefeed character at the end of each row.
If RowNum <> TotalRows Then Print #FNum, ""
' Loop to the next row.
Next RowNum
' Close the .prn file.
Close #FNum
' Reset the status bar.
Application.StatusBar = False
WriteFile = "Exported"
End Function
Maximum number of simultaneous requests
In the CF Administrator there is a setting Maximum number of simultaneous requests and I believe a fresh install defaults the value to 8.
But what should this setting be?
Well, not 100. :)
Seriously though the setting should be between 3 to 10 for a single processor machine, and between 6 to 20 for a dual processor machine.
A good reference for ColdFusion Administrator Tweaking is the ColdFusion MX: Tips for performance and scalability
January 15, 2004
Transitioning a project
Recently, we have had to transition several items within my team. Skillful transition documentation is an art. Its hard to be encompassing and clear at the same time. Information that we try to pass onto others are:
The task along with any associated tracking number
Description of the Task
Reason for the Task
User Contact Information
Vendor Contact Information
What has been done
What needs to be done
Application Information
Application Type
Location
Documentation Location
ODBC info
Database Location (Develop/Test/Prod)
Source Code Location(Develop/Test/Prod)
Any associated usernames and passwords
Testing Cases
Outstanding Issues and What has been attempted to resolve
What this task is dependent upon
What order to move things live.
So far this has worked well, Is there any additional information you would include?
January 14, 2004
net helpmsg ###
Ever try to figure out what an error message means?
A quick command that gives the error message is:
For example error 232,
typing "net helpmsg 232" returns The pipe is being closed.
Patterns and AntiPatterns
After you have been at something long enough, you begin to recognize patterns.
There are patterns of communication, or lack there of. There are patterns of requirements for software projects. There are patterns of implementations for vendor solutions.
A couple of pattern sites, I've come across are:
Portland Pattern Repository
Core J2EE Patterns
Enterprise Integration Patterns
Patterns Central
Data and Object Factory
AntiPatterns
Do you have a favorite pattern site?
January 13, 2004
Unable to Connect to JRun
Yesterday was good day, on one of our CFMX 6.1 servers, every two hours all cold fusion pages returned with the error unable to connect to JRUN. The Cold Fusion Application Server Service wouldn’t restart, and we would have to reboot the machine.
In looking at the jrun logs in cf_root\runtime\logs, there was the error java.lang.OutOfMemoryError. And not much more information.
Because this happened suddenly, and there were no changes to the server. It was a perplexing situation. After successfully ruling out other options, we determined it had to do with the configuration settings of the JVM.
In, cf_root\runtime\bin\jvm.config, the default settings are
java.args=-server -Xmx512m -Dsun.io.useCanonCaches=false -Xbootclasspath/a:"{application.home}/../lib/webchartsJava2D.jar" -XX:MaxPermSize=128m -XX:+UseParallelGC -DJINTEGRA_NATIVE_MODE -DJINTEGRA_PREFETCH_ENUMS
Or Can be seen in the CF Administrator under the Java and JVM.
-server -Dsun.io.useCanonCaches=false -Xbootclasspath/a:"{application.home}/../lib/webchartsJava2D.jar" -XX:MaxPermSize=128m -XX:+UseParallelGC
The problem turned out to be with the heap memory size.
In the Java Virtual Machine, the Heap Layout is in three sections:
- Young generation who’s purpose is to hold newly created objects.
- Old generation that contains long withstanding objects.
- Permanent generation which stores class objects.
The total size of the young generation and old generation is manipulated by the –Xmx in the Jvm.config file or Maximum JVM Heap Size in the CF Administrator. In CF, this setting translates into initiated objects and the time in memory they are. (Remember it also includes the CFMX Application and any programming classes you have initiated)
The size of the permanent generation is manipulated by the –XX:MaxPermSize switch. For CF what this means is that this switch size has to be larger than the size of the all of the compiled web page classes.
If you think you are in a similar situation, I would recommend adding the following debugging settings to the JVM arguments, and restart the server. These arguments will help you to see the settings of the above, and if you are close or nearby in the values.
-verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails
Reference:
Tuning Garbage Collection with the 1.4.2 Java[tm] Virtual Machine
Turbo-charging Java HotSpot Virtual Machine, v1.4.x to Improve the Performance and Scalability of Application Servers
January 12, 2004
Web Stress Testing
Every so often it is good to stress test applications and web servers to see if load is possibly a problem.
A cheap tool to do that is the Microsoft Web Application Stress Tool.
Intranet Consolidation
Builder.com has an interesting article on how to consolidate your intranet infrastructure.
According to the article, an intranet can be each of these things individually. In my experience however it is a collection of these items.
<--- Snipped from Builder.com --->
A dashboard for the corporation—Is the core of your intranet designed to bring together reporting numbers from various Web-based systems into one dashboard where management can see how the company is doing at a glance?
Dashboard for internal applications—Is your intranet site simply navigation for getting to all of the internal Web applications that have proliferated over the past several years?
File repository—Is it a file repository that is designed to replace or supplement your existing file servers? File-based intranets allow for more categorization of files and more regimented tagging of files, but the increased organization may be resisted by users.
Collaboration—If you have teams of people who need to share calendars, to-do lists, or project plans, you'll have a site that focuses on the collaborative opportunities of an intranet. This type of foundation most highly values the ability for groups to maintain their own rapidly changing information.
Corkboard—Some organizations use the intranet as a virtual corkboard. It's a place where the human resources department can place notices about changes to health benefits, for example. Some extend this concept further, allowing anyone who has something to say to post a note on the intranet.
January 11, 2004
News from a Healthcare Vendor
I came across this site today, and I really like the concept behind it.
I've mentioned before the poor sense of community most Healthcare IT vendors create. This gentleman with moveabletype and vBulletin has an excellent site that would help create a community at any vendor organization.
CFC Dump
A nice dumping and documenting a cfc can be found here.
CFCDocumenter covers the last time the cfc was modified and the public methods in detail.
January 10, 2004
CSS Lists
A good explaination and usage of CSS lists can be found here. There is even a nice breadcrumb attribute.
January 9, 2004
Blogman SHTML
On the last DRK 5, there was the release of the blogman application. The blog man application mainly runs off of .shtml.
.Shtml is a default of the IIS installation, however it needs to be configured in the documents for individual folders.
So, right click on the default blog entry folder you would like to display, select the documents tab. And add index.shtml and default.shtml to the documents selection. This will cause the folder to go to view index.shtml when the folder is viewed.
Negotiation Moves
One of the constants in business is negotiation. It's absolutely amazing the amount of negotiations and the items that are negotiated.
There are standard tactics that one takes when negotiating. Sometimes individuals make a strong move, and they challenge competence or expertise. Other times within that move they demean ideas, and others are just criticizing emotional behavior.
A move is a strategic tactic to shift the balance of power from one party to another. It is good to recognize that for what it is, and to bluntly state that.
For instance, when one of the above moves is done. If possible wait a while to respond, or simply state what type of move was done upon oneself. Question the other party, how would you respond if asked that question? Also correcting the opposing party with educated responses is good. Finally divert attention from the move by looking to other ways to come upon a mutually accepted solution.
Business Mindset vs Technical Mindset
The Business process owners and the technies just think differently. Its engrained in their basic thought pattern. They take different educational routes and have different thought processes. And that is just good! The diversity enhances the solution to issues. These differences bring up varying risks to projects and implementations, but also varying solutions.
It is important to respect the differences and welcome them, don't eliminate the choice by saying that it doesn't warrant consideration because it came from a techie, or it came from a user.
January 8, 2004
Cold Fusion MX Debugging Report Execution Times
Report Execution Time, allows developers to see the execution time of a page within Cold Fusion when debugging is set for the IP address. It helps to identify pages that take longer to load the the predefined minimum runtime.
With Mach-II framework, the Report Execution Times must be turned off permanently. Otherwise any debugging done on the box with this setting severly degrades the performance of any mach-ii application.
For any application that does not use the mach ii framework, a developer can utilize the following code on the page
<cfif CGI.Remote_Addr is Variables.DebuggingIp>
<cfset Variables.PageStart = GetTickCount()>
</cfif>
<cfif CGI.Remote_Addr is Variables.DebuggingIp>
<cfset Variables.PageEnd = GetTickCount()>
<cfset Variables.PageTime = Variables.PageEnd - Variables.PageStart>
<cfoutput><em>Execution Time: #Variables.PageTime#</em></cfoutput>
</cfif>
For the mach ii framework, there is a trace plugin available to capture this information.
January 6, 2004
Testers
Some people are natural testers. They are diligent in finding errors, glad uncovering as many as possible. Looking at the same sequence of events in several different ways. Always finding the sequence that finds the error.
If you come across a good tester, consider yourself lucky. You have just increased your company's product tenfold.
January 5, 2004
SQL Server Indexing
Looking for a good script to check if you need to reindex your databases.
Here are a couple goodies. Remember to run the reindexing at a very low usage time, they take up a little bit of resources.
CMS Forum
Thinking of putting in a Content Management System?
CMS-Forum.org is definitely a web site worth checking out. It covers the latest news on CMS system, like EMC's bid for Documentum, forum discussions on different vendors, and tips like failed CMS projects.
January 2, 2004
Software Licensing Fees
The wsj today details the software licensing disagreement between Fluor and SAP. (paid subscription required) The article details Fluor’s frustration over the software licenses fees supposedly required by SAP to upgrade the software version, or pay higher maintenance fees.
I don’t think this is the only case. I think the software licensing agreements need to be revisited and rethought. In today’s post dot com software economy, it is good to have innovation, but not to break the user’s piggy bank for that innovation. I also believe that the software company’s deserve profitable reimbursement for their innovation. Licensing fees are long term receivables for a software company, and can assist to cover the research and development costs of new products. However, when the three year combined licensing and support costs of software far doubles the initial cost and implementation of the product. There is a problem. Especially if the development cycle for a new product is every 18 months. Do you sustain the expense of licensing the older product now two versions behind? Do you deal with the fact that the technology is outdated, and the platform may be unsupported? Do you suffer the traumatic highs and lows of the hype cycle and stay with the newer product, incurring two cycles of implementation and upgrades in addition to support costs? No easy solution here, just a large expense, and a high risk or a high risk.
January 1, 2004
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 | 31 |
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
December 2006
November 2006
August 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
November 2005
October 2005
September 2005
August 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
January 2004
December 2003
November 2003
October 2003
Interface Engines for Healthcare
Chatty Fig
IT SKILLS
Health Care IT Forums
Mind Map for an Electronic Health Record
Open Source Content Management Systems
System Testing
Thinking Mindset
IS Shortcomings
Certifications in the Industry
Humans and Machines
Monthly Status
HL7 Interface Engines
FarCry v2.1
MT v2.66* and MT-Blacklist v1.6.2
The Business of Canned Reports
Mach II: framework or methodology
Window NT Error 232 and 109
requestTimeOut
Joel on Software
David Ross
Edward Prevost
Martin Fowler
The Health Care Blog
The Tales of Hoffman
The Business Word
Medical Rants
Christina's Considerations
Paul Levy
RSS feed




