My initial perception of wicket panels was that they were like includes. This naturally lends itself to header, footer and style content that will be the same throughout a web application and avoids duplicating code. It seems wicket panels are more widely used than I first expected. For example, I keep seeing examples of a very lightweight page where panels represent the majority of the content too. This is a more segmented approach than I have seen in the past, and I can see some benefits and drawbacks to it. Based on other......
Continue Reading
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