<?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'><id>tag:blogger.com,1999:blog-10026400</id><updated>2009-10-13T06:44:55.296Z</updated><title type='text'>blog buckett</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://thicksliced.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default'/><link rel='alternate' type='text/html' href='http://thicksliced.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default?start-index=26&amp;max-results=25'/><author><name>Thick Sliced</name><uri>http://www.blogger.com/profile/15152807926093631820</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>153</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-10026400.post-3979162700472645354</id><published>2009-03-23T13:40:00.002Z</published><updated>2009-03-23T13:55:57.793Z</updated><title type='text'>Java host caching (sun.net.inetaddr.ttl/networkaddress.cache.ttl) on OS X</title><content type='html'>On my Mac OS X box I was trying to get some round robin DNS working from Java (1.5) but I was the host was always resolving to the same IP. I'd set &lt;code&gt;sun.net.inetaddr.ttl=0&lt;/code&gt;, but that didn't seem to help. It seems out of the box a Mac will &lt;a href="http://inertramblings.com/2004/05/11/mac-os-x-clearing-dns-cache/"&gt;cache lookups&lt;/a&gt;, but you can clean out the cache with the command &lt;code&gt;dscacheutil -flushcache&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10026400-3979162700472645354?l=thicksliced.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thicksliced.blogspot.com/feeds/3979162700472645354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10026400&amp;postID=3979162700472645354' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/3979162700472645354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/3979162700472645354'/><link rel='alternate' type='text/html' href='http://thicksliced.blogspot.com/2009/03/java-host-caching-sunnetinetaddrttlnetw.html' title='Java host caching (sun.net.inetaddr.ttl/networkaddress.cache.ttl) on OS X'/><author><name>Thick Sliced</name><uri>http://www.blogger.com/profile/15152807926093631820</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14068581452082511542'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10026400.post-7940308881215770504</id><published>2009-02-02T10:55:00.002Z</published><updated>2009-02-02T11:15:39.504Z</updated><title type='text'>gitweb - 500 - HEAD ref not found for project</title><content type='html'>&lt;p&gt;
We have some git repositories here at Oxford and a gitweb interface to view them. For some of our projects I was seeing:
&lt;/p&gt;
&lt;code&gt;500 - HEAD ref not found for project&lt;/code&gt;
&lt;p&gt;It turns out this was because the &lt;code&gt;HEAD&lt;/code&gt; file ( {git-directoy}/HEAD ) was pointing to &lt;code&gt;ref: refs/heads/master&lt;/code&gt; and these projects didn't have a master branch. Changing the HEAD file to point to the correct branch fixed gitweb.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10026400-7940308881215770504?l=thicksliced.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thicksliced.blogspot.com/feeds/7940308881215770504/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10026400&amp;postID=7940308881215770504' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/7940308881215770504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/7940308881215770504'/><link rel='alternate' type='text/html' href='http://thicksliced.blogspot.com/2009/02/gitweb-500-head-ref-not-found-for.html' title='gitweb - 500 - HEAD ref not found for project'/><author><name>Thick Sliced</name><uri>http://www.blogger.com/profile/15152807926093631820</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14068581452082511542'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10026400.post-7381356133442416827</id><published>2009-01-22T16:24:00.003Z</published><updated>2009-01-22T16:52:46.705Z</updated><title type='text'>Trimpath error "context._MODIFIERS is undefined"</title><content type='html'>&lt;p&gt;
I was doing a little JavaScript templating with &lt;a href="http://code.google.com/p/trimpath/wiki/JavaScriptTemplates"&gt;Trimpath&lt;/a&gt; today and at one point I was getting a nice error in my console of:
&lt;/p&gt;
&lt;code&gt;
context._MODIFIERS is undefined
&lt;/code&gt;
&lt;p&gt;
Looking through the trimpath code it turned out this was because I was passing in a string rather than an object as my context for the generation of the template. So I was effectively doing:
&lt;/p&gt;
&lt;code&gt;
TrimPath.processDOMTemplate("someNodeId", "some string");
&lt;/code&gt;
&lt;p&gt;
rather than:
&lt;/p&gt;
&lt;code&gt;
TrimPath.processDOMTemplate("someNodeId", {key: "value", otherKey: "value"});
&lt;/code&gt;
&lt;p&gt;
In my case I was getting the error because I forgot to eval some JSON before passing it to trimpath.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10026400-7381356133442416827?l=thicksliced.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thicksliced.blogspot.com/feeds/7381356133442416827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10026400&amp;postID=7381356133442416827' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/7381356133442416827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/7381356133442416827'/><link rel='alternate' type='text/html' href='http://thicksliced.blogspot.com/2009/01/trimpath-error-contextmodifiers-is.html' title='Trimpath error &quot;context._MODIFIERS is undefined&quot;'/><author><name>Thick Sliced</name><uri>http://www.blogger.com/profile/15152807926093631820</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14068581452082511542'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10026400.post-8867907956866630178</id><published>2008-12-24T11:52:00.002Z</published><updated>2008-12-24T12:00:17.363Z</updated><title type='text'>Pooling in Sakai LDAP</title><content type='html'>Here at Oxford we connect to a LDAP server to get details about users for our &lt;a href="https://beta.weblearn.ox.ac.uk/portal/"&gt;Sakai service.&lt;/a&gt; Previously we had reports of some pages taking a long time to load when lots of users details where requested from the LDAP. One obvious change we could make was to switch to use pooling on our connections to the LDAP server. To check that this was improving the performance I wrote a little test case which attempts to get details about 100 users individually from the LDAP.
&lt;ul&gt;&lt;li&gt;Without pooling - 100 users in 10 sec = 10 users/sec.&lt;/li&gt;&lt;li&gt;With pooling - 100 users in 5 secs = 20 users/sec.&lt;/li&gt;&lt;/ul&gt;This is a nice doubling of performance, although I was still expecting to see better performance generally and while the test is running the local load on the machine isn't very high so I suspect any further performance improvements will have to come on the server.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10026400-8867907956866630178?l=thicksliced.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thicksliced.blogspot.com/feeds/8867907956866630178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10026400&amp;postID=8867907956866630178' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/8867907956866630178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/8867907956866630178'/><link rel='alternate' type='text/html' href='http://thicksliced.blogspot.com/2008/12/pooling-in-sakai-ldap.html' title='Pooling in Sakai LDAP'/><author><name>Thick Sliced</name><uri>http://www.blogger.com/profile/15152807926093631820</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14068581452082511542'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10026400.post-4631720653688525913</id><published>2008-12-23T15:05:00.002Z</published><updated>2008-12-23T15:09:34.219Z</updated><title type='text'>Tomcat UNIX aliases</title><content type='html'>To make managing development instances of tomcat a little easier I have a few bash aliases (you can add these lines to your ~/.bash_profile):
&lt;pre&gt;
alias tchome='export CATALINA_HOME=`pwd`; echo CATALINA_HOME=$CATALINA_HOME'
alias tctail='tail -f ${CATALINA_HOME}/logs/catalina.out'
alias tcless='less ${CATALINA_HOME}/logs/catalina.out'
alias tcshow='echo ${CATALINA_HOME}'
alias tc='${CATALINA_HOME}/bin/catalina.sh'
&lt;/pre&gt;
so my typical workflow is &lt;code&gt;cd {tomcat-directory}&lt;/code&gt;, &lt;code&gt;tchome&lt;/code&gt; and then I move back around the filesystem and use &lt;code&gt;tc start&lt;/code&gt; and &lt;code&gt;tctail&lt;/code&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10026400-4631720653688525913?l=thicksliced.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thicksliced.blogspot.com/feeds/4631720653688525913/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10026400&amp;postID=4631720653688525913' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/4631720653688525913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/4631720653688525913'/><link rel='alternate' type='text/html' href='http://thicksliced.blogspot.com/2008/12/tomcat-unix-aliases.html' title='Tomcat UNIX aliases'/><author><name>Thick Sliced</name><uri>http://www.blogger.com/profile/15152807926093631820</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14068581452082511542'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10026400.post-6747601935498558425</id><published>2008-09-29T20:52:00.002Z</published><updated>2008-09-29T20:58:23.454Z</updated><title type='text'>Keep on rolling...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_FltME488_qM/SOFAn0ajnII/AAAAAAAAABk/Ct0TyX778GM/s1600-h/DSC00286.JPG"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_FltME488_qM/SOFAn0ajnII/AAAAAAAAABk/Ct0TyX778GM/s200/DSC00286.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5251549693319814274" /&gt;&lt;/a&gt;
Well after a quite a few weeks of waiting my new set of wheels turned up. A Brompton S6L in apple green. The gears needs a little adjusting but otherwise it's a great ride.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10026400-6747601935498558425?l=thicksliced.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thicksliced.blogspot.com/feeds/6747601935498558425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10026400&amp;postID=6747601935498558425' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/6747601935498558425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/6747601935498558425'/><link rel='alternate' type='text/html' href='http://thicksliced.blogspot.com/2008/09/keep-on-rolling.html' title='Keep on rolling...'/><author><name>Thick Sliced</name><uri>http://www.blogger.com/profile/15152807926093631820</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14068581452082511542'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_FltME488_qM/SOFAn0ajnII/AAAAAAAAABk/Ct0TyX778GM/s72-c/DSC00286.JPG' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10026400.post-102461376805816853</id><published>2008-09-24T21:06:00.008Z</published><updated>2008-09-26T16:45:28.196Z</updated><title type='text'>Error: sec_error_bad_signature with Firefox 3</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_FltME488_qM/SN0RmzWHsfI/AAAAAAAAABc/OHJ2ksBDz98/s1600-h/Picture+13.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_FltME488_qM/SN0RmzWHsfI/AAAAAAAAABc/OHJ2ksBDz98/s320/Picture+13.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5250372098899554802" /&gt;&lt;/a&gt;
&lt;p&gt;

Recently when most of our team upgraded their browsers to Firefox 3 we noticed then when we tried to visit on of our internal websites over a secure connection we would get presented with an error page saying "sec_error_bad_signature". Most of the &lt;a href="http://technicalmumblings.wordpress.com/2008/06/13/firefox-3-handling-of-unverified-ssl-certificates/"&gt;existing comments&lt;/a&gt; on the web seem to be saying that they are seeing this error when visiting a site with an untrusted certificate. However in our case it was a correctly signed certificate obtained through the &lt;a href="http://www.ja.net/services/scs/"&gt;JANET Server Certificate Service&lt;/a&gt;.
&lt;/p&gt;
&lt;br clear="all"/&gt;
&lt;p&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_FltME488_qM/SNqzfJWEdJI/AAAAAAAAABU/_xH2GzsZ8UY/s1600-h/Picture+15.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_FltME488_qM/SNqzfJWEdJI/AAAAAAAAABU/_xH2GzsZ8UY/s200/Picture+15.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5249705663319536786" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_FltME488_qM/SNqy9ie8vfI/AAAAAAAAABM/Mhigg0vS73c/s1600-h/Picture+14.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_FltME488_qM/SNqy9ie8vfI/AAAAAAAAABM/Mhigg0vS73c/s200/Picture+14.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5249705085952114162" /&gt;&lt;/a&gt;
The server is just a Ubuntu Linux server with a standard installation of Apache Tomcat 5.5 and another very similar setup was working correctly. But after close inspection it became clear that the server had a public key using the &lt;a href="http://en.wikipedia.org/wiki/Digital_Signature_Algorithm"&gt;DSA&lt;/a&gt; algorithm but the machine that was working correctly was using the &lt;a href="http://en.wikipedia.org/wiki/RSA"&gt;RSA&lt;/a&gt; algorithm. The certificate work was done with the Java keytool command and I think I probably didn't specify the &lt;code&gt;-keyalg RSA&lt;/code&gt; argument. After recreating with RSA the certificate and installing it everything was working correctly. The screenshots are taken with Safari (which worked fine with DSA) and shows the two different certificates.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10026400-102461376805816853?l=thicksliced.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thicksliced.blogspot.com/feeds/102461376805816853/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10026400&amp;postID=102461376805816853' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/102461376805816853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/102461376805816853'/><link rel='alternate' type='text/html' href='http://thicksliced.blogspot.com/2008/09/error-secerrorbadsignature-with-firefox.html' title='Error: sec_error_bad_signature with Firefox 3'/><author><name>Thick Sliced</name><uri>http://www.blogger.com/profile/15152807926093631820</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14068581452082511542'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_FltME488_qM/SN0RmzWHsfI/AAAAAAAAABc/OHJ2ksBDz98/s72-c/Picture+13.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10026400.post-837322630119699003</id><published>2008-08-16T08:45:00.002Z</published><updated>2008-08-16T09:06:30.199Z</updated><title type='text'>Jack Buckett</title><content type='html'>Well it's happened again and our second son &lt;a href="http://flickr.com/photos/buckett/sets/72157606610427214/"&gt;Jack Buckett&lt;/a&gt; was born on Wednesday the 6th of August at 8:31 weighing 4.09kgs. We are all home and doing well now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10026400-837322630119699003?l=thicksliced.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thicksliced.blogspot.com/feeds/837322630119699003/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10026400&amp;postID=837322630119699003' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/837322630119699003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/837322630119699003'/><link rel='alternate' type='text/html' href='http://thicksliced.blogspot.com/2008/08/jack-buckett.html' title='Jack Buckett'/><author><name>Thick Sliced</name><uri>http://www.blogger.com/profile/15152807926093631820</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14068581452082511542'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10026400.post-5835460362346711569</id><published>2008-07-15T09:04:00.005Z</published><updated>2008-07-15T09:15:42.861Z</updated><title type='text'>RSF Error</title><content type='html'>&lt;p&gt;
I've just been doing a little web development with &lt;a href="http://www2.caret.cam.ac.uk/rsfwiki/"&gt;RSF&lt;/a&gt; and it seemed that sometimes when accessing the RSF webapp I would get an error:
&lt;/p&gt;
&lt;code&gt;
[An error occurred handling this RSF request]&lt;br/&gt;
[Context has not been started properly]&lt;br/&gt;
&lt;/code&gt;
&lt;p&gt;
with a stack trace starting with:
&lt;/p&gt;
&lt;code&gt;
WARN: Error initialising SakaiRSF servlet:  (2008-07-15 10:07:43,909 http-9080-Processor21_PonderUtilCore)&lt;br/&gt;
java.lang.IllegalStateException: Error acquiring web application context - servlet context not configured correctly&lt;br/&gt;
 at uk.ac.cam.caret.sakai.rsf.servlet.ReasonableSakaiServlet.init(ReasonableSakaiServlet.java:41)&lt;br/&gt;
 at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1139)&lt;br/&gt;
 at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:791)&lt;br/&gt;
&lt;/code&gt;
&lt;p&gt;
It seems that this occurs if you access the RSF webapp while it is still starting up. The only way to fix it is to reload the webapp again and give it a little more time.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10026400-5835460362346711569?l=thicksliced.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thicksliced.blogspot.com/feeds/5835460362346711569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10026400&amp;postID=5835460362346711569' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/5835460362346711569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/5835460362346711569'/><link rel='alternate' type='text/html' href='http://thicksliced.blogspot.com/2008/07/rsf-error.html' title='RSF Error'/><author><name>Thick Sliced</name><uri>http://www.blogger.com/profile/15152807926093631820</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14068581452082511542'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10026400.post-5850883050005997352</id><published>2008-04-15T10:20:00.005Z</published><updated>2008-04-15T10:44:17.616Z</updated><title type='text'>Removing Eclipse team provider information</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_FltME488_qM/SASF1kRf3tI/AAAAAAAAAAU/k6HneCIkor0/s1600-h/team-empty.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: right; cursor: pointer;" src="http://bp3.blogger.com/_FltME488_qM/SASF1kRf3tI/AAAAAAAAAAU/k6HneCIkor0/s400/team-empty.png" alt="" id="BLOGGER_PHOTO_ID_5189419825954283218" border="0" padding="2px" /&gt;&lt;/a&gt;At the moment there are two competing plugins for Eclipse that can provide SVN integration, Subversive and Subclipse. At various times I have tried each of them and they both have their plus points however if I have a project checked out with one plugin and the Eclipse installation I am using doesn't have that plugin installed I don't get any options under the team menu to share the project.
&lt;p&gt;
Rather than getting the old plugin back running and "un-sharing" the project you can just delete a file from the workspace metadata to allow you to re-share the project.
&lt;br/&gt;
&lt;code&gt;workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/{projectname}/.index.properties&lt;/code&gt;
&lt;br/&gt;
This seems to work for me under Eclipse 3.3.2.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10026400-5850883050005997352?l=thicksliced.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thicksliced.blogspot.com/feeds/5850883050005997352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10026400&amp;postID=5850883050005997352' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/5850883050005997352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/5850883050005997352'/><link rel='alternate' type='text/html' href='http://thicksliced.blogspot.com/2008/04/removing-eclipse-team-provider.html' title='Removing Eclipse team provider information'/><author><name>Thick Sliced</name><uri>http://www.blogger.com/profile/15152807926093631820</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14068581452082511542'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_FltME488_qM/SASF1kRf3tI/AAAAAAAAAAU/k6HneCIkor0/s72-c/team-empty.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10026400.post-2878298674876814656</id><published>2008-03-19T09:28:00.002Z</published><updated>2008-03-19T09:33:13.523Z</updated><title type='text'>tailor for svn to hg</title><content type='html'>Well after attempting to convert the portal part of the sakai subversion repository to mercurial I have discovered that tailor (the tool I used) doesn't understand svn tags and branches (or doesn't convert them to mercurial tags and branches). So although is seems to have converted the portal ok. I now have a huge checkout:
&lt;p&gt;
&lt;pre&gt;
buckett@oucs-matthewb:~/tmp/portal $ du -sh *
228M    branches
4.0K    project.log
739M    tags
23M     trunk
&lt;/pre&gt;
&lt;p&gt;
So I think tailor would well for converting a branch (eg 2.5-x) or trunk but not for keeping details about when those branches were made from trunk.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10026400-2878298674876814656?l=thicksliced.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thicksliced.blogspot.com/feeds/2878298674876814656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10026400&amp;postID=2878298674876814656' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/2878298674876814656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/2878298674876814656'/><link rel='alternate' type='text/html' href='http://thicksliced.blogspot.com/2008/03/tailor-for-svn-to-hg.html' title='tailor for svn to hg'/><author><name>Thick Sliced</name><uri>http://www.blogger.com/profile/15152807926093631820</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14068581452082511542'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10026400.post-3976082067484245111</id><published>2008-03-17T17:49:00.003Z</published><updated>2008-03-17T18:11:56.305Z</updated><title type='text'>Converting Subversion repository to Mercurial with tailor (Ubuntu 7.10)</title><content type='html'>I'm looking at managing our local builds in a better way than a set of patches against a point on the Sakai tree. Currently I am looking at placing a copy of the sakai &lt;a href="http://subversion.tigris.org/"&gt;subversion&lt;/a&gt; repository into a &lt;a href="http://www.selenic.com/mercurial/wiki/"&gt;mercurial&lt;/a&gt; one. Mercurial doesn't seem to have good subversion support out of the box (unlike git) but the suggested route seems to be to use a genral purpose tool called &lt;a href="http://progetti.arstecnica.it/tailor/"&gt;tailor&lt;/a&gt;. Subversion, mercurial and tailor are packaged for Ubuntu (7.10) so after installing them I attempted a quick conversion of part of the Sakai repository.
&lt;p&gt;
To do this I generated a tailor configuration file with a command similar to:&lt;br/&gt;
&lt;code&gt;
tailor --verbose --source-kind svn --repository https://source.sakaiproject.org/svn/ --module portal --target-kind hg  &amp;gt; sakai.tailor
&lt;/code&gt;&lt;br/&gt;
and then attempted to run the conversion with:&lt;br/&gt;
&lt;code&gt;
tailor -c sakai.tailor
&lt;/code&gt;&lt;br/&gt;
which failed with a nice python stack trace:&lt;br/&gt;
&lt;code&gt;
  File "/var/lib/python-support/python2.4/vcpx/repository/hg.py", line 438, in _prepareWorkingDirectory&lt;br/&gt;
    message = 'Tailor preparing to convert repo by adding .hgignore')&lt;br/&gt;
  File "/var/lib/python-support/python2.4/vcpx/repository/hg.py", line 339, in _hgCommand
    allopts = self._defaultOpts(cmd)&lt;br/&gt;
  File "/var/lib/python-support/python2.4/vcpx/repository/hg.py", line 333, in _defaultOpts
    findcmd = commands.find&lt;br/&gt;
AttributeError: 'module' object has no attribute 'find'&lt;br/&gt;
&lt;/code&gt;&lt;br/&gt;
after a little puzzling I found a bug report about this &lt;a href="http://progetti.arstecnica.it/tailor/ticket/138"&gt;"not compatible with mercurial 0.9.4"&lt;/a&gt;, which contained a small patch to fix the issue. Applying this patch to my local machine allowed tailor to run fine. It seems that Ubuntu 8.04 (which will be released in a month) contains a later version of tailor so people shouldn't see this issue.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10026400-3976082067484245111?l=thicksliced.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thicksliced.blogspot.com/feeds/3976082067484245111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10026400&amp;postID=3976082067484245111' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/3976082067484245111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/3976082067484245111'/><link rel='alternate' type='text/html' href='http://thicksliced.blogspot.com/2008/03/converting-subversion-repository-to.html' title='Converting Subversion repository to Mercurial with tailor (Ubuntu 7.10)'/><author><name>Thick Sliced</name><uri>http://www.blogger.com/profile/15152807926093631820</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14068581452082511542'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10026400.post-25316136434218754</id><published>2008-02-25T11:54:00.003Z</published><updated>2008-02-25T16:40:11.245Z</updated><title type='text'>Following Sakai developments</title><content type='html'>&lt;p&gt;
Some of my current work involves developing the Sakai portal and collaborating with others in this space. To keep abreast of what is happening I follow the SVN commit messages and have a filter setup in the Sakai bug tracking system (JIRA).
&lt;/p&gt;
&lt;p&gt;
I filter the SVN commit messages (as I get notified of every single Sakai commit) so that I only see the ones that relate to the /portal part of the repository. My filter (GMail) for this is &lt;code&gt;to:(source@collab.sakaiproject.org) (portal/trunk OR portal/branchces)&lt;/code&gt;. In JIRA I have a filter which emails me any tickets that have changed in the last 24 hours and have it run once a day. The trick for this is to have the &lt;em&gt;Updated From&lt;/em&gt; field set to &lt;em&gt;-1d&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
This all allows me to know about stuff that is changing without being overwhelmed with email.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10026400-25316136434218754?l=thicksliced.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thicksliced.blogspot.com/feeds/25316136434218754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10026400&amp;postID=25316136434218754' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/25316136434218754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/25316136434218754'/><link rel='alternate' type='text/html' href='http://thicksliced.blogspot.com/2008/02/following-sakai-developments.html' title='Following Sakai developments'/><author><name>Thick Sliced</name><uri>http://www.blogger.com/profile/15152807926093631820</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14068581452082511542'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10026400.post-115747480776193138</id><published>2008-01-07T12:43:00.000Z</published><updated>2008-01-07T14:09:16.157Z</updated><title type='text'>Disabled input buttons in Sakai</title><content type='html'>&lt;p&gt;
In HTML you can disable the ability for an input button to be clicked typically you just add the disabled attribute to a button with some value. Eg:
&lt;/p&gt;
&lt;code&gt;
&amp;lt;input value="Click" disabled="true" type="button"&amp;gt;
&lt;/code&gt;
&lt;p&gt;
Now in Sakai if you do this for an active button (default one for a form) then under Firefox the button loses some of it's 3D look but remains blue (default default button colour). IE always renders a disabled button grey (allowed in W3C spec). To get a consistent look across the browsers and make it clearer to a Firefix user that the button is disabled you have to have the disabled attribute equal disabled:
&lt;/p&gt;
&lt;code&gt;
&amp;lt;input class="active" value="Click" disabled="disabled" type="button"&amp;gt;
&lt;/code&gt;
&lt;p&gt;
the button is made grey by the following CSS (from /reference/library/src/webapp/skin/default/tool.css)
&lt;/p&gt;
&lt;code&gt;
.act .active[disabled="disabled"] {
   color:grey
}
&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10026400-115747480776193138?l=thicksliced.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thicksliced.blogspot.com/feeds/115747480776193138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10026400&amp;postID=115747480776193138' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/115747480776193138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/115747480776193138'/><link rel='alternate' type='text/html' href='http://thicksliced.blogspot.com/2008/01/disabled-input-buttons-in-sakai.html' title='Disabled input buttons in Sakai'/><author><name>Thick Sliced</name><uri>http://www.blogger.com/profile/15152807926093631820</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14068581452082511542'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10026400.post-7866605254733041459</id><published>2007-12-06T17:48:00.000Z</published><updated>2007-12-06T17:51:30.783Z</updated><title type='text'>Nicer URLs?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_FltME488_qM/R1g2Jc8o1kI/AAAAAAAAAAM/OdKfti89hv4/s1600-h/nice-urls.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_FltME488_qM/R1g2Jc8o1kI/AAAAAAAAAAM/OdKfti89hv4/s400/nice-urls.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5140918510660671042" /&gt;&lt;/a&gt;
After quite a bit of head bashing nicer URLs in Sakai are coming along, here the site has nice name (/working_lu) and the page has a nice name (siteinfo). It's still at the very early stages but its getting there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10026400-7866605254733041459?l=thicksliced.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thicksliced.blogspot.com/feeds/7866605254733041459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10026400&amp;postID=7866605254733041459' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/7866605254733041459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/7866605254733041459'/><link rel='alternate' type='text/html' href='http://thicksliced.blogspot.com/2007/12/nicer-urls.html' title='Nicer URLs?'/><author><name>Thick Sliced</name><uri>http://www.blogger.com/profile/15152807926093631820</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14068581452082511542'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_FltME488_qM/R1g2Jc8o1kI/AAAAAAAAAAM/OdKfti89hv4/s72-c/nice-urls.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10026400.post-9009601959043346182</id><published>2007-11-28T08:51:00.000Z</published><updated>2007-11-28T09:00:24.731Z</updated><title type='text'>SVN Tip for Sakai</title><content type='html'>When your working on a checkout of Sakai and editing files across multiple projects it can be handy to see what you have changed, &lt;code&gt;svn status&lt;/code&gt; is normally the way todo this but due to the number of external definitions in Sakai it produces allot of output which can't easily be suppressed. Piping this through &lt;code&gt;egrep&lt;/code&gt; and &lt;code&gt;tr&lt;/code&gt; can clean things up.

&lt;p&gt;
&lt;code&gt;svn status | egrep -v "^(Perform|X)" | tr -s "\n"&lt;/code&gt;
&lt;/p&gt;

Gives a nice concise output as though those externals didn't exist. Aliasing this to something like &lt;code&gt;svnst&lt;/code&gt; makes it easy to get back to.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10026400-9009601959043346182?l=thicksliced.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thicksliced.blogspot.com/feeds/9009601959043346182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10026400&amp;postID=9009601959043346182' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/9009601959043346182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/9009601959043346182'/><link rel='alternate' type='text/html' href='http://thicksliced.blogspot.com/2007/11/svn-tip-for-sakai.html' title='SVN Tip for Sakai'/><author><name>Thick Sliced</name><uri>http://www.blogger.com/profile/15152807926093631820</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14068581452082511542'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10026400.post-7196686449312825077</id><published>2007-11-21T09:56:00.001Z</published><updated>2009-03-11T09:23:18.805Z</updated><title type='text'>NoMachine Client in Fullscreen</title><content type='html'>I have recently discovered the machine that is &lt;a href="http://www.nomachine.com/"&gt;NoMachine&lt;/a&gt; and am using it to connect to my work computer from outside the office. So far it seems to work really well. The only thing is that I like to run it in fullscreen mode and was struggling to find out how to return to my local desktop. Eventually I found this post &lt;a href="http://ubuntuforums.org/showpost.php?p=1187554&amp;postcount=11"&gt;about NX&lt;/a&gt; which provided all the solutions.

In summary the options are:
&lt;dl&gt;
&lt;dt&gt;Clicking on the top right pixel&lt;/dt&gt;
&lt;dd&gt;Minimises the NX Client and returns you to your client desktop.&lt;/dd&gt;
&lt;dt&gt;CTRL-ALT-M&lt;/dt&gt;
&lt;dd&gt;Same as above&lt;/dd&gt;
&lt;dt&gt;CTRL-ALT-T&lt;/dt&gt;
&lt;dd&gt;Brings up a popup asking if I want to terminate the session or just disconnect from it.&lt;/dd&gt;
&lt;/dl&gt;

Now if only they had a client of Mac OSX which supported fullscreen mode.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10026400-7196686449312825077?l=thicksliced.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thicksliced.blogspot.com/feeds/7196686449312825077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10026400&amp;postID=7196686449312825077' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/7196686449312825077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/7196686449312825077'/><link rel='alternate' type='text/html' href='http://thicksliced.blogspot.com/2007/11/nomachine-client-in-fullscreen.html' title='NoMachine Client in Fullscreen'/><author><name>Thick Sliced</name><uri>http://www.blogger.com/profile/15152807926093631820</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14068581452082511542'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10026400.post-8840599644872550879</id><published>2007-09-24T16:33:00.000Z</published><updated>2007-10-01T16:26:20.034Z</updated><title type='text'>Sakai Sessions and UsageSession</title><content type='html'>Having just been looking at these for a little while I thought I'd document them a little. The basic setup is that the Sakai Session is your session with the application and is very similar to a HttpSession. Your Session is setup for each request by the Sakai RequestFilter. The UsageSession on the other hand is your logged usage of the application amd is mainly there so that you can enumerate all the active UsageSessions. The UsageSession is actually store in the Session and is mainly used for presence.
&lt;p&gt;
However just to confuse things a little the UsageSessionService (manages UsageSessions) has some very important methods, login() and logout(). These setup and destroy your Session and UsageSession at the same time. Login tools in Sakai should call UsageSession.login() to setup the Sakai session with the authenticated user details.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10026400-8840599644872550879?l=thicksliced.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thicksliced.blogspot.com/feeds/8840599644872550879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10026400&amp;postID=8840599644872550879' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/8840599644872550879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/8840599644872550879'/><link rel='alternate' type='text/html' href='http://thicksliced.blogspot.com/2007/09/sakai-sessions-and-usagesession.html' title='Sakai Sessions and UsageSession'/><author><name>Thick Sliced</name><uri>http://www.blogger.com/profile/15152807926093631820</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14068581452082511542'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10026400.post-877363942314288168</id><published>2007-09-23T07:17:00.000Z</published><updated>2007-09-23T07:20:28.730Z</updated><title type='text'>Formatting with Styles</title><content type='html'>There is a very clear post from darcusblog about how having a &lt;a href="http://netapps.muohio.edu/blogs/darcusb/darcusb/archives/2007/09/19/styles-and-symphony"&gt;good UI can encourage people to use styles&lt;/a&gt; in their document. Unsurprisingly the company with the good UI is Apple, but it shows that a good UI can guide users into good practices.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10026400-877363942314288168?l=thicksliced.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thicksliced.blogspot.com/feeds/877363942314288168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10026400&amp;postID=877363942314288168' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/877363942314288168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/877363942314288168'/><link rel='alternate' type='text/html' href='http://thicksliced.blogspot.com/2007/09/formatting-with-styles.html' title='Formatting with Styles'/><author><name>Thick Sliced</name><uri>http://www.blogger.com/profile/15152807926093631820</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14068581452082511542'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10026400.post-5838324432071375269</id><published>2007-07-23T09:41:00.000Z</published><updated>2007-07-23T10:04:12.672Z</updated><title type='text'>More Kerberos Puzzlers</title><content type='html'>Ok so when trying to kerberos enable another machine for ssh connections things were almost working (getting offered kerberos for authentication by sshd) but connections were always failing with the following error message in the logs:
&lt;pre&gt;
Jul 17 12:33:46 machine sshd[5020]: debug1: An invalid name was supplied\nHostn
ame cannot be canonicalized\n
&lt;/pre&gt;
Now after looking through pages of google it seemed to be that there was something wrong with the hostname but looking on other machines they had very similar setups and were working correctly. The reason for this message was that I think that kerberos was using the hostname for kerberos and couldn't find an entry for the hostname in DNS. The reason it couldn't find a hostname was the there wasn't a search entry in &lt;i&gt;/etc/resolv.conf&lt;/i&gt; specifying the domain to look in, adding &lt;code&gt;search oucs.ox.ac.uk&lt;/code&gt; to &lt;i&gt;/etc/resolv.conf&lt;/i&gt; fixed the problem and everything worked fine.
&lt;p&gt;
Hopefully this post might help someone else from scratching hole in their head. But it would have been much easier to debug if the invalid hostname was logged in the message.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10026400-5838324432071375269?l=thicksliced.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thicksliced.blogspot.com/feeds/5838324432071375269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10026400&amp;postID=5838324432071375269' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/5838324432071375269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/5838324432071375269'/><link rel='alternate' type='text/html' href='http://thicksliced.blogspot.com/2007/07/more-kerberos-puzzlers.html' title='More Kerberos Puzzlers'/><author><name>Thick Sliced</name><uri>http://www.blogger.com/profile/15152807926093631820</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14068581452082511542'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10026400.post-4446568983766640150</id><published>2007-07-18T10:12:00.000Z</published><updated>2007-07-18T10:21:41.423Z</updated><title type='text'>svn_load_dirs.pl and Ubuntu</title><content type='html'>I need to do some vendor drops with Subversion and the documentation seems to point to svn_load_dirs.pl as being the best place to start. So I install subversion and subversion-tools onto my Ubuntu system only to find that I don't seem to have a svn_load_dirs.pl installed. After a little bit of digging it seems that svn_load_dirs.pl was removed from the Debian package (which the Ubuntu one is based) due to &lt;a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=394395"&gt;licensing concerns&lt;/a&gt; although this isn't very clear as the changelog doesn't explain that this was one of the affected files. So it looks like I need to get myself a copy of the source distribution.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10026400-4446568983766640150?l=thicksliced.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thicksliced.blogspot.com/feeds/4446568983766640150/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10026400&amp;postID=4446568983766640150' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/4446568983766640150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/4446568983766640150'/><link rel='alternate' type='text/html' href='http://thicksliced.blogspot.com/2007/07/svnloaddirspl-and-ubuntu.html' title='svn_load_dirs.pl and Ubuntu'/><author><name>Thick Sliced</name><uri>http://www.blogger.com/profile/15152807926093631820</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14068581452082511542'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10026400.post-1798918672938799271</id><published>2007-06-14T09:54:00.000Z</published><updated>2007-06-14T10:00:11.138Z</updated><title type='text'>Ethiopian Food in Amsterdam</title><content type='html'>Had some really nice food in Amsterdam last night, after a drink we ended up at an &lt;a href="http://maps.google.co.uk/maps/ms?ie=UTF8&amp;hl=en&amp;msa=0&amp;t=h&amp;om=1&amp;msid=110436526007040349954.00000113299027f6db8d9&amp;ll=52.370348,4.910859&amp;spn=0.000727,0.001802&amp;z=19"&gt;Ethiopian Restaurant&lt;/a&gt; suggested by Adam. I had some &lt;a href="http://en.wikipedia.org/wiki/Gored_gored"&gt;Gored Gored&lt;/a&gt; but we all ended up sharing as it came on a &lt;a href="http://www.flickr.com/photos/buckett/546959155/"&gt;big plate&lt;/a&gt;. Good company and good food.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10026400-1798918672938799271?l=thicksliced.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thicksliced.blogspot.com/feeds/1798918672938799271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10026400&amp;postID=1798918672938799271' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/1798918672938799271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/1798918672938799271'/><link rel='alternate' type='text/html' href='http://thicksliced.blogspot.com/2007/06/ethiopian-food-in-amsterdam.html' title='Ethiopian Food in Amsterdam'/><author><name>Thick Sliced</name><uri>http://www.blogger.com/profile/15152807926093631820</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14068581452082511542'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10026400.post-4486099888830526363</id><published>2007-06-14T09:04:00.000Z</published><updated>2007-06-14T10:02:05.963Z</updated><title type='text'>Loading Resources in Sakai Components</title><content type='html'>I meant to blog about this a while ago but it has recently come up again and so I though I should write my ideas down. Ok so the problem is that you have a Sakai component which is created by the component manager and it wants to load something from inside the component, in my case it was an iBatis configuration file specified through a spring configuration file. So in my spring config I have something like:
&lt;pre&gt;  
&amp;lt;property name="configLocation"&amp;gt;
 classpath:/sql-maps-config.xml
&amp;lt;/property&amp;gt
&lt;/pre&gt;
Now the problem is that this property is loaded through a PropertyEditor which sets the property to a &lt;a href="http://static.springframework.org/spring/docs/1.2.x/api/org/springframework/core/io/ClassPathResource.html"&gt;ClassPathResource&lt;/a&gt;. In Spring the classloading policy is that resources should be loaded through the thread's classloader. When the component manager is starting up and so when my component is create this is caused by the fact that a web application has asked for it so the thread classloader points to the webapp and the resource in your component won't be found.
&lt;p&gt;
The solution to this is to have a way to load resources using the standard JVM &lt;a href="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/ClassLoader.html#getResourceAsStream(java.lang.String)"&gt;Class.getResourceAsStream()&lt;/a&gt; which will use the classloader used to load the current class. So I created an class:
&lt;/p&gt;&lt;pre&gt;
package org.sakaiproject.util;

import org.springframework.core.io.ClassPathResource;

/**
* Resource implementation for class path resources.
* Loads out of the same classpath as this class was loaded through.
*
* Supports resolution as &lt;code&gt;java.io.File&lt;/code&gt; if the class path
* resource resides in the file system, but not for resources in a JAR.
* Always supports resolution as URL.
*
* @author buckett
*/
public class LocalClassPathResource extends ClassPathResource {

 public LocalClassPathResource(String path) {
  super(path, LocalClassPathResource.class.getClassLoader());
 }
}
&lt;/pre&gt;
&lt;p&gt;
and put this in my component. I also then change the configuration in my components.xml to use the resource directly:
&lt;pre&gt;
&amp;lt;property name="configLocation"&amp;gt;
&amp;lt;bean class="org.sakaiproject.util.LocalClassPathResource"&amp;gt;
 &amp;lt;constructor-arg type="java.lang.String"&amp;gt;
  &amp;lt;value&amp;gt;/sql-maps-config.xml&amp;lt;/value&amp;gt;
 &amp;lt;/constructor-arg&amp;gt;
&amp;lt;/bean&amp;gt;
&amp;lt;/property&amp;gt
&lt;/pre&gt;
Now the configuration file gets loaded without any problems. Hopefully future Sakai developments in the component manager will mean this hack isn't needed later on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10026400-4486099888830526363?l=thicksliced.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thicksliced.blogspot.com/feeds/4486099888830526363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10026400&amp;postID=4486099888830526363' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/4486099888830526363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/4486099888830526363'/><link rel='alternate' type='text/html' href='http://thicksliced.blogspot.com/2007/06/loading-resources-in-sakai-components.html' title='Loading Resources in Sakai Components'/><author><name>Thick Sliced</name><uri>http://www.blogger.com/profile/15152807926093631820</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14068581452082511542'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10026400.post-65901011013082808</id><published>2007-06-12T12:42:00.000Z</published><updated>2007-06-12T13:19:30.136Z</updated><title type='text'>Safari 3 Beta and FCKEditor</title><content type='html'>Just saw in the news that Apple has release a &lt;a href="http://www.apple.com/safari/download/"&gt;Safari 3 Beta&lt;/a&gt; but include a Windows build, now this probably isn't going to take on IE and Firefox but does allow developers on Windows so have a better idea about how websites will render on it. Now it also allow people to see that &lt;a href="http://www.fckeditor.net/nightly/browsers_test.html"&gt;FCKEditor nightly&lt;/a&gt; is working reasonably well in Safari.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10026400-65901011013082808?l=thicksliced.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thicksliced.blogspot.com/feeds/65901011013082808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10026400&amp;postID=65901011013082808' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/65901011013082808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/65901011013082808'/><link rel='alternate' type='text/html' href='http://thicksliced.blogspot.com/2007/06/safari-3-beta-and-fckeditor.html' title='Safari 3 Beta and FCKEditor'/><author><name>Thick Sliced</name><uri>http://www.blogger.com/profile/15152807926093631820</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14068581452082511542'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10026400.post-2612719307714321368</id><published>2007-06-09T10:23:00.000Z</published><updated>2007-06-09T10:26:01.469Z</updated><title type='text'>Plane on Google Maps</title><content type='html'>Found a &lt;a href="http://maps.google.co.uk/maps?f=q&amp;hl=en&amp;q=&amp;ie=UTF8&amp;ll=51.57722,-0.696956&amp;spn=0.001834,0.004174&amp;t=h&amp;z=18&amp;om=1"&gt;plane on Google Maps&lt;/a&gt; today. You can even read the writing on it showing it's an Air Canada plane.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10026400-2612719307714321368?l=thicksliced.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thicksliced.blogspot.com/feeds/2612719307714321368/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10026400&amp;postID=2612719307714321368' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/2612719307714321368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10026400/posts/default/2612719307714321368'/><link rel='alternate' type='text/html' href='http://thicksliced.blogspot.com/2007/06/plane-on-google-maps.html' title='Plane on Google Maps'/><author><name>Thick Sliced</name><uri>http://www.blogger.com/profile/15152807926093631820</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14068581452082511542'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry></feed>