<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>Blog In Black</title>
	<atom:link href="http://bloginblack.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://bloginblack.de</link>
	<description>Protecting the world from bad CFML code since 2003 and now also featuring other stuff</description>
	<lastBuildDate>Mon, 30 Dec 2013 09:55:16 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.2.9</generator>
<site xmlns="com-wordpress:feed-additions:1">7404401</site>	<item>
		<title>Back in Edinburgh for Scotch On The Rocks 2014</title>
		<link>http://bloginblack.de/2013/12/back-in-edinburgh-for-scotch-on-the-rocks-2014/</link>
		
		<dc:creator><![CDATA[kai]]></dc:creator>
		<pubDate>Mon, 30 Dec 2013 19:22:04 +0000</pubDate>
				<category><![CDATA[Agent K and the rest of the world]]></category>
		<category><![CDATA[Agent K on CF]]></category>
		<category><![CDATA[Agent K on Java]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Edinburgh]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JVM]]></category>
		<category><![CDATA[Scotland]]></category>
		<category><![CDATA[sotr14]]></category>
		<category><![CDATA[Travel]]></category>
		<guid isPermaLink="false">http://bloginblack.de/?p=2309</guid>

					<description><![CDATA[There are those moments when everything just falls into place. Before Xmas and before I got the notification from the CAB at cf.Objective(), one of my submitted sessions was accepted for Scotch On The Rocks 2014. I&#8217;m still extremely happy about that as the amount of submissions they got was massive (around ~160, iirc) and given that [&#8230;]]]></description>
										<content:encoded><![CDATA[<p></p><p>There are those moments when everything just falls into place.</p>
<p>Before Xmas and before I got the notification from the CAB at cf.Objective(), one of my submitted sessions was accepted for <a href="http://www.sotr.eu">Scotch On The Rocks 2014</a>. I&#8217;m still extremely happy about that as the amount of submissions they got was massive (around ~160, iirc) and given that it&#8217;s a quite small event, it must have been a tremendously hard choice for them to select sessions. And I&#8217;m very, very glad that I made the cut.</p>
<p>It&#8217;ll be about 6 years ago that I&#8217;ve been to Edinburgh the last time and I&#8217;m very keen on going back for both the city and the conference. SOTR used to be very much a CFML conference back then. That&#8217;s changed quite a bit over the last few years and the conference is now much more of a (web) development conference open for both topics on the frontend development side of things as well as for backend topics. I&#8217;ll also get to see my friend <a href="http://kay.smoljak.com">Kay</a> again, yay! Co-incidentally she wrote a very interesting piece about SOTR&#8217;s <a href="http://kay.smoljak.com/2013/11/scotch-on-the-rocks-conference-2014/">&#8220;incentive ticketing&#8221;</a>.</p>
<p>However, I was actually a bit surprised when my talk: &#8220;Digging in the dirt or digging for Gold? The Internals of the Java Virtual Machine!&#8221; was selected.</p>
<p>My initial thoughts were along the lines of:</p>
<p>&#8220;Yay, they accepted my talk!!!! Awesome, I&#8217;m going to Scotland again!!!&#8221;</p>
<p>&#8220;Oh, hang on. They want&#8230; THAT ONE? Really? WTF!&#8221;</p>
<p>Please note that this session is a different talk from what I&#8217;m going to present on at <a href="http://lanyrd.com/2014/cfobjective/sctqgb/">cf.Objective()</a> &#8211; which is about JVM and memory tuning for CFML developers. My session at Scotch On The Rocks will be quite fundamental in a way that I will endeavour to explain the JVM. Well, maybe not all of it in ~50 minutes, but the Essentials; The parts that people really should understand to then being able to understand what happens right below the language/server of their choice and why JVM tuning might even become necessary. It&#8217;s actually kind of geeky &#8211; read for yourself, below is my talk&#8217;s abstract:</p>
<h4>Digging in the dirt or digging for Gold? The Internals of the Java Virtual Machine!</h4>
<p>The JVM is a funny odd little thing. Loved and hated by just a few, ignored and misunderstood by many. People talk about Memory Management, Garbage Collection and all sorts of stuff, but what IS the JVM and how does it work?</p>
<p>This talk will discuss the common architecture features of Java Virtual Machines. What does it take to compile one&#8217;s Java, CFML, Clojure, Scala (or whatever JVM-based language you might prefer) source code into byte code and execute that? What are life cycle and memory constraints of a Virtual Machine running on actual hardware? And yes &#8211; how does it manage memory and how does Garbage Collection work?</p>
<p>The session will &#8211; as indicated in the title &#8211; focus on the Java Virtual Machine. But a lot of concepts that apply to the JVM are generic problems of Computer Science and this talk might bring back some memories from the past: stacks, types, threads, pointers and much more. Along the way we&#8217;re also having a discussion about the (sometimes subtle) differences between the Sun/Oracle JVM, JRockit or the SAP JVM (did you even know SAP was in this business?)</p>
<p>You might ask: Why is this important anyway? The answer is astonishingly simple: Without having at least a fundamental understanding of how the JVM works, you will not be able to write effective and efficient code in any language on top of the JVM.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2309</post-id>	</item>
		<item>
		<title>I&#8217;ll be speaking at cf.Objective() 2014</title>
		<link>http://bloginblack.de/2013/12/ill-be-speaking-at-cf-objective-2014/</link>
		
		<dc:creator><![CDATA[kai]]></dc:creator>
		<pubDate>Mon, 30 Dec 2013 11:17:34 +0000</pubDate>
				<category><![CDATA[Agent K on CF]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[cf.Objective()]]></category>
		<category><![CDATA[CFML]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[jQueryMobile]]></category>
		<category><![CDATA[Railo]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[Work]]></category>
		<guid isPermaLink="false">http://bloginblack.de/?p=2304</guid>

					<description><![CDATA[It already happened an few days ago, but I&#8217;m very pleased to announce that I&#8217;ll be at cf.Objective() 2014 in Minneapolis in May 2014 and that two of my three session proposals got chosen for the conference&#8217;s agenda. I&#8217;ve been to cf.Objective() 2013 as an attendee (Kudos to Gert @ Railo for throwing me a [&#8230;]]]></description>
										<content:encoded><![CDATA[<p></p><p>It already happened an few days ago, but I&#8217;m very pleased to announce that I&#8217;ll be at cf.Objective() 2014 in Minneapolis in May 2014 and that two of my three session proposals got chosen for the conference&#8217;s agenda.</p>
<p>I&#8217;ve been to cf.Objective() 2013 as an attendee (Kudos to <a href="http://www.getrailo.com/index.cfm/about-us/railo-team/gert-franz/">Gert @ Railo</a> for throwing me a ticket of their sponsor contingent) and it was a really, really good event. To be honest, that really wasn&#8217;t a big surprise as cf.Objective() has a really good reputation for being the major CFML conference, very well organised and generally awesome; and it&#8217;s true. Also, the venue (Radisson Blu right at Mall of America) is kind of interesting in a very special way.</p>
<p>Anyway &#8211; in case you&#8217;re interested in what my sessions will be about&#8230; (you can also find them on the <a href="http://lanyrd.com/2014/cfobjective/">cf.Objective() Lanyrd site</a> or the actual <a href="http://cfobjective.com">cf.Objective() website</a> &#8212; the session descriptions are not yet 100% up-to-date on the latter):</p>
<h4>1. The JVM is your friend</h4>
<p>Both Adobe ColdFusion and Railo are Java-based web development platforms. In layman&#8217;s terms that means: Your CFML engine runs on top of a JEE application server or a servlet container and the JVM (Java Virtual Machine).</p>
<p>The latter is pretty much the low-level runtime environment of your CFML application. To make sure your CFML engine operates in a well performing and stable way, you need to have some knowledge about Java memory management and how that can impact the behaviour of your CFML server.</p>
<p>The objective of this talk is to change developers&#8217; mindsets when it comes to the JVM below ACF and Railo. There&#8217;s an myth that JVM behaviour and JVM tuning is a &#8220;dark art&#8221; and that has to stop. It will also equip you with a level of fundamental knowledge that you can use to push back when someone tries to tell you to &#8220;just use my JVM settings&#8221; or to &#8220;use the settings this guy had on his blog&#8221;.</p>
<p>We&#8217;re going to cover:</p>
<ul>
<li>Foundations of Java memory management and the important bits for CFML developer</li>
<li>Java Garbage Collection and various memory cleanup strategies</li>
<li>How load generation, load testing and measuring the right data plays into JVM tuning</li>
<li>JVM tuning specifics for CFML developers</li>
<li>The JVM and the Garbage Collectors in Java 7 and beyond</li>
</ul>
<h4>2. Real-World lessons in jQuery Mobile</h4>
<p>&#8220;Hey, let&#8217;s build a mobile web app!&#8221;<br />
&#8220;Awww, what an awesome idea &#8211; I&#8217;ve heard jQuery Mobile is super-easy, bro! Let&#8217;s start right away!&#8221;</p>
<p>(6 months later)</p>
<p>&#8220;Oh my god, this code is a mess &#8211; why did I do this thing 4 months ago?&#8221;<br />
&#8220;How hard can it be to change this jQuery Mobile UI widget just so that it does what I need?&#8221;<br />
&#8220;Do you know why my icons render distorted on the new {iOS|Android|Windows} device?&#8221;<br />
&#8220;Why are the page transitions really rough on some of those Android 2.2 and 4.1 devices?&#8221;<br />
&#8220;The back button navigation is acting weird &#8211; I wish we just had built a native app&#8221;</p>
<p>Does that sound familiar? jQuery Mobile is a mobile web development framework that&#8217;s really easy to get started with. Product Evangelists from big corporates show their tooling around the framework or build their own products using it and it always looks SOOO easy and straight forward in their scripted demos.</p>
<p>There are pitfalls though and a lot of lessons are to be learned along the way &#8211; starting from making decisions on how to architect your application (in particular in conjunction with having to incorporate a backend) and ending with bug-fixing discussions like the ones above.</p>
<p>It doesn&#8217;t have to be like that &#8211; in this session I&#8217;m going to talk about a few fundamental architectural concerns when it comes to building a mobile web app (and maybe to wrapping it into a native app later). We&#8217;re also going to have a quick look at the pros and cons of using a framework like jQuery Mobile vs. using responsive design and even if and how those two concepts could work together. We&#8217;ll discuss some of those common pitfalls and device quirks and things we had to learn the hard way ourselves when we started building mobile apps with a very early version of jQuery Mobile for our clients.</p>
<ul>
<li>Defining a good architecture for a jQuery Mobile application</li>
<li>The relationship between jqM and Responsive Design</li>
<li>Data handling mistakes to avoid</li>
<li>Quirks on certain devices and how to deal with them</li>
<li>The pitfalls of tweaking jqM&#8217;s UI widgets</li>
<li>jqM beyond markup</li>
</ul>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2304</post-id>	</item>
		<item>
		<title>When and why you should run when someone (including myself) recommends a certain set of JVM settings</title>
		<link>http://bloginblack.de/2013/12/when-and-why-you-should-run-when-someone-including-myself-recommends-a-certain-set-of-jvm-settings/</link>
		
		<dc:creator><![CDATA[kai]]></dc:creator>
		<pubDate>Mon, 30 Dec 2013 04:47:48 +0000</pubDate>
				<category><![CDATA[Agent K on CF]]></category>
		<category><![CDATA[Agent K on Java]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[cf.Objective()]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JVM]]></category>
		<category><![CDATA[Memory]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Railo]]></category>
		<category><![CDATA[sotr14]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[Tuning]]></category>
		<guid isPermaLink="false">http://bloginblack.de/?p=2293</guid>

					<description><![CDATA[This is part two of a loosely connected series of blog posts dealing with JVM settings. Make sure you check out the first post titled &#8220;JVM memory settings for Railo (and Adobe ColdFusion) on Tomcat&#8221; before continuing to get an idea of the overall context of this series. Today&#8217;s post is about why generic recommendations [&#8230;]]]></description>
										<content:encoded><![CDATA[<p></p><p>This is part two of a loosely connected series of blog posts dealing with JVM settings. Make sure you check out the first post titled &#8220;<a href="http://bloginblack.de/2013/12/jvm-memory-settings-for-railo-and-adobe-cold-fusion-on-tomcat/">JVM memory settings for Railo (and Adobe ColdFusion) on Tomcat</a>&#8221; before continuing to get an idea of the overall context of this series.</p>
<p>Today&#8217;s post is about why generic recommendations for JVM settings are almost every time going to fail you and why I personally try to avoid having to provide advise along those lines.</p>
<p>Quite often one sees questions like:</p>
<div dir="ltr">
<blockquote>
<div><em>My JVM settings are X,Y and Z. I want to change them to: JAVA_OPTS=&#8221;-Xms4096m -Xmx4096m -XX:MaxPermSize=256m -javaagent:lib/railo-inst.jar. Is this any good? Please help!</em></div>
</blockquote>
<p>or</p>
<blockquote>
<div><em>I found JAVA_OPTS=&#8221;-javaagent:/usr/local/tomcat/lib/railo-inst.jar -Xms512m -Xmx1424m -XX:MaxPermSize=512m -XX:NewSize=64m -XX:MaxNewSize=64m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled&#8221; on a blog, now my server is {fast|slow|dead|hanging|&#8230;}. Why? Can you fix or improve it?</em></div>
</blockquote>
<p>popping up on mailing lists.</p>
<p>I usually try to avoid answering them &#8211; for a variety of reasons:</p>
<ol>
<li>JVM performance tuning is a very, very, very small area of performance tuning for any CFML or Java server. Usually there are easier gains and wins to be made while looking at other elements of performance tuning, such as DB access, overall machine performance, network and SAN issues, CFML server settings or general caching approaches. JVM performance tuning beyond basic memory adjustment is a very niche thing and should be used to fix certain types of issues &#8211; for instance &#8220;inexplicable&#8221; delays of a CFML server serving requests.</li>
<li>95% of JVM settings are not RIGHT or WRONG. There is no black and white, only various shades of gray in this. What works well for one combination of hardware, software stack (OS, Java server, JVM), CFML/Java application and usage pattern will most guaranteed not be the best solution for another server where only one of the aforementioned parameters is different. The only way to find the &#8220;right&#8221; (or to be more precise: &#8220;locally optimised&#8221;) JVM settings is by going through a regime of:
<ul>
<li>(Load) testing and measuring</li>
<li>Evaluating the results</li>
<li>Change one setting</li>
<li>Rinse and Repeat and determine if it was a change to the better or the worse</li>
</ul>
</li>
<li>The reasons outlined in 2. mean: there&#8217;s no globally optimised JVM setting one could possibly recommend. I can&#8217;t, I won&#8217;t and I strongly believe no one can do that.</li>
</ol>
<p>Sometimes, people respond to questions/threads as above along the lines: &#8220;Yeah, that&#8217;s fine, but you should set XYZ=256m instead&#8221; knowing nothing about the original poster&#8217;s environment or situation. Frankly, that&#8217;s bollocks and contributes to the weird impression people gained over the last few years that JVM tuning is one of the &#8220;dark arts&#8221;.</p>
</div>
<p dir="ltr">Similarly dangerous are scenarios in which people post supposedly awesome JVM settings on their blogs and advertise them as the best thing since the invention of sliced bread (or <a href="http://www.sanza.co.uk/Pascall_Jet_Planes_Family_Pack.asp">Jet Planes</a>). This is dangerous because even though those settings might actually work really well for their use case they can never be generic enough to be advertised as such.</p>
<p dir="ltr">Usually either of the above are well intended and that has to be acknowledged and appreciated. Well, that is until the advice is actually not helpful or people can&#8217;t really explain what they&#8217;re are suggesting and the JVM settings <strong>become</strong> a dark art. I&#8217;d rather see us as a community provide people with the knowledge of being able to help themselves and understand what&#8217;s actually happening on their system.</p>
<p dir="ltr">All that being said, what <strong>are</strong> you supposed to do then? There are some obvious generic recommendations that can be made. Those entail parameters such as overall memory sizing. Or the pros and cons of certain garbage collection strategies or what one can do to mitigate the risks of running into, let&#8217;s say&#8230; PermGen Out-Of-Memory situations. But that&#8217;s about it. From there onwards, proper advise can&#8217;t be given in a generic way without having to have a look at the specifics of one&#8217;s environment.</p>
<p dir="ltr">I will elaborate on some of the more generic recommendations in further parts of this series. If you want to know more, you can also attend <a href="http://cfobjective.com">cf.</a><a href="http://lanyrd.com/2014/cfobjective/">Objective()</a> 2014 and/or <a href="http://www.sotr.eu">Scotch</a> <a href="http://lanyrd.com/2014/sotr/">on the Rocks</a> 2014 at which I will talk about those and other subjects related to the JVM.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2293</post-id>	</item>
		<item>
		<title>JVM memory settings for Railo (and Adobe ColdFusion) on Tomcat</title>
		<link>http://bloginblack.de/2013/12/jvm-memory-settings-for-railo-and-adobe-cold-fusion-on-tomcat/</link>
		
		<dc:creator><![CDATA[kai]]></dc:creator>
		<pubDate>Mon, 30 Dec 2013 03:37:16 +0000</pubDate>
				<category><![CDATA[Agent K on CF]]></category>
		<category><![CDATA[Agent K on Java]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[CFML]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[JVM]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Memory]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Railo]]></category>
		<category><![CDATA[Tomcat]]></category>
		<category><![CDATA[Tuning]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Work]]></category>
		<guid isPermaLink="false">http://bloginblack.de/?p=2287</guid>

					<description><![CDATA[This is the first post of a loosely connected series about JVM settings (some of them related to memory, some others not). I got kind of inspired by a series of discussion threads on various CFML-related lists sitting in my inbox for a while now (because I felt the urge to comment on them &#8212; [&#8230;]]]></description>
										<content:encoded><![CDATA[<p></p><p>This is the first post of a loosely connected series about JVM settings (some of them related to memory, some others not). I got kind of inspired by a series of discussion threads on various CFML-related lists sitting in my inbox for a while now (because I felt the urge to comment on them &#8212; but never got round to for various reasons&#8230;). I&#8217;d really like to get to Inbox-Zero with that particular email account, so let&#8217;s get some of those topics out of the way via blog posts then instead.</p>
<p>This first post deals with Railo on Tomcat and where to set JVM options in the first place. It might also be useful for Adobe ColdFusion users with a custom configuration running on Tomcat or users of Adobe ColdFusion 10.</p>
<p>When you install Railo with Tomcat, you might wonder what you can do to influence the default memory behaviour of Railo and Tomcat. Reasons for looking into this might be that you have a server with a lot of memory and want to use it (better) for your CFML server. There are plenty of other reasons, but those are beyond the scope of this post.</p>
<p>If you have installed Railo through one of <a href="https://twitter.com/utdream">Jordan</a>&#8216;s installers, it essentially gives you a version of Apache Tomcat with Railo deployed (and potentially, depending on your setup, also connect Railo/Tomcat to Apache or IIS).</p>
<p>For Windows users, the installation process normally ends up in a Windows service being installed on the server. The <a href="http://tomcat.apache.org/tomcat-7.0-doc/windows-service-howto.html">Apache Foundation provides a few tools</a> that help you manage the service(s) and that are really worthwhile looking into. Also have a look at Paul Kukiel&#8217;s blog post &#8211; <a href="http://blog.kukiel.net/2011/08/how-to-change-jvm-arguments-in-railo.html">it shows and explains the Railo Tomcat Service Control Panel/App</a>. This will help you to set some basic memory parameters and other Java options. Apparently on Windows, you can also <a href="http://www.tomcatexpert.com/knowledge-base/allocating-more-ram-tomcat-windows">tweak settings in the Windows Registry</a> (ugly).</p>
<p>I&#8217;m not sure if there are similar UI-based tools for Linux and OS X, I certainly don&#8217;t tend to use them to set up daemons/services or for JVM configuration. So, if you&#8217;re on one of those platforms and want to make manual adjustments, you&#8217;d be looking into using catalina.sh or catalina.bat in Railo&#8217;s resp. Tomcat&#8217;s bin directory.</p>
<p>There are multiple approaches how you could shove your custom JVM options into the Tomcat configuration this way. Depending on operating system and your preferences you could tweak the catalina.sh or .bat files and set an environment variable in there or you could use your shell&#8217;s or system&#8217;s (global) way of setting environment variables or <a href="http://tomcat.apache.org/tomcat-7.0-doc/RUNNING.txt">use Tomcat&#8217;s idea of setenv.sh or .bat</a> (look in section 3.4). I trust you&#8217;d find a good way of how to do that for your own circumstances.</p>
<p>Note: Please be aware that if you are running Railo/Tomcat as a Windows service, the aforementioned manual changes to configuration files will not be picked up. It seems you then have to use Tomcat&#8217;s own service management tools as mentioned above to configure memory. For more info please refer to <a href="http://www.12robots.com/index.cfm/2010/10/8/Giving-more-memory-to-the-Tomcat-Service-in-Windows">Jason Dean&#8217;s very comprehensive blog post on that issue</a>.</p>
<p>However, at first glance Tomcat offers two places (environment variables) you could use: JAVA_OPTS and CATALINA_OPTS. In the vast majority of cases the latter is the correct option. There are a few  interesting and very subtle difference between the two (from the docs/config files comments):</p>
<pre>CATALINA_OPTS: Java runtime options used when the "start", 
"run" or "debug" command is executed. Include here and not 
in JAVA_OPTS all options, that should only be used by Tomcat 
itself, not by the stop process, the version command etc. 
Examples are heap size, GC logging, JMX ports etc.

JAVA_OPTS: Java runtime options used when any command is 
executed. Include here and not in CATALINA_OPTS all options, 
that should be used by Tomcat and also by the stop process, 
the version command etc. Most options should go into 
CATALINA_OPTS.</pre>
<p>So, what does this tell us? CATALINA_OPTS are specific to the Catalina process (Tomcat), JAVA_OPTS might be used for something else going on in your system. Also CATALINA_OPTS are the ones that are supposed to be used to launch the JVM but not the ones to be used for the process that gets spawned off to stop the JVM.</p>
<p>In most cases that differences is negligible, it does make a noticeable difference though when you&#8217;re using JMX (for instance to monitor your JVM remotely) as using JAVA_OPTS instead of CATALINA_OPTS for certain JVM settings might then make the shutdown process of Tomcat server actually break (Side note: This is a common occurrence on Adobe ColdFusion 8 and 9 because there&#8217;s no clear, default separation of JVM settings for the various start/stop actions in JRun). If you want to know more about this specific issue, read <a href="http://www.tikalk.com/java/when-use-tomcat-catalinaopts-instead-javaopts">Roni Licht&#8217;s excellent post</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2287</post-id>	</item>
		<item>
		<title>NullPointerExceptions from cfcookie when migrating from Adobe ColdFusion 9 to 10</title>
		<link>http://bloginblack.de/2013/12/nullpointerexceptions-from-cfcookie-when-migrating-from-adobe-coldfusion-9-to-10/</link>
		
		<dc:creator><![CDATA[kai]]></dc:creator>
		<pubDate>Fri, 20 Dec 2013 09:04:37 +0000</pubDate>
				<category><![CDATA[Agent K on CF]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Application.cfc]]></category>
		<category><![CDATA[CFML]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[cookies]]></category>
		<category><![CDATA[migration]]></category>
		<guid isPermaLink="false">http://bloginblack.de/?p=2274</guid>

					<description><![CDATA[A few months ago, one of my clients was testing a possible migration from Adobe ColdFusion 9 to Adobe ColdFusion 10. One of the issues they ran into was a NullPointerException when it came to their cookie use. Something simple such as &#60;cfcookie name=&#8221;cfid&#8221; value=&#8221;574857485748543&#8243;&#62; didn&#8217;t quite work and resulted in: &#8220;The system has attempted [&#8230;]]]></description>
										<content:encoded><![CDATA[<p></p><p>A few months ago, one of my clients was testing a possible migration from Adobe ColdFusion 9 to Adobe ColdFusion 10. One of the issues they ran into was a NullPointerException when it came to their cookie use.</p>
<p>Something simple such as &lt;cfcookie name=&#8221;cfid&#8221; value=&#8221;574857485748543&#8243;&gt; didn&#8217;t quite work and resulted in: &#8220;The system has attempted to use an undefined value, which usually indicates a programming error, either in your code or some system code. Null Pointers are another name for undefined values.&#8221; with that particular line of code being highlighted as the culprit.</p>
<p>Interestingly enough, this code used to work fine for them in Adobe ColdFusion 9. To provide some additional context, here&#8217;s a barebone Application.cfc that shows exactly the behaviour:</p>
<pre class="brush: plain; title: ; notranslate">
&lt;cfcomponent&gt;       
  &lt;cfset this.name = &quot;test_app&quot;&gt;
  &lt;cfset this.applicationTimeout = createTimeSpan( 2, 0, 0, 0 ) /&gt;
  &lt;cfset this.clientManagement = true /&gt;
  &lt;cfset this.sessionManagement = false /&gt;
  &lt;cfset this.setClientCookies = false /&gt;
 
  &lt;cftry&gt;
    &lt;cfcookie name=&quot;cfid&quot; value=&quot;123456&quot;&gt;
 
    &lt;cfcatch&gt;
      Error:&lt;cfdump var=&quot;#cfcatch#&quot;&gt;
    &lt;/cfcatch&gt;
  &lt;/cftry&gt;
               
  Cookie:&lt;cfdump var=&quot;#cookie#&quot;&gt;
 
  &lt;cfabort&gt;
&lt;/cfcomponent&gt;
</pre>
<p>You might be able to guess now what&#8217;s causing the issue here: it&#8217;s the fact that the cookie&#8217;s value is being set in the pseudo-constructor of Application.cfc. If the respective code is moved into onRequestStart for instance, it will just run fine. The code as shown above will work without any issues in ACF 9.</p>
<p>There&#8217;s nothing overly wrong with this &#8211; it seems to be a funny little quirk when it comes to &#8220;changed behaviours&#8221; while upgrading from one version of Adobe ColdFusion to another.</p>
<p>Also when dealing with cookies in ColdFusion 10, make sure to look at the links below &#8211; some interesting discussions about slightly changed behaviour and functionality:</p>
<p><a href="http://forums.adobe.com/message/4714631">http://forums.adobe.com/message/4714631</a><br />
<a href="http://www.shilpikhariwal.com/2012/09/prevention-for-accidental-manipulation.html">http://www.shilpikhariwal.com/2012/09/prevention-for-accidental-manipulation.html</a></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2274</post-id>	</item>
		<item>
		<title>Some cool new tools in Java 7 Update 40</title>
		<link>http://bloginblack.de/2013/12/some-cool-new-tools-in-java-7-update-40/</link>
		
		<dc:creator><![CDATA[kai]]></dc:creator>
		<pubDate>Mon, 02 Dec 2013 02:24:20 +0000</pubDate>
				<category><![CDATA[Agent K on Java]]></category>
		<category><![CDATA[BEA]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[java mission control]]></category>
		<category><![CDATA[jdk]]></category>
		<category><![CDATA[JRockit]]></category>
		<category><![CDATA[JVM]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[sun]]></category>
		<guid isPermaLink="false">http://bloginblack.de/?p=2266</guid>

					<description><![CDATA[Oracle released Java 7 Update 40 back in September. Obviously there are a bunch of improvements in the security department and some new third-party libraries. Apart from this standard stuff, you&#8217;ll find a lot of really awesome goodies in this update, too. Depending on how long you&#8217;ve been dealing with Java and JVMs you might remember [&#8230;]]]></description>
										<content:encoded><![CDATA[<p></p><p>Oracle released <a href="http://www.oracle.com/technetwork/java/javase/7u40-relnotes-2004172.html">Java 7 Update 40</a> back in September. Obviously there are a bunch of improvements in the security department and some new third-party libraries. Apart from this standard stuff, you&#8217;ll find a lot of really awesome goodies in this update, too.</p>
<p>Depending on how long you&#8217;ve been dealing with Java and JVMs you might remember that there used to be a really awesome JVM from BEA: JRockit (well, it still exists, but that&#8217;s a different story). Oracle purchased BEA a few years ago (before they took over Sun). In the JRockit ecosystem there are two really interesting tools available:</p>
<ul>
<li>Java Mission Control: monitoring and diagnostics</li>
<li>Java Flight Recorder: recording events and various metrics at runtime</li>
</ul>
<p>Check out the <a href="http://www.oracle.com/technetwork/java/javaseproducts/mission-control/index.html">Mission Control</a> website and have a play with it, it&#8217;s really cool. Be aware though that <a href="http://hirt.se/blog/?p=343">Java Mission Control</a> is only free for development purposes and that you&#8217;ll need a license from Oracle to use it in production.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2266</post-id>	</item>
		<item>
		<title>An update on HTTPOnly marked cookies in Railo 4.1</title>
		<link>http://bloginblack.de/2013/11/an-update-on-httponly-marked-cookies-in-railo-4-1/</link>
					<comments>http://bloginblack.de/2013/11/an-update-on-httponly-marked-cookies-in-railo-4-1/#comments</comments>
		
		<dc:creator><![CDATA[kai]]></dc:creator>
		<pubDate>Fri, 29 Nov 2013 22:16:55 +0000</pubDate>
				<category><![CDATA[Agent K on CF]]></category>
		<category><![CDATA[Agent K on Java]]></category>
		<category><![CDATA[CF]]></category>
		<category><![CDATA[CFML]]></category>
		<category><![CDATA[Railo]]></category>
		<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">http://bloginblack.de/?p=2258</guid>

					<description><![CDATA[In January this year, I wrote a blog post to advise people how to make the default installation of a Railo 4 server more secure. One of the elements was to make sure you&#8217;re using HttpOnly marked cookies for your session cookies (depending on your setup that might be JSESSIONID or CFID/CFTOKEN). In the blog [&#8230;]]]></description>
										<content:encoded><![CDATA[<p></p><p>In January this year, I wrote a blog post to <a href="http://bloginblack.de/2013/01/two-tips-to-make-railo-4s-default-installation-more-secure/">advise people how to make the default installation of a Railo 4 server more secure</a>. One of the elements was to make sure you&#8217;re using HttpOnly marked cookies for your session cookies (depending on your setup that might be JSESSIONID or CFID/CFTOKEN).</p>
<p>In the blog post, I&#8217;ve described how this can be achieved on a Tomcat context level if you&#8217;re using J2EE sessions and JSESSIONID, but there was no solution for using the legacy CFID/CFTOKEN session cookies stemming from the early days of Adobe ColdFusion.</p>
<p>In the meantime, there&#8217;s been some activity:</p>
<p>a) Since Railo 4.1, you can create HttpOnly-marked cookies through CFCOOKIE. Even though I haven&#8217;t tried it out yet, it&#8217;s been clearly documented in the (now closed) ticket <a href="https://issues.jboss.org/browse/RAILO-1339">RAILO-1339</a></p>
<p>b) There&#8217;s a <a href="https://issues.jboss.org/browse/RAILO-2773">new ticket (RAILO-2773) to make sure that the client/session cookies of your Railo installation are by default going to be marked HttpOnly</a>. In the comments to Railo-1339, we discussed the potential implications in regards backwards compatibility, but there&#8217;s really no reason whatsoever for Javascript to access CFID/CFTOKEN &#8212; not even in old legacy apps. Go and vote for <a href="https://issues.jboss.org/browse/RAILO-2773">RAILO-2773 </a>please! 🙂</p>
<p>In addition to that, <a href="https://groups.google.com/forum/#!msg/railo/VcbUrYGRkaQ/bjn8eIIZhn8J">Chris Blackwell has suggested a workaround on the Railo mailinglist</a>:</p>
<p>Set the following in Application.cfc:</p>
<pre class="brush: plain; title: ; notranslate">
this.setclientcookies = false;
</pre>
<p>And then put this in your onRequestStart function:</p>
<pre class="brush: plain; title: ; notranslate">
array('CFID','CFTOKEN','JSESSIONID').each(function(c) {
  if(structKeyExists(session, c)) {
    cookie name=c value=&quot;#session&#x5B; c ]#&quot; httponly=&quot;true&quot;;
  }
});
</pre>
<p>Interesting topic and you&#8217;ve got an opinion on it you&#8217;d like to share? Just <a href="https://groups.google.com/forum/#!msg/railo/VcbUrYGRkaQ/bjn8eIIZhn8J">join the discussion thread</a>!</p>
]]></content:encoded>
					
					<wfw:commentRss>http://bloginblack.de/2013/11/an-update-on-httponly-marked-cookies-in-railo-4-1/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2258</post-id>	</item>
		<item>
		<title>Displaying PDF documents/forms from Adobe LiveCycle in the browser</title>
		<link>http://bloginblack.de/2013/11/displaying-pdf-documentsforms-from-adobe-livecycle-in-the-browser/</link>
					<comments>http://bloginblack.de/2013/11/displaying-pdf-documentsforms-from-adobe-livecycle-in-the-browser/#comments</comments>
		
		<dc:creator><![CDATA[kai]]></dc:creator>
		<pubDate>Wed, 27 Nov 2013 22:07:24 +0000</pubDate>
				<category><![CDATA[Agent K and the rest of the world]]></category>
		<category><![CDATA[Agent K on Java]]></category>
		<category><![CDATA[LiveCycle]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Forms]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[PDF]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[XFA]]></category>
		<guid isPermaLink="false">http://bloginblack.de/?p=2253</guid>

					<description><![CDATA[Users of Adobe LiveCycle quite regularly interact with PDF documents. Some examples are: Rendering customised documents for print purposes Creating PDF forms for on- and offline use to collect data for further processing Rendering pre-filled PDF forms to send out to customers/users for completion and physical signature etc. In a lot of cases those PDF [&#8230;]]]></description>
										<content:encoded><![CDATA[<p></p><p>Users of Adobe LiveCycle quite regularly interact with PDF documents. Some examples are:</p>
<ul>
<li>Rendering customised documents for print purposes</li>
<li>Creating PDF forms for on- and offline use to collect data for further processing</li>
<li>Rendering pre-filled PDF forms to send out to customers/users for completion and physical signature etc.</li>
</ul>
<p>In a lot of cases those PDF documents are what&#8217;s called an XFA-based PDF form/template. XFA is <a href="http://partners.adobe.com/public/developer/xml/index_arch.html">Adobe&#8217;s</a> <a href="http://en.wikipedia.org/wiki/XFA">XML Forms Architecture</a> and a proprietary technology to describe form information. I spare you the technical details, but essentially quite often those XFA-based forms get wrapped into a PDF document, this is done by rendering the XFA information over a PDF page background.</p>
<p>Now, in a lot of corporates and large public sector organisations (who tend to be the main users of Adobe LiveCycle) Internet Explorer is commonly used as &#8220;the&#8221; web browser. If users have Firefox or Chrome installed, they&#8217;d quite often be considered either advanced users or would work in the web/communication/IT teams.</p>
<p>Also, organisations as mentioned above are in general Windows-heavy and would generally have Adobe Acrobat Reader or Acrobat in various versions (from shockingly old to recent) deployed to their user base as part of their PC images.</p>
<p>What I&#8217;ve seen happening a few times in the recent past is that people would build and deploy XFA-based PDF forms or templates into their systems (or even on their public website for customer/clients to work with) and then realise that those documents create various issues when being rendered in Firefox or Chrome. Examples I&#8217;ve seen in the past were buttons randomly not working properly or the form opening up in the browser with weird error messages.</p>
<p>Why is that? Essentially both Chrome and Firefox use their own PDF rendering engine that&#8217;s built into the respective browser, IE doesn&#8217;t. In general that&#8217;s a good thing &#8211; Adobe&#8217;s Acrobat Reader is kind of overkill and bloated when it comes to rendering static PDF content. For XFA-based documents though, the built-in engines don&#8217;t work as well for a variety of reasons.</p>
<p>You essentially have two options here:</p>
<p>a) In some instances you can try to render a static PDF file instead of an XFA-based form/template. That would not work for certain types of dynamic and/or interactive forms though.</p>
<p>b) You can switch off the built-in PDF viewers in <a href="http://howto.cnet.com/8301-11310_39-20074274-285/how-to-disable-chromes-pdf-viewer/">Chrome</a> and <a href="https://support.mozilla.org/en-US/kb/disable-built-pdf-viewer-and-use-another-viewer">Firefox</a> and make them use Adobe Acrobat (Reader). That&#8217;s usually an option to pursue if your users are internal. If you have external users whose environment you can&#8217;t control, that&#8217;s obviously not an option and communication with and towards those users is the key.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://bloginblack.de/2013/11/displaying-pdf-documentsforms-from-adobe-livecycle-in-the-browser/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2253</post-id>	</item>
		<item>
		<title>Adobe ColdFusion and Railo users: be aware of the newest Apache Tomcat trojan/worm</title>
		<link>http://bloginblack.de/2013/11/adobe-coldfusion-and-railo-users-be-aware-of-the-newest-apache-tomcat-trojan-worm/</link>
					<comments>http://bloginblack.de/2013/11/adobe-coldfusion-and-railo-users-be-aware-of-the-newest-apache-tomcat-trojan-worm/#comments</comments>
		
		<dc:creator><![CDATA[kai]]></dc:creator>
		<pubDate>Wed, 27 Nov 2013 02:56:06 +0000</pubDate>
				<category><![CDATA[Agent K on CF]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[CF]]></category>
		<category><![CDATA[CFML]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Railo]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Tomcat]]></category>
		<guid isPermaLink="false">http://bloginblack.de/?p=2248</guid>

					<description><![CDATA[Symantec has recently discovered a trojan/worm-ish thing that threatens application servers running Apache Tomcat. It seems to follow the typical command &#38; control pattern with control servers having been found in Taiwan and Luxembourg so far. This threat is using a very specific attack vector by trying to spread via the Apache Tomcat Managers and [&#8230;]]]></description>
										<content:encoded><![CDATA[<p></p><p><a href="http://www.symantec.com/connect/blogs/all-your-tomcat-are-belong-bad-guys">Symantec has recently discovered a trojan/worm-ish thing</a> that threatens application servers running Apache Tomcat. It seems to follow the typical command &amp; control pattern with control servers having been found in Taiwan and Luxembourg so far.</p>
<p><a href="http://www.symantec.com/security_response/writeup.jsp?docid=2013-111815-1359-99">This threat</a> is using a very specific attack vector by trying to spread via the Apache Tomcat Managers <del>and their (quite often unchanged) weak passwords</del> and the weak users/passwords Apache Tomcat ships with as (commented and not by default active) examples . If it&#8217;s successful, it&#8217;ll try to deploy itself as a servlet and the cycle restarts.</p>
<p>You can prevent the whole thing from happening if you either have disabled the Manager applications or have setup users with non-default, strong passwords. The file to check is tomcat-users.xml and its content.</p>
<p>Why is this even interesting for Adobe ColdFusion and Railo users? Mainly because a lot of people run their CFML servers on Apache Tomcat. There are various use cases of which you should be aware of:</p>
<p>a) Adobe ColdFusion 9 as a single server install is safe from this attack as it&#8217;d be using JRun. In Adobe ColdFusion 9 Tomcat deployment  was never properly supported officially, but certainly doable through custom .war deployments. If you did that, it&#8217;s quite likely that you might be running a full version of Apache Tomcat and that you <em>might</em> be vulnerable, depending on your setup (see above).</p>
<p>b) Adobe ColdFusion 10 comes with a preinstalled and embedded Tomcat instance if you do a single server install. That could theoretically expose you. However, I&#8217;ve checked an install I&#8217;m running on OS X and it seems that there are no users and roles enabled in the configuration either. Again, if you&#8217;ve done a custom J2E deployment on your own Tomcat &#8211; make sure you check that and know what you&#8217;re doing.</p>
<p>c) Current Railo 4 installers and custom installs: The installers are all very safe and secure by default, there haven&#8217;t been any modifications to the users/role setup. The current 4.1 installers don&#8217;t even install the Tomcat-own webapps. If you used a vanilla Tomcat from Apache&#8217;s website and dropped Railo into that as a .war/.jar file you&#8217;ll be fine, too, as there are no users enabled for the Tomcat Manager apps.</p>
<p>The essence is: by default you <em>should</em> be fine according to what I&#8217;ve seen. If you&#8217;ve modified your Apache Tomcat setup in any way, please make sure you&#8217;re staying safe as well. Not to forget that the full credit for making me aware of the Tomcat threat in the first place goes to <a href="http://utdream.org/">Jordan Michaels</a>.</p>
<p><em>Updated (29/11/2013): Changed the wording in 2nd paragraph.</em></p>
]]></content:encoded>
					
					<wfw:commentRss>http://bloginblack.de/2013/11/adobe-coldfusion-and-railo-users-be-aware-of-the-newest-apache-tomcat-trojan-worm/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2248</post-id>	</item>
		<item>
		<title>ColdFusion and ColdFusion Builder source code have been stolen</title>
		<link>http://bloginblack.de/2013/10/coldfusion-and-coldfusion-builder-source-code-have-been-stolen/</link>
					<comments>http://bloginblack.de/2013/10/coldfusion-and-coldfusion-builder-source-code-have-been-stolen/#comments</comments>
		
		<dc:creator><![CDATA[kai]]></dc:creator>
		<pubDate>Sat, 05 Oct 2013 10:48:18 +0000</pubDate>
				<category><![CDATA[Agent K on CF]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[CFML]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Hack]]></category>
		<category><![CDATA[Railo]]></category>
		<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">http://bloginblack.de/?p=2240</guid>

					<description><![CDATA[So, there we go. Adobe got hacked and according to Krebs on Security and Adobe themselves, among other things, the source code of ColdFusion, ColdFusion Builder and other Adobe products has been stolen and shown up on hacker sites. This is obviously an issue. I don&#8217;t want to comment on how it might or might [&#8230;]]]></description>
										<content:encoded><![CDATA[<p></p><p>So, there we go. Adobe got hacked and according to <a href="http://krebsonsecurity.com/2013/10/adobe-to-announce-source-code-customer-data-breach/">Krebs on Security</a> and <a href="http://blogs.adobe.com/asset/2013/10/illegal-access-to-adobe-source-code.html">Adobe themselves</a>, among other things, the source code of ColdFusion, ColdFusion Builder and other Adobe products has been stolen and shown up on hacker sites.</p>
<p>This is obviously an issue. I don&#8217;t want to comment on how it might or might not have happened and what the implications are for Adobe Acrobat (Reader) users. Let&#8217;s have a think about Adobe ColdFusion, a hosted server product.</p>
<p>First of all, according to my knowledge, it&#8217;s not clear yet which versions of Adobe ColdFusion&#8217;s source code has been stolen/leaked. It might be CF 4 or 5 and therefore less of a worry. More likely however is that it&#8217;s a or multiple recent versions of ColdFusion. What does that mean for both Adobe and you, your users and customers? I&#8217;ll try to look at the problems this development is most likely going to cause from a few different angles. Your mileage might vary.</p>
<ol>
<li>Hackers have the source code of a server product that&#8217;s being hosted on thousands of web and application servers all over the world. A major user for instance is the US Federal Government and currently the European Union (even though there are <del>strong movements towards changing to Railo </del>people within EU organisations looking into moving towards Railo <del>in the latter</del>).</li>
<li>ColdFusion 9 and 10 recently had a a reputation for being easily hackable due to some exploits that got not that well patched and even then the patches are notoriously difficult to apply for administrators. This has become much better with ColdFusion 10 though. There has been a whole series of hacks against hosting companies and users of CF servers.</li>
<li>Take 1 and 2 and you can safely expect that there will be a bunch of new exploits coming along for CF users. This time about 10x worse because hackers have the actual source code.</li>
<li>Some people argued on mailing lists or in blogs that hackers could just decompile the Java bytecode CF is delivered through. That is true. However, if you HAD ever done that, you&#8217;d see that it&#8217;s much easier for a hacker (or anyone, really) to go through actual, probably commented, source code instead of auto-generated decompiled-from-a-bytecode-file source code.</li>
<li>Trust: When one buys a commercial, closed source product, one puts a certain level of trust into the vendor of the product and its support. It&#8217;s implicit &#8220;security-by-keeping-the-source-code-in-a-vault&#8221;. I don&#8217;t want to discuss if that&#8217;s good or bad in the first place, but now that vault has been broken into. So &#8211; the people who know about bugs, security holes and other issues are not solely Adobe anymore, but Adobe and the Hackers. Can I safely trust an CF installation from now on? Can people safely recommend customers to install CF? I struggle with that thought.</li>
<li>Trust flow-on effects: I wonder how long it takes until organisations like PCI have issues with issuing CF-driven sites as PCI-compliant in an e-commerce context. A commercial application server of which the hacked source code is out in the wild &#8211; is that trustworthy?</li>
<li>Some people argued recently that Railo&#8217;s and OpenBD&#8217;s source code are open and out there as well. Wouldn&#8217;t that be the same then? The short answer &#8211; no. Both Railo and OpenBD are open source. It&#8217;s intentionally opened. There&#8217;s a community, there&#8217;s transparency. If you don&#8217;t trust Railo, inspect the source code &#8211; that&#8217;s (among other things) why it&#8217;s out there.</li>
</ol>
<p>What&#8217;s the way out here for Adobe? I honestly don&#8217;t know &#8211; but my gut feeling is that their only option would be to in some way open source the product for everyone while keeping commercial distribution rights (I assume they still try to make money from it). I&#8217;m at this stage not even sure if and how that&#8217;d be feasible. In the meantime &#8211; be aware of this situation and that there will be a sting a hacking attacks soon. It&#8217;s not a question of IF, but WHEN.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://bloginblack.de/2013/10/coldfusion-and-coldfusion-builder-source-code-have-been-stolen/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2240</post-id>	</item>
	</channel>
</rss>
