… for some, jogging along the beach for others.
This annoying error message when working with subversions is most likely due to locked files. To unlock files in a folder recursively use:
chflags -R nouchg [files]
More background information on the problem can be found at unlocking files on Mac OS X.
Found this great blog entry that explains the minutes of setting up an infrastructure on Mac OS X for working with the Apache build system.
Found this tutorial about how to map a domain name to a IP address on the mac.
> sudo dscl localhost -create /Local/Default/Hosts/some.stupid.com IPAddress 127.0.0.1 > ping -q -c 1 some.stupid.com
By sheer chance I realized that I can write a blog entry from within TextMate and post it to my site when I have access again. It works like a charm!
Found this trick to make hidden files and directories visible in the finder. Open a terminal and type
defaults write com.apple.Finder AppleShowAllFiles YES
Of course when you want to hide the files, substitute YES with NO.
After that, restart the finder; on Leopard that means Apple > Force Quit > Finder (relaunch).
I have been wondering all along how it is possible to call a method that is not defined anywhere in that class and get something reasonable done, e.g. the method on the Cairngorm delegate that conducts the call to the server.
After playing around with Grails I became aware of the fact that this mechanism is used extensively not only in Grails but in other frameworks that are based on dynamic languages such as Ruby on Rails.
I found this blog that explains how to install Grails on Max OS X.
Copy the downloaded folder to /usr/share/
$cd /usr/share $sudo chown -R root:wheel grails-1.1.1/ $sudo chmod 0755 grails-1.0.1/bin/*
$ln -s grails-1.1.1 grails
Add the path variable to /ect/profile like on Linux.
When deploying a new version of my application (actually I started an entire project from scratch) I continuously bounced my head against this “You don’t have the permission…” exception.
I finally added the following lines to my Configuration/config.groovy file:
where myproject is the part that appears in the url, like myproject.appspot.com.
Here are the directions for a patch in a great Screencast by Tomás Lin that makes authentication work in a Grails Application on Google’s App-Engine:
google.appengine.sessionEnabled = true // default true google.appengine.enableSsl = true // default true google.appengine.security.useHttps = ["/secure", "/shoppingcart/*", "/admin"] google.appengine.security.requireAdmin = ["/admin", "/notsecuredadmin"] google.appengine.security.requireLogin = ["/admin", "/", "/yabbadabbadoo"]
Don’t forget to apply the securePatch.diff patch to the plugin directory of your project – that is in <home>.grails/1.1.1/projects/myproject/plugins/app-engine-0.8.1 in order for these properties effectively written to the web.xml file.
A blog entry about running grails on Google’s App Engine. Among other things the methods that are provided by the App-Engine plugin are listed.
The added domain class MetaClass methods are:
withPersistenceManager(to execute code with access to the PersistenceManager)
jdoMakeDirtycorresponding to the JDOHelper methods
Controllers have these attributes added to their MetaClass:
params(with Request attributes like in Grails)
When using the above script the compiler apparently cannot find the Key class for the Google Data Store. A workaround is to simply add the following jar directly to the Classpath:
When generating a Google AppEngine complient web app in Grails, there is a mistake in the MyApplication/target/war/WEB-INF/datastore-indexes.xml file which causes the shell script
from doing its job properly and eventually prevent you from deploying your application to the appengine.
You have to go into the datastore-indexes.xml file and remove the following line:
Since the Data Store behind Google’s AppEngine is not a relational database I have been wondering all along how to manage one-to-many and many-to-many relationships. This links to the Java documentation:
And here are some well explained examples in Python:
These are the steps I had to take to establish a connection from within NetBeans 6.7 to my Subversion Repository via a https connection.
Install svn -> sudo apt-get install svn
Install an svn client, I chose RapidSVN -> sudo apt-get install rapidsvn
In NetBeans select Team ＞ SVN＞Check out… and fill in the Form. The path to the RapidSVN executable is /usr/sbin.
Restart NetBeans and you should be able to proceed in the wizard.
Instructions on how to install Ubuntu on the One Laptop per Chiled PC.
This is the first of a series of articles explaining how testing on Android works.
A useful tutorial about how to connect Mylin to a Trac repository.
After installing Mercurial and TortoiseHG on Windows XP I subscribed to the SCM Hosting provider Sourcerepo.com and so far I am very pleased with their service. The subscription process was straight forward, the repository usable within minutes after subscribing and all of that for a very affordable price, I might add.
I had fun exploring Mercurial as a next generation distributed source code management system – until I hit that SSH wall, that is. So here is a short description how to configure SSH on Windows XP:
- Download and install putty-0.60-installer.exe.
- Fire up the PuTTY Key Generator, chose SSH2-DSA and fill in the form.
- Save the private key to a file.
- Copy the public key as it appears in the text area field (including the first line) to the server.
- Start up Pageant – if its running, an icon with a computer wearing a heat is visible in the system tray. Right-click on that icon and select “Add Key”.
- Tell Pageant where to find your private key.
- Append the follwoing line to the [ui] section of your .mercurial.ini file:
ssh="/path/to/plink.exe" -ssh -i "/path/to/your/private/key"
Done! You should be able to clone and push to your server.
Seam veteran Michael Yuan, whom I had the pleasure to see in a live talk last year in San Francisco, comments on Googles support for Java, the pros and cons of its hosting service.