<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Where Are The CTRL-S, ALT-TAB, F5 Web Frameworks?</title>
	<atom:link href="http://www.barneyb.com/barneyblog/2009/10/26/where-are-the-ctrl-s-alt-tab-f5-web-frameworks/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.barneyb.com/barneyblog/2009/10/26/where-are-the-ctrl-s-alt-tab-f5-web-frameworks/</link>
	<description>Thoughts, rants, and even some code from the mind of Barney Boisvert.</description>
	<lastBuildDate>Thu, 11 Sep 2014 09:58:12 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: barneyb</title>
		<link>https://www.barneyb.com/barneyblog/2009/10/26/where-are-the-ctrl-s-alt-tab-f5-web-frameworks/comment-page-1/#comment-194376</link>
		<dc:creator>barneyb</dc:creator>
		<pubDate>Tue, 27 Oct 2009 16:16:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/?p=1122#comment-194376</guid>
		<description>Thanks, all y&#039;all.  I was really talking about non-CFML frameworks; all the CFML frameworks I&#039;ve ever used are at least scriptable for reloads (via filesystem timestamp checks), and most of them provide the hooks to have it happen automatically (though they&#039;re typically not intelligent about it).  Pretty much every CFML application I write has a block in Application.cfm&#124;cfc that will do series of filesystem checks, and if any of the files are newer than the last application load, set a request variable that will trigger a load on this request.  Then the in-memory stuff is always current, but I only pay the reload cost if stuff has changed.

But once you get out of CFML, it&#039;s pretty much all about restarting the whole container every time you make a change.  And worse, it&#039;s not something that happens automatically; you have to manually remember to go restart.  If you have a good IDE, some of that pain is mitigated because it&#039;ll notice when you need to restart and at least tell you to do it with a dialog, but still a PITA.

It doesn&#039;t seem like this is a hard problem to solve, though it&#039;s certainly one that has to be done pretty low level (below the JEE spec) or with some pretty invasive classloader stuff (like CFML engines do).  But it seems either one isn&#039;t to terribly much work compared to the rest of a web toolkit.</description>
		<content:encoded><![CDATA[<p>Thanks, all y'all.  I was really talking about non-CFML frameworks; all the CFML frameworks I've ever used are at least scriptable for reloads (via filesystem timestamp checks), and most of them provide the hooks to have it happen automatically (though they're typically not intelligent about it).  Pretty much every CFML application I write has a block in Application.cfm|cfc that will do series of filesystem checks, and if any of the files are newer than the last application load, set a request variable that will trigger a load on this request.  Then the in-memory stuff is always current, but I only pay the reload cost if stuff has changed.</p>
<p>But once you get out of CFML, it's pretty much all about restarting the whole container every time you make a change.  And worse, it's not something that happens automatically; you have to manually remember to go restart.  If you have a good IDE, some of that pain is mitigated because it'll notice when you need to restart and at least tell you to do it with a dialog, but still a PITA.</p>
<p>It doesn't seem like this is a hard problem to solve, though it's certainly one that has to be done pretty low level (below the JEE spec) or with some pretty invasive classloader stuff (like CFML engines do).  But it seems either one isn't to terribly much work compared to the rest of a web toolkit.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dean Lawrence</title>
		<link>https://www.barneyb.com/barneyblog/2009/10/26/where-are-the-ctrl-s-alt-tab-f5-web-frameworks/comment-page-1/#comment-194363</link>
		<dc:creator>Dean Lawrence</dc:creator>
		<pubDate>Tue, 27 Oct 2009 13:51:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/?p=1122#comment-194363</guid>
		<description>Barney, as long as you are in development mode, Model-Glue will do this for you too. When you are not in dev mode, you simply need to append an init var at the end of your URL. And you only really need to do this if your model or your controller files change. If you just update view files, there is no need to reload the app.</description>
		<content:encoded><![CDATA[<p>Barney, as long as you are in development mode, Model-Glue will do this for you too. When you are not in dev mode, you simply need to append an init var at the end of your URL. And you only really need to do this if your model or your controller files change. If you just update view files, there is no need to reload the app.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dan G. Switzer, II</title>
		<link>https://www.barneyb.com/barneyblog/2009/10/26/where-are-the-ctrl-s-alt-tab-f5-web-frameworks/comment-page-1/#comment-194351</link>
		<dc:creator>Dan G. Switzer, II</dc:creator>
		<pubDate>Tue, 27 Oct 2009 11:48:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/?p=1122#comment-194351</guid>
		<description>I know ColdBox supports this. You can use the Environments interceptor to turn this on for your development server, then just add the settings to autoload:




This will ensure that you can just save changes and refresh the page.

(NOTE: In case the XML doesn&#039;t show up, you use the &quot;Setting&quot; tag to set the HandlersIndexAutoReload and ConfigAutoReload to true.)</description>
		<content:encoded><![CDATA[<p>I know ColdBox supports this. You can use the Environments interceptor to turn this on for your development server, then just add the settings to autoload:</p>
<p>This will ensure that you can just save changes and refresh the page.</p>
<p>(NOTE: In case the XML doesn't show up, you use the "Setting" tag to set the HandlersIndexAutoReload and ConfigAutoReload to true.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: marc esher</title>
		<link>https://www.barneyb.com/barneyblog/2009/10/26/where-are-the-ctrl-s-alt-tab-f5-web-frameworks/comment-page-1/#comment-194350</link>
		<dc:creator>marc esher</dc:creator>
		<pubDate>Tue, 27 Oct 2009 11:30:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/?p=1122#comment-194350</guid>
		<description>Barney, Are there specific CF frameworks you&#039;re thinking of? I ask that because in my day job, we use a very old fusebox2-ish framework, so for me development is always ctrl-s/alt-tab/f5 for seeing interface changes. I wonder what CF frameworks don&#039;t do that. Perhaps it&#039;s the ones that cache handler components, in which case you need to &quot;reset&quot; them?  

I remember a few years back, when FuseBox 5 first came out, I downloaded it just to play around. I was surprised at how long page loads were... half a second, and that was just in the framework, not in my app. I then learned that it was in &quot;dev&quot; mode. Turning that off got the page times down, but then everything was cached. So I installed a firefox extension for easily resetting the app when I needed it. Is this the pain you&#039;re talking about? If so... I completely hear you.

When I have to get into java coding (non-grails... straight jsp) I am appalled at the workflow. I&#039;m like you: I don&#039;t want to rely on IDE tricks to &quot;transparently&quot; stop and restart the server, because either way it&#039;s slow. Perhaps JRebel is the answer here and if I were doing daily java-ish work I&#039;d think it would be worth the money.</description>
		<content:encoded><![CDATA[<p>Barney, Are there specific CF frameworks you're thinking of? I ask that because in my day job, we use a very old fusebox2-ish framework, so for me development is always ctrl-s/alt-tab/f5 for seeing interface changes. I wonder what CF frameworks don't do that. Perhaps it's the ones that cache handler components, in which case you need to "reset" them?  </p>
<p>I remember a few years back, when FuseBox 5 first came out, I downloaded it just to play around. I was surprised at how long page loads were&#8230; half a second, and that was just in the framework, not in my app. I then learned that it was in "dev" mode. Turning that off got the page times down, but then everything was cached. So I installed a firefox extension for easily resetting the app when I needed it. Is this the pain you're talking about? If so&#8230; I completely hear you.</p>
<p>When I have to get into java coding (non-grails&#8230; straight jsp) I am appalled at the workflow. I'm like you: I don't want to rely on IDE tricks to "transparently" stop and restart the server, because either way it's slow. Perhaps JRebel is the answer here and if I were doing daily java-ish work I'd think it would be worth the money.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Paul Connell</title>
		<link>https://www.barneyb.com/barneyblog/2009/10/26/where-are-the-ctrl-s-alt-tab-f5-web-frameworks/comment-page-1/#comment-194340</link>
		<dc:creator>Paul Connell</dc:creator>
		<pubDate>Tue, 27 Oct 2009 09:43:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/?p=1122#comment-194340</guid>
		<description>Well, setting Fusebox for instance to development mode refreshes EVERY time, regardless of changes.  I&#039;ve often thought through this issue, and the main stumbling block I saw was minute resolution on files - do a cfdirectory and the timestamp is down to the minute.  Now getting a cache system to see changes under that?  Maybe there&#039;s a java workaround, but ultimately finding out if a file has changed and recompiling it under a minute (which does happen a lot when you are tweaking) is not possible?

Maybe this has changed with CF9 (not checked).  Until you can get a timestamp of last-modified to be second or less resolution...who knows.</description>
		<content:encoded><![CDATA[<p>Well, setting Fusebox for instance to development mode refreshes EVERY time, regardless of changes.  I've often thought through this issue, and the main stumbling block I saw was minute resolution on files &#8211; do a cfdirectory and the timestamp is down to the minute.  Now getting a cache system to see changes under that?  Maybe there's a java workaround, but ultimately finding out if a file has changed and recompiling it under a minute (which does happen a lot when you are tweaking) is not possible?</p>
<p>Maybe this has changed with CF9 (not checked).  Until you can get a timestamp of last-modified to be second or less resolution&#8230;who knows.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Martijn van der Woud</title>
		<link>https://www.barneyb.com/barneyblog/2009/10/26/where-are-the-ctrl-s-alt-tab-f5-web-frameworks/comment-page-1/#comment-194332</link>
		<dc:creator>Martijn van der Woud</dc:creator>
		<pubDate>Tue, 27 Oct 2009 08:34:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/?p=1122#comment-194332</guid>
		<description>Hi Barney,

Coldbox lets you specify special settings for your dev environment, apart from your production settings. There you can specify not to cache handlers, reload your ioc factory, reload the framework, etcetera on every request. 

See &lt;a href=&quot;http://ortus.svnrepository.com/coldbox/trac.cgi/wiki/cbEnvironmentControl&quot; rel=&quot;nofollow&quot;&gt;Environment Control Via Interceptors&lt;/a&gt; for more details.</description>
		<content:encoded><![CDATA[<p>Hi Barney,</p>
<p>Coldbox lets you specify special settings for your dev environment, apart from your production settings. There you can specify not to cache handlers, reload your ioc factory, reload the framework, etcetera on every request. </p>
<p>See <a href="http://ortus.svnrepository.com/coldbox/trac.cgi/wiki/cbEnvironmentControl" rel="nofollow">Environment Control Via Interceptors</a> for more details.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
