Tapestry 5 Links

I’ve been getting back into Tapestry and wanted to compile a list of the links that have been useful to me.

Mailing Lists

Wooki

Wooki is a project written in Tapestry that lets you collaboratively create online books. The full source is available and it makes for a great reference to see how how things are were setup and configured. The authors have also created some modules for installing tapestry applications, managing database migrations and more. Spread The Source is the blog associated with the project and offers Tapestry code and news.

Tapestry Hotel Booking

The authors of wooki are working on a reference application using Tapestry that will recreate the Seam reference application. They are also writing an online book detailing how it was created. The app will be a hotel booking program and the code is available.

Component Demos

  • Tapestry5Demo
  • Jumpstart – Demonstrates how to do various things and also can be used to “jumpstart” a Tapestry project by providing a working app with basic user management and security.
  • Appspot Component Test – A Google App Engine deployed version of the test app1 that is part of Tapestry core.

Startup Apps

These are some applications that make it easier to get started.  They help set everything up for you and sometimes give you basic user management or security.

  • Jumpstart – As previously mentioned.
  • AppFuse – Lets you create a basic web application by choosing between a number of different web frameworks.

Modules and Components for Tapestry

Blogs

Books

  • Tapestry 5: Building Web Applications – Nice step-by-step guide, but is geared for Tapestry 5.0 and there have been a lot of improvements.  Still well worth reading.
  • Tapestry 5 – This book is in German, but it is being translated and should be part of Mannings Early Access Program very soon.

Stuxnet Worm in Iran

Iran has a problem. The computer systems that are meant to run their nuclear power plant are getting infected with the Stuxnet worm. So far, it doesn’t seem to be causing much damage other than just spreading. The worm seems to specifically target Siemens control systems that run on Microsoft Windows

Generally I’d expect that control systems designed to run a nuclear powerplant would be running on something other than Windows. I’m not trying to bash Windows here–it is just designed to be a very general operating system and as a result has all kinds of capabilities that aren’t needed for powerplant operation. If I was putting in a powerplant control system I think I’d want to use an operating system that had been specifically hardened for security.

Anyway, the Wall Street Journal mentions a number of countries that might have been able to launch an attack like this against Iran and concludes that it is unlikely the US is behind the worm simply because the results are likely to be so unpredictable. The further mention Israel and the U.K. as potential suspects, but suggest that Germany, Russia and France would actually have the capabilities to create something like this.

Given the very low barrier to entry when it comes to launching a worm, it seems like pretty much any kid hacker could be behind something like this. The only thing that makes it seem like it might not be a kid is the fact that it targets a control system that seems unlikely to be something a kid would want to target.

I think most governments would see a big problem with trying to infect a nuclear control system–particularly with a worm where you might lose control of it one way or another and where modifications to it might make it do something very different than what was intended.

The US once considered launching a worm to attach Iraq’s financial systems, but decided it was too risky since it was impossible to determine what the outcome would be. Causing mayhem with a financial computers would likely create a huge set of problems, but it seems benign compared to messing with nuclear controls.

Synergy for Multiple Computers

I am currently using two computers on my desk. One is my mac laptop hooked to a 30 inch display and the other is an Ubuntu machine hooked into a 24 inch display. In the past I’ve used a KVM that let me put everything on a single monitor and switch between machines. However, it is often helpful to have multiple monitors so you can see what the other computer is doing before switching to it.

This can be done simply by setting up separate systems and using multiple keyboards, mice and monitors. However, the keyboards and mice are a bit redundant, take up a lot of desk space and tend to make things very confusing.

Synergy is a program that will allow you to share your keyboard and mouse between multiple computers. You configure the server (the computer where the keyboard and mouse are physically attached) to know which screen is on which side of your main monitor. Then when you move your mouse off of one computer screen, it appears on the other.

So far, this seems to be working very well and lets you treat both computers as if they are one big desktop.

At first, I had problems getting the Ubuntu desktop to launch Synergy automatically when it started. There were some instructions on the web for modifying a bunch of system files, but it didn’t seem to work. What did eventually work was to go to:

System > Preferences > Startup Applications

and adding a new startup program with the command:

synergyc --name desktop laptop-name.local

desktop is the name that the ubuntu desktop is refered to in the config file on the synergy server (my laptop). laptop-name.local is the dns name that will allow the ubuntu client to find the Synergy server running on my laptop.

I also set the Ubuntu desktop to automatically log me in. Otherwise, I’d have to have a keyboard and mouse hooked up (or use VNC) just to get to the point that the startup application would run and launch t

On Demand Computing

I have limited bandwidth at my house. I’ve been experimenting using cloud computing when I need a faster connection to the internet. This week I’ve been using RackSpace’s Cloud infrastructure to bring up Windows based machines, connect to them using RDP and move files around. For example, I needed to download a 600Mb ISO and then use it to update a VMWare server. The Windows machine I brought up allowed me to do this work quickly and on a much higher speed connection than anything I could possibly get at my house. The cost was about $0.16 for two hours worth of work.

OpenBTS

OpenBTS is software will let a standard GSM phone connect and place outgoing calls over Asterisk (an open source voip PBX). They set it up at Burning Man and people were able to place outgoing phone calls. I think there might be a way to use this in your house so you can place outgoing calls without incurring minutes from your cell phone provider. Their might be a problem with the spectrum license, but if it were low power enough, I think it would probably be legal because there are products like the Air Rave that will do this already.

OpenBTS is being used on the small island of Niue. With less than 2,000 residents, cellular companies aren’t interested in putting in service so they are doing it themselves. OpenBTS is also looking for ways to deploy to rural areas. Their goal is to make it possible to provide cell phone service for around $1 per phone per month.