<?xml version="1.0" encoding="utf-8"?>
			
			<rss version="2.0">
			<channel>
			<title>THE AMCOM TECHNOLOGY BLOG - ColdFusion</title>
			<link>http://www.amcomtech.net/client/index.cfm</link>
			<description>Tech Tips from the Trenches</description>
			<language>en-us</language>
			<pubDate>Tue, 07 Sep 2010 15:49:28 -0700</pubDate>
			<lastBuildDate>Thu, 12 Aug 2010 15:48:00 -0700</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>admin@amcomtech.net</managingEditor>
			<webMaster>admin@amcomtech.net</webMaster>
			
			
			
			
			
			<item>
				<title>Sr. CF/Web Engineer Position. San Ramon/Bay Area, CA.</title>
				<link>http://www.amcomtech.net/client/index.cfm/2010/8/12/Sr-CFWeb-Engineer-Positition-San-RamonBay-Area-CA</link>
				<description>
				
				&lt;span class=&quot;Title&quot;&gt;Job Title: Sr. Web Software Engineer&lt;/span&gt;

&lt;span class=&quot;SubTitle&quot;&gt;Parameters:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt; Location: San Ramon, CA
&lt;li&gt; Salary: DOE
&lt;li&gt; Telecommute: Not available. Position requires face to face interaction with our onsite customer.
&lt;li&gt; &lt;b&gt;U.S Citizenship or Greencard&lt;/b&gt; required.
&lt;li&gt; Relocation available.
&lt;li&gt; Salary: Above competitive.
&lt;/ul&gt;


&lt;span class=&quot;SubTitle&quot;&gt;Description:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt; Do you spend most of your time in traffic thinking about how to solve certain problems? 
&lt;li&gt; Do you try to squeeze in one extra line of code before you have to go home? 
&lt;li&gt; Do you spend time thinking if there&apos;s a better way to do something? 
&lt;li&gt; Do you pay attention to the industry?
&lt;/ul&gt;

&lt;b&gt;Amcom Technology, Inc.&lt;/b&gt; is looking for an experienced Software Engineer to join our product development team (full time). 
As part of a team based environment the position involves working on mission critical web based solutions that enable the efficiency and growth
 of our clients utilizing rapid application prototyping methodologies and rich internet application development.
&lt;P&gt;
&lt;P&gt;
We are looking for highly self motivated team oriented people who have a passion for solving both technical and non-technical problems.
&lt;P/&gt;

&lt;span class=&quot;SubTitle&quot;&gt;Work closely with customers...&lt;/span&gt;
As a consulting company, this position entails working closely with the customer throughout the entire life cycle of the project. 
From the inception of the project where problem definition and business requirements are defined, to agile development and release, and assisting in achieving project ROI.

&lt;P/&gt;

&lt;span class=&quot;SubTitle&quot;&gt;Wear many hats...&lt;/span&gt;
The primary role is that of development (80%-90%); however wearing many hats is a must. 
The various hats that can be worn, but not limited to, include: process engineer, release engineer, business analyst, 
I.T analyst, team lead, DBA, information architect, technical architect, usability engineer, designer, project manager, and product managers.
&lt;P&gt;
One of the advantages of working with Amcom is that your position can be custom tailored. 
&lt;P&gt;


&lt;span class=&quot;SubTitle&quot;&gt;Influence change...&lt;/span&gt;
Working directly with our customers, often interfacing directly with the President and Executive staff, this position is a highly visible one. 
The ability to completely influence from a corporate level the processes and policies of technology and business management are very prevalent. 

&lt;P&gt;

&lt;span class=&quot;SubTitle&quot;&gt;Leadership at all levels...&lt;/span&gt;
The position is a time demanding one, and requires someone naturally diligent, highly organized, self-motivated, extremely focused, 
and has a &quot;do whatever it takes to win&quot; attitude. Amcom believes in leadership at all levels - we expect people to step up and lead in their areas.

&lt;P&gt;

&lt;span class=&quot;SubTitle&quot;&gt;Opportunities for growth...&lt;/span&gt;
As you grow we grow. All members of the team are critical to the growth of the company, and with that growth comes new opportunities. 
The further you progress with your talents and skills, the bigger the goals we&apos;re capable of achieving.

&lt;P&gt;

&lt;span class=&quot;SubTitle&quot;&gt;The Mission...&lt;/span&gt;
Your mission, should you choose to accept it, is to create great user experiences for our customers and users;
 from the experience of developing software, to the experiences of the software itself.
&lt;P&gt;

&lt;span class=&quot;SubTitle&quot;&gt;Basic Requirements:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt; Work with team members to help translate customer needs into design/application specifications.
&lt;li&gt; Architect, develop and design detailed prototypes and Web/RIA interfaces.
&lt;li&gt; Work directly with clients to finalize application requirements.
&lt;li&gt; Document all forms of knowledge (processes, procedures, specifications, designs, code).
&lt;li&gt; Create and maintain database-driven web applications.
&lt;li&gt; Integrate online applications with back-end systems (Web Services, SOAP, REST, etc).
&lt;li&gt; Learn customer business models in order to lead technical solutions.
&lt;/ul&gt;

&lt;span class=&quot;SubTitle&quot;&gt;Required Technical Proficiencies:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt; 8+ Years of Software Development Experience.
&lt;li&gt; Advanced Level with a Web Programming technology (PHP, .NET, JSP, etc...), preferrably ColdFusion. 
&lt;li&gt; We are a ColdFusion shop, and thus would require learning ColdFusion if necessary.
&lt;li&gt; Advanced Levels with SQL, CSS, JavaScript, Web Services, XML.
&lt;li&gt; Usability Best Practices.
&lt;li&gt; Systems Architecture, Data Analysis, and Software Architecture.
&lt;/ul&gt;

&lt;span class=&quot;SubTitle&quot;&gt;Desired Technical Proficiencies:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;	Familiarity with Frameworks and Design Patterns.
&lt;li&gt;	Understanding of Agile development practices and concepts.
&lt;li&gt;	ColdFusion
&lt;li&gt;	Crystal Reports
&lt;li&gt;	jQuery
&lt;li&gt;	Flex
&lt;li&gt;	Drools
&lt;li&gt;	Groovy/Grails
&lt;li&gt;	ColdBox
&lt;li&gt;	Transfer
&lt;li&gt;	ColdSpring
&lt;li&gt;	Hibernate

&lt;/ul&gt;


&lt;span class=&quot;SubTitle&quot;&gt;General Business and Customer skills required:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt; Close attention to detail.
&lt;li&gt;	Ability to effectively test and document your own work.
&lt;li&gt;	Great organizational and time-management skills, including an ability to estimate project completion times.
&lt;li&gt;	Ability to juggle multiple projects, tasks, and deadlines.
&lt;li&gt;	&lt;b&gt;Self-motivated&lt;/b&gt; and self-directed: We need someone who will &lt;b&gt;proactively tackle challenges&lt;/b&gt;, and propose innovative solutions.
&lt;li&gt;	Great communication skills: both written and verbal (Developers  respond directly to client requests, so the ability to correspond professionally is critical).
&lt;li&gt;	Properly assess and meet customer needs in a professional and courteous manner.
&lt;li&gt;	Anticipate customers&apos; needs and communicates/pitches new ideas.
&lt;/ul&gt;

&lt;span class=&quot;SubTitle&quot;&gt;Salary:&lt;/span&gt;
&lt;ul&gt;
  &lt;li&gt;	Dependent on skills and experience.
&lt;/ul&gt;

&lt;span class=&quot;SubTitle&quot;&gt;Contact:&lt;/span&gt;
&lt;ul&gt;
  &lt;li&gt; Tariq Ahmed (Manager of Product Development). jobs @ amcomtech.net
  &lt;li&gt; Direct-Hire only, no recruiters please.
&lt;/ul&gt;

&lt;span class=&quot;Title&quot;&gt;About Amcom (&lt;a href=&quot;http://www.amcomtech.net&quot;&gt;www.amcomtech.net&lt;/a&gt;):&lt;/span&gt;
&lt;P&gt;
Amcom Technology is a member of the Amcom companies located in the San Francisco Bay Area (San Ramon). The company provides premium end-to-end technology services from Web 2.0/RIA software development, to network infrastructure and business intelligence.
&lt;P&gt;
Amcom consists of two other divisions which include Amcom Data Processing (ADP) and Amcom Computer Services (ACS).
&lt;P&gt;
Amcom Data Processing was founded on April 1, 1973, and has been involved with the oil industry since 1978 with distributors and retail operations. The company currently has relationships with six major oil companies and specializes in the premiere software solutions for the Service Station industry. 
&lt;P&gt;
Amcom Computer Services focuses on outsourcing, facilities management, programming, training, and supporting computer systems of small and medium sized businesses.

&lt;P&gt;
&lt;span class=&quot;Section&quot;&gt;
&lt;a href=&quot;http://www.amcomtech.net/jobs/SrWebEngineer.pdf&quot;&gt;&lt;b&gt;&lt;i&gt;Acrobat PDF Version available&lt;/i&gt;&lt;/b&gt;&lt;/a&gt;
&lt;/span&gt;
				
				</description>
						
				
				<category>ColdFusion</category>				
				
				<category>Jobs</category>				
				
				<pubDate>Thu, 12 Aug 2010 15:48:00 -0700</pubDate>
				<guid>http://www.amcomtech.net/client/index.cfm/2010/8/12/Sr-CFWeb-Engineer-Positition-San-RamonBay-Area-CA</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>When ColdFusion Report Builder seems to mangle reports</title>
				<link>http://www.amcomtech.net/client/index.cfm/2010/3/12/When-ColdFusion-Report-Builder-seems-to-mangle-reports</link>
				<description>
				
				We were working on an existing ColdFusion Report Builder (CFRB) report, and it ran fine and all that. But the mere act of just saving it seemed to corrupt the reports display.
&lt;P&gt;
What we found was that some of the item/fields don&apos;t retain all the metadata that they&apos;re supposed to. Turned out they were set to not visible or they were set too small.
&lt;P&gt;
Additionally another issue is that your desktop needs to have all the fonts utilized by the report.
&lt;P&gt;
Thanks to Jon Hirschi for figuring this out!
				
				</description>
						
				
				<category>ColdFusion</category>				
				
				<pubDate>Fri, 12 Mar 2010 16:08:00 -0700</pubDate>
				<guid>http://www.amcomtech.net/client/index.cfm/2010/3/12/When-ColdFusion-Report-Builder-seems-to-mangle-reports</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Importing Excel Spreadsheets. The Easy Way</title>
				<link>http://www.amcomtech.net/client/index.cfm/2009/11/5/Importing-Excel-Spreadsheets-The-Easy-Way</link>
				<description>
				
				Recently I was asked to import data into our system using a spreadsheet provided by the client. There are, of course, numerous ways to go about this, including using tools built into SQL Server (DTS/SSI). However, I wanted to provide tool that the client could use to perform these imports themselves, in the future.

The obvious choice was a web-based tool. The client is used to web-based interfaces and I could also leverage some new functionality in ColdFusion 9. I knew that ColdFusion now has the cfspreadsheet tag, and it was a great opportunity to test this.

The spreadsheet provided to me was over 42,000 rows of data. This seemed like a lot for a spreadsheet! After reading through the documentation on the cfspreadsheet tag, I determined, for my use, that converting the contents to a query object was probably going to make it easiest to work with. I simply provided a form for the client to upload the Excel file to the server. Once the file was uploaded, I used the following to process the file and convert it to a query object:

&lt;code&gt;
&lt;cfspreadsheet action=&quot;read&quot;  
	src=&quot;#variables.uploadedFile#&quot;
	query=&quot;mySpreadsheet&quot;
	headerrow=&quot;1&quot;/&gt;
&lt;/code&gt;

I&apos;ll explain each of these attributes in minor detail:

action - This is what type of action we want to perform on the spreadsheet. The choice are read, update and write. 

src - The source of the Excel spreadsheet. In my case, this is a dynamic value, but does require an absolute path!

query - The name I am giving to my query object for future reference
headerrow - the row number in the spreadsheet which contains the column names

I&apos;d like to point out that if you do not define headerrow you will need to reference your column names as such: col_1, col_2, etc. If you do provide the headerrow attribute you MUST reference the columns by name.

Now referencing your spreadsheet data is simple! If you want to output the data to the screen, simply use cfoutput like you normally would for a query!

&lt;code&gt;
&lt;cfoutput query=&quot;mySpreadsheet&quot;&gt;
#column1# #column2#&lt;br /&gt;
&lt;/cfoutput&gt;
&lt;/code&gt;

It&apos;s that simple!

Instead of creating a query object you also have the ability to create a csv or html from your spreadsheet. to do this, using the following

&lt;code&gt;
&lt;cfspreadsheet action=&quot;read&quot;  
	src=&quot;#variables.uploadedFile#&quot;
	name=&quot;mySpreadsheet&quot;
	headerrow=&quot;1&quot;
        format=&quot;html/csv&quot; /&gt;
&lt;/code&gt;

By leaving out the format attribute, it will return a string. Regardless of which format you choose, you can output the data to the screen like this: 

&lt;code&gt;
&lt;cfoutput&gt;#mySpreadsheet#&lt;/cfoutput&gt;
&lt;/code&gt;

As you can see, the cfspreadsheet tag has made working with Excel files much easier!

I would like to point out a couple of caveats I experienced while working with the cfspreadsheet tag:

1. There&apos;s a bug, which I have yet to report, but will do soon. Essentially, if your spreadsheet contains pound signs (#), the read will fail. Hopefully this will get fixed soon. 

2. Spreadsheets with large amounts of data, such as my project with 42,000+ rows, may completely fail when using HTML or CSV format. I have a fairly beefy machine (multi-core, 6GB RAM) and could not get mine to process the file in HTML or CSV format. Your mileage may vary.

Overall, it looks like cfspreadsheet is a very valuable addition to the CFML language. Hopefully it will get updated over time to include other spreadsheet formats too, like Open Office! It certainly saved me considerable time in my project and will prove a valuable tool for the client for future use. Also, I know how to leverage this for future projects now, time well spent!
				
				</description>
						
				
				<category>ColdFusion</category>				
				
				<pubDate>Thu, 05 Nov 2009 19:20:00 -0700</pubDate>
				<guid>http://www.amcomtech.net/client/index.cfm/2009/11/5/Importing-Excel-Spreadsheets-The-Easy-Way</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Report builder and style issues</title>
				<link>http://www.amcomtech.net/client/index.cfm/2009/6/12/Report-builder-and-style-issues</link>
				<description>
				
				I started working with Report Builder today and things were going along just fine.  I was making some changes to the report, and adding in a bunch of styles, then ended up with some really wierd results once i shut the reports down and tried to open them back up again.

What appeared to be happening was that items that i had set up with a style were not staying set and that the report builder was forgetting the association with style.  But that turned out not to be the case.  

I decided to investigate a bit more and found out the following:

if you use a value outside of a normally used default value, in my case, we were using a font size of 7 (I know, really small right?) and it&apos;s not in a defined style, when you exit the file and load it back in, it will &quot;forget&quot; those values.

&lt;b&gt;To replicate:&lt;/b&gt;

create a new file, and create a text label.  enter some text in there.  change the font size to 7.  save the file.  then close the file.  Open the file up, and you&apos;ll see that the size has moved back up to the default font size....  How fun!! 

The work around is to define a style with the minimum size/style that you want and assign it to the text area that you define.

&lt;b&gt;Summary&lt;/b&gt;

This is my first time working with Report Builder in Coldfusion. I remember the hype about it a few years ago when they launched it, but it looks like it hasn&apos;t lived up to the hype... in some senses it seems like it would be easier/quicker/faster/more flexible/&lt;your word here&gt; to just create the report in CF and the pump it into pdf.
				
				</description>
						
				
				<category>ColdFusion</category>				
				
				<pubDate>Fri, 12 Jun 2009 19:11:00 -0700</pubDate>
				<guid>http://www.amcomtech.net/client/index.cfm/2009/6/12/Report-builder-and-style-issues</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Browser Memory Utilization</title>
				<link>http://www.amcomtech.net/client/index.cfm/2009/5/20/Browser-Memory-Utilization</link>
				<description>
				
				We have a large body of users who remote desktop into a small terminal services farm to run a web based intranet app.
&lt;P&gt;
The application was originally aimed at Internet Explorer (because of its integrated window security for automatic login), and the servers are nearing the edge of comfortability.
&lt;P&gt;
So while we look at expanding on the hardware side of things, we also took at look on the software side - specifically the browser (currently supporting IE7).
&lt;P&gt;
After doing some tests, we found some surprisingly results. Keep in mind this was by no means an exhaustive analysis, but a quick evaluation to see if any browser has a clear advantage with our intranet apps.
&lt;P&gt;
&lt;span class=&quot;Subtitle&quot;&gt;The Results&lt;/span&gt;&lt;br&gt;
To our surprise, IE8 actually runs the leanest overall:&lt;br&gt;
&lt;img src=&quot;/images/blog/browsermemoryusage.png&quot;&gt;
&lt;P&gt;
Here are some other observations/notes:
&lt;ul&gt;
 &lt;li&gt; Chrome and IE8 by default run each frame, pop-up window, and tab as a separate process (you&apos;ll see multiple .exe&apos;s running in the task manager). Most people don&apos;t know this and so it appears that the one Chrome process they look at seems like it&apos;s using incredibly low amounts of memory (but if you add it up, it&apos;s not as mindblasting).
 &lt;li&gt; We configured Chrome and IE8 to run as a single process.
 &lt;li&gt; Any theme, extension, add-on, toolbar, etc... to FireFox significantly increases memory usage. In the tests above, this was a FireFox running barebones. 
 &lt;li&gt; Chrome seems to have a significant advantage on pages that have a lot of JavaScript involved (e.g. the my.yahoo.com portal when logged in) - and IE8 did the worst. 
 &lt;li&gt; On the flipside with regular HTML pages that used simple JavaScript (e.g. form validation), IE8 did the best. Though Chrome was close on some of those occasions.
 &lt;li&gt; Was unable to test Safari 3 and 4, they flat out didn&apos;t work on the Intranet.
&lt;/ul&gt;
&lt;P&gt;
The next thing that would be interesting is to go through a series of planned steps for a period of an hour and see how well they do.
				
				</description>
						
				
				<category>ColdFusion</category>				
				
				<category>Software Development</category>				
				
				<pubDate>Wed, 20 May 2009 15:01:00 -0700</pubDate>
				<guid>http://www.amcomtech.net/client/index.cfm/2009/5/20/Browser-Memory-Utilization</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Split Screen View in Eclipse</title>
				<link>http://www.amcomtech.net/client/index.cfm/2009/1/16/Split-Screen-View-in-Eclipse</link>
				<description>
				
				&lt;p&gt;Most IDEs offer what&apos;s known as a &quot;split screen&quot; view.  In such a view, while editing a single file, you can horizontally &quot;split&quot; the page in the editor and scroll each section individually.  This is useful when you&apos;ve got a particularly long file to edit, and you need to see some code at the top of the page while editing code at the bottom (or really, editing any part of the page that might depend on another part that would have otherwise scrolled off of the page).&lt;/p&gt;

&lt;p&gt;A co-worker is trying to make the change from his current IDE to Eclipse and recently asked whether or not this functionality is there.  The answer is yes.  Kind of.  It&apos;s not a &quot;true&quot; split screen view, but here&apos;s how to get as close to it as is currently possible within Eclipse.&lt;/p&gt;
				 [More]
				</description>
						
				
				<category>Tools of the Trade</category>				
				
				<category>ColdFusion</category>				
				
				<category>Software Development</category>				
				
				<pubDate>Fri, 16 Jan 2009 14:36:00 -0700</pubDate>
				<guid>http://www.amcomtech.net/client/index.cfm/2009/1/16/Split-Screen-View-in-Eclipse</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>MAX 2008: New ColdFusion IDE Announced (&quot;Bolt&quot;)</title>
				<link>http://www.amcomtech.net/client/index.cfm/2008/11/18/MAX-2008-New-ColdFusion-IDE-Announced</link>
				<description>
				
				&lt;p&gt;&lt;img src=&quot;http://www.amcomtech.net/client/images/bolt.jpg&quot; align=&quot;right&quot; style=&quot;padding-left:10px; width:140px; height:122px;&quot; alt=&quot;Bolt&quot; title=&quot;Bolt&quot; /&gt;Like many folks, I wasn&apos;t fortunate enough to be able to attend MAX this year, but thru the magic of the interwebs we were all able to &quot;listen in&quot; on today&apos;s keynote.&lt;/p&gt;

&lt;p&gt;Some interesting information about FlexBuilder and Dreamweaver... but the big news for me, as well as a lot of ColdFusion developers, was the announcement of &lt;b&gt;Bolt&lt;/b&gt;, a new Eclipse-based ColdFusion IDE.&lt;/p&gt;

&lt;p&gt;There is not a lot of information available yet.  The product isn&apos;t available for download.  The best you can do is sign up for Adobe&apos;s prerelease program at &lt;a href=&quot;http://www.adobe.com/go/boltprerelease&quot;&gt;http://www.adobe.com/go/boltprerelease&lt;/a&gt;.  What little information there is can be found at &lt;a href=&quot;http://labs.adobe.com/wiki/index.php/Bolt&quot;&gt;http://labs.adobe.com/wiki/index.php/Bolt&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Looking forward to hearing more about Bolt as information becomes available, as well as eventually test-driving a beta.&lt;/p&gt;

&lt;p&gt;PS - Yes, I&apos;m aware that the Bolt image above isn&apos;t the ColdFusion IDE Bolt.  Best I could do for now.  Hopefully Disney doesn&apos;t sue. :) &lt;/p&gt;

&lt;p style=&quot;background-color:#ececec; margin-top:16px; margin-bottom:16px; border:1px solid black; padding:8px;&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;width:96%;&quot;&gt;&lt;tr style=&quot;vertical-align:top;&quot;&gt;&lt;td&gt;&lt;b&gt;UPDATE:&lt;/b&gt;&lt;br /&gt;via &lt;a href=&quot;http://www.webbschofield.com/index.cfm/2008/11/18/New-ColdFusion-IDE--BOLT-announced-at-MAX&quot;&gt;Kristen Schofield&apos;s blog&lt;/a&gt;, what I assume to be the actual Bolt logo:&lt;/td&gt;
&lt;td style=&quot;text-align:right;&quot;&gt;&lt;img src=&quot;http://www.amcomtech.net/client/images/BOLT1.png&quot; style=&quot;padding-left:24px;&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;
				
				</description>
						
				
				<category>ColdFusion</category>				
				
				<pubDate>Tue, 18 Nov 2008 14:29:00 -0700</pubDate>
				<guid>http://www.amcomtech.net/client/index.cfm/2008/11/18/MAX-2008-New-ColdFusion-IDE-Announced</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Structures and Pointers</title>
				<link>http://www.amcomtech.net/client/index.cfm/2008/11/10/Structures-and-Pointers</link>
				<description>
				
				&lt;p&gt;This is one of those entries that&apos;s kind of embarrassing to write, because I&apos;d like to think that after doing this for as long as I have, it wouldn&apos;t have been an issue that stumped me for an hour.  But it did.  And I&apos;d like to think that it may potentially stump somebody else, so let&apos;s get it out in the open and try to save somebody else an hour.&lt;/p&gt;

&lt;p&gt;I had data that related to 3 distinct entities.  Let&apos;s say those entities were representations of an employee (a nice textbook-ish example).  Employees have names, phone numbers, and departments.  I want to store that information in a structure for each employee, and put each structure into an array.  Here&apos;s how I went about doing that:&lt;/p&gt;

&lt;pre class=&quot;coldfusion&quot; name=&quot;code&quot;&gt;
&amp;lt;cfscript&gt;
	employees		= arrayNew(1);
	employeeStruct	= structNew();
	// populate employeeStruct, append to array
	employeeStruct.name		= &quot;Bob Smith&quot;;
	employeeStruct.phone	= &quot;800.555.1212&quot;;
	employeeStruct.dept		= &quot;Marketing&quot;;
	arrayAppend(employees, employeeStruct);
	// populate employeeStruct, append to array
	employeeStruct.name		= &quot;John Jones&quot;;
	employeeStruct.phone	= &quot;800.555.1313&quot;;
	employeeStruct.dept		= &quot;HR&quot;;
	arrayAppend(employees, employeeStruct);
	// populate employeeStruct, append to array
	employeeStruct.name		= &quot;Frank Wilson&quot;;
	employeeStruct.phone	= &quot;800.555.1414&quot;;
	employeeStruct.dept		= &quot;IT&quot;;
	arrayAppend(employees, employeeStruct);
&amp;lt;/cfscript&gt;&lt;/pre&gt;
				 [More]
				</description>
						
				
				<category>ColdFusion</category>				
				
				<pubDate>Mon, 10 Nov 2008 15:48:00 -0700</pubDate>
				<guid>http://www.amcomtech.net/client/index.cfm/2008/11/10/Structures-and-Pointers</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Use SeeFusion&apos;s HTML interface when CPU is pegged</title>
				<link>http://www.amcomtech.net/client/index.cfm/2008/11/4/Use-SeeFusions-HTML-interface-when-CPU-is-pegged</link>
				<description>
				
				We love SeeFusion - its been a life safer in helping isolate slow running pages and queries.
&lt;P&gt;
But when CPU/Memory is totally pegged on the server its Flex interface may not load. As an alternative you can load it&apos;s HTML only interface which gives you a chance to spot the offending page/query.
&lt;P&gt;
To do this add /html to the SeeFusion URL. E.g instead of http://machine:8999, use http://machine:8999/html.
&lt;P&gt;
You can also kill a process from this page, but when it does that it&apos;ll redirect you back to the Flex interface. If it&apos;s still not loading, just go back manually to the HTML page to see if the process has been killed.
&lt;P&gt;
When killing processes with SeeFusion, you may need to do it a few times. The first attempts will try to do it gracefully, whereas subsequent attempts will try a hard kill.
				
				</description>
						
				
				<category>ColdFusion</category>				
				
				<pubDate>Tue, 04 Nov 2008 13:21:00 -0700</pubDate>
				<guid>http://www.amcomtech.net/client/index.cfm/2008/11/4/Use-SeeFusions-HTML-interface-when-CPU-is-pegged</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>AJAX/JS Framework Showdown - jQuery vs Spry</title>
				<link>http://www.amcomtech.net/client/index.cfm/2008/10/29/AJAXJS-Framwork-Showdown--jQuery-vs-Spry</link>
				<description>
				
				&lt;p&gt;In an ongoing effort to put together our development standards at Amcom, we&apos;re currently researching AJAX/JS frameworks.  The choices have been essentially narrowed down to &lt;a href=&quot;http://labs.adobe.com/technologies/spry/home.html&quot;&gt;Spry&lt;/a&gt; or &lt;a href=&quot;http://jquery.com/&quot;&gt;jQuery&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I haven&apos;t done a considerable amount of work with either, but my personal preference leans towards jQuery.  I&apos;m more familiar with it than Spry (while I haven&apos;t really gotten my hands too dirty with it, I&apos;ve used a number of jQuery plugins), and being someone who likes JavaScript I&apos;m comfortable with the syntax.&lt;/p&gt;

&lt;p&gt;The boss, however, being a big Flex guy, really gravitates towards the Spry syntax, as it&apos;s more familiar to him.  The boss, being a fair and noble kind of boss (yes, he reads the blog), told me to go out and do an objective analysis of the two and see if one comes out significantly ahead of the other.&lt;/p&gt;

&lt;p&gt;I built a few demo apps using each (&lt;a href=&quot;http://amcomtech.net/labs/ajaxframeworks/&quot;&gt;http://amcomtech.net/labs/ajaxframeworks/&lt;/a&gt;) and from a technical perspective I have to admit, it&apos;s still kind of a tie.&lt;/p&gt;
				 [More]
				</description>
						
				
				<category>jQuery</category>				
				
				<category>Tools of the Trade</category>				
				
				<category>Spry</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Wed, 29 Oct 2008 13:57:00 -0700</pubDate>
				<guid>http://www.amcomtech.net/client/index.cfm/2008/10/29/AJAXJS-Framwork-Showdown--jQuery-vs-Spry</guid>
				
				<enclosure url="http://www.amcomtech.net/client/enclosures/labs.zip" length="129694" type="text/plain"/>
				
			</item>
			
		 	
			
			
			<item>
				<title>My Introduction to Image Manipulation in ColdFusion8</title>
				<link>http://www.amcomtech.net/client/index.cfm/2008/10/16/My-Introduction-to-Image-Manipulation-in-ColdFusion8</link>
				<description>
				
				&lt;p&gt;One of our client web sites allows users to generate custom marketing materials and save them as PDF files.  We had a request yesterday to allow users to save these PDFs as images so that they could embed them directly into e-mails, as opposed to sending as attachments.  Sounded like a job for some of the new image manipulation capabilities of ColdFusion 8.  I&apos;d not yet had the opportunity to play around with this new functionality, so I was looking forward to it.&lt;/p&gt;

&lt;p&gt;At first, I thought it was going to be as easy as using &amp;lt;cfpdf&amp;gt; with the &quot;thumbnail&quot; action.  The hitch that I ran into was that some of the PDFs are multiple pages, and &amp;lt;cfpdf action=&quot;thumbnail&quot;&amp;gt; generates a thumbnail image for each page.  So the challenge was combining each of those individual thumbnails into a single image file.  That&apos;s where I really got to get my hands dirty with the new built-in image functions.  Here&apos;s what I came up with (breakdown follows the code):&lt;/p&gt;
				 [More]
				</description>
						
				
				<category>ColdFusion</category>				
				
				<pubDate>Thu, 16 Oct 2008 13:44:00 -0700</pubDate>
				<guid>http://www.amcomtech.net/client/index.cfm/2008/10/16/My-Introduction-to-Image-Manipulation-in-ColdFusion8</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>cfcatch Gotcha (it got me)</title>
				<link>http://www.amcomtech.net/client/index.cfm/2008/10/9/cfcatch-Gotcha-it-got-me</link>
				<description>
				
				&lt;p&gt;The other day I had a client call about a bug in an application that we had released a few weeks back.  This particular piece of the application allows users to import an Excel spreadsheet, which is parsed and inserted into a database.  The reported bug was that the user (apparently) successfully imported their .xls file (no errors were reported by the system), but the records didn&apos;t show up in subsequent searches.  Hmm....&lt;/p&gt;

&lt;p&gt;The majority of the import happens within a single method.  At the top of the method, I declare a variable to hold any potential error messages... initially set to an empty string:&lt;/p&gt;

&lt;pre class=&quot;coldfusion&quot; name=&quot;code&quot;&gt;&amp;lt;cfset var insertErrorMsg = &quot;&quot; /&gt;&lt;/pre&gt;

&lt;p&gt;Further down in the method, the actual SQL INSERT is done within a &amp;lt;cftry&amp;gt; block.  actually, it&apos;s a number of INSERTs done inside of a &amp;lt;cfloop&amp;gt;.  after each INSERT, i have the following &amp;lt;cfcatch&amp;gt;:&lt;/p&gt;

&lt;pre class=&quot;coldfusion&quot; name=&quot;code&quot;&gt;
&amp;lt;cfcatch type=&quot;database&quot;&gt;
	&amp;lt;cfset insertErrorMsg = cfcatch.detail /&gt;
	&amp;lt;cfbreak /&gt;
&amp;lt;/cfcatch&gt;
&lt;/pre&gt;

&lt;p&gt;At the end of the method, if the length of the value of the insertErrorMsg variable is 0, I assume all is well and indicate to the user that their import was successful.&lt;/p&gt;

&lt;p&gt;In this case, however, all was not well.  Something went horribly, horribly wrong and under a specific set of circumstances (which I later identified), a specific variable that was intended to be an integer was sent into the method as an empty string.  ColdFusion would error with &lt;b&gt;Invalid data &apos;&apos; for CFSQLTYPE CF_SQL_INTEGER&lt;/b&gt;.  Why then, wasn&apos;t my bulletproof error handling working?  I added a &amp;lt;cfmail&amp;gt; to the &amp;lt;cfcatch&amp;gt; with a dump of the &amp;lt;cfcatch&amp;gt; scope:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://amcomtech.net/client/images/cfcatch_gotcha_dump.gif&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Note the empty string for the &lt;b&gt;detail&lt;/b&gt; key.  Yeah, I know.  So there were any number of easy fixes that could have been done (using the cfcatch.message string, or incrementing an errorCount variable that&apos;s initially set to zero).  It&apos;s not so much about the solution as it is about the problem.  This isn&apos;t one that I would have anticipated.  Thought it was worthwhile to throw out there in case others may be using, or considering using, similar conditional logic.&lt;/p&gt;
				
				</description>
						
				
				<category>ColdFusion</category>				
				
				<pubDate>Thu, 09 Oct 2008 15:06:00 -0700</pubDate>
				<guid>http://www.amcomtech.net/client/index.cfm/2008/10/9/cfcatch-Gotcha-it-got-me</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>How I Learned to Stop Worrying and Love Eclipse</title>
				<link>http://www.amcomtech.net/client/index.cfm/2008/10/9/How-I-Learned-to-Stop-Worrying-and-Love-Eclipse</link>
				<description>
				
				&lt;p&gt;Here at Amcom we&apos;re starting to formalize our coding processes, which includes coding standards, tools, etc.  While I don&apos;t think we&apos;d ever mandate the use of a specific IDE (as long as the final code adheres to the agreed upon standards, it&apos;s not really important how it was created), we find that we keep coming back to &lt;a href=&quot;http://www.eclipse.org&quot;&gt;Eclipse&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We&apos;ve discussed unit testing and &lt;a href=&quot;http://mxunit.org/&quot;&gt;MXUnit&lt;/a&gt; (Eclipse plugin).  We&apos;ve discussed the CF8 debugger (Eclipse plugin).  We&apos;ve decided to use the &lt;a href=&quot;http://www.coldboxframework.com/&quot;&gt;ColdBox framework&lt;/a&gt; (which has &lt;a href=&quot;http://www.coldboxframework.com/index.cfm/download/extras&quot;&gt;Eclipse plugins&lt;/a&gt;).  We do a good amount of Flex work (FlexBuilder being available as a standalone Eclipse product or as an Eclipse plugin).  And of course, as a ColdFusion shop, there&apos;s &lt;a href=&quot;http://www.cfeclipse.org/&quot;&gt;CFEclipse&lt;/a&gt; (Eclipse plugin).&lt;/p&gt;

&lt;p&gt;A few of us have been using Eclipse (and various plugins) for a while, but some have yet to make the leap.  I recalled my first efforts to make the switch from HomeSite+ (previously ColdFusion Studio) to Eclipse, and some of the challenges that I faced.&lt;/p&gt;

&lt;p&gt;I was a bit overwhelmed at some of the terminology like &quot;Perspective&quot; and &quot;View&quot; and don&apos;t even get me started on the concept of a &quot;Project&quot;.  It took me a good couple of tries switching back and forth between Eclipse and HS+ before I was truly comfortable developing in the Eclipse environment.  I put together a document that was intended to be used internally to help demystify Eclipse as an IDE.  At this point it&apos;s pretty basic and a work in progress.  But it was suggested that it might have some value to the community, and might help others that are considering making the switch but having a hard time mentally reconciling the Eclipse environment versus their current environment.  I&apos;ve attached a pdf to this entry, available at the &quot;Download&quot; link below.&lt;/p&gt;

&lt;p&gt;If anyone finds this to be useful, please let me know and perhaps I&apos;ll flesh it out a bit more.  If there&apos;s anything in the document that needs further clarification or correction, please bring that to my attention as well.&lt;/p&gt;
				
				</description>
						
				
				<category>Tools of the Trade</category>				
				
				<category>ColdFusion</category>				
				
				<category>General</category>				
				
				<pubDate>Thu, 09 Oct 2008 13:41:00 -0700</pubDate>
				<guid>http://www.amcomtech.net/client/index.cfm/2008/10/9/How-I-Learned-to-Stop-Worrying-and-Love-Eclipse</guid>
				
				<enclosure url="http://www.amcomtech.net/client/enclosures/How I Learned to Stop Worrying and Love Eclipse.pdf" length="479366" type="application/pdf"/>
				
			</item>
			
		 	
			
			
			<item>
				<title>Hello Swiz...</title>
				<link>http://www.amcomtech.net/client/index.cfm/2008/9/18/Hello-Swiz</link>
				<description>
				
				Well apparently I&apos;m one of the only people around that really doesn&apos;t mind &lt;a href=&quot;http://opensource.adobe.com/wiki/display/cairngorm/Cairngorm&quot;&gt;Cairngorm&lt;/a&gt;. In fact I&apos;d say I quite like it. It has served me well for the last couple years, and when you add first class IOC like &lt;a href=&quot;http://www.pranaframework.org/&quot;&gt;Prana&lt;/a&gt; you have a well documented, flexible,  lightweight  and battle tested MVC.
&lt;br /&gt;
				 [More]
				</description>
						
				
				<category>ColdFusion</category>				
				
				<category>Flex</category>				
				
				<pubDate>Thu, 18 Sep 2008 01:16:00 -0700</pubDate>
				<guid>http://www.amcomtech.net/client/index.cfm/2008/9/18/Hello-Swiz</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Building Business Objects with Transfer</title>
				<link>http://www.amcomtech.net/client/index.cfm/2008/6/20/Building-Business-Objects-with-Transfer</link>
				<description>
				
				So &lt;a href=&quot;http://www.amcomtech.net/client/index.cfm/2008/6/16/Building-a-Model--Business-Objects&quot;&gt;last time&lt;/a&gt; we had just finished an abstract class diagram for the business objects that we want to create for use in our Model. To write them by hand including the ability to save them to a database, would require you to write your own data persistence layer. Which would (should) include one (or more) of the multitude (&lt;a href=&quot;http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html&quot;&gt;DAO&lt;/a&gt;/&lt;a href=&quot;http://www.martinfowler.com/eaaCatalog/tableDataGateway.html&quot;&gt;Table Data Gateway&lt;/a&gt;/&lt;a href=&quot;http://www.martinfowler.com/eaaCatalog/gateway.html&quot;&gt;Gateway&lt;/a&gt;/&lt;a href=&quot;http://www.martinfowler.com/eaaCatalog/activeRecord.html&quot;&gt;Active Record&lt;/a&gt;/&lt;a href=&quot;http://www.martinfowler.com/eaaCatalog/dataMapper.html&quot;&gt;Data Mapper&lt;/a&gt;...) of design patterns dealing with persistence. They are all meant to solve essentially the same problem, separating the data access implementation from your business logic. Some of those patterns are quite different from each other and some are virtually identical. Implementing virtually any one of these strategies is a good start, but you will still need to deal with the assembly of the objects once you have the data.&lt;br /&gt;&lt;br /&gt;
				 [More]
				</description>
						
				
				<category>ColdFusion</category>				
				
				<pubDate>Fri, 20 Jun 2008 12:46:00 -0700</pubDate>
				<guid>http://www.amcomtech.net/client/index.cfm/2008/6/20/Building-Business-Objects-with-Transfer</guid>
				
			</item>
			
		 	
			</channel></rss>