<?xml version="1.0" encoding="utf-8"?>
			
			<rss version="2.0">
			<channel>
			<title>Andrew Schwabe&apos;s Blog - Java</title>
			<link>http://blog.schwabe.net/index.cfm</link>
			<description>Flex and CF and all things Wack.</description>
			<language>en-us</language>
			<pubDate>Fri, 10 Sep 2010 18:05:54 -0400</pubDate>
			<lastBuildDate>Thu, 11 Mar 2010 19:44:00 -0400</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>aschwabe@schwabe.net</managingEditor>
			<webMaster>aschwabe@schwabe.net</webMaster>
			
			
			
			
			
			<item>
				<title>My new articles on packt publishing</title>
				<link>http://blog.schwabe.net/index.cfm/2010/3/11/My-new-articles-on-packt-publishing</link>
				<description>
				
				Packt Publishing asked me to write a bit about Railo.  It took me forever due to being busy (as always), but here they are!  Enjoy and share the love.

Introduction to Railo Open-Source CFML Engine:&lt;br/&gt;
&lt;a target=&quot;new&quot; href=&quot;http://www.packtpub.com/article/introduction-to-railo-open-source&quot;&gt;http://www.packtpub.com/article/introduction-to-railo-open-source&lt;/a&gt;

Tutorial: Rendering web pages as PDF using Railo&lt;br/&gt;
&lt;a target=&quot;new&quot; href=&quot;http://www.packtpub.com/article/rendering-web-pages-pdf-using-railo-open-source&quot;&gt;http://www.packtpub.com/article/rendering-web-pages-pdf-using-railo-open-source&lt;/a&gt;
				
				</description>
						
				
				<category>Adobe Flex</category>				
				
				<category>Open Source</category>				
				
				<category>Railo</category>				
				
				<category>Java</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Thu, 11 Mar 2010 19:44:00 -0400</pubDate>
				<guid>http://blog.schwabe.net/index.cfm/2010/3/11/My-new-articles-on-packt-publishing</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>CF United 09 Presentation Files - Google App Engine and Flex</title>
				<link>http://blog.schwabe.net/index.cfm/2009/8/13/CF-United-Presentation-Files</link>
				<description>
				
				Ok folks, here are my preso files for my CF United 2009 talk on Google App Engine and Flex.  Is this the final version?  Sure.  Until I change it.  I shall resist doing that...

&lt;object height=&quot;425&quot; width=&quot;550&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://slidesix.com/viewer/SlideSixViewer.swf?alias=294AndrewSchwabeGoogleAppEngineFlex&quot; /&gt;&lt;param name=&quot;menu&quot; value=&quot;false&quot;/&gt;&lt;param name=&quot;scale&quot; value=&quot;noScale&quot;/&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;/&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot; /&gt;&lt;param value=&quot;transparent&quot; name=&quot;wmode&quot; /&gt;&lt;param value=&quot;quality&quot; name=&quot;best&quot; /&gt;&lt;embed src=&quot;http://slidesix.com/viewer/SlideSixViewer.swf?alias=294AndrewSchwabeGoogleAppEngineFlex&quot; allowscriptaccess=&quot;always&quot; allowFullScreen=&quot;true&quot; height=&quot;425&quot; width=&quot;550&quot; type=&quot;application/x-shockwave-flash&quot; wmode=&quot;transparent&quot; quality=&quot;best&quot; /&gt;&lt;/object&gt;

Here is the powerpoint presentation download: &lt;a href=&quot;http://www.schwabe.net/294_Andrew_Schwabe_Google_App_Engine_Flex.ppt&quot;&gt;294_Andrew_Schwabe_Google_App_Engine_Flex.ppt&lt;/a&gt;

Here is the full download (warning, this is big!) Contains all 4 google app engine java projects, all 4 flex projects and the powerpoint file.  The download is big because of all the jar files.  I will try to have a USB key with me so if you want a super fun time instant copy instead of downloading it, I should be able to do that.

Full download (94MB, zipped): &lt;a href=&quot;http://www.schwabe.net/CFun09_GAE_Files.zip&quot;&gt;CFun09_GAE_Files.zip&lt;/a&gt;

For those of you web surfers interested -- demo 4 project includes a fix for allowing Flex app using AMF to retrieve Google Account information (using ajax and a custom auto servlet) so your Flex apps can determine if you are logged in, and get your user identifier if you are logged in.
				
				</description>
						
				
				<category>Adobe Flex</category>				
				
				<category>Open Source</category>				
				
				<category>Eclipse</category>				
				
				<category>google</category>				
				
				<category>Java</category>				
				
				<category>Actionscript</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Thu, 13 Aug 2009 01:42:00 -0400</pubDate>
				<guid>http://blog.schwabe.net/index.cfm/2009/8/13/CF-United-Presentation-Files</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>CF United Update: Google App Engine + Flex</title>
				<link>http://blog.schwabe.net/index.cfm/2009/7/30/CF-United-Update-Google-App-Engine--Flex</link>
				<description>
				
				My talk at CFUnited has changed a bit...  Since the topic was chosen a while back, Google has released a Java developer environment and eclipse plugin for Google App Engine (GAE).  Since Java is a whole lot closer to CFML than python is, I&apos;ve updated all my code and presentation to focus on the Java application architecture, and how to connect it to Flex.

I&apos;ve even got some tidbits on how to get CFML running on Google App Engine !

Be sure to come on out and learn about the exciting new &quot;super scalable&quot; web application system running on Google&apos;s free hosting infrastructure.
				
				</description>
						
				
				<category>Announcements</category>				
				
				<category>Adobe Flex</category>				
				
				<category>Open Source</category>				
				
				<category>Eclipse</category>				
				
				<category>google</category>				
				
				<category>Java</category>				
				
				<category>Flash</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Thu, 30 Jul 2009 20:02:00 -0400</pubDate>
				<guid>http://blog.schwabe.net/index.cfm/2009/7/30/CF-United-Update-Google-App-Engine--Flex</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Flex 2 Boot Camp</title>
				<link>http://blog.schwabe.net/index.cfm/2007/8/13/Flex-2-Boot-Camp</link>
				<description>
				
				I decided to attend a one-day bootcamp for Flex 2 in New York City which was piggy backed onto a RealWorld Java Conference.&amp;nbsp; Our instructors were Yakov Fain and Victor Rasputnis from www.faratasystems.com (they make some cool Flex add-ons you should check out).&lt;br /&gt;
&lt;br /&gt;
It was a day of intensive brain crunching.&amp;nbsp; It seemed to me that it was definitely aimed at Java developers (how many CF developers know what ant is?) more than anything else.&amp;nbsp; A lot of the topics covered were already very familiar to me, including a lot of the Flex code itself -- at least until the second part of the day.&amp;nbsp; What was significant about the second part of the day was the software engineering insight as to how to approach flex apps over the &amp;quot;out of the box&amp;quot; approach Adobe (and formerly Macromedia) used to present.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
We covered topics such as compiling re-usable code into SWC files, logging and optimizing data traffic between your DB and Flex using ADF instead of slower verbose web services.&amp;nbsp; These were topics I haven&apos;t seen covered anywhere else.&lt;br /&gt;
&lt;br /&gt;
Overall money well spent, though there were some clear holes in the offering as a whole.&amp;nbsp; We jumped into advanced topics pretty quickly; we only covered a few simple UI components; Mac problems.&amp;nbsp; Don&apos;t get me started on the Mac problems....&amp;nbsp; word to those out there:&amp;nbsp; Macs may me great for desktop publishing, but dont expect things to run smoothly when you are trying to develop enterprise class client-server apps on your Mac.&amp;nbsp; nuf sed.&lt;br /&gt;
&lt;br /&gt;
The Good:&lt;br /&gt;
&lt;blockquote&gt;- Low cost (around $1000)&lt;br /&gt;
- No long hotel stays&lt;br /&gt;
- Good material (enterprise application architecture, modularized code, technique)&lt;br /&gt;
- Good foundation of when/how to use Flex for an app.&lt;br /&gt;
- Excellent coverage of ADF and communication with server side apps&lt;br /&gt;
- You walk away with working code on your laptop&lt;br /&gt;
&lt;/blockquote&gt;The Bad:&lt;br /&gt;
&lt;blockquote&gt;- Don&apos;t expect all the dev software it to work on your Mac &lt;br /&gt;
(I use a PC -- with no problems i might add -- , so im not &amp;quot;talking&amp;quot; about myself here)&lt;br /&gt;
The Mac delays caused us to lose about an hour of instruction time -- which for a single day seminar really hurt.... (hey Yakov and Victor -- if you see this, maybe a discount is in order for future bootcamps?)&lt;br /&gt;
- Topics jumped from relatively simple to very advanced in the blink of an eye&lt;br /&gt;
- Not quite enough coverage of the UI components in Flex&lt;br /&gt;
- No coverage of &amp;quot;states&amp;quot; in Flex (pretty essential if you ask me)&lt;br /&gt;
- Not enough coverage of http and web service connections (since 90% of flex developers will use this exclusively over ADF/server side components)&lt;/blockquote&gt;Hope this is helpful.&amp;nbsp; Watch my blog for announcements of new exciting flex stuff I am building!
				
				</description>
						
				
				<category>Adobe Flex</category>				
				
				<category>Java</category>				
				
				<pubDate>Mon, 13 Aug 2007 02:00:00 -0400</pubDate>
				<guid>http://blog.schwabe.net/index.cfm/2007/8/13/Flex-2-Boot-Camp</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Aptana plugin for Eclipse</title>
				<link>http://blog.schwabe.net/index.cfm/2007/7/17/Aptana-plugin-for-Eclipse</link>
				<description>
				
				Hopefully a lot of you ColdFusion developers are using Eclipse now with the CFEclipse plugin.&amp;nbsp; Many developers dont know about the Aptana plugin however (http://www.aptana.com/).&amp;nbsp; This free plugin gives you all the stuff that you miss from DreamWeaver or Homesite+ -- html and css editing, etc.&amp;nbsp; In addition you get an XML editor, and a fantastic ftp interface, which is sorely needed in Eclipse.&amp;nbsp; Aptana has a very nice ftp synchronization tool set which allows you to effectively develop locally and synchronize to an ftp site.&lt;br /&gt;
&lt;br /&gt;
For those who are curious about how we have our Eclipse configured, here it is:&lt;br /&gt;
&lt;br /&gt;
Eclipse 3.2.x&lt;br /&gt;
CF Eclipse 1.3.x&lt;br /&gt;
RDS Plugin (from Flex Builder 2)&lt;br /&gt;
Aptana plugins&lt;br /&gt;
Violet UML plugin
				
				</description>
						
				
				<category>Adobe Flex</category>				
				
				<category>Eclipse</category>				
				
				<category>Java</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Tue, 17 Jul 2007 11:36:00 -0400</pubDate>
				<guid>http://blog.schwabe.net/index.cfm/2007/7/17/Aptana-plugin-for-Eclipse</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Server side HTTP Post using JSP</title>
				<link>http://blog.schwabe.net/index.cfm/2007/1/11/Server-side-HTTP-Post-using-JSP</link>
				<description>
				
				&lt;p&gt;Ok, so I&amp;nbsp;use a rapid application development technology (ColdFusion or PHP) most of the time because customers demand such quick turnaround.&amp;nbsp; This time I needed to go back to goold old Java and do some integration.&lt;/p&gt;
&lt;p&gt;Our email list management service (Sound-Off 3) manages people&apos;s email lists and lets them schedule mailings, etc.&amp;nbsp; I needed to integrate a website build on JRun (using Java Server Pages aka jsp) so that when people register, it relays the info to Sound-Off 3.&lt;/p&gt;
&lt;p&gt;In ColdFusion, you can easily do this with a CFHTTP tag.&amp;nbsp; In JSP it is a little more involved.&amp;nbsp; My struggle is your benefit, b/c here is the code that does it in JSP.&lt;/p&gt;
&lt;p&gt;This code will do an HTTP POST from the WEB SERVER to the remote site, all behind the scenes on the server.&amp;nbsp; The &amp;quot;parameters&amp;quot; string contains the form values that will be sent to the remove server.&amp;nbsp; Note the leading/trailing &amp;amp;&apos;s and that the form values must be URL encoded.&lt;/p&gt;
&lt;p&gt;&lt;font face=&quot;Arial&quot;&gt;&lt;strong&gt;try&lt;br /&gt;
&lt;/strong&gt;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; String stuff = null;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; String pagecontent = &amp;quot;&amp;quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; String parameters = &amp;quot;&amp;amp;message=hello+world&amp;amp;&amp;quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; java.net.URL url = new java.net.URL(http://www.yourhost.com/page.cfm);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; java.net.HttpURLConnection conn = (java.net.HttpURLConnection)url.openConnection();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; conn.setRequestMethod(&amp;quot;POST&amp;quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; conn.setRequestProperty(&amp;quot;Content-Length&amp;quot;, &amp;quot;&amp;quot; + Integer.toString(parameters.getBytes().length));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; conn.setRequestProperty(&amp;quot;Content-Language&amp;quot;, &amp;quot;en-US&amp;quot;); &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; conn.setRequestProperty(&amp;quot;Content-Type&amp;quot;, &amp;quot;application/x-www-form-urlencoded&amp;quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; conn.setDoInput(true); &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; conn.setDoOutput(true); &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; conn.setUseCaches(false); &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; conn.setAllowUserInteraction(true);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; java.io.DataOutputStream printout = new java.io.DataOutputStream (conn.getOutputStream ());&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; printout.writeBytes (parameters);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; printout.flush ();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; printout.close ();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; java.io.BufferedReader in = new java.io.BufferedReader(new java.io.InputStreamReader(conn.getInputStream())); &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; while ((stuff = in.readLine()) != null)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pagecontent += stuff; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; in.close(); &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=&quot;Arial&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %&amp;gt;success! &amp;lt;%&lt;br /&gt;
}&lt;br /&gt;
&lt;strong&gt;catch&lt;/strong&gt; (Exception e) &lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; %&amp;gt;error!&amp;lt;%&lt;br /&gt;
}&lt;br /&gt;
%&amp;gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=&quot;Arial&quot;&gt;And thats it!&amp;nbsp;&amp;nbsp; You can (and should) do further error checking by examinging the contents of &amp;quot;pagecontent&amp;quot; which will have the html code returned from remote website.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=&quot;Arial&quot;&gt;Have fun...&lt;br /&gt;
&lt;/font&gt;&lt;/p&gt;
				
				</description>
						
				
				<category>JRun</category>				
				
				<category>Java</category>				
				
				<pubDate>Thu, 11 Jan 2007 02:00:00 -0400</pubDate>
				<guid>http://blog.schwabe.net/index.cfm/2007/1/11/Server-side-HTTP-Post-using-JSP</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Using JFreeChart with ColdFusion</title>
				<link>http://blog.schwabe.net/index.cfm/2005/7/22/Using-JFreeChart-with-ColdFusion</link>
				<description>
				
				&lt;div class=&quot;entry&quot;&gt;
&lt;p&gt;This was originally posted in &lt;a target=&quot;_blank&quot; href=&quot;http://weblogs.macromedia.com/cantrell/archives/2003/06/using_coldfusio.cfm&quot;&gt;Christian Cantrell&apos;s blog&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Well, your post just helped me figure out a long time nagging problem. I have been working on a CF wrapper for JFreeChart to generate on-the-fly charts, and have been stumped with corrupted output, until I saw your fix about the double getResponse() method calls. With that change, all works great! &lt;/p&gt;
&lt;p&gt;For those who don&apos;t understand WHY you might need to do this, here is sampe code that creates a bar chart on-the-fly (no caching on the file system) and outputs directly to the browser a JPEG image (or a PNG with incredible quality!): &lt;/p&gt;
&lt;p&gt;&amp;lt;!--- first generate some data ---&amp;gt;&lt;br /&gt;
barDataset = CreateObject(&amp;quot;java&amp;quot;, &amp;quot;org.jfree.data.category.DefaultCategoryDataset&amp;quot;); &lt;br /&gt;
Randomize(numberformat(timeformat(now(),&amp;quot;ss&amp;quot;))); &lt;br /&gt;
rval = int(randrange(1,500)); &lt;br /&gt;
barDataset.setValue(numberformat(rval), &amp;quot;2001&amp;quot;, &amp;quot;Q1&amp;quot;); &lt;br /&gt;
rval = int(randrange(1,500)); &lt;br /&gt;
barDataset.setValue(numberformat(rval), &amp;quot;2001&amp;quot;, &amp;quot;Q2&amp;quot;); &lt;br /&gt;
rval = int(randrange(1,500)); &lt;br /&gt;
barDataset.setValue(numberformat(rval), &amp;quot;2001&amp;quot;, &amp;quot;Q3&amp;quot;); &lt;br /&gt;
rval = int(randrange(1,500)); &lt;br /&gt;
barDataset.setValue(numberformat(rval), &amp;quot;2001&amp;quot;, &amp;quot;Q4&amp;quot;); &lt;br /&gt;
rval = int(randrange(1,500)); &lt;br /&gt;
barDataset.setValue(numberformat(rval), &amp;quot;2002&amp;quot;, &amp;quot;Q1&amp;quot;); &lt;br /&gt;
rval = int(randrange(1,500)); &lt;br /&gt;
barDataset.setValue(numberformat(rval), &amp;quot;2002&amp;quot;, &amp;quot;Q2&amp;quot;); &lt;br /&gt;
rval = int(randrange(1,500)); &lt;br /&gt;
barDataset.setValue(numberformat(rval), &amp;quot;2002&amp;quot;, &amp;quot;Q3&amp;quot;); &lt;br /&gt;
rval = int(randrange(1,500)); barDataset.setValue(numberformat(rval), &amp;quot;2002&amp;quot;, &amp;quot;Q4&amp;quot;); &lt;/p&gt;
&lt;p&gt;&amp;lt;!--- create the chart objects ---&amp;gt;&lt;br /&gt;
chart = CreateObject(&amp;quot;java&amp;quot;, &amp;quot;org.jfree.chart.JFreeChart&amp;quot;); &lt;br /&gt;
chartfactory = CreateObject(&amp;quot;java&amp;quot;, &amp;quot;org.jfree.chart.ChartFactory&amp;quot;); &lt;br /&gt;
chartorient = CreateObject(&amp;quot;java&amp;quot;, &amp;quot;org.jfree.chart.plot.PlotOrientation&amp;quot;); &lt;br /&gt;
chartutil = CreateObject(&amp;quot;java&amp;quot;, &amp;quot;org.jfree.chart.ChartUtilities&amp;quot;); &lt;/p&gt;
&lt;p&gt;&amp;lt;!--- create our chart ---&amp;gt;&lt;br /&gt;
chart = chartfactory.createBarChart3D (&amp;quot;Sample Bar Chart&amp;quot;, &amp;quot;Category&amp;quot;, &amp;quot;Value&amp;quot;, barDataset, chartorient.VERTICAL, true, true, true); &lt;/p&gt;
&lt;p&gt;&amp;lt;!--- MAGICALLY get the correct response object... ---&amp;gt;&lt;br /&gt;
response = getPageContext().getResponse().getResponse(); &lt;br /&gt;
response.setContentType(&amp;quot;image/jpeg&amp;quot;); &lt;/p&gt;
&lt;p&gt;&amp;lt;!--- write chart directly to output stream ---&amp;gt;&lt;br /&gt;
chartutil.writeChartAsJPEG(response.getOutputStream(), &lt;br /&gt;
&amp;nbsp;&amp;nbsp; 100, // jpeg quality 0-100 &lt;br /&gt;
&amp;nbsp;&amp;nbsp; chart, // chart object &lt;br /&gt;
&amp;nbsp;&amp;nbsp; 500, // width &lt;br /&gt;
&amp;nbsp;&amp;nbsp; 300); // height &lt;/p&gt;
&lt;p&gt;response.flush(); &lt;br /&gt;
response.close(); &lt;/p&gt;
&lt;p&gt;If anybody else needs help with the above code, email me. &lt;/p&gt;
&lt;p&gt;cheers &lt;/p&gt;
&lt;/div&gt;
				
				</description>
						
				
				<category>Open Source</category>				
				
				<category>charting</category>				
				
				<category>Java</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Fri, 22 Jul 2005 02:00:00 -0400</pubDate>
				<guid>http://blog.schwabe.net/index.cfm/2005/7/22/Using-JFreeChart-with-ColdFusion</guid>
				
			</item>
			
		 	
			</channel></rss>