<?xml version="1.0" encoding="utf-8"?>
			
			<rss version="2.0">
			<channel>
			<title>Lynch Consulting Blog</title>
			<link>http://www.lynchconsulting.com.au/blog/index.cfm</link>
			<description>A blog about ColdFusion, PHP, Flash, Flex, Web Standards and a mish mash of other technologies</description>
			<language>en-us</language>
			<pubDate>Tue, 07 Sep 2010 12:31:39 --1000</pubDate>
			<lastBuildDate>Sat, 28 Aug 2010 17:48:00 --1000</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>mark@lynchconsulting.com.au</managingEditor>
			<webMaster>mark@lynchconsulting.com.au</webMaster>
			
			
			
			
			
			<item>
				<title>Lego Digital Designer on Ubuntu</title>
				<link>http://www.lynchconsulting.com.au/blog/index.cfm/2010/8/28/Lego-Digital-Designer-on-Ubuntu</link>
				<description>
				
				Having seen the Lego Digital Designer I wanted to see if I could get it to run on Ubuntu, as there is a distinct lack of windows machines at home for my son to use.

It was all relatively painless and it&apos;s quite amazing how far Wine has come.

&lt;h3&gt;Installing Lego Digital Designer&lt;/h3&gt;


Go to the &lt;a href=&quot;http://ldd.lego.com/&quot;&gt;Lego Digital Designer&lt;/a&gt; site and download the Windows version.

I got &lt;a href=&quot;http://cache.lego.com/downloads/ldd2.0/installer/SetupLDD-PC-3_1_3.exe
&quot;&gt;LDD 3.1.3&lt;/a&gt; which was the latest version available at the time.


Now - to make it all work you need to install Wine and I used the latest version from the wine PPA team.

Add the wine ppa:
&lt;code&gt;
sudo add-apt-repository ppa:ubuntu-wine/ppa
[sudo] password for markl: 
&lt;/code&gt;

You&apos;ll then see:
&lt;code&gt;
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /etc/apt/secring.gpg --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver keyserver.ubuntu.com --recv 883E8688397576B6C509DF495A9A06AEF9CB8DB0
gpg: requesting key F9CB8DB0 from hkp server keyserver.ubuntu.com
gpg: key F9CB8DB0: public key &quot;Launchpad PPA for Ubuntu Wine Team&quot; imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
&lt;/code&gt;

Now to update the list of available software:
&lt;code&gt;
sudo apt-get update
&lt;/code&gt;

And then install wine and winetricks
&lt;code&gt;
sudo apt-get install wine winetricks
&lt;/code&gt;


Wine lets you run Windows software on other operating systems, in this case Ubuntu.

Wine tricks provides a simple way to install native versions of some of the libraries that are not 100% compatible - by looking at the &lt;a href=&quot;http://appdb.winehq.org/objectManager.php?sClass=version&amp;iId=18127&quot;&gt;Wine App DB&lt;/a&gt; I discovered that it had problems with missing font&apos;s (Tahoma) and scrolling which was fixed by installing Quartz.

&lt;code&gt;
winetricks tahoma quartz
&lt;/code&gt;

Then install double click on the install file for LDD and it should be up an running in no time.

If you get a warning about it not being Executable you may need to right click on the application and select Properties - and then from the Permissions tab select &quot;Allow executing file as program&quot;

Son is now very happy with Lego Digital Designer :-)
				
				</description>
				
				<category>Ubuntu</category>
				
				<category>Linux</category>
				
				<category>General</category>
				
				<pubDate>Sat, 28 Aug 2010 17:48:00 --1000</pubDate>
				<guid>http://www.lynchconsulting.com.au/blog/index.cfm/2010/8/28/Lego-Digital-Designer-on-Ubuntu</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Signing Northcode Applications with MS Authenticode</title>
				<link>http://www.lynchconsulting.com.au/blog/index.cfm/2010/8/17/Signing-Northcode-Applications-with-MS-Authenticode</link>
				<description>
				
				Here&apos;s a quick howto for signing applications on windows which means that it won&apos;t show up as Author unknown.

Download the &lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?FamilyID=c17ba869-9671-4330-a63e-1fd44e0e2505&amp;displaylang=en&quot;&gt;Windows SDK&lt;/a&gt;.

Install it - I didn&apos;t install any of the code samples or help as I didn&apos;t want to wast 3.5G of space just for some code signing. Obviously it does a lot more than I was using it for :-).

If you have a code signing cert you need to install it into windows by double clicking on it and following the prompts.

Then simply run the following command:
&lt;code&gt;
&quot;c:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\signtool.exe&quot; sign /a filenametosign.exe
Done Adding Additional Store
Successfully signed: filenametosign.exe
&lt;/code&gt;

Then when people run your application is will say the Author name instead of &quot;Unknown&quot;

Mark

See also: &lt;a href=&quot;http://www.northcode.com/blog.php/2010/01/08/How-do-I-get-rid-of-the-Unknown-Publisher-security-warning&quot;&gt;Northcode: How do I get rid of the &quot;Unknown Publisher&quot; security warning?&lt;/a&gt;
				
				</description>
				
				<category>AIR</category>
				
				<category>Actionscript</category>
				
				<pubDate>Tue, 17 Aug 2010 09:16:00 --1000</pubDate>
				<guid>http://www.lynchconsulting.com.au/blog/index.cfm/2010/8/17/Signing-Northcode-Applications-with-MS-Authenticode</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>ServerStats mentioned on CFHour</title>
				<link>http://www.lynchconsulting.com.au/blog/index.cfm/2010/6/29/ServerStats-mentioned-on-CFHour</link>
				<description>
				
				Just came across a mention of &lt;a href=&quot;http://www.learnosity.com/techblog/index.cfm/2006/11/9/Hacking-CFMX--pulling-it-all-together-serverStats&quot;&gt;a little project&lt;/a&gt; that I did back in 2006 in the most &lt;a href=&quot;http://www.cfhour.com/post.cfm/show-58-monitoring-debugging-and-guests&quot;&gt;recent CFHour podcast - 
Show #58 - Monitoring, Debugging, and Guests&lt;/a&gt;.  (Mention is at approx 53 minutes).

The &lt;a href=&quot;http://www.learnosity.com/techblog/index.cfm/2006/11/9/Hacking-CFMX--pulling-it-all-together-serverStats&quot;&gt;ServerStats code&lt;/a&gt; wraps up a few undocumented methods for CF to make it easy to get information on the number of sessions active on a server as well as some basic information on memory usage. 

Thanks to &lt;a href=&quot;http://www.carehart.org/&quot;&gt;Charlie Arehart&lt;/a&gt; for mentioning it - keep up the good work.

I must have a look at updating it to support Railo when I get a moment.

Cheers,
Mark
				
				</description>
				
				<category>Open Source</category>
				
				<category>ColdFusion</category>
				
				<pubDate>Tue, 29 Jun 2010 13:34:00 --1000</pubDate>
				<guid>http://www.lynchconsulting.com.au/blog/index.cfm/2010/6/29/ServerStats-mentioned-on-CFHour</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Howto find files newer than a specific date using command line</title>
				<link>http://www.lynchconsulting.com.au/blog/index.cfm/2010/5/10/Howto-find-files-newer-than-a-specific-date-using-command-line</link>
				<description>
				
				While doing some server admin tasks the other day I needed to find all the files newer than a certain date.  Using just the command line tools it was relatively simple but not obvious, so this is a not to self.

The find utility has an option to find a file newer than another file.  By creating and empty file with a specific creation date we can do the search:
&lt;code&gt;
touch timestamp -d 2010-01-01
&lt;/code&gt;

To show all files newer than 2010-01-01 use:
&lt;code&gt;
find . -newer timestamp 
&lt;/code&gt;

Or to create a tar archive of them use xargs like so:
&lt;code&gt;
find . -newer timestamp | xargs tar -rf /root/filesnewerthan-2010-01-01.tar
&lt;/code&gt;


Easy.
Mark
				
				</description>
				
				<category>HOWTO</category>
				
				<category>Linux</category>
				
				<category>Open Source</category>
				
				<category>Systems admin</category>
				
				<category>Ubuntu</category>
				
				<pubDate>Mon, 10 May 2010 23:19:00 --1000</pubDate>
				<guid>http://www.lynchconsulting.com.au/blog/index.cfm/2010/5/10/Howto-find-files-newer-than-a-specific-date-using-command-line</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Flex 3 to Flex 4 Migration Howto</title>
				<link>http://www.lynchconsulting.com.au/blog/index.cfm/2010/3/22/Flex-3-to-Flex-4-Migration-Howto</link>
				<description>
				
				I recently completed migrating an application from Flex3 to Flex4, and for my own reference, here&apos;s how I did it.

Note - this was done with flexsdk-4.0.0.13875, which was the most recent stable build at the time.

&lt;h2&gt;Phase 1:  Get Flex3 code compiling with Flex4&lt;/h2&gt;

&lt;h3&gt;Fix up stylesheets:&lt;/h3&gt;

If you have a current Flex3 project and you are migrating to Flex4 you need to add the following lines at the top of your stylesheet.
&lt;code&gt;
@namespace &quot;library://ns.adobe.com/flex/mx&quot;;
@namespace s &quot;library://ns.adobe.com/flex/spark&quot;;
&lt;/code&gt;

This makes the default non-namespaced items in your stylesheet refer to the MX components. eg:
&lt;code&gt;
Button{fontSize:18;}
&lt;/code&gt;
And to style up spark buttons you simply use:
&lt;code&gt;
s|Button{fontSize:18;}
&lt;/code&gt;

&lt;h3&gt;To statically link or not?&lt;/h3&gt;

Flex 4 defaults to dynamically linking runtime shared libraries.  This produces smaller files, but if you are making desktop type applications or developing code while not connected to the internet you&apos;ll probably want to statically link the files.  Add this to your compiler option:
&lt;code&gt;
-static-link-runtime-shared-libraries=true
&lt;/code&gt;


You now should have a happily compiling app, however, to use all the new goodness of flex 4 there are still some more steps to be done.

&lt;h2&gt;Phase 2: Using all of flex 4&lt;/h2&gt;

&lt;h3&gt;Update namespace to 2009&lt;/h3&gt;

To update the namespace references for flex 4 I did the following search and replace:
&lt;code&gt;
Replace:
xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot;
With:
xmlns:fx=&quot;http://ns.adobe.com/mxml/2009&quot; xmlns:mx=&quot;library://ns.adobe.com/flex/mx&quot; xmlns:s=&quot;library://ns.adobe.com/flex/spark&quot;
&lt;/code&gt;

&lt;h3&gt;Replace mx with fx namespace&lt;/h3&gt;

&lt;code&gt;
&lt;mx:Script&gt;  and &lt;/mx:Script&gt;
becomes:
&lt;fx:Script&gt;  and &lt;/fx:Script&gt;
&lt;/code&gt;

Similarly for other tags like this:
&lt;code&gt;
&lt;mx:Binding&gt;  to &lt;fx:Binding&gt;
&lt;mx:Metadata&gt;  to &lt;fx:Metadata&gt;
&lt;/code&gt;

&lt;h3&gt;Add Declarations for non visual components&lt;/h3&gt;

Wrap &lt;fx:Declarations&gt; tag around non visual compoents.  The compiler will complain about all these errors so just follow through and wrap them in 
&lt;code&gt;
&lt;fx:Declarations&gt;&lt;/fx:Declarations&gt; 
&lt;/code&gt;
tags until all the errors go away.


&lt;h3&gt;Migrate States&lt;/h3&gt;
Finally, at least for the project I migrated, I needed to convert all the state tags to the new format of inline attributes.

This shows up as the following error:
&lt;code&gt;
Error: State overrides may no longer be explicitly declared. The legacy states syntax has been deprecated.
&lt;/code&gt;

So if you had something like this before:
&lt;code&gt;
&lt;mx:State name=&quot;loading&quot;&gt; 
 &lt;mx:AddChild relativeTo=&quot;{myBox}&quot;&gt; 
  &lt;mx:Text textAlign=&quot;center&quot; text=&quot;Loading...&quot; selectable=&quot;false&quot; /&gt; 
 &lt;/mx:AddChild&gt;           
... snip ...
&lt;mx:VBox id=&quot;myBox&quot;&gt;	
&lt;/mx:VBox&gt;
&lt;/code&gt;

It would now look something like this:

&lt;code&gt;
&lt;mx:State name=&quot;loading&quot;&gt; 
... snip ...
&lt;mx:VBox id=&quot;myBox&quot;&gt;	
 &lt;mx:Text textAlign=&quot;center&quot; text=&quot;Loading...&quot; selectable=&quot;false&quot; 
	visible=&quot;false&quot; includeInLayout=&quot;false&quot;
	visible.loading=&quot;true&quot; includeInLayout.loading=&quot;true&quot;
 /&gt; 
&lt;/mx:VBox&gt;
&lt;/code&gt;


&lt;h3&gt;Migrate StyleManager References&lt;/h3&gt;

Stylemanager is not called as a global class any more and you need to use fully qualified references so:
&lt;code&gt;
thisImage.source = StyleManager.getStyleDeclaration(&quot;Image&quot;).getStyle(&quot;brokenImageSkin&quot;);
&lt;/code&gt;
becomes:
&lt;code&gt;
thisImage.source = styleManager.getStyleDeclaration(&quot;mx.controls.Image&quot;).getStyle(&quot;brokenImageSkin&quot;);
&lt;/code&gt;


When these have all been converted, your application should compile.

Then you can start leveraging the new functionality of flex4 and begin  migrating your components to spark if necessary.
				
				</description>
				
				<category>Open Source</category>
				
				<category>HOWTO</category>
				
				<category>Flex</category>
				
				<category>AIR</category>
				
				<category>Actionscript</category>
				
				<pubDate>Mon, 22 Mar 2010 09:50:00 --1000</pubDate>
				<guid>http://www.lynchconsulting.com.au/blog/index.cfm/2010/3/22/Flex-3-to-Flex-4-Migration-Howto</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>proxy_http vs proxy_ajp benchmark</title>
				<link>http://www.lynchconsulting.com.au/blog/index.cfm/2010/3/18/proxyhttp-vs-proxyajp-benchmark</link>
				<description>
				
				After I posted a previous blog entry about &lt;a href=&quot;http://www.lynchconsulting.com.au/blog/index.cfm/2010/3/12/Railo-on-Tomcat-revisited--modproxy&quot;&gt;configuring railo &amp; tomcat with apache and mod_proxy_http&lt;/a&gt;, &lt;a href=&quot;http://blog.kukiel.net/&quot;&gt;Paul Kukiel&lt;/a&gt; and &lt;a href=&quot;http://www.garyrgilbert.com/blog&quot;&gt;Gary Gilbert&lt;/a&gt; suggested that I should be using mod_proxy_ajp.

This has been something I&apos;ve been looking at, but haven&apos;t found a compelling reason for one over the other.

Proxy AJP is claimed to be faster as it is a &quot;Wire protocol&quot; but I couldn&apos;t find any benchmarks around this.  

So I decided to do a very quick and dirty benchmark to satisfy my curiosity.  This is not a scientific process, I just ran a simple railo testpage on the same machine with 50 threads of jmeter requests hitting it. 

First I enabled proxy_http and ran it four times, then enabled proxy_ajp and repeated.  The config is below:

&lt;code&gt;
# Proxy HTTP config
&lt;IfModule mod_proxy_http.c&gt;
	&lt;Proxy *&gt;
	Order deny,allow
	Allow from all
	&lt;/Proxy&gt;
	ProxyPassMatch ^/(.*\.cfm)$ http://testsite.railo:8080/$1
	ProxyPassReverse  /  http://testsite.railo:8080/
&lt;/IfModule&gt;
&lt;/code&gt;

&lt;code&gt;
# Proxy AJP config
&lt;IfModule mod_proxy_ajp.c&gt;
	&lt;Proxy *&gt;
	Order deny,allow
	Allow from all
	&lt;/Proxy&gt;
	ProxyPassMatch ^/(.*\.cfm)$ ajp://testsite.railo:8009/$1
	ProxyPassReverse  /  ajp://testsite.railo:8009/
&lt;/IfModule&gt;
&lt;/code&gt;

&lt;h2&gt;Results:&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;Run&lt;/th&gt;&lt;th&gt;HTTP Requests/sec&lt;/th&gt;&lt;th&gt;AJP Requests/sec&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Run 1&lt;/td&gt;&lt;td&gt;206.9&lt;/td&gt;&lt;td&gt;181.4&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Run 2&lt;/td&gt;&lt;td&gt;203.9&lt;/td&gt;&lt;td&gt;143.6&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Run 3&lt;/td&gt;&lt;td&gt;194.6&lt;/td&gt;&lt;td&gt;189.2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Run 4&lt;/td&gt;&lt;td&gt;204.6&lt;/td&gt;&lt;td&gt;191.4&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;Average&lt;/th&gt;&lt;th&gt;202.5&lt;/th&gt;&lt;th&gt;176.4&lt;/th&gt;&lt;/tr&gt;
&lt;/table&gt;

The results showed that the proxy_http module was faster - i.e. more requests per second could be pushed through.

I&apos;m putting this down to the fact that proxy_ajp has to convert the http request into it&apos;s binary format, while proxy_http really just has to pass it along. 

In different scenarios and network configurations the results may be different, but for now I&apos;m going to stick with the http proxy.

Proxy AJP has one other benefit, in that is passes along some extra flags such as whether the request is https or not, but for our purposes we don&apos;t need this.

Cheers,
Mark
				
				</description>
				
				<category>Systems admin</category>
				
				<category>Railo</category>
				
				<category>General</category>
				
				<category>ColdFusion</category>
				
				<pubDate>Thu, 18 Mar 2010 12:20:00 --1000</pubDate>
				<guid>http://www.lynchconsulting.com.au/blog/index.cfm/2010/3/18/proxyhttp-vs-proxyajp-benchmark</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>FFMpeg conversion - wmv to flv HOWTO</title>
				<link>http://www.lynchconsulting.com.au/blog/index.cfm/2010/3/12/FFMpeg-conversion--wmv-to-flv-HOWTO</link>
				<description>
				
				More of a quick note to self about converting video formats:

To convert wmv to flash video:

&lt;code&gt;
ffmpeg -i input.wmv -ar 44100 -qmax 8 out.flv
&lt;/code&gt;

This does the following:
&lt;ul&gt;
&lt;li&gt;-i input.wmv - Load input file&lt;/li&gt;
&lt;li&gt;-ar 44100 - Resample audio to 44.1kHz.&lt;/li&gt;
&lt;li&gt;-qmax 8 magic voodoo about quality.  Gave better results than not using it.&lt;/li&gt;
&lt;li&gt;out.flv  save it as an flv.&lt;/li&gt;
&lt;/ul&gt;

Easy.
				
				</description>
				
				<category>HOWTO</category>
				
				<pubDate>Fri, 12 Mar 2010 15:34:00 --1000</pubDate>
				<guid>http://www.lynchconsulting.com.au/blog/index.cfm/2010/3/12/FFMpeg-conversion--wmv-to-flv-HOWTO</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Railo on Tomcat revisited - mod_proxy</title>
				<link>http://www.lynchconsulting.com.au/blog/index.cfm/2010/3/12/Railo-on-Tomcat-revisited--modproxy</link>
				<description>
				
				&lt;b&gt;Updated:&lt;/b&gt; Changed the linking between railo and tomcat to use shared.loader.

I&apos;ve been doing some more work on configuring railo to work flexibly in the numerous different environments we work in, and also making it simpler to set up.

To that end I investigated the use of mod_proxy for linking it to apache instead of mod_jk.

Advantages of this approach are:
&lt;ul&gt;
&lt;li&gt;Simple - communications are in plain http&lt;/li&gt;
&lt;li&gt;Flexible - Load balancing can be easily added at the apache layer&lt;/li&gt;
&lt;li&gt;Simple - No compiling mod_jk&lt;/li&gt;
&lt;/ul&gt;

Here are the basic install instructions for Railo/Tomcat/Apache on Ubuntu.

&lt;h2&gt;Download &amp; Install Tomcat&lt;/h2&gt;

&lt;a href=&quot;http://tomcat.apache.org/download-60.cgi&quot;&gt;Download tomcat&lt;/a&gt; and extract content:

&lt;code&gt;
tar xvzf apache-tomcat-6.0.26.tar.gz
&lt;/code&gt;

Move Tomcat to a more appropriate place:
&lt;code&gt;
sudo mv apache-tomcat-6.0.26 /opt/tomcat
&lt;/code&gt;


&lt;h2&gt;Download Railo&lt;/h2&gt;

Download &lt;a href=&quot;http://www.getrailo.org/index.cfm/download/&quot;&gt;Railo custom version jars file&lt;/a&gt;

Extract and move into Tomcat lib directory:
&lt;code&gt;
tar zxvf railo-3.1.2.001-jars.tar.gz
sudo mv railo-3.1.2.001-jars /opt/railo
&lt;/code&gt;


Make Tomcat load the railo jars by editing catalina.properties to change the shared loader path:
&lt;code&gt;
shared.loader=/opt/railo/*.jar
&lt;/code&gt;

Make Tomcat and Railo work together by modifying the web config file:
&lt;code&gt;
sudo nano -w /opt/tomcat/conf/web.xml
&lt;/code&gt;

add the following inside the &amp;lt;web-app&amp;gt; element:
&lt;code&gt;
&lt;servlet&gt;
&lt;servlet-name&gt;CFMLServlet&lt;/servlet-name&gt;
&lt;servlet-class&gt;railo.loader.servlet.CFMLServlet&lt;/servlet-class&gt;
   &lt;init-param&gt;
      &lt;param-name&gt;configuration&lt;/param-name&gt;
      &lt;param-value&gt;{web-root-directory}/WEB-INF/railo/&lt;/param-value&gt;
      &lt;description&gt;Configuraton directory&lt;/description&gt;
   &lt;/init-param&gt;
   &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
&lt;/servlet&gt;
&lt;servlet-mapping&gt;
   &lt;servlet-name&gt;CFMLServlet&lt;/servlet-name&gt;
   &lt;url-pattern&gt;*.cfm&lt;/url-pattern&gt;
&lt;/servlet-mapping&gt;
&lt;servlet-mapping&gt;
   &lt;servlet-name&gt;CFMLServlet&lt;/servlet-name&gt;
   &lt;url-pattern&gt;*.cfml&lt;/url-pattern&gt;
&lt;/servlet-mapping&gt;
&lt;servlet-mapping&gt;
   &lt;servlet-name&gt;CFMLServlet&lt;/servlet-name&gt;
   &lt;url-pattern&gt;*.cfc&lt;/url-pattern&gt;
&lt;/servlet-mapping&gt;
&lt;/code&gt;

add the following inside &amp;lt;welcome-file-list&amp;gt; element:
&lt;code&gt;
&lt;welcome-file&gt;index.cfm&lt;/welcome-file&gt;
&lt;welcome-file&gt;index.cfml&lt;/welcome-file&gt;
&lt;/code&gt;


Start up tomcat:
&lt;code&gt;
/opt/tomcat/bin/startup.sh
&lt;/code&gt;
Once this is done you should be able to access the railo admin by going to the following URL:
&lt;code&gt;
http://127.0.0.1:8080/railo-context/admin/server.cfm
&lt;/code&gt;


&lt;h2&gt;Back to Tomcat&lt;/h2&gt;
To test our Railo installation, let&apos;s create a test site by adding a new virtual host in both Tomcat and Apache.  We do this by modifying Tomcat server.xml file (/opt/tomcat/conf/server.xml )
&lt;code&gt;
&lt;Host name=&quot;testsite.railo&quot; appBase=&quot;webapps&quot;&gt;
    &lt;Context path=&quot;&quot; docBase=&quot;/vhosts/testsite.railo/www&quot;/&gt;
&lt;/Host&gt;
&lt;/code&gt; 

&lt;h2&gt;Linking with Apache via Mod Proxy&lt;/h2&gt;

Ensure the modules proxy and proxy_http are enabled.  On Ubuntu this is done as follows:
&lt;code&gt;
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo /etc/init.d/apache2 restart
&lt;/code&gt;

&lt;h2&gt;Create vhost&lt;/h2&gt;
Now we need to create a virtual host entry in Apache as well:
&lt;code&gt;
&lt;VirtualHost *:80&gt;
        DocumentRoot /vhosts/testsite.railo/www
        ServerName testsite.railo
        DirectoryIndex index.cfm
	#Proxy .cfm requests to railo
	&lt;IfModule mod_proxy.c&gt;
		&lt;Proxy *&gt;
		Order deny,allow
		Allow from all
		&lt;/Proxy&gt;
		ProxyPassMatch ^/(.*\.cfm)$ http://testsite.railo:8080/$1
		ProxyPassReverse  /  http://testsite.railo:8080/
	&lt;/IfModule&gt;

	#Deny access to admin except for local/portforwarded clients
	&lt;Location /railo-context/&gt;
		Order deny,allow
		Deny from all
		Allow from 127.0.0.1
	&lt;/Location&gt;
&lt;/VirtualHost&gt;
&lt;/code&gt;

This tells apache to forward all requests for CFM files to the railo instance.

Finally restart apache and railo and you should be good to go.

&lt;code&gt;
sudo /opt/tomcat/bin/shutdown.sh 
sudo /opt/tomcat/bin/startup.sh 
sudo /etc/init.d/apache2 restart
&lt;/code&gt;
				
				</description>
				
				<category>Ubuntu</category>
				
				<category>Systems admin</category>
				
				<category>Railo</category>
				
				<category>ColdFusion</category>
				
				<pubDate>Fri, 12 Mar 2010 11:01:00 --1000</pubDate>
				<guid>http://www.lynchconsulting.com.au/blog/index.cfm/2010/3/12/Railo-on-Tomcat-revisited--modproxy</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Migrating CSS from Flex 3 to Flex 4</title>
				<link>http://www.lynchconsulting.com.au/blog/index.cfm/2010/3/9/Migrating-CSS-from-Flex-3-to-Flex-4</link>
				<description>
				
				Having searched around for how to make CSS work when migrating to Flex 4 from Flex 3 and finding lots of incorrect namespace declarations I thought I&apos;d blog this as a reminder to myself:

If you have a current Flex3 project and you are migrating to Flex4 you need to add the following lines at the top of your stylesheet.
&lt;code&gt;
@namespace &quot;library://ns.adobe.com/flex/mx&quot;;
@namespace s &quot;library://ns.adobe.com/flex/spark&quot;;
&lt;/code&gt;

This makes the default non-namespaced items in your stylesheet refer to the MX components.  eg:
&lt;code&gt;
Button{fontSize:18;}
&lt;/code&gt;
And to style up spark buttons you simply use:
&lt;code&gt;
s|Button{fontSize:18;}
&lt;/code&gt;

Note there were lots of ones that I found that were wrong.  
&lt;h3&gt;Do NOT use:&lt;/h3&gt;
&lt;code&gt;
@namespace &quot;library://ns.adobe.com/flex/halo&quot;;
OR 
@namespace &quot;http://ns.adobe.com/mxml/2009&quot;;
&lt;/code&gt;

This info was sourced from the &lt;a href=&quot;http://opensource.adobe.com/wiki/display/flexsdk/CSS+Namespaces+Support&quot;&gt;Flex SDK Wiki&lt;/a&gt;.
				
				</description>
				
				<category>AIR</category>
				
				<category>Flex</category>
				
				<pubDate>Tue, 09 Mar 2010 10:34:00 --1000</pubDate>
				<guid>http://www.lynchconsulting.com.au/blog/index.cfm/2010/3/9/Migrating-CSS-from-Flex-3-to-Flex-4</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Flex 4 RSL&apos;s and how to not use them</title>
				<link>http://www.lynchconsulting.com.au/blog/index.cfm/2010/3/8/Flex-4-RSLs-and-how-to-not-use-them</link>
				<description>
				
				Flex 4 allows and defaults to using Runtime Shared Libraries (RSL&apos;s).

These have advantages of making flash movies using them work very well, but they can also require more http requests the first time they are used, and are not good for application development with Northcode.

To turn them off you need to add the following compiler flag:
&lt;code&gt;
 -static-link-runtime-shared-libraries=true
&lt;/code&gt;

Thanks to &lt;a href=&quot;http://butterfliesandbugs.wordpress.com/2009/07/14/rsls-on-my-default-in-flex-4/&quot;&gt;Flex Butterflies and bugs for the info&lt;/a&gt;.
				
				</description>
				
				<category>AIR</category>
				
				<category>Flex</category>
				
				<pubDate>Mon, 08 Mar 2010 21:55:00 --1000</pubDate>
				<guid>http://www.lynchconsulting.com.au/blog/index.cfm/2010/3/8/Flex-4-RSLs-and-how-to-not-use-them</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Split first name and last name with Openoffice/Excel</title>
				<link>http://www.lynchconsulting.com.au/blog/index.cfm/2010/2/23/Split-first-name-and-last-name-with-OpenofficeExcel</link>
				<description>
				
				I&apos;ve been dealing with a lot of spreadsheets of usernames recently and sometimes you get firstname and lastname in seperate columns, and sometimes in the same column.

If you get them in the same column but need them in two columns here are two little formulae to do it:

&lt;code&gt;
FullName | FirstName   | Lastname    | 
Mark Lynch | =MID(A2,1,FIND(&quot; &quot;,A2,1)) | =MID(A2,FIND(&quot; &quot;,A2,1)+1,100) |
&lt;/code&gt;
Which will look like:
&lt;code&gt;
FullName   | FirstName  | Lastname | 
Mark Lynch | Mark       | Lynch    |
&lt;/code&gt;
This basically seperates the string on the space between the names and puts it into each column

Cheers,
Mark
				
				</description>
				
				<category>HOWTO</category>
				
				<category>General</category>
				
				<pubDate>Tue, 23 Feb 2010 21:21:00 --1000</pubDate>
				<guid>http://www.lynchconsulting.com.au/blog/index.cfm/2010/2/23/Split-first-name-and-last-name-with-OpenofficeExcel</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>MySQL 5.1 logging changes - Log to DB and runtime config</title>
				<link>http://www.lynchconsulting.com.au/blog/index.cfm/2010/1/29/MySQL-51-logging-changes</link>
				<description>
				
				While browsing around the MySQL site last night I discovered a number of nice new features of mysql 5.1 that relate to logging.

These are:

&lt;ul&gt;
&lt;li&gt;Logging to DB instead of log files&lt;/li&gt;
&lt;li&gt;Runtime configuration of logging.&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;Logging to DB instead of log files&lt;/h3&gt;

Coming from a web development background rather than a sysadmin background I&apos;m far more comfortable manipulating and analysing data using SQL.  So to be able to log all the queries or just the slow queries for an application to the db during application development or load testing is a huge benefit.

To enable logging to DB you can add the following to your my.cnf
&lt;code&gt;
log_output = TABLE
&lt;/code&gt; 

The logs will be written to the &apos;slow_log&apos; and &apos;general_log&apos; tables in the mysql database.

Note - logging to tables has more overhead than logging to file, so would suggest using it primarily for development purposes.

Full details of the options are on the &lt;a href=&quot;http://dev.mysql.com/doc/refman/5.1/en/log-tables.html&quot;&gt;mysql manual on log tables&lt;/a&gt;


&lt;h3&gt;Runtime configuration of logging.&lt;/h3&gt;

This allows you to turn on and off logging without restarting MySQL - which just saves a little bit of time and makes it much nicer for debugging problems.

To turn on the logging of all queries run:
&lt;code&gt;
SET GLOBAL general_log = &apos;ON&apos;;
&lt;/code&gt;
And for just the slow query log:
&lt;code&gt;
SET GLOBAL slow_query_log = &apos;ON&apos;;
&lt;/code&gt;

And to turn them both off use:
&lt;code&gt;
SET GLOBAL general_log = &apos;OFF&apos;;
SET GLOBAL slow_query_log = &apos;OFF&apos;;
&lt;/code&gt;

If you also want to see queries not using indexes in the slow query log you can set the following variable:

&lt;code&gt;
SET GLOBAL log_queries_not_using_indexes = &apos;ON&apos;;
&lt;/code&gt;


Hope it helps,
Mark
				
				</description>
				
				<category>Ubuntu</category>
				
				<category>Systems admin</category>
				
				<category>Open Source</category>
				
				<category>mysql</category>
				
				<category>Linux</category>
				
				<category>Database</category>
				
				<pubDate>Fri, 29 Jan 2010 08:15:00 --1000</pubDate>
				<guid>http://www.lynchconsulting.com.au/blog/index.cfm/2010/1/29/MySQL-51-logging-changes</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Jmeter over SSH Socks proxy</title>
				<link>http://www.lynchconsulting.com.au/blog/index.cfm/2010/1/7/Jmeter-over-SSH-Socks-proxy</link>
				<description>
				
				I&apos;ve been doing some testing recently where I need to connect via SSH server to a remote network to run some load testing.

To do this I used a &lt;a href=&quot;http://www.lynchconsulting.com.au/blog/index.cfm/2009/7/1/SSH-SOCK-Proxying-and-preventing-it&quot;&gt;SSH sock proxy like I have previously blogged about&lt;/a&gt;.

So I fired this up so that I could review the site I wanted to look at.  It worked a charm through firefox but there is no where to set up the proxy in jmeter.

To make it work you need to let the JVM know what proxy to use like so:
&lt;code&gt;
java -DsocksProxyHost=localhost -DsocksProxyPort=8080 -jar ApacheJMeter.jar 
&lt;/code&gt;

No jmeter will use the socks proxy on port 8080 on my local machine.  Nice.
				
				</description>
				
				<category>Software Architecture</category>
				
				<category>Open Source</category>
				
				<category>Linux</category>
				
				<category>HOWTO</category>
				
				<category>General</category>
				
				<pubDate>Thu, 07 Jan 2010 10:25:00 --1000</pubDate>
				<guid>http://www.lynchconsulting.com.au/blog/index.cfm/2010/1/7/Jmeter-over-SSH-Socks-proxy</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Upcoming book review - Tomcat 6 Developer&apos;s Guide</title>
				<link>http://www.lynchconsulting.com.au/blog/index.cfm/2009/12/21/Upcoming-book-review--Tomcat-6-Developers-Guide</link>
				<description>
				
				&lt;a href=&quot;http://www.packtpub.com/tomcat-6-developers-guide/mid/211209mc5um2?utm_source=lynchconsulting.com.au&amp;utm_medium=affiliate&amp;utm_content=blog&amp;utm_campaign=mdb_001899&quot;&gt;&lt;img src=&quot;http://www.lynchconsulting.com.au/blog/enclosures/tomcat_6_developers_guide.jpg&quot; align=&quot;right&quot;&gt;&lt;/a&gt;

I&apos;ve just received a copy of the &lt;a href=&quot;http://www.packtpub.com/tomcat-6-developers-guide/mid/211209mc5um2?utm_source=lynchconsulting.com.au&amp;utm_medium=affiliate&amp;utm_content=blog&amp;utm_campaign=mdb_001899&quot;&gt;Tomcat 6 Developer&apos;s Guide&lt;/a&gt; from packt publishing to review.  

It&apos;s nice timing as I&apos;ve been working with Tomcat 6 a bit lately and in the new year plan to move some of our production systems over to running &lt;a href=&quot;http://www.getrailo.org&quot;&gt;Railo&lt;/a&gt; on top of &lt;a href=&quot;http://tomcat.apache.org/&quot;&gt;Tomcat&lt;/a&gt;.

After the extremely busy year Learnosity has had I&apos;m looking forward to reading a few books over the break and coming back in the New Year with lots more ideas and technology to implement.
				
				</description>
				
				<category>Systems admin</category>
				
				<category>Railo</category>
				
				<category>Open Source</category>
				
				<category>Java</category>
				
				<category>ColdFusion</category>
				
				<pubDate>Mon, 21 Dec 2009 21:12:00 --1000</pubDate>
				<guid>http://www.lynchconsulting.com.au/blog/index.cfm/2009/12/21/Upcoming-book-review--Tomcat-6-Developers-Guide</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Learnosity are looking for a Web Ninja at a Mid to Senior level</title>
				<link>http://www.lynchconsulting.com.au/blog/index.cfm/2009/12/4/Learnosity-are-looking-for-a-Web-Ninja-at-a-Mid-to-Senior-level</link>
				<description>
				
				4 December 2009, Learnosity are looking for a Web Ninja at a Mid to Senior level.


&lt;h3&gt;About Learnosity&lt;/h3&gt;
Learnosity develop cutting edge tools for teachers and educators.  Our flagship product Learnosity Voice uses the telephone to enable language students and teachers to interact on a one to one level. 

&lt;img src=&quot;http://www.learnosity.com/wsimages/learnosity-logo-1.png&quot; align=&quot;right&quot;&gt;
Our service:
&lt;ul&gt;
&lt;li&gt;Makes it practical for students to practice Oral and Aural skills&lt;/li&gt;
&lt;li&gt;Is efficient and effective for teachers, as they can listen to each student individually at a time to suit them&lt;/li&gt;
&lt;li&gt;Can be used for homework assignments or “High Stakes Assessments”&lt;/li&gt;
&lt;/ul&gt;


We are continuing to grow our core development team and we need another great developer to help us keep up with demand.


&lt;h3&gt;We need someone who can:&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Use Javascript or Actionscript to create great user interfaces&lt;/li&gt;
&lt;li&gt;Develop highly scalable web applications&lt;/li&gt;
&lt;li&gt;Cut code with the best in the world&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;You will also need to be:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;energetic with a butt kicking attitude&lt;/li&gt;
&lt;li&gt;ready to create cutting edge web 2.0 apps&lt;/li&gt;
&lt;li&gt;keen to continue learning new technologies&lt;/li&gt;
&lt;li&gt;able to have a conversation with non technical people&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;You&apos;ll need:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;3 or more years of programming experience&lt;/li&gt;
&lt;li&gt;Expert in at least on Client side language (Actionscript or AJAX)&lt;/li&gt;
&lt;li&gt;Expert in at least one Server side language (eg PHP, Java, ColdFusion, etc)&lt;/li&gt;
&lt;li&gt;Understanding of Object Oriented design&lt;/li&gt;
&lt;li&gt;Understanding of XHTML and CSS&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;It would be good if you have:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;A degree in Computer Science, Engineering or similar.&lt;/li&gt;
&lt;li&gt;been working with open source tools&lt;/li&gt;
&lt;li&gt;been playing around with iPhone/Android applications&lt;/li&gt;
&lt;li&gt;experience with some of Linux/VOIP/SIP/Asterisk/Jabber/XMPP&lt;/li&gt;
&lt;/ul&gt;

This is a full time role and you will be working in a casual workplace with flexible hours in the Sydney CBD.

If this sounds like the job for you, email a covering letter explaining why you&apos;ll be great and your resume to mark@learnosity.com - no agencies please.
				
				</description>
				
				<category>PHP</category>
				
				<category>Open Source</category>
				
				<category>Linux</category>
				
				<category>Learnosity</category>
				
				<category>Jobs</category>
				
				<category>Javascript</category>
				
				<category>iPhone</category>
				
				<category>ColdFusion</category>
				
				<pubDate>Fri, 04 Dec 2009 16:03:00 --1000</pubDate>
				<guid>http://www.lynchconsulting.com.au/blog/index.cfm/2009/12/4/Learnosity-are-looking-for-a-Web-Ninja-at-a-Mid-to-Senior-level</guid>
				
			</item>
			
		 	
			</channel></rss>