<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2909990289005730054</id><updated>2011-11-21T13:00:31.101-08:00</updated><category term='grails'/><category term='MSSQL'/><category term='JBoss'/><category term='MySQL'/><category term='JSP'/><category term='ATG'/><category term='CSS'/><category term='groovy'/><category term='DAS'/><category term='Javascript'/><category term='Linux'/><category term='Eclipse'/><category term='HTML'/><category term='googledata'/><category term='Oracle'/><category term='Java'/><category term='OSX'/><category term='Google'/><category term='googleappengine'/><title type='text'>Max Tech Tips</title><subtitle type='html'>This is a place where I record snippets of information that I've found useful and that I think that I may need to refer to again. If anyone else finds them useful as well then that's great.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>44</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-299482496007379309</id><published>2011-03-07T09:40:00.001-08:00</published><updated>2011-03-07T09:40:47.983-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Creating a new Oracle DB?</title><content type='html'>Use dbca.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-299482496007379309?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/299482496007379309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2011/03/creating-new-oracle-db.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/299482496007379309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/299482496007379309'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2011/03/creating-new-oracle-db.html' title='Creating a new Oracle DB?'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-3231309868021190429</id><published>2011-03-02T03:27:00.000-08:00</published><updated>2011-03-02T03:57:52.950-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Automatically start vncserver</title><content type='html'>Assuming you have already set a VNC password for your users you can automatically start vncserver on linux by editing &lt;b&gt;/etc/sysconfig/vncservers&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Uncomment the VNCSERVERS line and configure a list of display to user mappings:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;VNCSERVERS="1:userA 2:userB"&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You also need to make sure that vnc is starting automatically:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;b&gt;/sbin/chkconfig --list vncserver&lt;/b&gt;&lt;br /&gt;vncserver       0:off 1:off 2:off 3:off 4:off &lt;b&gt;5:off&lt;/b&gt; 6:off&lt;br /&gt;&lt;b&gt;/sbin/chkconfig --level 5 vncserver on&lt;/b&gt;&lt;br /&gt;&lt;b&gt;/sbin/chkconfig --list vncserver&lt;/b&gt;&lt;br /&gt;vncserver       0:off 1:off 2:off 3:off 4:off &lt;b&gt;5:on&lt;/b&gt; 6:off&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;A really good resource for configuring vnc on linux is &lt;a href="http://www.walkernews.net/2008/06/20/configure-vnc-server-to-auto-start-up-in-red-hat-linux/"&gt;http://www.walkernews.net/2008/06/20/configure-vnc-server-to-auto-start-up-in-red-hat-linux/&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-3231309868021190429?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/3231309868021190429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2011/03/automatically-start-vncserver.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/3231309868021190429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/3231309868021190429'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2011/03/automatically-start-vncserver.html' title='Automatically start vncserver'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-2652023112826769477</id><published>2011-03-02T02:30:00.000-08:00</published><updated>2011-03-02T02:30:06.354-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>"Device eth0 has different MAC address than expected, ignoring."</title><content type='html'>I recently copied a VM from my mac to a linux server. The VM didn't work so I created a new one using the vmdk from the original VM. When started there was no network configuration and trying to start one using "/sbin/ifup eth0" resulted in the message "Device eth0 has different MAC address than expected, ignoring.".&lt;br /&gt;&lt;br /&gt;To fix this I had to update the mac address for the eth0 device which was found here:&lt;br /&gt;/etc/sysconfig/network-scripts/ifcfg-eth0&lt;br /&gt;&lt;br /&gt;For reference view this &lt;a href="http://www.linuxquestions.org/questions/linux-networking-3/device-eth0-has-different-mac-address-than-expected-516793/"&gt;thread&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-2652023112826769477?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/2652023112826769477/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2011/03/device-eth0-has-different-mac-address.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/2652023112826769477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/2652023112826769477'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2011/03/device-eth0-has-different-mac-address.html' title='&quot;Device eth0 has different MAC address than expected, ignoring.&quot;'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-4886064448964525110</id><published>2010-10-20T08:05:00.000-07:00</published><updated>2010-10-20T08:13:40.721-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ATG'/><title type='text'>ATG publishing workflows</title><content type='html'>To delete workflows:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;delete epub_workflow_info;&lt;br /&gt;delete epub_coll_workflow;&lt;br /&gt;delete epub_ind_workflow;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;To recreate the workflows you need to ensure that the process editor is set up for the server you're using in /atg/epub/workflow/process/workflowProcessManager.xml:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="ISO-8859-1" ?&gt;&lt;br /&gt;&amp;lt;process-manager-configuration&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;process-editor-server&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;server-name&gt;HOSTNAME:DRP_PORT&amp;lt;/server-name&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/process-editor-server&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;global-server&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;server-name&gt;HOSTNAME:DRP_PORT&amp;lt;/server-name&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/global-server&gt;&lt;br /&gt;&amp;lt;/process-manager-configuration&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;When specifying HOSTNAME it should match the name of the machine (localhost won't do).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-4886064448964525110?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/4886064448964525110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2010/10/atg-publishing-workflows.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/4886064448964525110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/4886064448964525110'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2010/10/atg-publishing-workflows.html' title='ATG publishing workflows'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-666046565184350761</id><published>2010-10-18T02:32:00.000-07:00</published><updated>2010-10-18T02:32:08.819-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JSP'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>Eclipse not picking up taglibs when using include-prelude</title><content type='html'>I've always had an issue in Eclipse where it's never picked up the taglibs defined in the include-prelude in my web.xml. I recently found that eclipse has supported this way back since version 2 but that it &lt;a href="http://www.eclipse.org/forums/index.php?t=msg&amp;goto=488935&amp;"&gt;doesn't process files included by the prelude&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The simple way to get around this is to move any taglibs directly into the include-prelude fragment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-666046565184350761?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/666046565184350761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2010/10/eclipse-not-picking-up-taglibs-when.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/666046565184350761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/666046565184350761'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2010/10/eclipse-not-picking-up-taglibs-when.html' title='Eclipse not picking up taglibs when using include-prelude'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-6736152694664175447</id><published>2010-10-04T08:22:00.000-07:00</published><updated>2010-10-04T08:22:59.798-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ATG'/><title type='text'>Error:  There is no installed ATG platform or application package containing an AppModule which matches J2EEAPI</title><content type='html'>When using ATG and JBOSS on a mac you may well get this error. To resolve this create the dasEnv.sh file if it doesn't exist:&lt;br /&gt;&lt;code&gt;$ATG_HOME/home/localconfig/dasEnv.sh&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;and add this line to it:&lt;br /&gt;&lt;code&gt;JBOSS_HOME=&amp;lt;path to your jboss home dir&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;[INFO] atg.applauncher.AppLauncherException: Error:  There is no installed ATG platform or application package containing an AppModule which matches J2EEAPI&lt;br /&gt;[INFO]  at atg.applauncher.versioner.Versionator.createInitialRequirements(Versionator.java:277)&lt;br /&gt;[INFO]  at atg.applauncher.versioner.Versionator.&lt;init&gt;(Versionator.java:87)&lt;br /&gt;[INFO]  at atg.applauncher.MultiInstallLocalAppModuleManager.expandSearchPath(MultiInstallLocalAppModuleManager.java:154)&lt;br /&gt;[INFO]  at atg.applauncher.MultiInstallLocalAppModuleManager.&lt;init&gt;(MultiInstallLocalAppModuleManager.java:131)&lt;br /&gt;[INFO]  at atg.applauncher.dynamo.DynamoServerLauncher.main(DynamoServerLauncher.java:166)&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-6736152694664175447?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/6736152694664175447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2010/10/error-there-is-no-installed-atg.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/6736152694664175447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/6736152694664175447'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2010/10/error-there-is-no-installed-atg.html' title='Error:  There is no installed ATG platform or application package containing an AppModule which matches J2EEAPI'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-2900018639225499218</id><published>2010-10-04T08:16:00.000-07:00</published><updated>2010-10-04T08:16:44.125-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ATG'/><title type='text'>ATG scenario tables</title><content type='html'>While ATG scenarios are read from the filesystem they can also be loaded from the database.&lt;br /&gt;&lt;br /&gt;For reference the tables where you'll find the scenarios that have been loaded are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; dss_scenario_info &lt;/li&gt;&lt;li&gt; dss_col_scenario &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The table that scenarios are stored in is: epub_file_asset&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-2900018639225499218?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/2900018639225499218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2010/10/atg-scenario-tables.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/2900018639225499218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/2900018639225499218'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2010/10/atg-scenario-tables.html' title='ATG scenario tables'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-4808838772391759113</id><published>2010-06-15T08:43:00.000-07:00</published><updated>2010-06-15T08:43:25.486-07:00</updated><title type='text'>Installing VMWare tools with a new kernel</title><content type='html'>Odds are if you're using VMWare with a Linux VM and you update the kernel you'll need to reinstall VMWare tools and when you do you'll see messages like the following:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Trying to find a suitable vmmon module for your running kernel.&lt;br /&gt;&lt;br /&gt;None of the pre-built vmmon modules for VMware Workstation is suitable for your&lt;br /&gt;running kernel. Do you want this program to try to build the vmmon module for&lt;br /&gt;your system (you need to have a C compiler installed on your system)? [yes] y&lt;br /&gt;&lt;br /&gt;Using compiler "/usr/bin/gcc". Use environment variable CC to override.&lt;br /&gt;&lt;br /&gt;What is the location of the directory of C header files that match your running&lt;br /&gt;kernel? [/usr/src/linux/include] /usr/include/linux/&lt;br /&gt;&lt;br /&gt;The header files in /usr/include are generally for C libraries, not for the&lt;br /&gt;running kernel. If you do not have kernel header files in your /usr/src&lt;br /&gt;directory, you probably do not have the kernel-source package installed. Are yousure that /usr/include contains the header files associated with your running&lt;br /&gt;kernel? [no]&lt;br /&gt;&lt;br /&gt;What is the location of the directory of C header files that match your running&lt;br /&gt;kernel? [/usr/src/linux/include] /usr/include/&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The fix for this is posted by &lt;a href="http://ubuntuforums.org/archive/index.php/t-25258.html"&gt;nickx on the ubuntu forums&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;You need to install the headers for the release of the kernel you have installed. To find this out you can type&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&gt;&gt; uname -r&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;to get the header you can apt-get install them,&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&gt;&gt; sudo apt-get install linux-headers-`uname -r`&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;or select the appropriate package in synaptic.&lt;br /&gt;&lt;br /&gt;Note: you'll also need gcc etc which if you don't have already you can get with&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&gt;&gt; sudo apt-get install build-essential&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;After installation the vmware installer should just pick up the right place and not require anything but the defaults.&lt;br /&gt;&lt;br /&gt;If it's still being stupid, the path to include can be found in /lib/modules/{module release number}/build/include&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-4808838772391759113?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/4808838772391759113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2010/06/installing-vmware-tools-with-new-kernel.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/4808838772391759113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/4808838772391759113'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2010/06/installing-vmware-tools-with-new-kernel.html' title='Installing VMWare tools with a new kernel'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-7533730421100779779</id><published>2010-06-14T04:22:00.000-07:00</published><updated>2010-06-14T04:22:23.954-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><title type='text'>50 New Useful CSS Techniques, Tools and Tutorials</title><content type='html'>&lt;a href="http://www.smashingmagazine.com/2010/06/10/50-new-useful-css-techniques-tools-and-tutorials/"&gt;50 New Useful CSS Techniques, Tools and Tutorials&lt;/a&gt; from Smashing Magazine&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-7533730421100779779?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/7533730421100779779/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2010/06/50-new-useful-css-techniques-tools-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/7533730421100779779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/7533730421100779779'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2010/06/50-new-useful-css-techniques-tools-and.html' title='50 New Useful CSS Techniques, Tools and Tutorials'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-3584737041828928242</id><published>2010-06-07T02:49:00.000-07:00</published><updated>2010-06-07T02:49:10.927-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><title type='text'>Copying databases with mysql</title><content type='html'>To copy the database use &lt;code&gt;mysqldump&lt;/code&gt;:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;mysqldump -u root &amp;lt;DATABASE_NAME&gt; &amp;lt;DUMP_FILE&gt;.sql;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;To create the new database:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;mysql&lt;br /&gt;mysql&gt;   create database &amp;lt;NEW_DATABASE_NAME&gt;;&lt;br /&gt;mysql&gt;   use &amp;lt;NEW_DATABASE_NAME&gt;;&lt;br /&gt;mysql&gt;   source &amp;lt;DUMP_FILE&gt;.sql;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-3584737041828928242?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/3584737041828928242/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2010/06/copying-databases-with-mysql.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/3584737041828928242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/3584737041828928242'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2010/06/copying-databases-with-mysql.html' title='Copying databases with mysql'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-6543818937862362246</id><published>2010-06-07T02:29:00.000-07:00</published><updated>2010-06-07T02:30:48.227-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><title type='text'>Out of resources for mysqldump - Server Fault</title><content type='html'>Recently got the error "&lt;code&gt;mysqldump: Got error: 23: Out of resources when opening file './ref_ca/dsi_scenario_longs.MYD' (Errcode: 24) when using LOCK TABLES&lt;/code&gt;" when doing a mysqldump on Mac OSX.&lt;br /&gt;&lt;br /&gt;Easiest option for me was to use &lt;code&gt;--single-transaction&lt;/code&gt; as mentioned at &lt;a href="http://serverfault.com/questions/104618/out-of-resources-for-mysqldump"&gt;Out of resources for mysqldump - Server Fault&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-6543818937862362246?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/6543818937862362246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2010/06/out-of-resources-for-mysqldump-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/6543818937862362246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/6543818937862362246'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2010/06/out-of-resources-for-mysqldump-server.html' title='Out of resources for mysqldump - Server Fault'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-4185491301087736988</id><published>2010-06-02T08:08:00.000-07:00</published><updated>2010-06-02T08:08:17.592-07:00</updated><title type='text'>@font-face gotchas</title><content type='html'>Useful link on &lt;a href="http://paulirish.com/2010/font-face-gotchas/"&gt;@font-face gotchas&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-4185491301087736988?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/4185491301087736988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2010/06/font-face-gotchas.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/4185491301087736988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/4185491301087736988'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2010/06/font-face-gotchas.html' title='@font-face gotchas'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-8735556809800855269</id><published>2010-05-21T14:59:00.000-07:00</published><updated>2010-05-21T15:01:26.764-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='googleappengine'/><category scheme='http://www.blogger.com/atom/ns#' term='grails'/><title type='text'>Grails 1.3.1 and AppEngine causing java.lang.NoClassDefFoundError: for hibernate classes</title><content type='html'>I recently upgraded to grails 1.3.1 and suddenly got &lt;b&gt;java.lang.NoClassDefFoundError: org/hibernate/MappingException&lt;/b&gt; errors when trying to start up my stack locally using grails run-app. It seems that GrailsDomainConfigurationUtil includes this class in it's interface but the hibernate jar isn't being copied into the lib directory. To fix this I copied $GRAILS_HOME/lib/hibernate-core-3.3.1.GA.jar into my projects web-app/WEB-INF/lib directory manually.&lt;br /&gt;&lt;br /&gt;I was seeing similar exceptions when I deployed to appengine which the above also resolved.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;AppEngine example&lt;/h3&gt;&lt;code&gt;org.springframework.beans.factory.access.BootstrapException: Error executing bootstraps; nested exception is java.lang.NoClassDefFoundError: org/hibernate/mapping/SimpleValue&lt;/code&gt; &lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Local development stack trace&lt;/h3&gt;&lt;code&gt;&lt;br /&gt;[java] INFO: [1274476930651000] javax.servlet.ServletContext log: Initializing Spring root WebApplicationContext&lt;br /&gt;[java] 2010-05-21 21:22:19,825 [Thread-1] ERROR context.ContextLoader &amp;nbsp;- Context initialization failed&lt;br /&gt;[java] org.springframework.beans.factory.access.BootstrapException: Error executing bootstraps; nested exception is java.lang.NoClassDefFoundError: org/hibernate/MappingException&lt;br /&gt;[java] May 21, 2010 9:22:19 PM com.google.apphosting.utils.jetty.JettyLogger warn&lt;br /&gt;[java] WARNING: Failed startup of context com.google.apphosting.utils.jetty.DevAppEngineWebAppContext@4e0456{/,/Users/maxieduncan/Documents/workspace/maxieduncan/web-app}&lt;br /&gt;[java] org.springframework.beans.factory.access.BootstrapException: Error executing bootstraps; nested exception is java.lang.NoClassDefFoundError: org/hibernate/MappingException&lt;br /&gt;[java]  at org.codehaus.groovy.grails.web.context.GrailsContextLoader.createWebApplicationContext(GrailsContextLoader.java:83)&lt;br /&gt;[java]  at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)&lt;br /&gt;[java]  at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)&lt;br /&gt;[java]  at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548)&lt;br /&gt;[java]  at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)&lt;br /&gt;[java]  at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)&lt;br /&gt;[java]  at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)&lt;br /&gt;[java]  at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)&lt;br /&gt;[java]  at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)&lt;br /&gt;[java]  at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)&lt;br /&gt;[java]  at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)&lt;br /&gt;[java]  at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)&lt;br /&gt;[java]  at org.mortbay.jetty.Server.doStart(Server.java:224)&lt;br /&gt;[java]  at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)&lt;br /&gt;[java]  at com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:185)&lt;br /&gt;[java]  at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:146)&lt;br /&gt;[java]  at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:222)&lt;br /&gt;[java]  at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:171)&lt;br /&gt;[java]  at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)&lt;br /&gt;[java]  at com.google.appengine.tools.development.DevAppServerMain.&lt;init&gt;(DevAppServerMain.java:120)&lt;br /&gt;[java]  at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:96)&lt;br /&gt;[java] Caused by: java.lang.NoClassDefFoundError: org/hibernate/MappingException&lt;br /&gt;[java]  at org.codehaus.groovy.grails.commons.GrailsDomainConfigurationUtil.evaluateConstraints(GrailsDomainConfigurationUtil.java:358)&lt;br /&gt;[java]  at org.codehaus.groovy.grails.commons.GrailsDomainConfigurationUtil.evaluateConstraints(GrailsDomainConfigurationUtil.java:426)&lt;br /&gt;[java]  at org.codehaus.groovy.grails.commons.DefaultGrailsDomainClass.refreshConstraints(DefaultGrailsDomainClass.java:747)&lt;br /&gt;[java]  at org.codehaus.groovy.grails.commons.DefaultGrailsApplication.refreshConstraints(DefaultGrailsApplication.java:468)&lt;br /&gt;[java]  at org.codehaus.groovy.grails.commons.spring.GrailsRuntimeConfigurator.configure(GrailsRuntimeConfigurator.java:181)&lt;br /&gt;[java]  at org.codehaus.groovy.grails.commons.spring.GrailsRuntimeConfigurator.configure(GrailsRuntimeConfigurator.java:129)&lt;br /&gt;[java]  at org.codehaus.groovy.grails.web.context.GrailsConfigUtils.configureWebApplicationContext(GrailsConfigUtils.java:114)&lt;br /&gt;[java]  at org.codehaus.groovy.grails.web.context.GrailsContextLoader.createWebApplicationContext(GrailsContextLoader.java:70)&lt;br /&gt;[java]  ... 20 more&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-8735556809800855269?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/8735556809800855269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2010/05/grails-131-and-appengine-causing.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/8735556809800855269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/8735556809800855269'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2010/05/grails-131-and-appengine-causing.html' title='Grails 1.3.1 and AppEngine causing java.lang.NoClassDefFoundError: for hibernate classes'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-3593249311124453629</id><published>2010-05-21T08:48:00.000-07:00</published><updated>2011-03-02T03:17:53.798-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Using Gnome with vncserver</title><content type='html'>Setting up vncserver on linux to use a different window manager than twm (the minimalistic default) is actually pretty straightforward if you know where to look and what to change.&lt;br /&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you just want to use your default desktop you can uncomment the lines at the start of ~/.vnc/xstartup&lt;br /&gt;&lt;br /&gt;If you want to use a specific window manager the following steps should work:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Open ~/.vnc/xstartup&lt;/li&gt;&lt;li&gt;For KDE, replace "twm &amp;amp;" with "startkde &amp;amp;"&lt;/li&gt;&lt;li&gt;For Gnome, replace "twm &amp;amp;" with "gnome-session &amp;amp;"&lt;/li&gt;&lt;li&gt;restart vncserver if it's already running&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-3593249311124453629?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/3593249311124453629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2010/05/using-gnome-with-vncserver.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/3593249311124453629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/3593249311124453629'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2010/05/using-gnome-with-vncserver.html' title='Using Gnome with vncserver'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-5008899808174639289</id><published>2010-05-15T15:36:00.000-07:00</published><updated>2010-05-15T15:36:09.851-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSX'/><title type='text'>Changing the Partition Map Scheme for a disk using a Mac</title><content type='html'>There's a number of reasons why you might want to change the Partition Map Scheme of a disk but the most likely is that you're setting up the disk so that you boot a particular OS from it. &lt;br /&gt; &lt;br /&gt;On the mac the default application supplied for changing this is &lt;b&gt;Disk Utility&lt;/b&gt;. You can find this in the Utilities directory in the Applications directory.&lt;br /&gt;&lt;br /&gt;You can use Disk Utility to both see what type of&amp;nbsp;Partition Map Scheme is being used and to change it.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Checking the Partition Map Scheme&lt;/h2&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&amp;nbsp;Go the USB disk in Disk Utility &lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_WTkLtNRCJWA/S-8fkB1biAI/AAAAAAAAWNQ/Yn7ZFe5e0IU/s1600/screen-capture-4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_WTkLtNRCJWA/S-8fkB1biAI/AAAAAAAAWNQ/Yn7ZFe5e0IU/s320/screen-capture-4.png" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;At bottom right you can see the Partition Map Scheme that is currently being used, in this case it's Master Boot Record.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;h2&gt;Changing the Partition Map Scheme&lt;/h2&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;&lt;b&gt;Following these instructions will result in all data on the disk being lost so be careful&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&amp;nbsp;Go the USB disk in Disk Utility and select the partition tab&lt;/li&gt;&lt;li&gt;&amp;nbsp;In the Volume Scheme select the number of partitions that you want (if in doubt use 1 Partition)&lt;/li&gt;&lt;li&gt;Select the format (use &lt;b&gt;MS-DOS (FAT)&lt;/b&gt; if you want to use the disk on other platforms)&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_WTkLtNRCJWA/S-8aC_YcRoI/AAAAAAAAWNA/noXqY77A95s/s1600/screen-capture-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_WTkLtNRCJWA/S-8aC_YcRoI/AAAAAAAAWNA/noXqY77A95s/s320/screen-capture-1.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;Click the Options... button at the bottom and select the&amp;nbsp;Partition Map Scheme&amp;nbsp;you want to use&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_WTkLtNRCJWA/S-8aVeY8NdI/AAAAAAAAWNI/mO80o1InR6k/s1600/screen-capture-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_WTkLtNRCJWA/S-8aVeY8NdI/AAAAAAAAWNI/mO80o1InR6k/s320/screen-capture-2.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;Click Apply to write the partition: &lt;b&gt;&lt;span style="color: red;"&gt;this will erase any data on the disk&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-5008899808174639289?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/5008899808174639289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2010/05/changing-partition-map-scheme-for-disk.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/5008899808174639289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/5008899808174639289'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2010/05/changing-partition-map-scheme-for-disk.html' title='Changing the Partition Map Scheme for a disk using a Mac'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_WTkLtNRCJWA/S-8fkB1biAI/AAAAAAAAWNQ/Yn7ZFe5e0IU/s72-c/screen-capture-4.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-7776549167365388871</id><published>2010-05-14T05:33:00.000-07:00</published><updated>2010-05-14T05:33:07.299-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSX'/><title type='text'>Archive Applications on the Mac</title><content type='html'>I've always used StuffitExpander on the mac but it's not a great program to use with algorithms other than stuffit and recently I've had a couple of files where it just didn't work.&lt;br /&gt;&lt;br /&gt;There's quite a few different options out there but the most useful ones I've come across are: &lt;a href="http://wakaba.c3.cx/s/apps/unarchiver.html"&gt;The Unarchiver&lt;/a&gt; and &lt;br /&gt;&lt;a href="http://www.unrarx.com/"&gt;UnRarX&lt;/a&gt; for rar files.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-7776549167365388871?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/7776549167365388871/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2010/05/archive-applications-on-mac.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/7776549167365388871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/7776549167365388871'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2010/05/archive-applications-on-mac.html' title='Archive Applications on the Mac'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-8149091040125503738</id><published>2010-05-11T04:12:00.000-07:00</published><updated>2010-05-11T04:12:25.994-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>Converting a String to Title case</title><content type='html'>Turns out that &lt;a href="http://www.w3.org/TR/CSS2/text.html#caps-prop"&gt;CSS can do the work&lt;/a&gt; for you.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;text-transform: capitalize&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-8149091040125503738?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/8149091040125503738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2010/05/converting-string-to-title-case.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/8149091040125503738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/8149091040125503738'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2010/05/converting-string-to-title-case.html' title='Converting a String to Title case'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-1508328059316911695</id><published>2010-04-10T07:30:00.000-07:00</published><updated>2010-04-10T07:30:35.724-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='googleappengine'/><category scheme='http://www.blogger.com/atom/ns#' term='grails'/><category scheme='http://www.blogger.com/atom/ns#' term='groovy'/><title type='text'>JDO Enhancer for Google App Engine with Grails</title><content type='html'>I had a slightly annoying problem where I'm developing an application using Grails and the Google App Engine but kept getting JDO errors saying "Perhaps you need to run the enhancer on this class?".&lt;br /&gt;&lt;br /&gt;The only solution to this if using grails appears to be run the &lt;a href="http://code.google.com/appengine/docs/java/tools/ant.html#Enhancing_JDO_Classes"&gt;ant task&lt;/a&gt; that google supply to enhance the classes; but this isn't initially obvious.&lt;br /&gt;&lt;br /&gt;A bit of googling and the solution came up as being that if using Eclipse you needed to have the &lt;a href="http://code.google.com/appengine/docs/java/datastore/usingjdo.html#Enhancing_Data_Classes"&gt;Google Plugin for Eclipse installed&lt;/a&gt;. This itself wasn't entirely helpful as the plugin was installed so why wasn't it working? Well since I'm using the grails app-engine plugin the project had been created outside Eclipse and wasn't linked to the plugin. Right clicking on the project and going:&lt;br /&gt;&lt;br /&gt;Google -&amp;gt; App Engine Settings and selecting Use Google App Engine&lt;br /&gt;&lt;br /&gt;Resulted in the output DataNucleus Enhancer starting to run.&lt;br /&gt;&lt;br /&gt;&lt;div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;color:grey;"&gt;DataNucleus Enhancer (version 1.1.4) : Enhancement of classes&lt;br /&gt;DataNucleus Enhancer completed with success for 0 classes. Timings : input=43 ms, enhance=0 ms, total=43 ms. Consult the log for full details&lt;br /&gt;DataNucleus Enhancer completed and no classes were enhanced. Consult the log for full details&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;So now that it was running why weren't any of the classes being enhanced? Well it seemed likely that this is due to the groovy files not being picked up by the google plugin and indeed there's a &lt;a href="http://code.google.com/p/googleappengine/issues/detail?id=1636"&gt;defect&lt;/a&gt; raised on googleappengine for the plugin not working on anything other than .java files.&lt;br /&gt;&lt;br /&gt;Fortunately google provide another method in the ant task; not surprising it turns out that the Grails app-engine plugin makes use of this when you deploy the project. So what does this mean? Basically until the Google plugin picks up other source files than just .java you'll need to make sure that you use the grails app-engine plugin from the command line and not the Google Eclipse plugin.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For reference the exception that kept getting thrown was:&lt;br /&gt;&lt;br /&gt;&lt;div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;color:grey;"&gt;Error 500: javax.jdo.JDOFatalUserException: No meta data for com.maxieduncan.download.DownloadCount. Perhaps you need to run the enhancer on this class? NestedThrowables: org.datanucleus.exceptions.NucleusUserException: No meta data for com.maxieduncan.download.DownloadCount. Perhaps you need to run the enhancer on this class?&lt;br /&gt;Servlet: grails&lt;br /&gt;URI: /grails/software/download.dispatch&lt;br /&gt;Exception Message: No meta data for com.maxieduncan.download.DownloadCount. Perhaps you need to run the enhancer on this class?&lt;br /&gt;Caused by: javax.jdo.JDOFatalUserException: No meta data for com.maxieduncan.download.DownloadCount. Perhaps you need to run the enhancer on this class? NestedThrowables: org.datanucleus.exceptions.NucleusUserException: No meta data for com.maxieduncan.download.DownloadCount. Perhaps you need to run the enhancer on this class?&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-1508328059316911695?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/1508328059316911695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2010/04/jdo-enhancer-for-google-app-engine-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/1508328059316911695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/1508328059316911695'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2010/04/jdo-enhancer-for-google-app-engine-with.html' title='JDO Enhancer for Google App Engine with Grails'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-2596913945238652766</id><published>2010-04-10T07:18:00.000-07:00</published><updated>2010-04-10T07:38:55.520-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='googleappengine'/><category scheme='http://www.blogger.com/atom/ns#' term='grails'/><title type='text'>Using the Google Data APIs Java Client in Google App Engine</title><content type='html'>Yay, &lt;a href="http://code.google.com/p/gdata-java-client/issues/detail?id=122"&gt;Issue 122&lt;/a&gt; has been fixed and you no longer have to disable the Cookie Handler (&lt;a href="http://maxtechtips.blogspot.com/2009/10/using-google-data-api-on-google-app.html"&gt;as I mentioned before&lt;/a&gt;) to use the Goole Data API in the Google App Engine.&lt;br /&gt;&lt;br /&gt;If using the grails app-engine plugin make sure you do a clean after you've updated the Data API libs to ensure that the latest versions are deployed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-2596913945238652766?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/2596913945238652766/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2010/04/using-google-data-apis-java-client-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/2596913945238652766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/2596913945238652766'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2010/04/using-google-data-apis-java-client-in.html' title='Using the Google Data APIs Java Client in Google App Engine'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-6906240090630984825</id><published>2010-04-10T07:07:00.000-07:00</published><updated>2010-05-15T16:38:14.667-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSX'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Creating bootable Linux USB sticks on the mac</title><content type='html'>This post is primarily aimed at creating Ubuntu as that's what I've used lately.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;From a disk image (.img)&lt;/h2&gt;Ubuntu originally provided the Ubuntu Netbook Remix as a .img that made creating a bootable USB as simple as the steps below.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Download the desired .img file&lt;/li&gt;&lt;li&gt;Open a Terminal (under Utilities)&lt;/li&gt;&lt;li&gt;Run &lt;code&gt;diskutil list&lt;/code&gt; to get the current list of devices&lt;/li&gt;&lt;li&gt;Insert your flash media&lt;/li&gt;&lt;li&gt;Run &lt;code&gt;diskutil list&lt;/code&gt; again and determine the device node assigned to your flash media (e.g. /dev/disk2)&lt;/li&gt;&lt;li&gt;Run &lt;code&gt;diskutil unmountDisk /dev/diskX&lt;/code&gt; where X is the number of disk determined above&lt;/li&gt;&lt;li&gt;Execute &lt;code&gt;sudo dd if=/path/to/downloaded.img of=/dev/diskX bs=1m&lt;/code&gt; again using the disk number from the last step and the actual path to your img.&lt;/li&gt;&lt;li&gt;Run &lt;code&gt;diskutil eject /dev/diskX&lt;/code&gt; and remove your flash media when the command completes&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;h2&gt;From a iso image (.iso)&lt;/h2&gt;&lt;i&gt;Since Ubuntu 9.10, Canonical has only supplied iso image files and it's not possible to create a bootable USB drive from the Ubunto iso on a mac. If you follow the steps below you'll see the error &lt;b&gt;Could not validate source - error 254&lt;/b&gt;. Mac OSX only supports restoring images in particular formats and the one that Ubuntu use (ISO 9660) isn't supported by Apple.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;On the mac the default application supplied for changing this is &lt;b&gt;Disk Utility&lt;/b&gt;. You can find this in the Utilities directory in the Applications directory.&lt;br /&gt;&lt;br /&gt;To create the USB disk do the following:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;First make sure that the disk is bootable and that the &lt;a href="http://maxtechtips.blogspot.com/2010/05/changing-partition-map-scheme-for-disk.html"&gt;Partition Map Scheme used is Master Boot Record&lt;/a&gt;&lt;/li&gt;&lt;li&gt;After that it's simply a matter of using the Disk Utility &lt;b&gt;Restore&lt;/b&gt; functionality to write the iso image to the USB disk&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Drag the iso image into Source from the Finder&lt;/li&gt;&lt;li&gt;Drag the USB disk into Destination from the list in Disk Utility&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_WTkLtNRCJWA/S-8jsEIuvfI/AAAAAAAAWNc/26uIEke7iq0/s1600/screen-capture-5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_WTkLtNRCJWA/S-8jsEIuvfI/AAAAAAAAWNc/26uIEke7iq0/s320/screen-capture-5.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-6906240090630984825?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/6906240090630984825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2010/04/creating-bootable-usb-sticks-on-mac.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/6906240090630984825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/6906240090630984825'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2010/04/creating-bootable-usb-sticks-on-mac.html' title='Creating bootable Linux USB sticks on the mac'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_WTkLtNRCJWA/S-8jsEIuvfI/AAAAAAAAWNc/26uIEke7iq0/s72-c/screen-capture-5.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-8926755611887244411</id><published>2010-04-10T07:04:00.000-07:00</published><updated>2010-04-10T07:04:51.581-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ATG'/><title type='text'>Changing server names</title><content type='html'>&lt;span class="Apple-style-span" style="color: #404040; font-family: 'Lucida Grande';"&gt;Live:&lt;br style="word-wrap: break-word;" /&gt;truncate table dss_server_id;&lt;br style="word-wrap: break-word;" /&gt;&lt;br style="word-wrap: break-word;" /&gt;CA:&lt;br style="word-wrap: break-word;" /&gt;truncate table dss_server_id;&lt;br style="word-wrap: break-word;" /&gt;truncate table dsi_server_id;&lt;br style="word-wrap: break-word;" /&gt;truncate table epub_wf_server_id;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-8926755611887244411?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/8926755611887244411/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2010/04/changing-server-names.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/8926755611887244411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/8926755611887244411'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2010/04/changing-server-names.html' title='Changing server names'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-3318302728059433990</id><published>2010-04-10T01:24:00.000-07:00</published><updated>2010-04-10T06:29:17.594-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='googleappengine'/><title type='text'>Google App Engine Virtual File System</title><content type='html'>One of the limitations of the Google App Engine is that there isn't a file system that you can write to. There is however a project that provides a Virtual File System in Java for those that really need it: &lt;a href="http://code.google.com/p/gaevfs/"&gt;GaeVFS&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-3318302728059433990?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://code.google.com/p/gaevfs/' title='Google App Engine Virtual File System'/><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/3318302728059433990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2010/04/google-app-engine-virtual-file-system.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/3318302728059433990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/3318302728059433990'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2010/04/google-app-engine-virtual-file-system.html' title='Google App Engine Virtual File System'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-6752394000044371841</id><published>2009-11-06T10:38:00.001-08:00</published><updated>2009-11-06T10:39:49.648-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSX'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Tweaking Google Notifier for Mac</title><content type='html'>&lt;a href="http://toolbar.google.com/gmail-helper/notifier_mac.html"&gt;Google Notifier for Mac&lt;/a&gt; has some basic settings available in the Preferences menu but the useful ones are hidden.&lt;br /&gt;&lt;br /&gt;To be able to change these settings you need to hold down the &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;Option&lt;/span&gt; and &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;Command&lt;/span&gt; buttons when clicking on the &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;Preferences...&lt;/span&gt; option in the Notifier menu. This brings up a key/value dialog that you can use to set the options below. The keys are &lt;b&gt;case sensitive&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-large;"&gt;Check Interval&lt;/span&gt;&lt;br /&gt;By default the Notifier only checks for emails every 10 minutes, this setting lets you change that.&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100px"&gt;Key:&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color: #990000;"&gt;AutocheckInterval&lt;/span&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Value:&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;i&gt;&lt;span style="color: #990000;"&gt;The interval in minutes, e.g. 2&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style="font-size: x-large;"&gt;Secure Login&lt;/span&gt;&lt;br /&gt;You can make sure that Notifier always encrypts your password when in it logs in.&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100px"&gt;Key:&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color: #990000;"&gt;SecureAlways&lt;/span&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Value:&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color: #990000;"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-6752394000044371841?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/6752394000044371841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2009/11/tweaking-google-notifier-for-mac.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/6752394000044371841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/6752394000044371841'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2009/11/tweaking-google-notifier-for-mac.html' title='Tweaking Google Notifier for Mac'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-6639470809737763976</id><published>2009-10-29T10:07:00.001-07:00</published><updated>2009-10-29T10:07:24.643-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'></title><content type='html'>&lt;span class="Apple-style-span" style="font-family: monospace; font-size: 12px; line-height: 15px; white-space: pre-wrap;"&gt;Nice &lt;a href="http://domscripting.com/presentations/xtech2006/"&gt;presentation&lt;/a&gt; on how to hook up javascript without hardcoding it into the html. This is important as it means that if done correctly there will be non javascript support.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-6639470809737763976?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/6639470809737763976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/nice-presentation-on-how-to-hook-up.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/6639470809737763976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/6639470809737763976'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/nice-presentation-on-how-to-hook-up.html' title=''/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-5442327025678769970</id><published>2009-10-27T04:18:00.000-07:00</published><updated>2009-10-27T04:18:28.948-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Javacio.us - Finding java source code and dependencies</title><content type='html'>&lt;a href="http://javacio.us/"&gt;Javacio.us&lt;/a&gt; is a great extension to google search that makes finding java source code, jars and maven dependencies really easy. Once you subscribe results will show up inline when you do a google search that it thinks is relevant which is typically when you search for a jar or java class.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_WTkLtNRCJWA/SubWo44_9EI/AAAAAAAAQaQ/DMKoXaS_Svc/s1600-h/screen-capture.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_WTkLtNRCJWA/SubWo44_9EI/AAAAAAAAQaQ/DMKoXaS_Svc/s640/screen-capture.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-5442327025678769970?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/5442327025678769970/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/javacious-finding-java-source-code-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/5442327025678769970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/5442327025678769970'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/javacious-finding-java-source-code-and.html' title='Javacio.us - Finding java source code and dependencies'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_WTkLtNRCJWA/SubWo44_9EI/AAAAAAAAQaQ/DMKoXaS_Svc/s72-c/screen-capture.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-6225595512138788378</id><published>2009-10-25T08:03:00.001-07:00</published><updated>2009-10-25T08:03:18.016-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSX'/><title type='text'>Displaying monitoring data in the Mac OSX toolbar</title><content type='html'>&lt;p&gt;&lt;a href=\"http://www.ragingmenace.com/software/menumeters/#download\"&gt;MenuMeters&lt;/a&gt; is a cool app for monitoring your Mac's performance in the toolbar. A simple preferences pane allows you to choose what is displayed and how often it is updated.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-6225595512138788378?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/6225595512138788378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/displaying-monitoring-data-in-mac-osx.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/6225595512138788378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/6225595512138788378'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/displaying-monitoring-data-in-mac-osx.html' title='Displaying monitoring data in the Mac OSX toolbar'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-6106139683429010271</id><published>2009-10-25T08:02:00.001-07:00</published><updated>2009-10-25T08:02:40.682-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MSSQL'/><title type='text'>SQLServer desc</title><content type='html'>&lt;p&gt;To describe a table in SQLServer you can use sp_help &amp;lt;table_name&amp;gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-6106139683429010271?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/6106139683429010271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/sqlserver-desc.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/6106139683429010271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/6106139683429010271'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/sqlserver-desc.html' title='SQLServer desc'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-1948120090970513348</id><published>2009-10-25T08:01:00.000-07:00</published><updated>2009-10-25T08:01:50.697-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSX'/><title type='text'>Showing hidden files in the Finder</title><content type='html'>&lt;p&gt;This tip is taken from &lt;a href="http://www.macworld.com/article/51830/2006/07/showallfinder.html"&gt;MacWorld&lt;/a&gt;&lt;/p&gt;&lt;p&gt;On the command line enter:&lt;/p&gt;&lt;pre&gt;&lt;strong&gt;defaults write com.apple.Finder AppleShowAllFiles YES &lt;/strong&gt;&lt;/pre&gt;You then need to restart the Finder.  To do this hold down the option key then click and hold down on the Finder icon in the Dock and when the menu displays click relaunch.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-1948120090970513348?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/1948120090970513348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/showing-hidden-files-in-finder.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/1948120090970513348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/1948120090970513348'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/showing-hidden-files-in-finder.html' title='Showing hidden files in the Finder'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-6845519961717592223</id><published>2009-10-25T08:00:00.000-07:00</published><updated>2009-10-25T08:00:19.481-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSX'/><title type='text'>Using locate command on Mac OSX</title><content type='html'>&lt;p&gt;When you try using locate on Mac OSX you'll typically get the error:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;/var/db/locate.database: No such file or directory&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;To resolve this simply run:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;sudo /usr/libexec/locate.updatedb&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Thanks to &lt;a href=\"http://neilang.com/entries/updating-the-locate-database-in-mac-os-x/\"&gt;Neil Ang&lt;/a&gt;&amp;nbsp;for having found where this command lived.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-6845519961717592223?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/6845519961717592223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/using-locate-command-on-mac-osx.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/6845519961717592223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/6845519961717592223'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/using-locate-command-on-mac-osx.html' title='Using locate command on Mac OSX'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-2177635404415815566</id><published>2009-10-25T07:57:00.000-07:00</published><updated>2009-10-25T07:57:13.152-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Backup script using rsync and crontab</title><content type='html'>&lt;p&gt;Below is a very simple script that I've used to back up data from a remote machine with rsync. I've also scheduled it to be run daily using crontab.&lt;/p&gt;&lt;pre style="color:green;"&gt;#!/bin/bash&lt;br /&gt;# Simple script to back up the contents of my website&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;host=&lt;strong&gt;HOSTNAME&lt;/strong&gt;&lt;br /&gt;user=&lt;strong&gt;USERNAME&lt;/strong&gt;&lt;br /&gt;dest=&lt;strong&gt;BACKUP_DESTINATION&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;#SSH_AUTH_SOCK need to declare for rsync to work via a cronjob, you may need to use a different value&lt;br /&gt;export SSH_AUTH_SOCK=/tmp/launch-LaeM5h/Listeners&lt;br /&gt;&lt;br /&gt;echo "Starting Website Backup" `date`;&lt;br /&gt;&lt;br /&gt;function sync() {&lt;br /&gt; if [ ! -e $2 ]&lt;br /&gt; then&lt;br /&gt;  mkdir $2;&lt;br /&gt; fi&lt;br /&gt; echo "Backing up $host:$1 to $2";&lt;br /&gt; rsync -raz -e "ssh -i &lt;strong&gt;$HOME&lt;/strong&gt;/.ssh/id_dsa" $user@$host:$1 $2;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;sync "/home/$user" "$dest";&lt;br /&gt;&lt;br /&gt;dir=&lt;strong&gt;ZIP_DESTINATION&lt;/strong&gt;/`date "+Backup_%d_%m_%y"`;&lt;br /&gt;echo "Copying files to " $dir;&lt;br /&gt;&lt;br /&gt;tar -czf $dir.tar.gz $dest&lt;br /&gt;&lt;br /&gt;echo "Finished Website Backup" `date`;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;h2&gt;Crontab setup&lt;/h2&gt;&lt;p&gt;The first thing you need to do is setup up &lt;a href="http://maxtechtips.blogspot.com/2009/10/passwordless-ssh.html"&gt;Passwordless ssh&lt;/a&gt; with NO passphrase.&lt;/p&gt;&lt;p&gt;You then need to set up a cronjob to run the script daily.&lt;br /&gt;&lt;br /&gt;For example create a file crontab.txt with the following content:&lt;/p&gt;&lt;p&gt;&lt;i&gt;0 12 * * * /&lt;b&gt;PATH_TO_SCRIPT&lt;/b&gt;/backup.sh &amp;gt; /&lt;b&gt;PATH_TO_LOG&lt;/b&gt;/backup.log 2&amp;gt;&amp;amp;1&lt;/i&gt;&lt;/p&gt;&lt;p&gt;Next load this file into crontab (this will delete other cronjobs if they exist but aren't included).&lt;/p&gt;&lt;p&gt;&lt;b&gt;crontab crontab.txt&lt;/b&gt;&lt;/p&gt;&lt;p&gt;To check that your cronjob has been loaded run:&lt;/p&gt;&lt;p&gt;&lt;b&gt;crontab -l&lt;/b&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-2177635404415815566?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/2177635404415815566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/backup-script-using-rsync-and-crontab.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/2177635404415815566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/2177635404415815566'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/backup-script-using-rsync-and-crontab.html' title='Backup script using rsync and crontab'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-7455782238161351363</id><published>2009-10-25T07:46:00.000-07:00</published><updated>2011-05-10T10:16:49.102-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Passwordless ssh</title><content type='html'>&lt;p&gt;Setting up passwordless ssh is fairly straight forward and plenty of documentation on it can be found.&lt;/p&gt;&lt;p&gt;Firstly you need to need to generate a key on your local machine:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;ssh-keygen -t dsa&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;You most likely want to accept the default location when asked, i.e. $HOME/.ssh/id_dsa&lt;/p&gt;&lt;p&gt;For a passphrase it is recommended to choose something other than the ssh login password.&lt;/p&gt;&lt;p&gt;Two files will have been generated, id_dsa and id_dsa.pub. &amp;nbsp;You want to copy the second of these, or at least it contents to the remote machine.&lt;/p&gt;&lt;p&gt;e.g.&lt;strong&gt; scp&amp;nbsp;$HOME/.ssh/id_dsa.pub &amp;lt;login&gt;@&amp;lt;remote&gt;:.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;On the remote machine open&amp;nbsp;$HOME/.ssh/authorised_keys (create it if it doesn't exist) and add the contents of the id_dsa.pub from your local machine.&lt;/p&gt;&lt;p&gt;e.g. &lt;strong&gt;cat id_dsa.pub &gt;&gt; $HOME/.ssh/authorized_keys&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Now you should be able to ssh and scp to the remote machine without supplying the login password. You will instead be asked for your passphrase but once you enter it your OS should provide you with the option of remembering it and you shouldn't have to enter it again.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-7455782238161351363?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/7455782238161351363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/passwordless-ssh.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/7455782238161351363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/7455782238161351363'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/passwordless-ssh.html' title='Passwordless ssh'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-1555434893800884215</id><published>2009-10-25T07:43:00.000-07:00</published><updated>2009-10-25T07:43:25.823-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JBoss'/><category scheme='http://www.blogger.com/atom/ns#' term='MSSQL'/><title type='text'>Setting up an XA datasource for SQL Server Express on JBoss</title><content type='html'>&lt;p&gt;&lt;big&gt;&lt;strong&gt;JBoss Configuration&lt;/strong&gt;&lt;/big&gt;&lt;/p&gt;&lt;p&gt;Download the sql server jdbc driver from microsoft. &amp;nbsp;You will need to put this into the appropriate lib directory in jboss. &amp;nbsp;The driver also contains documentation on how to configure sql server for xa connections and it can also be on &lt;a href="http://msdn.microsoft.com/en-us/library/aa342335.aspx"&gt;microsoft.com&lt;/a&gt;.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Copy the default example config:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;cp &amp;lt;JBOSS_HOME&amp;gt;/docs/examples/jca/mssql-xa-ds.xml&amp;nbsp;&amp;lt;JBOSS_HOME&amp;gt;/&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;strong&gt;server/default/deploy&lt;/strong&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Next update the config with your settings:&amp;nbsp;&lt;/p&gt;&lt;pre style="color:green"&gt;&amp;lt;datasources&amp;gt;&lt;br /&gt;  &amp;lt;xa-datasource&amp;gt;&lt;br /&gt;    &amp;lt;jndi-name&amp;gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;JNDINAME&lt;/span&gt;&amp;lt;/jndi-name&amp;gt;&lt;br /&gt;    &amp;lt;track-connection-by-tx   /&amp;gt;&lt;br /&gt;    &amp;lt;isSameRM-override-value&amp;gt;false&amp;lt;/isSameRM-override-value&amp;gt;&lt;br /&gt;    &amp;lt;xa-datasource-class&amp;gt;com.microsoft.sqlserver.jdbc.SQLServerXADataSource&amp;lt;/xa-datasource-class&amp;gt;&lt;br /&gt;    &amp;lt;xa-datasource-property name=&amp;quot;ServerName&amp;quot;&amp;gt;&lt;strong&gt;HOSTNAME&lt;/strong&gt;&amp;lt;/xa-datasource-property&amp;gt;&lt;br /&gt;    &amp;lt;xa-datasource-property name=&amp;quot;DatabaseName&amp;quot;&amp;gt;&lt;strong&gt;DBNAME&lt;/strong&gt;&amp;lt;/xa-datasource-property&amp;gt;&lt;br /&gt;    &amp;lt;xa-datasource-property name=&amp;quot;SelectMethod&amp;quot;&amp;gt;cursor&amp;lt;/xa-datasource-property&amp;gt;&lt;br /&gt;     &amp;lt;xa-datasource-property name=&amp;quot;User&amp;quot;&amp;gt;&lt;strong&gt;USERNAME&lt;/strong&gt;&amp;lt;/xa-datasource-property&amp;gt;&lt;br /&gt;    &amp;lt;xa-datasource-property name=&amp;quot;Password&amp;quot;&amp;gt;&lt;strong&gt;PASSWORD&lt;/strong&gt;&amp;lt;/xa-datasource-property&amp;gt;&lt;br /&gt;    &amp;lt;xa-datasource-property name=&amp;quot;URL&amp;quot;&amp;gt;jdbc:sqlserver://&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;HOSTNAME&lt;/span&gt;:1433&amp;lt;/xa-datasource-property&amp;gt;&lt;br /&gt;      &amp;lt;!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) --&amp;gt;&lt;br /&gt;      &amp;lt;metadata&amp;gt;&lt;br /&gt;         &amp;lt;type-mapping&amp;gt;MS SQLSERVER2000&amp;lt;/type-mapping&amp;gt;&lt;br /&gt;      &amp;lt;/metadata&amp;gt;&lt;br /&gt;  &amp;lt;/xa-datasource&amp;gt;&lt;br /&gt;&amp;lt;/datasources&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 14px; font-weight: bold;"&gt;Connecting via TCP&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Configure SQL Server to enable TCP connections on a fixed port, instructions&amp;nbsp;&lt;a href="http://kdc.kapowtech.com/tip/tipWeek65.html"&gt;here&lt;/a&gt;. &amp;nbsp;When installing SQL Server make sure that select &lt;strong&gt;MIxed Mode&lt;/strong&gt; for authentication.&lt;/div&gt;&lt;p&gt;You also need to make sure that your windows environment is setup to support transactions from a remote source, details for Vista are&amp;nbsp;&lt;a href="http://www.andornot.com/about/developerblog/2008/05/when-distributed-transactions-go-boing.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;div&gt;&lt;strong&gt;&lt;big&gt;Connecting via Parallels&lt;/big&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;If you are using a mac and running SQL Server via Parallels you need to use Bridged hosting for your VM&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-1555434893800884215?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/1555434893800884215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/setting-up-xa-datasource-for-sql-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/1555434893800884215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/1555434893800884215'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/setting-up-xa-datasource-for-sql-server.html' title='Setting up an XA datasource for SQL Server Express on JBoss'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-5105660404961955654</id><published>2009-10-25T07:36:00.000-07:00</published><updated>2009-10-25T07:36:08.518-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSX'/><title type='text'>The installed macFUSE version is too new for the operating system.</title><content type='html'>&lt;p&gt;When using parallels on Mac OSX Leopard you may get the following warning:&lt;/p&gt;&lt;p&gt;&lt;span style=\"color: rgb(255, 0, 0); \"&gt;&lt;b&gt;Operating System too old&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The installed macFUSE version is too new for the operating system.&lt;br /&gt;&lt;br /&gt;Please downgrade your macFUSE installation to one that is compatible with current running operating system&lt;/span&gt;.&lt;/p&gt;&lt;p&gt;All you need to do here is install the latest version of &lt;strong&gt;MacFuse&lt;/strong&gt;&amp;nbsp;from &lt;a href="http://code.google.com/p/macfuse/"&gt;google&lt;/a&gt;. More details can be found on the&lt;a href="http://forum.parallels.com/showthread.php?t=19247"&gt; Parallels Forum&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-5105660404961955654?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/5105660404961955654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/installed-macfuse-version-is-too-new.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/5105660404961955654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/5105660404961955654'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/installed-macfuse-version-is-too-new.html' title='The installed macFUSE version is too new for the operating system.'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-4311795573058343625</id><published>2009-10-25T07:34:00.000-07:00</published><updated>2009-10-25T07:34:17.301-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ATG'/><category scheme='http://www.blogger.com/atom/ns#' term='OSX'/><title type='text'>Installing ATG with JBoss on Mac OSX</title><content type='html'>&lt;p&gt;Installing ATG on Mac OSX is very straight forward even if it isn't officially supported. This assumes that you are already comfortable with installing ATG on other platforms. A more detailed description can be found &lt;a href=\"http://blog.pulleman.com/category/mysql/\"&gt;here&lt;/a&gt; if you are not. The below method has worked with ATG 2007.1, 9 and 9.1&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Unpack the jboss archive into the location where you want to use it.&lt;/li&gt;&lt;li&gt;Run the unix version of the ATG installer using the following values:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;For JBOSS_HOME, the &lt;strong&gt;path to where you installed jboss&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;For JAVA_HOME, &lt;strong&gt;/System/Library/Frameworks/JavaVM.framework/Versions/1.5/Home&lt;/strong&gt; (or whatever version you are using)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Update the $ATG_HOME/home/installconfig/config.xml so that other ATG applications such as Merch can be installed.&lt;br /&gt;&lt;/ol&gt;&lt;p&gt;And that's it, ATG should be installed.&lt;/p&gt;&lt;p&gt;None of the solid scripts will work on Mac OSX so you'll need to set up a MySQL database if you want to run the demos.&lt;/p&gt;&lt;h3&gt;Example config.xml&lt;/h3&gt;&lt;pre style="color:green;"&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;br /&gt;&amp;lt;config xmlns="*"&gt;&lt;br /&gt;    &amp;lt;&amp;lt;install xmlns=""&gt;&lt;br /&gt;        &amp;lt;product name="ATG Adaptive Scenario Engine" version="9.1"&gt;&lt;br /&gt;            &amp;lt;configure&gt;false&amp;lt;/configure&gt;&lt;br /&gt;        &amp;lt;/product&gt;&lt;br /&gt;        &amp;lt;product name="ATG Consumer Commerce" version="9.1"&gt;&lt;br /&gt;            &amp;lt;configure&gt;false&amp;lt;/configure&gt;&lt;br /&gt;        &amp;lt;/product&gt;&lt;br /&gt;        &amp;lt;product name="ATG Content Administration" version="9.1"&gt;&lt;br /&gt;            &amp;lt;configure&gt;false&amp;lt;/configure&gt;&lt;br /&gt;        &amp;lt;/product&gt;&lt;br /&gt;        &amp;lt;product name="ATG Portal" version="9.1"&gt;&lt;br /&gt;            &amp;lt;configure&gt;false&amp;lt;/configure&gt;&lt;br /&gt;        &amp;lt;/product&gt;&lt;br /&gt;        &amp;lt;product name="ATG Business Commerce" version="9.1"&gt;&lt;br /&gt;            &amp;lt;configure&gt;false&amp;lt;/configure&gt;&lt;br /&gt;        &amp;lt;/product&gt;&lt;br /&gt;    &amp;lt;/install&gt;&lt;br /&gt;    &amp;lt;systemEnv xmlns=""&gt;&lt;br /&gt;        &amp;lt;locale&gt;en&amp;lt;/locale&gt;&lt;br /&gt;        &amp;lt;rootDir&gt;/Applications/ATG/ATG9.1&amp;lt;/rootDir&gt;&lt;br /&gt;        &amp;lt;jBossListenPort&gt;8080&amp;lt;/jBossListenPort&gt;&lt;br /&gt;        &amp;lt;docRoot&gt;/Applications/ATG/ATG9.1/home/doc&amp;lt;/docRoot&gt;&lt;br /&gt;        &amp;lt;platform&gt;SunOS&amp;lt;/platform&gt;&lt;br /&gt;        &amp;lt;rmiPort&gt;8860&amp;lt;/rmiPort&gt;&lt;br /&gt;        &amp;lt;programFolder&gt;/Applications/ATG/ATG9.1&amp;lt;/programFolder&gt;&lt;br /&gt;        &amp;lt;appServer&gt;JBoss&amp;lt;/appServer&gt;&lt;br /&gt;        &amp;lt;baseLevel&gt;ATG9.1_249&amp;lt;/baseLevel&gt;&lt;br /&gt;        &amp;lt;jBossHome&gt;/Applications/jboss-4.2.1.GA&amp;lt;/jBossHome&gt;&lt;br /&gt;        &amp;lt;jBossVersion&gt;4.2.1&amp;lt;/jBossVersion&gt;&lt;br /&gt;        &amp;lt;ATGJRE&gt;/System/Library/Frameworks/JavaVM.framework/Versions/1.5/Home/bin/java&amp;lt;/ATGJRE&gt;&lt;br /&gt;        &amp;lt;patchLevel&gt;9.1&amp;lt;/patchLevel&gt;&lt;br /&gt;    &amp;lt;/systemEnv&gt;&lt;br /&gt;&amp;lt;/config&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-4311795573058343625?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/4311795573058343625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/installing-atg-with-jboss-on-mac-osx.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/4311795573058343625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/4311795573058343625'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/installing-atg-with-jboss-on-mac-osx.html' title='Installing ATG with JBoss on Mac OSX'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-841106502089821698</id><published>2009-10-25T07:22:00.000-07:00</published><updated>2009-10-25T07:22:40.855-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><title type='text'>Changing user passwords in mysql</title><content type='html'>&lt;p&gt;Again this is taken directly from &lt;a href="http://dev.mysql.com/doc/refman/5.0/en/set-password.html"&gt;mysql.com&lt;/a&gt;&lt;/p&gt;&lt;p&gt;You need to login into mysql and run the following sql:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;UPDATE mysql.user SET Password=PASSWORD(&amp;quot;&amp;lt;NEW_PASSWORD&amp;gt;&amp;quot;) where user=&amp;quot;&amp;lt;USER_NAME&amp;gt;&amp;quot;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;You have to connect to do this and easiest is to connect as the root user:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;mysql --user=root&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-841106502089821698?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/841106502089821698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/changing-user-passwords-in-mysql.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/841106502089821698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/841106502089821698'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/changing-user-passwords-in-mysql.html' title='Changing user passwords in mysql'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-6169467770533009895</id><published>2009-10-25T07:18:00.000-07:00</published><updated>2009-10-25T07:18:34.635-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='OSX'/><title type='text'>Starting MySQL on Mac OSX</title><content type='html'>&lt;p&gt;The documentation for this can be found &lt;a href="http://dev.mysql.com/doc/refman/5.0/en/mac-os-x-installation.html"&gt;mysql.com&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The command to start mysql if the startup item is installed is:&lt;/p&gt;&lt;pre class="programlisting"&gt;&lt;strong class="userinput"&gt;&lt;code&gt;sudo /Library/StartupItems/MySQLCOM/MySQLCOM start&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;Otherwise use:&lt;/p&gt;&lt;pre class="programlisting"&gt;&lt;strong&gt;&lt;strong class="userinput"&gt;&lt;code&gt;/usr/local/mysql&lt;/code&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;strong class="userinput"&gt;&lt;code&gt;/bin/mysqld_safe&lt;/code&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;code&gt; and then &lt;strong&gt;bg&lt;/strong&gt; to background the process.&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-6169467770533009895?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/6169467770533009895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/starting-mysql-on-mac-osx.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/6169467770533009895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/6169467770533009895'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/starting-mysql-on-mac-osx.html' title='Starting MySQL on Mac OSX'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-4205920621854699444</id><published>2009-10-25T07:14:00.000-07:00</published><updated>2009-10-25T07:14:44.622-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>Eclipse plugins</title><content type='html'>&lt;p&gt;Below are a few plugins that I've found useful when using &lt;a href="http://www.eclipse.org/"&gt;Eclipse&lt;/a&gt;:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://amateraside.dev.java.net/releases/AmaterasIDE/2.0.3/"&gt;AmaterasIDE&lt;/a&gt; - greate plugin for editing jsp/hml pages.&lt;/li&gt;&lt;li&gt;&lt;a href="http://jadclipse.sourceforge.net/"&gt;JadClipse&lt;/a&gt; - useful for when you don't have the source code but want to see what's going on.&lt;/li&gt;&lt;li&gt;&lt;a href="http://subclipse.tigris.org/"&gt;Subclipse&lt;/a&gt; - eclipse has CVS integration by default, this adds SVN.&lt;/li&gt; &lt;li&gt;&lt;a href="http://quantum.sourceforge.net/"&gt;QuantumDB&lt;/a&gt; - plugin for connecting to databases.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-4205920621854699444?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/4205920621854699444/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/eclipse-plugins.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/4205920621854699444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/4205920621854699444'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/eclipse-plugins.html' title='Eclipse plugins'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-3343191149333851196</id><published>2009-10-25T07:12:00.000-07:00</published><updated>2009-10-25T07:12:47.192-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Creating swap files</title><content type='html'>&lt;p&gt;&lt;strong&gt;In addition to a swap partition you can add a &lt;/strong&gt;&lt;a href="http://ubuntuforums.org/showthread.php?t=89782"&gt;&lt;strong&gt;swap &lt;i&gt;file&lt;/i&gt;&lt;/strong&gt;  &lt;/a&gt;&lt;/p&gt;&lt;pre style="color:green"&gt;dd if=/dev/zero of=/swap_file bs=1M count=FILE_SIZE_IN_MB&lt;br /&gt;chown root:root /swap_file&lt;br /&gt;chmod 600 /swap_file&lt;br /&gt;mkswap /swap_file&lt;br /&gt;swapon /swap_file&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;To enable at start up open /etc/fstab and add:&lt;/strong&gt;&lt;br /&gt;&lt;pre&gt;/swap_file       none            swap    sw              0       0&lt;/pre&gt;Unfortunately this doesn't seem to be supported on all virtualised servers&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-3343191149333851196?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/3343191149333851196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/creating-swap-files.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/3343191149333851196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/3343191149333851196'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/creating-swap-files.html' title='Creating swap files'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-5631589736297986337</id><published>2009-10-25T07:09:00.000-07:00</published><updated>2009-10-25T07:09:15.336-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><title type='text'>Import MySQL text dump</title><content type='html'>&lt;p&gt;Importing a mysql text dump is pretty staright forward:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;mysql table_name &amp;lt; mysql_dump_file.sql&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;In addition the following options may be of use:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;--user=YOUR_USER_NAME, login as the specified user, if not specified it will user the default&lt;/li&gt;&lt;li&gt;-p, prompt for password, if not specified it will use the default&lt;/li&gt;&lt;li&gt;-h YOUR_HOST_NAME, the name of the host the database is on, this is often localhost which is usually the default&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Put together this is used in the following way:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;mysql --user=YOUR_USER_NAME -p -h localhost table_name &amp;lt; mysql_dump_file.sql&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-5631589736297986337?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/5631589736297986337/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/import-mysql-text-dump.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/5631589736297986337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/5631589736297986337'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/import-mysql-text-dump.html' title='Import MySQL text dump'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-1060895195397749285</id><published>2009-10-25T07:04:00.000-07:00</published><updated>2009-10-25T07:04:18.573-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><title type='text'>Backing up MySQL databases</title><content type='html'>&lt;p&gt;This is a simple script to back up a MySQL database by creating a text dump of all the tables.&amp;nbsp; It is based on a script I found on the &lt;a href="http://www.phpcult.com/blog/mysql-database-backups-and-your-health/"&gt;The PHP Cult&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;pre style="color:green"&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;user=USERNAME;&lt;br /&gt;password=PASSWORD;&lt;br /&gt;tmp=BACKUP_DIRECTORY;&lt;br /&gt;dblist=$tmp/dblist.txt&lt;br /&gt;&lt;br /&gt;mkdir $tmp&lt;br /&gt;&lt;br /&gt;/usr/bin/mysql -e "show databases" -u $user --password=$password | sed s/^Database//g | sed s/\|//g | sed s/\ //g  &gt; $dblist &lt;br /&gt;&lt;br /&gt;for i in `cat $dblist`&lt;br /&gt;do&lt;br /&gt;  export FILENAME1="$i.sql"&lt;br /&gt;  echo "Backing up $i to $FILENAME1 ...."&lt;br /&gt;  /usr/bin/mysqldump -u $user --opt --password=$password $i &gt; $tmp/$FILENAME1&lt;br /&gt;done&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-1060895195397749285?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/1060895195397749285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/backing-up-mysql-databases.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/1060895195397749285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/1060895195397749285'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/backing-up-mysql-databases.html' title='Backing up MySQL databases'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-1531390802271753384</id><published>2009-10-25T06:54:00.000-07:00</published><updated>2009-10-25T06:55:07.464-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>Creating elements with rounded corners in HTML</title><content type='html'>There are a number of ways that you can add curved corners to elements. I list two here, the first is the way that I now prefer to do it while the second is an older, but currently more supported method (it's a lot messier though).&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;The simple method&lt;/h2&gt;&lt;pre style="color:green"&gt;.curved { &lt;br /&gt;  -moz-border-radius:10px; /* Firefox */ &lt;br /&gt;  -webkit-border-radius:10px; /* Safari and chrome */ &lt;br /&gt;  -khtml-border-radius:10px; /* Linux browsers */ &lt;br /&gt;  border-radius:10px; /* CSS3 */ &lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;The obvious drawback to this approach is that IE isn't supported as it doesn't provide a CSS method as the other browsers do. There is however a project that provides a &lt;a href="http://code.google.com/p/curved-corner/"&gt;htc&lt;/a&gt; for IE that will allow you to add just one more line of CSS to support IE.&lt;/p&gt;&lt;br /&gt;&lt;h2&gt;A cross browser method&lt;/h2&gt;&lt;p&gt;This is a way to create elements (such as the labels on the left) with rounded corners.&lt;/p&gt;&lt;p&gt;The first thing to do is to generate the images that are going to be used on the corners.  Google provides a nice &lt;a href="http://groups-beta.google.com/groups/roundedcorners?c=999999&amp;amp;bc=white&amp;amp;w=4&amp;amp;h=4&amp;amp;a=tr"&gt;image generator&lt;/a&gt; and it's use is described on &lt;a href="http://xach.livejournal.com/95656.html"&gt;Zach's Journal&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Once you have the images for all four corners you can set up some divs and use css to render them as you'd like.&lt;/p&gt;&lt;p&gt;Example of the div structure:&lt;/p&gt;&lt;pre style="color:blue;"&gt;&amp;lt;div class=&amp;quot;tech_tip_label&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;div&amp;gt;&lt;br /&gt;    &amp;lt;div&amp;gt;&lt;br /&gt;      &amp;lt;div&amp;gt;&lt;br /&gt;        &amp;lt;div&amp;gt;&lt;br /&gt;          ExampleC ontent&lt;br /&gt;        &amp;lt;/div&amp;gt;&lt;br /&gt;      &amp;lt;/div&amp;gt;&lt;br /&gt;    &amp;lt;/div&amp;gt;&lt;br /&gt;  &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;/pre&gt;&lt;p&gt;And the CSS:&lt;/p&gt;&lt;pre style="color:blue;"&gt;div.tech_tip_label {   &lt;br /&gt;  background-repeat:no-repeat; &lt;br /&gt;  background-color:#AAAAAA; &lt;br /&gt;  color:white; &lt;br /&gt;  margin:2px; &lt;br /&gt;  width:100%; &lt;br /&gt;  text-align:center; &lt;br /&gt;}&lt;/pre&gt;&lt;pre style="color:blue;"&gt;div.tech_tip_label div {   &lt;br /&gt;  background: url(&amp;quot;/images/grey_bl.png&amp;quot;) 0 100%; &lt;br /&gt;  background-repeat:no-repeat; &lt;br /&gt;}&lt;/pre&gt;&lt;pre style="color:blue;"&gt;div.tech_tip_label div div {   &lt;br /&gt;  background: url(&amp;quot;/images/grey_br.png&amp;quot;) 100% 100%; &lt;br /&gt;  background-repeat:no-repeat; &lt;br /&gt;} &lt;/pre&gt;&lt;pre style="color:blue;"&gt;div.tech_tip_label div div div {   &lt;br /&gt;  background: url(&amp;quot;/images/grey_tl.png&amp;quot;) 0 0; &lt;br /&gt;  background-repeat:no-repeat; &lt;br /&gt;}&lt;/pre&gt;&lt;pre style="color:blue;"&gt;div.tech_tip_label div div div div {   &lt;br /&gt;  background: url(&amp;quot;/images/grey_tr.png&amp;quot;) 100% 0; &lt;br /&gt;  background-repeat:no-repeat; padding:10px; &lt;br /&gt;}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-1531390802271753384?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/1531390802271753384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/creating-elements-with-rounded-corners.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/1531390802271753384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/1531390802271753384'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/creating-elements-with-rounded-corners.html' title='Creating elements with rounded corners in HTML'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-8230767196399275749</id><published>2009-10-25T06:33:00.000-07:00</published><updated>2009-10-25T06:33:24.885-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ATG'/><category scheme='http://www.blogger.com/atom/ns#' term='DAS'/><title type='text'>Weird characters showing up occasionally when using ATG DAS and UTF-8</title><content type='html'>&lt;p&gt;I came across an interesting problem the other day when working on an ATG project that was using DAS (Dynamo Application Server).&amp;nbsp; They'd recently updated their site to use UTF-8 as the encoding and this had appeared to work fine until it was noticed that occasionally some characters had been replaced by two unkown characters.&amp;nbsp; The interesting thing here was that inserting a space or some other character earlier in the page so that a Latin1 character fell into the same spot resulted in the page rendering as expected.&lt;/p&gt;&lt;p&gt;Looking into the DAS code it became apparent that when DAS was creating the Java servlets it was defaulting the encoding to Latin1 (ISO-8859-1) as defined in the JPS specification, if it wasn't explicitly defined.&amp;nbsp; This in itself wasn't a problem as when the servlet was executed it used the encoding that was defined in the response to process the output stream.&amp;nbsp; However it also used this encoding to determine if it should use a ByteBuffer or a CharBuffer in the servlet.&amp;nbsp; If the encoding was Latin1, which is was as we weren't explicitly setting it, then it was using a ByteBuffer.&amp;nbsp; The result was that any UTF-8 characters that were larger than a Latin1 byte were getting split in two if they fell over the buffer and getting displayed as the two illegal UTF-8 characters.&lt;/p&gt;&lt;p&gt;The solution to this is to either set the encoding explicitly on each page using:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&amp;lt;%@page pageEncoding=&amp;quot;UTF-8&amp;quot;%&amp;gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Or else to hack DAS to default to an encoding other than ISO-8859-1.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-8230767196399275749?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/8230767196399275749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/weird-characters-showing-up.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/8230767196399275749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/8230767196399275749'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/weird-characters-showing-up.html' title='Weird characters showing up occasionally when using ATG DAS and UTF-8'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-6546772715151524445</id><published>2009-10-25T06:20:00.000-07:00</published><updated>2010-04-10T07:19:39.479-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='googleappengine'/><category scheme='http://www.blogger.com/atom/ns#' term='googledata'/><category scheme='http://www.blogger.com/atom/ns#' term='grails'/><title type='text'>Using the Google Data API on the Google App Engine</title><content type='html'>&lt;span style="font-size: x-large;color:red;"&gt;Disabling the Cookie Handler is no longer required&lt;/span&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/gdata-java-client/issues/detail?id=122"&gt;Issue 122&lt;/a&gt; has been fixed and you no longer have to disable the Cookie Handler (&lt;a href="http://maxtechtips.blogspot.com/2009/10/using-google-data-api-on-google-app.html"&gt;as I mentioned before&lt;/a&gt;) to use the Goole Data API in the Google App Engine.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-large;"&gt;Google Data API on the Google App Engine&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Enabling support for the Google Data API on the Google App Engine is really straight forward and is covered by google in their &lt;a href="http://code.google.com/intl/en_GB/appengine/kb/java.html#googledata"&gt;documentation&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;div style="line-height: 16px; margin: 0px; padding: 1em;"&gt;Add the following to your&amp;nbsp;&lt;code style="color: #007000; font-family: monospace; font-size: 10pt;"&gt;appengine-web.xml&lt;/code&gt;&amp;nbsp;file:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;pre style="background-color: #fafafa; border-color: rgb(187, 187, 187); border-style: solid; border-width: 1px; color: #007000; font-family: monospace; font-size: 9pt; line-height: 15px; margin: 0px; overflow-x: auto; overflow-y: auto; padding: 0.99em; word-wrap: break-word;"&gt;&amp;lt;system-properties&amp;gt;&lt;br /&gt;  &amp;lt;property name="com.google.gdata.DisableCookieHandler" value="true"/&amp;gt;&lt;br /&gt;&amp;lt;system-properties&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div style="line-height: 16px; margin: 0px; padding: 1em;"&gt;If the following is not included, you may see the following exception:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;pre style="background-color: #fafafa; border-color: rgb(187, 187, 187); border-style: solid; border-width: 1px; color: #007000; font-family: monospace; font-size: 9pt; line-height: 15px; margin: 0px; overflow-x: auto; overflow-y: auto; padding: 0.99em; word-wrap: break-word;"&gt;java.security.AccessControlException: access denied (java.net.NetPermission getCookieHandler)&lt;/pre&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family: Times, Arial, sans-serif;"&gt;In my case the exception that I noticed was a&amp;nbsp;&lt;span style="font-family: 'Courier New', sans-serif; line-height: 19px; white-space: pre-wrap;"&gt;&lt;span style="font-size: small;"&gt;java.lang.NoClassDefFoundError: Could not initialize class com.google.gdata.client.http.GoogleGDataReques&lt;/span&gt;t &lt;span style="font-family: Times; line-height: normal; white-space: normal;"&gt;but this had been preceded by the&amp;nbsp;&lt;span style="font-family: 'Courier New', sans-serif; line-height: 19px; white-space: pre-wrap;"&gt;&lt;span style="font-size: small;"&gt;java.security.AccessControlException&lt;/span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Times, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Times, sans-serif;"&gt;&lt;span style="font-size: x-large;"&gt;Grail AppEngine plugin&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Times, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Times, sans-serif;"&gt;As I'm using Grails and the Grail AppEngine plugin things got a little more complicated however. The plugin automatically generates the&amp;nbsp;&lt;span style="font-family: Times; line-height: 16px;"&gt;&lt;code style="color: #007000; font-family: monospace; font-size: 10pt;"&gt;appengine-web.xml&lt;/code&gt;&amp;nbsp;file and their is currently no way specify system properties to be included (there is an &lt;a href="http://jira.codehaus.org/browse/GRAILSPLUGINS-1392"&gt;Improvement request&lt;/a&gt; that would add this support). &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Times, sans-serif;"&gt;&lt;span style="line-height: 16px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Times, sans-serif;"&gt;&lt;span style="line-height: 16px;"&gt;In order to add the system property I had to edit the _Events.groovy file in ~/.grails/&lt;version&gt;/projects/&lt;project name=""&gt;/plugins/app-engine-0.8.5/scripts/_Events.groovy and manually paste in the change that I required. While this works, an update to the plugin will obviously wipe the changes that I've made and they would have to be applied again.&lt;/project&gt;&lt;/version&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-6546772715151524445?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/6546772715151524445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/using-google-data-api-on-google-app.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/6546772715151524445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/6546772715151524445'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2009/10/using-google-data-api-on-google-app.html' title='Using the Google Data API on the Google App Engine'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2909990289005730054.post-5937663392097334826</id><published>2009-06-05T08:39:00.000-07:00</published><updated>2009-06-05T08:42:23.760-07:00</updated><title type='text'>Restarting Apache on Mac OSX</title><content type='html'>&lt;div class="tech_tip_text"&gt;&lt;p&gt;To restart Apache on Mac OSX run the following command:&lt;/p&gt; &lt;div class="post-body"&gt; &lt;pre&gt;&lt;strong&gt;&lt;span class="ident"&gt;sudo&lt;/span&gt; &lt;span class="ident"&gt;apachectl&lt;/span&gt; &lt;span class="ident"&gt;restart&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt; &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2909990289005730054-5937663392097334826?l=maxtechtips.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxtechtips.blogspot.com/feeds/5937663392097334826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxtechtips.blogspot.com/2009/06/restarting-apache-on-mac-osx.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/5937663392097334826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2909990289005730054/posts/default/5937663392097334826'/><link rel='alternate' type='text/html' href='http://maxtechtips.blogspot.com/2009/06/restarting-apache-on-mac-osx.html' title='Restarting Apache on Mac OSX'/><author><name>Max Duncan</name><uri>http://www.blogger.com/profile/01122002756961019914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_WTkLtNRCJWA/S8B9VKxkdBI/AAAAAAAAS-c/SWDbTwP1niA/S220/me_zambia_3.jpg'/></author><thr:total>0</thr:total></entry></feed>
