AppEngine/Go Knowledge Resources

I have been spending a great many evenings working on a web application that will -- some day -- run on AppEngine's Go runtime. Go is a wonderful language, and programming with it is fun in a way that is increasingly uncommon. Still, it is a very new language and good references are rare. Useful documentation for the AppEngine/Go platform is even hard to come by; the so-called "Reference" for the Go interface to the datastore is little more than a few simple examples and a trivial list of API calls. It's disappointing, frustrating and unproductive.

Fortunately, the web is full of smart people who are willing to go out of their ways to share what they have learned, and I am gradually discovering all of them. I will be listing them here for my own reference as well as making the discovery process less difficult for my fellows.

Ugorji Nwoke's Blog is full of great ideas and thoughts about AppEngine/Go and AppEngine as a platform generally. Very smart, interesting guy.

Miek Gieben's Learning Go isn't specifically about AppEngine, but it is an invaluable reference for the GO language.

GoLang Tutorials has some very valuable ...

read more

Going Go on Windows


I admit it: I love all things Google. Gmail, Google+, Google Music, Google Docs, AppEngine, Apps for Domains, AdSense, Analytics -- I use and enjoy them all. I was very excited when I first saw the announcement about Google’s new programming language Go, but I didn’t set about learning it right away. I was deterred not having any particular project build with it, and it was not available for Windows, my platform of choice.

The first problem was solved by the addition of the Go runtime to the AppEngine platform. It was a perfect fit for a project that I had been working on with the idea of deploying it on node.js. I still think that I might build a backend for this program in Node, not only to have a backup to AppEngine but also to learn Node really well. The second problem has mostly been solved by the release of the official SDK for Windows. After downloading and installing it, I was immediately about to compile and link, but using other tools like gomake and gotest was not working. Through a great deal of trial-and-error, I eventually settled on a solution that now works very nicely ...
read more

Another Wheel Not Reinvented: Full-text Search

If you spend enough time with people using AppEngine, trolling the newsgroups or answering questions in the google-app-engine tag on StackOverflow, you will begin to notice a collection of ‘holy grail’ problems and features that always come up. As near as I can tell, these include: really good pagination, uninqueness constraints in the datastore and full-text search. There are others, of course, but those three come up all the time, and finding solutions for them tends to be problematical because of certain inherent characteristics of the datastore.

The pagination issue has been addressed to my complete satisfaction by Ben Davies’ PagedQuery class; I have written about it in a previous post.

Full-text search is much trickier, and I don’t yet know of any true solution, but I think that for many applications, there is a free, simple and elegant alternative. You were probably looking at it just a second ago. Go back to the home page of this blog, and take a look at the Google Custom Search bar that now sits at the top. Give it a try.

I was able to create that Custom Search in less than 10 minutes, and I spent about 30 minutes getting ...

read more