John Topley’s Weblog

Web Applications

Announcing Manifesto

I’ve just released my first ever RubyGem. It’s a simple gem named Manifesto that dynamically generates an HTML 5 cache manifest for offline application caching. I got the idea whilst developing my Truth Tables Sinatra micro web application. It returns a list of files within the specified directory and sub-directories.

Micro Web Applications For Fun And Learning

As I mentioned previously, I’ve been having a lot of fun lately writing micro web applications using the Sinatra framework. I’ve found myself thinking of a simple idea for an application, developing it fairly quickly using Sinatra and some technologies or techniques that are new to me and then getting it out there running for free on Heroku. I’ve developed two other applications this way since blogging about my bespoke URL shortener UUID Waster and Truth Tables.

Create A Sitemap For Your Rails Application

The Sitemap protocol was introduced by Google in 2005, but is now supported by all of the major search engines. Unrelated to a traditional website sitemap navigation page, it defines an XML schema for listing the URLs within a site, including metadata such as when a URL as last updated, therefore allowing search engines to crawl the site more intelligently.

Write A Web App In Nine Lines Of Code With Sinatra

One of the trends we've seen on the Web this year has been the proliferation of URL shortening services, to the extent that TinyURL is no longer the default choice. This growth has been driven by the popularity of Twitter with its enforced 140 character message limit and by seamless integration with mobile device Twitter clients such as Tweetie. However, questions over the longevity of these services and the permanence of the links they serve has also led to a new trend of hosting your own. As it seems to be all the rage I thought it would be a fun little exercise to write one for this blog using Sinatra.

Back Up Your Rails Application To The Cloud

Now that my new blog is live I needed a way to take daily back-ups of the MySQL database to a remote server for safekeeping. Writing a custom Rake task is perfect for this purpose.

Putting My Blog On Rails

This is a post that I've been waiting to write for a long time. I have spent what at times has seemed like forever developing a new blog application in my spare time to run my website on.

Database IDs Have No Place In URIs

I’ve been beta testing Jeff Atwood’s and Joel Spolsky’s latest venture, Stack Overflow. In case you haven’t heard, Stack Overflow is a new site where programmers can go to get their programming questions answered by other programmers.

AssetsGraphed Hits 200 Days Uptime

I’m pleased to report that my AssetsGraphed Ruby on Rails application has been running continuously for over two hundred days now, as the screenshot below taken from my installation of monit shows.

FogBugz World Tour

I went to a great gig in London last Friday with my good buddy John Conners. In a bizarre twist on the traditional format for these things, it was actually a presentation on project management software for software teams, rather than a music gig.

Improved Localisation In AssetsGraphed

As part of my process of continuous and sometimes arduous improvement of my AssetsGraphed web application, I’ve recently added slightly better localisation support.

One Small Step…

I just got a skeletal Ruby on Rails application running on a Java Virtual Machine using JRuby.

Great Flickr Feature

I just noticed something that Flickr got exactly right—you don’t have to give photos a title.

Installing Mint On A Rails Machine

I recently added Shaun Inman’s superb Mint statistics package to my AssetGraphed Rails Machine installation. As the installation wasn’t particularly straightforward, I thought I’d write this little guide for others who may be struggling.

AssetsGraphed At The Rails Way

You may recall that a while ago I mentioned The Rails Way, which is a site where Rails core team members Jamis Buck and Michael Koziarski review code submissions and illustrate Rails best practices. Well, the big news is that they’ve started reviewing my code!

AssetsGraphed On Rails Machine

I’ve just finished moving AssetsGraphed over to Rails Machine. The application was originally hosted by TextDrive, on the same server as this site. I don’t have any complaints about TextDrive but it was clear that I needed something more substantial for AssetsGraphed.

Introducing AssetsGraphed

I’ve just put my first Ruby on Rails application online. It’s called AssetsGraphed. It’s a free asset tracking application that also graphs your data.

How I Learned To Love Web Apps

I’ve been thinking about Web applications lately and in a U-turn worthy of an unpopular politician have revised my opinion of them. Regular readers may recall that previously I’ve bemoaned the poor user experience offered by Web apps in comparison to their desktop cousins.

Best Of Breed Web 2.0 App

I dislike using the term “Web 2.0″ because no-one really knows what it means, but nonetheless it has come to represent a certain type of Web application.

Pimping Carson Systems: Bare Naked App

Sorry to pimp Carson Systems again, but they’ve just launched a new site that details the entire process of bringing their second Web application—Amigo—to market.

Qjump Train Wreck UI

I booked some train tickets the other day using Qjump and was shocked by the colour choices in their user interface.

Get Your Vits

Carson Systems have just launched Vitamin, which is billed as “a resource for Web designers, developers and entrepreneurs”. I’ve just had a quick look around the site and it looks like it’s going to be essential reading if you’re at all interested in Web design or the whole Web 2.0 thing (whatever that is!)

Apache Ant De-Mystified

SitePoint have published what is the first of hopefully many articles that I’ll be writing for them. Apache Ant De-Mystified is a brief prelude to a revised version of the Jakarta Struts De-Mystified series, the first four parts of which have already been on this site.

Six Degrees Of Separation

I try to avoid writing about things that I’ve stumbled across whilst browsing—preferring instead to concentrate on creating my own content—but via a six degrees of separation-like process, I’ve come across something so remarkable that I just have to tell you about it.

Jakarta Struts Demystified On Tomcat

I’ve been working on modifying the Web Forum application so that it runs on the open-source Jakarta Tomcat web container, instead of the proprietary Oracle OC4J application server.

Jakarta Struts Demystified Part 4

Last time we wrote most of the JSP to display the list of topics and I introduced some of the Struts custom tags for looking up message resources, conditional processing and collection iteration. Without further delay, let’s write the code that makes each topic subject a hyperlink.

Jakarta Struts Demystified Part 3

I’ve decided to make a couple of changes to this series. First off, I’ve had requests to make the full source code for the Web Forum application available for download. Initially I didn’t want to do this because I only wanted the relevant code to be associated with each installment. I’ve changed my mind because it’s going to save me a lot of time if I don’t have to strip out code every time I write an article. Secondly, I’ve decided to split the series up into much shorter, bite-size chunks.

Jakarta Struts Demystified Part 2

Last time I introduced this series of articles and the Web Forum application, and I explained what would and would not be covered. This time I'm going to cover the data and business object layers, and we'll roll our sleeves up and cut some code.

Jakarta Struts Demystified Part 1

Just over a year ago I started to learn how to use the Jakarta Struts J2EE web application framework. During this journey it became apparent to me that there were some aspects of Struts that I found confusing at first, and that many other developers were going through the same difficulties. This series of articles is an attempt to address this problem.

Debugging Using DTDs

Yesterday I spent more time than I would have liked trying to track down a problem with a custom JSP tag library that I was developing. I'd added some attributes to the TLD file and packaged the custom tag as a JAR file ready for use by my test web application.

Open Source Treasure

One of the things that has struck me whilst learning J2EE is the fact that there's a symbiotic relationship between J2EE and the world of open-source software. There's a bewildering choice of open-source software available to the enterprise Java developer, encompassing everything from application servers to string libraries and anything you can think of in-between.

Back Button Blues

“You should never go back” they said, and they were right. They probably weren't thinking about the problems of web application development when they said it though.

Tag It

My development efforts were halted today by a frustrating but interesting few hours spent trying to track down and fix a bug in the UI for the Java framework we're developing.


There's been some discussion recently about Mailinator, a web application that provides instant, disposable e-mail addresses. Apart from being struck by what a brilliantly simple and useful idea this is (and wondering why I didn't think of it!), I was also interested to notice that Mailinator is a Jakarta Struts application.


  • Jan
  • Feb
  • Mar
  • Apr
  • May
  • Jun
  • Jul
  • Aug
  • Sep
  • Oct
  • Nov
  • Dec
  • 2019
  • 2018
  • 2017
  • 2016
  • 2015
  • 2014

More Archives

Sign In