For simplicity and security I’ve decided to integrate with the Google Account authentication mechanism that’s built into Google App Engine. This allows anyone with a Google account to login to my application without the need to setup another account. This also gives me access to the user’s valid email in order to send messages and other communication related to the service I provide. So far I have three separate ‘areas’ for interfacing with my service. The first area is comprised of public pages, such as the home page or privacy policy. The next......
Continue Reading
User interface design is every bit as important as the core software that runs on the server. A poorly designed user interface can significantly impact the end result of a web development project. Here are a few ways poor design can hurt a web project. Reduced adoption rate due to confusion about accessing features Underutilization of available features Increased frustration for the user and support burden for development team Poor conversion (sales) rate! User interface is much more than AJAX and color choices It’s important to clarify that when I talk about user......
Continue Reading
I have a large budget for books (but thanks to Amazon it doesn’t have to be as big as it could be). Sure it’s true that most of the information in programming books is online and available for free. There may even be substance to the argument that most books are out of date as soon as they hit the shelf because technology moves so fast. Oh well. I get huge value from books. They save me many hours of time that I might spend scouting around for a snippet here or an......
Continue Reading
I did some investigation into building the RESTful API for the software licensing system using wicket. At first I was encouraged that URL management was so easy (nevermind that really old article I just linked to). Wicket Not Ideal for RESTful APIs In the end I decided that wicket was not a good choice for the RESTful API. The crux came in treating HTTP methods differently. In other words, for a given resource URI, I want to do something different for GET, POST, PUT and DELETE. That’s not one of wicket’s strengths, so......
Continue Reading
I’m starting to build out the RESTful API for the software licensing system. The first api call to implement is this http://mysite/api/sitelicenses/?apikey=KEYVAL That came from the initial design documents and implicitly suggests that there is a difference between the resource and parameters passed in when asking for the resource. This distinction is important and came up today when I was thinking about pagination. As the API is defined currently, the above URI would return all site licenses associated with an apikey. The first thought that came to mind was that the number of......
Continue Reading
In the current series of articles I’ve been talking about development of a system to enable premium wordpress plugins to be protected by licenses. While working on the design and going through a brain storming session yesterday with a colleague I had two small realizations. The first is that from the beginning I have planned to keep the WordPress coupling separate from the main licensing API. In fact, I haven’t planned to include any WordPress specific or shopcart type features in the API. This provides me with some benefits. One is that it......
Continue Reading
For the user interface layer of the licensing system I was interested in using a framework like Wicket. It was a lot of work to setup. The process was made somewhat frustrating by the fact that most of Google’s results are a few years old and deal with older versions. I did finally get it working and here’s the process. Other articles take the default Google App Engine project and modify it to accommodate wicket. I decided to go the other direction and start with the wicket quickstart. This is the process I......
Continue Reading
In the first article in this series, I sketched out some of the basic design ideas for the wordpress plugin licensing system. The next step is to come up with some more concrete details about how the application will work, what information it will manage and what the interfaces will look like when accessing it. I really like using the UML as I flesh out a design. In particular I find the class diagram and activity diagram useful. I frequently make use of stereotypes to extend the meaning of my classes. I’m not......
Continue Reading
How frameworks came to be Engineers have a few potentially conflicting tendencies that can become very pronounced in the software they write. One tendency is that we’re empire builders. In other words, we build, enhance, improve and in other ways expand the scope of our software solutions over time. Not to mention that we want our solution to be accepted, embraced and adored as the best possible solution for the problem we set out to solve. The result of this tendency can be seen in the ever growing, ever more complex frameworks available......
Continue Reading
Having chosen Google App Engine and Java as the target for initial development it’s time to setup a development environment. Google provides a plugin to Eclipse that makes this easy. They do a great job explaining how to setup the environment at this URL: http://code.google.com/appengine/docs/java/tools/eclipse.html Setup problems One hang up I had was an error when first trying to install the plugin in eclipse. It complained about “An error occurred while collecting items to be installed”. Several files came back saying “Unable to read repository” and “Read timed out”. It was possible to......
Continue Reading