Your work is going to fill a large part of your life, and the only way to be truly satisfied is to do what you believe is great work. And the only way to do great work is to love what you do.
-- Steve Jobs

Friday, June 24, 2011

Android Developers Blog: Things That Cannot Change

Android Developers Blog: Things That Cannot Change
[This post is by Dianne Hackborn, whose fingerprints can be found all over the Android Application Framework — Tim Bray]

Sometimes a developer will make a change to an application that has surprising results when installed as an update to a previous version — shortcuts break, widgets disappear, or it can’t even be installed at all. There are certain parts of an application that are immutable once you publish it, and you can avoid surprises by understanding them.

WWDC 2011 Session Videos - Development Videos - Apple Developer

WWDC 2011 Session Videos - Development Videos - Apple Developer
Watch Apple engineers present over 100 sessions covering the latest innovations in iOS and OS X from the Apple Worldwide Developers Conference 2011.

Windows 8 for software developers: the Longhorn dream reborn?

Windows 8 for software developers: the Longhorn dream reborn?
Early this month, Microsoft dropped something of a bombshell on Windows developers: the new Windows 8 touch-friendly immersive style would use a developer platform not based on .NET, which Microsoft has been championing for the past decade. Instead, it would use HTML5 and JavaScript. Since then, the company has refrained from making any further comment on the issue. In particular, the question that has many Windows developers particularly concerned—how can I make use of my existing skills and experience when developing these new applications?—remains unanswered; the company plans to reveal nothing until its BUILD conference in September.

Thursday, June 23, 2011

tednaleid / grails-test-data / wiki / Home – Bitbucket

tednaleid / grails-test-data / wiki / Home – Bitbucket
Creating maintainable test data is hard. Often an entire object graph needs to be created to support the instantiation of a single domain object. This leads to either the cutting and pasting of that creation code, or relying on a canned set of objects that we've grown over time and maintained as the domain objects change. After a while, adding just one more Widget to that set of canned data ends up breaking tests just about every time.

Grails - Plugin - Build Test Data

Grails - Plugin - Build Test Data
This plugin allows the user to easily create testing data through the use of a "build" method that is added to all Domain Classes. The build method inspects all of the constraints and creates default values for those required properties.

This testing data is much more robust as it changes with the domain classes when new properties and constraints are added. The only tests that will break are the ones directly related to the changes you're making, rather than any test using any part of that domain class.

Using Gant to execute a groovy script within the Grails context (updated) - Ted Naleid

Using Gant to execute a groovy script within the Grails context (updated) - Ted Naleid

In a previous post I showed a script that I had created to allow the execution of a groovy script within a grails application context (including access to domain objects, controllers, services, etc). A couple of people reported a problem with the script where they were getting lazy initialization exceptions. I finally tracked this issue down to one where many-to-many relationships are being used between two domain classes.

Here is an updated script that fixes this issue by setting up the hibernate session in the Gant script.

fixtures - Grails build-test-data - Stack Overflow

fixtures - Grails build-test-data - Stack Overflow

Is it advisable to use the build-test-data plugin to load the bootstrap (seed/initial) data for an application. The plugin tutorial is excellent at http://bitbucket.org/tednaleid/grails-test-data/wiki/Home , but only mention about loading test data. There is a section about TestDataConfig , which allows to set default data. But is it a viable option if the data needs to persist in a larger scale, with complex relations.\ thanks.

Grails Fixtures Plugin 1.0.7

Grails Fixtures Plugin 1.0.7

The fixtures plugin allows you to use a convenient DSL to easily define a graph of persisted domain objects, typically for testing.

Seed data for grails application - Stack Overflow

Seed data for grails application - Stack Overflow

What is the best way to load seed (initial or test) data into grails application. I'm considering 3 options

  1. Putting everything in *BootStrap.groovy files. This is tedious if the domain classes and test data are many.
  2. Write custom functionality to load it through xml. May not be too difficult with the excellent xml support by groovy, but lot of switch statements for different domain classes.
  3. Use Liquibase LoadData api. I see you can load the data fairly easy from csv files.

Choice 3 seems the easiest. But, I'm not familiar with Liquibase. Is it good in this scenario, or only used for migration, db changes etc. If anyone could provide a better sol, or point to an example with Liquibase, it would be great help..

thanks...

Grails - Plugin - Taggable Plugin

Grails - Plugin - Taggable Plugin

This plugin provides an alternative to the Acts as Taggable hosted at grails.org and with the following features.

  • Classes can be made taggable by implementing the org.grails.taggable.Taggable interface
  • Method chaining can be used to add tags
  • The table name the domain classes use is customizable
  • Utilizes extensive caching to improve performance
  • Property use of packages to avoid domain conflicts

How to handle Many-To-Many In Grails without belongsTo? - Stack Overflow

How to handle Many-To-Many In Grails without belongsTo? - Stack Overflow

I need to create a many-to-many relationship in Grails.

I have a "Question" domain and a "Tag" domain. A Question can have 0 or more tags. A Tag can have 0 or more Questions.

If I put a "hasMany" on each sides, it gives me an error saying I need a "belongTo" somewhere. However, adding a belongsTo means that the owner must exist...

Like I said, a Tag could have 0 questions, and a Question could have 0 tags. There is no concept of an owner, it's a many-to-many!

What am I supposed to do?

Java Web Application Security - Part V: Penetrating with Zed Attack Proxy | Javalobby

Java Web Application Security - Part V: Penetrating with Zed Attack Proxy | Javalobby
Web Application Security is an important part of developing applications. As developers, I think we often forget this, or simply ignore it. In my career, I've learned a lot about web application security. However, I only recently learned and became familiar with the rapidly growing "appsec" industry.

What Every Computer Scientist Should Know About Floating-Point Arithmetic

What Every Computer Scientist Should Know About Floating-Point Arithmetic
Floating-point arithmetic is considered an esoteric subject by many people. This is rather surprising because floating-point is ubiquitous in computer systems. Almost every language has a floating-point datatype; computers from PCs to supercomputers have floating-point accelerators; most compilers will be called upon to compile floating-point algorithms from time to time; and virtually every operating system must respond to floating-point exceptions such as overflow. This paper presents a tutorial on those aspects of floating-point that have a direct impact on designers of computer systems. It begins with background on floating-point representation and rounding error, continues with a discussion of the IEEE floating-point standard, and concludes with numerous examples of how computer builders can better support floating-point.

Why we don't use Doubles for Financial Calculations

Why we don't use Doubles for Financial Calculations

My current client is in the middle of hiring some Java developers and as I mentioned earlier in March (Interviewing – the importance of PASSION!) I’ve been doing some of the interviewing. One of the things we’ve done is to create a technical task to see how the candidates actually code. It’s a simple exercise that requires them to think through some of the basics of financial operations and one thing that has surprised me has been the common use of doubles to represent financial values. It’s been highlighted for some time that this is not a great thing to do but someone actually challenged me to show that it wasn’t.

So here we go…

Charles Web Debugging Proxy • HTTP Monitor / HTTP Proxy / HTTPS & SSL Proxy / Reverse Proxy

Charles Web Debugging Proxy • HTTP Monitor / HTTP Proxy / HTTPS & SSL Proxy / Reverse Proxy
Charles is an HTTP proxy / HTTP monitor / Reverse Proxy that enables a developer to view all of the HTTP and SSL / HTTPS traffic between their machine and the Internet. This includes requests, responses and the HTTP headers (which contain the cookies and caching information).

Google Web Fonts

Google Web Fonts
Google Web Fonts lets you browse all the fonts available via the Google Web Fonts API. All fonts in the directory are available for use on your website under an open source license and are served by Google servers.

Playable Archaeology: An Interview with Telehack's Anonymous Creator - Waxy.org

Playable Archaeology: An Interview with Telehack's Anonymous Creator - Waxy.org

Telehack is the most interesting game I've played in the last year... a game that most users won't realize is a game at all.

It's a tour de force hack — an interactive pastiche of 1980s computer history, tying together public archives of Usenet newsgroups, BBS textfiles, software archives, and historical computer networks into a multiplayer adventure game.

Tuesday, June 21, 2011

Practically Groovy: Unit test your Java code faster with Groovy

Practically Groovy: Unit test your Java code faster with Groovy
Not long ago, developerWorks contributor Andrew Glover penned an article introducing Groovy, a new proposed standard language for the Java platform, as part of our alt.lang.jre series. Reader response was fantastic, so we've decided to launch this column to offer a practical guide to using this hot new technology. This first installment introduces a simple strategy for unit testing Java code with Groovy and JUnit.

Grails - Functional Testing

Grails - Functional Testing

In addition to unit testing, Grails supports functional testing of your web application.

For this purpose, it uses the free open-source Canoo WebTest.

If you want to try out webtest very quickly, you can create a new project with create-app, create a domain class and then "generate-all" this domain class. Then generate the test layout with "create webtest" and generate the webtest itself with "generate-webtest". You can then run the tests with "run-webtest". Note that the scaffolded webtest will not work out of the box if you use dynamic scaffolding of your controller. Just use generative scaffolding for the controller instead.

The New Guy's Computer - (37signals)

The New Guy's Computer - (37signals)
Like most programmers starting a new gig, I spent my first day at 37signals setting up my work environment. I thought it might be interesting to keep track of what I installed along the way…

Marketing to your own team - (37signals)

Marketing to your own team - (37signals)
When you start cutting corners, customers can’t always tell. But employees usually can. And that can be just as bad.

You’re not just sending out a message externally, you’re sending one out internally too. If your employees don’t believe it, the whole plan falls apart.

REWORK: The new business book from 37signals.

REWORK: The new business book from 37signals.
The new business book from 37signals.

Getting Real: The Book by 37signals

Getting Real: The Book by 37signals
Getting Real is the business, design, programming, and marketing philosophies of 37signals — a developer of web-based software used by over 1 million people and businesses in 70 countries.

Monday, June 20, 2011

WatiN

WatiN
Inspired by Watir development of WatiN started in December 2005 to make a similar kind of Web Application Testing possible for the .Net languages. Since then WatiN has grown into an easy to use, feature rich and stable framework. WatiN is developed in C# and aims to bring you an easy way to automate your tests with Internet Explorer and FireFox using .Net.

Watij

Watij
Watij (pronounced wattage) stands for Web Application Testing in Java. Watij is a Java API created to allow for the automation of web applications. Inspired by the simplicity of Watir and enhanced by the power of Java, Watij automates functional testing of web applications through real web browsers.

Sunday, June 19, 2011

Grails - Checking Projects into SVN

Grails - Checking Projects into SVN
Why a page dedicated to adding Grails projects to source control? Because you want to make sure that only realy source files rather than generated ones are added to the repository. There's nothing more annoying than being told by your SCM tool that such and such a file has been changed locally simply because it has been regenerated.

Saturday, June 18, 2011

junit - Grails Unit Tests: Why does this statement fail? - Stack Overflow

junit - Grails Unit Tests: Why does this statement fail? - Stack Overflow
I've developed in Java in the past, and now I'm trying to learn Grails/Groovy using this slightly dated tutorial.

java - Why is this (trivial) unit test failing? - Stack Overflow

java - Why is this (trivial) unit test failing? - Stack Overflow
This was taken nearly verbatim from IBM's Mastering Grails series.

Ad-Hockery: Hacking on Grails scaffolding templates

Ad-Hockery: Hacking on Grails scaffolding templates
Grails scaffolding is a fantastic mechanism for getting you up and running quickly. I love the fact that you can provide your own implementation of some controller actions or views and scaffolding will just fill in the gaps. That way you can start hand-crafting things when complexity increases past a certain point but still have Grails do a bunch of work for you.

Thursday, June 16, 2011

Groovy - Closures

Groovy - Closures
A Groovy Closure is like a "code block" or a method pointer. It is a piece of code that is defined and then executed at a later point. It has some special properties like implicit variables, support for currying and support for free variables (which we'll see later on). We'll ignore the nitty gritty details for now (see the formal definition if you want those) and look at some simple examples.

Tuesday, June 14, 2011

Domain Modeling for Grails in Eclipse

Domain Modeling for Grails in Eclipse

HiberObjects can generate JPA classes for Grails from UML class diagrams. This results in a combination of UML domain modeling and agile web development; The model is designed in class diagrams, the view is Groovy Server Pages (similar to JSP), and the controllers are Groovy classes.

So why should you use HiberObjects and Java instead of Groovy for the model? The main reason is if you want to use UML class diagrams to model your domain. Or you could import a database into a class model and quickly create an application with Grails. You can also use the domain classes for other Java code, such as GWT. And you get the object oriented unit testing capabilities of HiberObjects.

Groovy - Design Patterns with Groovy

Groovy - Design Patterns with Groovy

Using design patterns with Java is a well-established topic. Design patterns also apply to Groovy:

  • some patterns carry over directly (and can make use of normal Groovy syntax improvements for greater readability)
  • some patterns are no longer required because they are built right into the language or because Groovy supports a better way of achieving the intent of the pattern
  • some patterns that have to be expressed at the design level in other languages can be implemented directly in Groovy (due to the way Groovy can blur the distinction between design and implementation)

Monday, June 13, 2011

Introduce Role Objects

Introduce Role Objects
It is common practice to implement roles such as Employee, Customer, etc. as subclasses of a common role player class such as Person. However, this means that different instances of the role classes are actually different objects with different state and different identity, even if they are meant to represent the same logical entity. The Role Object Pattern (ROP) addresses this problem by representing an object and its roles as a composition of one role player object (called the core) and arbitrarily many role objects.

(ootips) Role Modeling

(ootips) Role Modeling
Problem: How can the concept of "roles" be modeled using objects?

Martin Fowler - Dealing With Roles

Dealing With Roles
People may do many things within a company. You have engineers, salesmen, directors, accoun-
tants, any of which may need different features in the computer systems within your organiza-
tion.
Dealing with these situations is one of the most common situations in modeling. You have a
group of objects which exhibit bunches of common behavior. They don’t all have the same be-
havior, but they may have some common behavior. At first glance it sounds like a classic case
for inheritance, but there are complications. An object might exhibit more than one bunch of be-
haviors, or may take on new bunches during its lifetime. You may have an agent who is also a
customer, you have an accountant who becomes an engineer.
This paper is an analysis patterns paper, hence I’m looking at the alternatives from a conceptual
point of view, rather than an implementation point of view. I’m asking how we represent our
view of the world in our software, and I’m not looking at important implemenation issues such
as performance, distribution, concurrency etc. I’ve provided some code samples, but they are
there to illustrate the conceptual ideas rather than as statements of what the implementation
should look like. The biggest consequence to this is that I’m concentrating much more on inter-
face than on implementation.

Role Object Pattern

Role Object Pattern
Adapt an object to different client's needs through transparently attached role objects, each one representing a role the object has to play in that client's context. The object manages its role set dynamically. By representing roles as individual objects, different contexts are kept separate and system configuration is simplified.

Sunday, June 12, 2011

5. Object Relational Mapping (GORM) 1.3.7

5. Object Relational Mapping (GORM) 1.3.7
Domain classes are core to any business application. They hold state about business processes and hopefully also implement behavior. They are linked together through relationships, either one-to-one or one-to-many.

GORM is Grails' object relational mapping (ORM) implementation. Under the hood it uses Hibernate 3 (an extremely popular and flexible open source ORM solution) but because of the dynamic nature of Groovy, the fact that it supports both static and dynamic typing, and the convention of Grails there is less configuration involved in creating Grails domain classes.

You can also write Grails domain classes in Java. See the section on Hibernate Integration for how to write Grails domain classes in Java but still use dynamic persistent methods.

Practically Groovy: MVC programming with Groovy templates

Practically Groovy: MVC programming with Groovy templates
Views are an integral part of MVC programming, which is itself a ubiquitous component of enterprise application development. In this installment of Practically Groovy, Andrew Glover shows how Groovy's template engine framework can simplify view programming and make your code more maintainable over time.

Wednesday, June 8, 2011

Practically Groovy: MVC programming with Groovy templates

Practically Groovy: MVC programming with Groovy templates
Views are an integral part of MVC programming, which is itself a ubiquitous component of enterprise application development. In this installment of Practically Groovy, Andrew Glover shows how Groovy's template engine framework can simplify view programming and make your code more maintainable over time.

How can I fix Grails error: "No domain class found for name PrivacyOptions. Please try again and enter a valid domain class name" - Stack Overflow

How can I fix Grails error: "No domain class found for name PrivacyOptions. Please try again and enter a valid domain class name" - Stack Overflow

it's not projectname.Class , it must be dirname.classname .

eg: your projectname is Helloworld, the directory is "grails-app/domain/helloworld/User.groovy" . so , the command is "grails generate-all helloworld.User" ,but not "Helloworld.User"

Create Your First Groovy Project - Groovy - Codehaus

Create Your First Groovy Project - Groovy - Codehaus
TUTORIAL OVERVIEW
Task - Create a Groovy project in Eclipse.
Level - Basic. The task is simple if you have created a Java project in Eclipse.
Prerequisites - GroovyEclipse v2.0, Eclipse 3.4.2, 3.5, or 3.5.1.

Grails tooling improvements in SpringSource Tool Suite 2.3.3 M2 | SpringSource Team Blog

Grails tooling improvements in SpringSource Tool Suite 2.3.3 M2 | SpringSource Team Blog
The recently released STS 2.3.3 M2 introduced a series of enhancements to our Grails support for Eclipse. In this article I'll be discussing what you can expect to find if you try it out (grab it here: SpringSource Tool Suite).

Grails - Tutorials

Grails - Tutorials
Below is a list of available tutorials/resources about Grails ordered by category. Please have a look at our Quick Start and the Grails Screencasts to quickly experience the power of the Grails Framework. Besides this, the Developers' Blogs and the Grails Podcast provide additional timely information about the Grails Framework.

Grails & Groovy Tutorials

Grails & Groovy Tutorials
Welcome to the grails tutorials powered by Grails. My idea is that with your help these pages will become home of the tutorial, how to and example links to articles on the web regarding Grails and Groovy. As you find interesting article, just paste link to that article here so the all community of Grails and Groovy practicioners can benefit from it. This way our knowledge will be focused and the Grails and Groovy community will be able to grow even faster.

Grails - STS Integration

Grails - STS Integration
In this tutorial, we will look at installation of the tools and creating/importing projects. The Grails tooling naturally requires Groovy language support. The language support is provided by the Groovy-Eclipse project. Installing the Grails tools in STS will automatically bring in the correct level of Groovy-Eclipse, so you do not need to separately install it.

java - Apache Tomcat Not Showing in Eclipse Server Runtime Environments - Stack Overflow

java - Apache Tomcat Not Showing in Eclipse Server Runtime Environments - Stack Overflow

I had the same problem and I solved it with the following steps

  1. Help > Install New Software...
  2. Select "Eclipse Web Tools Platform Repository (http://download.eclipse.org/webtools/updates)" from the "Work with" drop-down.
  3. Select "Web Tools Platform (WTP)" and "Project Provided Components".

Complete all the installation steps and restart Eclipse. You'll see a bunch of servers when you try to add a server runtime environment.

Easy way to set your Java enviroment in Ubuntu (Petr Chytil's Weblog)

Easy way to set your Java enviroment in Ubuntu (Petr Chytil's Weblog)

Did you know, that there is a really simple way to set your Java environment in Ubuntu, when you have multiple Java packages installed?

Everything you need is to run update-java-alternatives command with correct parameters.

How to set JAVA_HOME environment variable in Ubuntu - the ubuntu guy - Zimbio

How to set JAVA_HOME environment variable in Ubuntu - the ubuntu guy - Zimbio
One way that you can set your JAVA_HOME variable and add to your PATH, is be doing the folowing.

Install sun-java6-jdk on Ubuntu 10.04 (Lucid) « Happy Coding

Install sun-java6-jdk on Ubuntu 10.04 (Lucid) « Happy Coding
I just had trouble to install the Sun Java6 JDK after updating to Ubuntu 10.04. The problem was that the system couldn’t find the package sun-java6-sdk and apt-get gave me the message:
Package sun-java6-jdk is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package sun-java6-jdk has no installation candidate
What I did to solve this problem was to add a new source

Installing Tomcat 6 on Ubuntu - How-To Geek

Installing Tomcat 6 on Ubuntu - How-To Geek
If you are running Ubuntu and want to use the Tomcat servlet container, you should not use the version from the repositories as it just doesn’t work correctly. Instead you’ll need to use the manual installation process that I’m outlining here.

Developing Web applications with Tomcat and Eclipse

Developing Web applications with Tomcat and Eclipse
Using Eclipse as a Web development platform is even easier when you integrate it directly with Apache Tomcat. Learn how to set up Eclipse and Apache Tomcat V5.5 to develop the quintessential Hello World servlet.

Al Hoang : Installing Eclipse Plugins as a normal user on Linux

Al Hoang : Installing Eclipse Plugins as a normal user on Linux

I’m trying to get the hang of Eclipse
and I always seem to find myself getting annoyed with all the documentation
I find for newbies. My goal is the following:

Install an Eclipse plugin under Linux

Sounds simple, right?

Install Sysdeo Eclipse Tomcat Launcher plugin

Software Step 2
Install Sysdeo Eclipse Tomcat Launcher plugin

Using Eclipse as a development environment with Jakarta Tomcat

Using Eclipse as a development environment with Jakarta Tomcat
Using Eclipse as a development environment for Java™ technology is great. Using an Eclipse Tomcat plug-in can help to better organize and integrate your Java and Web development projects. This article will guide you step by step through the installation of Eclipse, Jakarta Tomcat, and an Eclipse Tomcat launcher plug-in that will integrate them.

Welcome -- Gaelyk - a lightweight Groovy toolkit for Google App Engine Java

Welcome -- Gaelyk - a lightweight Groovy toolkit for Google App Engine Java

Gaelyk is a lightweight Groovy toolkit for Google App Engine Java.

  • Gaelyk lets you deploy applications on Google App Engine Java
  • Gaelyk gives you the choice to use Groovy for developing your applications
  • Gaelyk builds upon Groovlets and the Groovy template servlet
  • Gaelyk allows you to cleanly separate your views with Groovy templates and your actions in Groovlets.
  • Gaelyk simplifies the usage of the Google App Engine SDK by providing more concise and more powerful shortcuts when using the datastore, memcache, the blobstore, the images service, the URL fetch service, when sending and receiving emails or Jabber messages, and much more.
  • Gaelyk lets you define friendly REST-ful URLs thanks to its URL routing system
  • Gaelyk provides a simple plugin system for improving code reuse and code sharing
  • Gaelyk is Open Source and is released under the Apache License (ASL 2). Its source code is hosted by Github

Fluently Groovy

Fluently Groovy
This tutorial is for Java™ developers unfamiliar with Groovy, who want a quick and easy introduction to the basics. Get started with Groovy's simplified variation of the Java syntax and learn about essential features like native collections, built-in regular expressions, and closures. Write your first Groovy class, and then see how easily you can use JUnit to test it. You'll walk away from this one-hour tutorial with a fully functioning Groovy development environment and the skills to use it. Best of all, you'll have learned first-hand how to use Groovy and Java code together in your everyday Java application development.

Monday, June 6, 2011

Daring Fireball: Demoted

Daring Fireball: Demoted
Today’s was a jam-packed keynote. Apple announced a lot of news; there is much to talk and think about. But the key line was when Steve Jobs, describing iCloud replacing iTunes as your digital hub, said, “We’re going to demote the PC and the Mac to just be a device.”

Apple WWDC: iOS 5, Lion, iCloud - Slashdot

Apple WWDC: iOS 5, Lion, iCloud - Slashdot
Steve Jobs was on hand today to kick off Apple's WWDC keynote. Lion took the lead, with no surprises except a $29.99 pricetag and a July ship date. iOS is getting a new "Notification Center"; Twitter is being integrated; he announced a split thumbable keyboard for iPads; wireless syncing; and a native IM system for iOS devices, shipping in the Fall. iCloud will be free, syncing apps (Mail, Calendar, Contacts and iWork apps) across devices. Photostream is iCloud for pictures. iTunes iCloud will let you re-download your tracks at last, and iTunes Match will let you match your ripped CDs to Apple's copies.

Sunday, June 5, 2011

Model Two Zero: Running Cloud Foundry on Amazon EC2 (or any Ubuntu server!) and Deploying Using STS

Model Two Zero: Running Cloud Foundry on Amazon EC2 (or any Ubuntu server!) and Deploying Using STS

The idea with Cloud Foundry is that you can run it on any cloud infrastructure - hence the separation of cloudfoundry.org and cloudfoundry.com. The former is the open-source project that is building the infrastructure software, the latter is a commercial offering by VMWare.

So here's what this is about:
  • Running Cloud Foundry on EC2 instead of the out-of-the-box cloud VMWare provide
  • Connecting Spring STS to it
  • Getting a grails app deployed

Grails - STS Integration

Grails - STS Integration
This is a quickstart tutorial for the Eclipse Grails support in SpringSource Tool Suite (STS).

In this tutorial, we will look at installation of the tools and creating/importing projects. The Grails tooling naturally requires Groovy language support. The language support is provided by the Groovy-Eclipse project. Installing the Grails tools in STS will automatically bring in the correct level of Groovy-Eclipse, so you do not need to separately install it.

Grails Development - Tutorial

Grails Development - Tutorial
Grails is a web framework based on Groovy and Java which can be deployed into existing Java web servers, e.g. Tomcat or Jetty .
Grails allows to create quickly web applications; its scaffolding capabilities let you create a new project within a new minutes. Grails is based on the the "convention over configuration" idea which allows the application to auto-wires itself based on naming schemes (instead of using configuration files, e.gl XML files).

Eclipse and Amazon Web Service (AWS)

Eclipse and Amazon Web Service (AWS)
Learn how to use the Amazon Web Services toolkit for Eclipse. This demo shows you how to create a simple Java Web application, hello world, and deploy it to the cloud. Eclipse installed and setup. You will also need to have an Amazon account.

AWS SDK for Java - A Java Library for Amazon S3, Amazon EC2, and more.

AWS SDK for Java - A Java Library for Amazon S3, Amazon EC2, and more.
The AWS SDK for Java provides a Java API for AWS infrastructure services, making it even easier for developers to build applications that tap into the cost-effective, scalable, and reliable AWS cloud. Using the SDK, developers can build solutions for Amazon Simple Storage Service (Amazon S3), Amazon Elastic Compute Cloud (Amazon EC2), Amazon SimpleDB, and more. With the AWS SDK for Java, developers get started in minutes with a single, downloadable package that includes the AWS Java library, code samples, and documentation. Eclipse Java IDE users can get started with the SDK easily using the AWS Toolkit for Eclipse.

Mastering Grails: Build your first Grails application

Mastering Grails: Build your first Grails application
Java™ programmers needn't abandon their favorite language and existing development infrastructure to adopt a modern Web development framework. In the first installment of his new monthly series Mastering Grails, Java expert Scott Davis introduces Grails and demonstrates how to build your first Grails application.

Java development 2.0: Hello Google App Engine

Java development 2.0: Hello Google App Engine
Open source solutions and borrowed infrastructures are changing the character of Java™ development, letting you deliver better software quickly and at a low cost. Andrew Glover, coining the term Java development 2.0 to encapsulate the cumulative force of these phenomena, launches a new series on some of the relevant tools and technologies. This first installment heralds the arrival of Java development 2.0 and explains how you can bring its concepts to fruition quickly with Google's App Engine for Java.

Java development 2.0: You can borrow EC2 too

Java development 2.0: You can borrow EC2 too
In this Java development 2.0 installment, Andrew Glover give you a hands-on introduction to developing for and deploying on the Amazon Elastic Compute Cloud (EC2). Learn how EC2 differs from Google App Engine, and leverage an Eclipse plug-in and the concise Groovy language to get a simple Web application up and running quickly on EC2.

Java development 2.0: Easy EC2

Java development 2.0: Easy EC2
As you know from "Java development 2.0: You can borrow EC2 too," Amazon's Elastic Compute Cloud (EC2) is a generic infrastructure service that hosts virtual machines (of the Linux®, OpenSolaris, or even Windows® persuasion) on which you can run anything you'd like. You can run any Java application — including a Web application that uses Hibernate and Spring, as I'll show you in this article — provided you create or borrow a virtual machine, also known as an Amazon Machine Image (AMI) or instance.

Windows Azure | Microsoft PaaS | Cloud Services | Application Hosting

Windows Azure | Microsoft PaaS | Cloud Services | Application Hosting
Windows Azure and SQL Azure enable you to build, host and scale applications in Microsoft datacenters. They require no up-front expenses, no long term commitment, and enable you to pay only for the resources you use.

How to Run Windows & IIS in the Cloud on Amazon EC2 (in 15 mins) : BillS IIS Blog : The Official Microsoft IIS Site

How to Run Windows & IIS in the Cloud on Amazon EC2 (in 15 mins) : BillS IIS Blog : The Official Microsoft IIS Site
Choices abound for those looking for a place to run Web applications on Windows. The purpose of this blog post is to show a quick walkthrough of how to setup your first Windows computer in the cloud on Amazon EC2.

Using JPA with App Engine - Google App Engine - Google Code

Using JPA with App Engine - Google App Engine - Google Code
Java Persistence API (JPA) is a standard interface for storing objects containing data into a relational database. The standard defines interfaces for annotating Java objects, retrieving objects using queries, and interacting with a database using transactions. An application that uses the JPA interface can work with different databases without using any vendor-specific database code. JPA simplifies porting your application between different database vendors.
The App Engine Java SDK includes an implementation of JPA 1.0 for the App Engine datastore. The implementation is based on DataNucleus Access Platform. JPA presents a standard interface for interacting with relational databases, but the App Engine datastore is not a relational database. As a result, there are features of JPA that the App Engine implementation simply cannot support. We have done our best to call attention to these features wherever possible.

Building a GAE+GWT application using the best practices (Index) « Reminiscential: of or pertaining to remembrance

Building a GAE+GWT application using the best practices (Index) « Reminiscential: of or pertaining to remembrance

Part 1 – Introduction

Part 2 – Project setup and server side wiring

Part 3 – Writing the web service with command pattern

Part 4 – client side wiring

Part 5 – UI coding

GWT Sushi: Jumpstart your GWT Development with JappStart

GWT Sushi: Jumpstart your GWT Development with JappStart

  • Appstats Support
  • Google AJAX Library API (jQuery)
  • Gravatar Integration
  • JRebel Support
  • Local Development Console Support (http://localhost:8080/_ah/admin)
  • Maven Support
    • CSS/JS minification via the yuicompressor-maven-plugin
    • Uses the maven-gae-plugin
  • Remote API/Bulk Loader Support
  • Sitemesh Integration
  • Spring 3
    • JPA support
    • JSON/AJAX integration (Jackson)
    • JSR-303 validation
    • Localization support
  • Spring Security 3
    • Authentication
    • Expression based access control
    • Fully integrated with the App Engine Datastore and Memcache
    • Login/create account functionality with e-mail confirmation
    • Remember Me
    • Support for hierarchical roles
  • Static Error Handler Support
  • Task Queue Support
  • URL Rewrite Integration


Current versions:

  • Goole App Engine SDK for Java 1.4.2
  • jQuery 1.5.0
  • Maven GAE Plugin 0.8.2
  • Spring 3.0.5
  • Spring Security 3.0.5


As you can see it covers a lot of bases so you can get started easily on developing professional Google App Engine applications.  I am examining it so I can also integrate GWT and MVP.  Stay tuned for a demo project coming soon.



Wednesday, June 1, 2011

DataNucleus: GAE/J and JDO/JPA

DataNucleus: GAE/J and JDO/JPA
In April 2009 Google announced AppEngine for Java, providing support for JDO and JPA. Since that time people have had the chance to see what they think of it and identify shortcomings. This has lead to many misconceptions of JDO and JPA (though mainly JDO) due to thinking that what Google provide is a full and true representation of these standards; it isn't. This blog entry attempts to correct some of these misconceptions, and to suggest some areas where Google could remedy the situation. All of the following items would help in providing a true reflection of these persistence standards and aid GAE/J users in having (much more) portable applications.

DataNucleus plugin for Google App Engine - Google Project Hosting

DataNucleus plugin for Google App Engine - Google Project Hosting