Monday, January 31, 2011

Two good books on AppEngine development

The publisher PACKT sent me a review copy of Google App Engine Java and GWT Application Development by my friend (via email correspondence) Daniel Guermeur and co-author Amy Unruh (thanks!) and I bought Code in the Cloud Programming Google AppEngine by Mark C. Chu-Carroll.

Both are very good books and complement each other.

Mark's book gives an interesting insite into AppEngine from someone who works at Google. He covers both Python and Java development. I relied on the Python sections of the book when I wrote a Python based AppEngine application last December. I am not much of a Python programmer but his book got me going quickly and I had few problems. He uses Google's Django support for AppEngine for the Python examples and Google Widget Toolkit (GWT) for the Java examples.

Daniel's and Amy's book is a hands-on guide to using the Eclipse IDE and GWT to develop AppEngine applications in Java. They use JDO for the book examples which is probably best for the general reader but my own preference is the lighter weight objectify-appengine datastore wrapper. The example application is neat: Connectr gathers social media and provides some aggregation services. I like that the application is interesting and contains useful code. I would particularly recommend this book if you want to use Eclipse and GWT to build AppEngine applications and you want everything you need in one tutorial and reference book.

Friday, January 21, 2011

Social networking: why fewer connections may be better

I have a very public web presence from this blog and my web site. I enjoy sharing information and communicating with people via email and occasionally (with a heads-up email first) talking on the telephone. I also spend an hour a week giving free advice to students on their projects, employment hints, and to a more limited degree give feedback on technical ideas. I can enjoy doing this because email is asynchronous: I can handle these interactions when they don't interfere with my work or research.

In the past I have accepted connections on LinkedIn and Facebook from people who I don't know, just t be friendly. However, there is a cost to this.

LinkedIn frequently sends out email statuses of what colleagues (current and present) are doing. I like this for people I know well either personally or through years of email interactions. However, status updates from people I am not closely associated with take time even to ignore.

The situation is worse on Facebook. I used to always accept friend connections from anyone who looked like they were a computer scientist from their public profile (in addition to people I know).

I am a native English speaker with reading knowledge of French. One of the great things about the web is communicating with people from around the world with similar interests. Due to my limited natural language skills however, this has to be in English. Sometimes half of the updates on my Facebook are in languages I can't read.

I am leaving all of my LinkedIn connections as-is but in the last few weeks I have been removing friend connections on Facebook except for close friends, family, and people I have worked with in the past. Checking my Facebook page a few times a week is much more enjoyable.

For other communication, email is best.

Sunday, January 09, 2011

Java EE 6 is actually pretty good

I do most of my development in very agile programming environments like Ruby and Rails (with Datamapper or ActiveRecord), Clojure with MongoDB, etc. I like languages that have an interactive repl.

Recently, I have taken on for a new customer helping (a life-long friend's company) do some conversion to Java EE6 and I must say that Java EE 6 is very well done. I wrote a J2EE book many years ago and used to be into Java server side development but drifted to other platforms partly because that is what customers hired me to work on and partly because of my own technical interests. In the last 5 years I have probably spent about 30% of my time working with Java (customers want Lisp and Ruby development).

Java EE 6 is so much better than J2EE. Writing POJOs (with EJB annotations), unit testing them as simple POJOs, and then integration testing them in an EJB container makes for a reasonable programming environment. I still think that you get much more bang for your programming buck with Ruby and Rails but there are applications that fit very well into the Java EE 6 infrastructure.

Sunday, January 02, 2011

Recommended: Niall Ferguson's "The Ascent of Money"

I just finished watching tonight the DVD of the PBS series but the book covers the same material. Harvard professor/historian Nial Ferguson puts down and in its place the (in my opinion also) misguided view that governments can, long term, spend their ways out of problems.

The PBS series is especially fun to watch (in addition to being very educational) because as Ferguson traces "bubbles" throughout history, there is local video that helped me picture what happened in ancient, medieval, and modern times.

Worth watching! (There are many excerpts on youtube if you don't have time to watch the 4 hour series.)

I rented the DVD from Netflix, and their summary is good:
British historian and author Niall Ferguson explains how big money works today as well as the causes of and solutions to economic catastrophes in this extended version The Ascent of Money documentary. Through interviews with top experts, such as former Federal Reserve Chairman Paul Volcker and American currency speculator George Soros, the intricate world of finance, including global commerce, banking and lending, is examined thoroughly.
One bit of advice is that there is no firm economic security in anything but income. For individuals this the ability to earn money and for governments the ability to raise sufficient taxes to pay for most expenditures. The PBS documentary makes this point very well.

Saturday, January 01, 2011

Happy New Year

I start each day by enumerating the good things in my life (computer scientist-speak for "counting my blessings") followed by meditation and relaxation techniques. A nice way to start each day.

I would like to do the same today, the first day of 2011 (note that 2011 is the sum of consecutive primes: 157+163+167+173+179+181+191+193+197+199+211).

I am grateful for my family and friends, living in one of the most beautiful places in the world (Sedona Arizona), having interesting work with great customers, resources to self-fund my own research as a computer scientist, and time to enjoy my hobbies (cooking, hiking and reading).

Happy New Year!