I’m re-examining the state of web-frameworks for Java at the moment, with a particular focus on support for Ajax and JSR168 portlets. It’s interesting to see the impact that Ruby on Rails has already had in this space. For example, several Java frameworks have started to favour convention over configuration, even if sporadically. Matt Raible has created a summary document, Java Web Frameworks Sweet Spots, of the current state of Java web frameworks, formed out of a series of short Q&A sessions with principal developers from 11 frameworks.
community.java.net - Portlet - this is a good collection of articles about developing with the JSR168 portlet specification. Portlet Tutorial - WebWork, Eclipse and JBOSS - I’ve used Opensymphony components in the past and been really happy with them - not looked at WebWork yet, but this might be just what I need at the moment This was previously published at http://blog.sockdrawer.org and was retrieved from the Internet Archive.
Having just purchased Getting Real from 37 Signals, I was interested to read David Heinemeier Hansson’s description of its production & publication processes in Shaking up tech publishing. David makes a number of challenges to the tech-book publishing ‘establishment’, but what makes this post really interesting is that Tim O’Reilly is one of the people who comments - the exchanges between author and commenter are fascinating and, importantly, good humoured. Really recommended.
Interested in writing a Head First book? The invitation from Head First Labs is appealing - and I can’t remember having seen anything quite like it before. There’s an aphorism that everyone has one good novel inside of them - wonder if this is true for technology guides as well….? This was previously published at http://blog.sockdrawer.org and was retrieved from the Internet Archive.
Joe Gregorio lays out a simple process for designing a REST application. I’ve been doing a lot of this kind of design and development lately, but I still found that this piece clarified my thinking. In a nutshell, Joe’s process is: To build a good REST service you need to answer the following questions: What are the URIs? What’s the format? What methods are supported at each URI?
Mikey Sklar in Electric Clothing: DIY RFID human implants are on the rise. I have found over sixteen instances of midnight engineers implanting RFID tags in their hands. Lessons in how to make yourself machine-readable. The DIY surgery aspect of this is more disturbing than the cyborg connotations. This was previously published at http://blog.sockdrawer.org and was retrieved from the Internet Archive.
Scott Golder and Bernardo A. Huberman of HP Labs have written a paper called The Structure of Collaborative Tagging Systems based on research done primarily with data from del.icio.us. They identify seven kinds of tags: Identifying What (or Who) it is About. Overwhelmingly, tags identify the topics of bookmarked items. These items include common nouns of many levels of specificity, as well as many proper nouns, in the case of content discussing people or organizations.
An IBM white paper proposes that the next generation of what we currently know and love as the Student Record System should evolve into an open-source Student Services System: The name, Student Services System, reflects the evolution from a records system to an information system to one that is designed around the concept of services. The Student Services System will be comprised of two major components: first, a Student Information System (SIS) with a complete set of integrated business modules (e.
I remember when Java applets were going to revolutionise the web. Although the Java applet has cropped up in all kinds of web-applications over the years, it has never really become ubiquitous in the way that, say, Flash has. As a web-application developer, working mostly in Java, I have not developed an applet-based solution for years. Currently, I’m more excited by the possibilities afforded by AJAX. Both Flash and Java applets have been part of the evolutionary process which seems to head towards the Rich Internet Application (RIA).
I’ve got to do another presentation soon, and I’ve been reading Guy Kawasaki, venture capitalist, on the 10/20/30 Rule of PowerPoint. Although I won’t be pitching a business idea for investment, I think the rule of thumb is sound: …presentation should have ten slides, last no more than twenty minutes, and contain no font smaller than thirty points. I think the issue of font size is the most important - so many presentations I have seen have had paragraphs of text on each slide.
I’ve given up on Typo - too many bugs, too little documentation, too little peer-support. I’m just too busy to struggle with my blogging tool anymore - I really just want something that works - hence the migration to Wordpress. I do really like the design of Typo though - I thought the admin interface, bugs notwithstanding, was really good, and I like the caching arrangements. I wouldn’t preclude going back to Typo at some point in the future, and it has whetted my appetite for Ruby on Rails generally….
Martin Fowler on sniffing out bad code: A code smell is a surface indication that usually corresponds to a deeper problem in the system. The term was first coined by Kent Beck while helping me with my Refactoring book. The quick definition above contains a couple of subtle points. Firstly a smell is by definition something that’s quick to spot - or sniffable as I’ve recently put it. I especially like the “smell of the week” teaching suggestion.
An interesting post entitled Creators, Synthesizers, and Consumers, from Bradley Horowitz of Yahoo, with a nicely expressive graphic: His central point, that: ...social software sites don’t require 100% active participation to generate great value. is not necessarily so original, but he makes good points about the “barriers to entry” faced by consumers wanting to become synthesizers or more active participants. He also makes the point that these barriers are not necessarily entirely bad.
An amusing post, Prejudice, Beautiful Prejudice, by Ben Goldacre from his Badscience column in The Guardian newspaper, where he attempts some statistical analysis of the data captured at Am I Hot or Not?. I especially like: ...my experimental aspirations were torpedoed when I discovered that the attractiveness scores are blanked out when you search by keyword. I have no idea why, but this sort of problem often occurs when you try to crowbar population datasets into purposes for which they were not originally devised.
Well, I've given Rails the once over, and I'm both really impressed with it and very frustrated by it at the same time. The Rails framework really does deliver in so many areas, making 80% of the usual web-application development tasks almost trivial - I especially like the skeleton view components. And while I'm very much a newbie, I'm starting to really appreciate the power of the Ruby language. I already have some development ideas which might be ideally realised with Rails.
Jon Rowett has blogged about LEGO Digital Designer which looks really cool, especially if you ever played with LEGO (just about everyone) or read Douglas Coupland's Microserfs. As I have a two year old son, who is at an age where I can begin to introduce him to the delights of building stuff with plastic bricks, I will have to download LEGO Digital Designer immediately and evaluate it's usefulness as a design tool.
I've been reading quite a bit about, and from, the Carson Workshops The Future of Webapps conference. Helpfully (and impressively) Larsz, who attended the conference, has put together some mindmaps of the presentations. I was particularly struck by Tom Coates's presentation, and especially this slide: I'm currently collaborating on some development work for JISC on the XCRI project - I'm pleased to find I think we can check off many of Tom's bullet points already.
I'm experimenting with a couple of components provided by the open-source initiative at opensymphony.com. I'm particularly pleased with the caching solution they provide called OSCache: this allows a developer to layer a caching structure over their servlet/JSP Java web-application. For general caching at the URL level (i.e. for caching all pages which match defined URL patterns), a Filter is provided. Using the filter allows caching to be applied to the web app without touching the application code at all - it just needs the necessary jar file to be included on the application's classpath and a simple entry to be added to the web.
If there's one area where you would expect strong standards to emerge, this is it. Bibliographic data typically needs to be structured, searchable, shareable etc. Strangely, however, this domain seems to have lagged behind in terms of informational and technical standards. As Bruce D'Arcus and John J. Lee put it: For scholars and researchers, among the most essential metadata is bibliographic. Being able to reliably store, find, use and communicate bibliographic data is a basic need of academic research.
One useful feature of the later Java Servlet specifications is support for filters. Essentially, a filter can be defined declaratively in a J2EE web application descriptor to intercept responses from the application to the client according to URL patterns. The filter can then do some work on the response, before allowing it to continue. A really useful example of this, which I have just started using in just about all of my J2EE webapps, is the trim filter.