Friday, March 31, 2006

Back from vacation

I'm back from vacation and don't know what to do next. I've made a few superficial changes but I haven't been up for anything major yet.

Some ideas from my list:
Edit: OK, I actually implemented the YouTube thing. You can see an embedded movie here. I still haven't resolved the interface stuff, so there is no interface. You have to add a photo and then change the URL to say "movie" instead. Work in progress.

Wednesday, March 08, 2006

AJAX madness plus photos

I got a little carried away with the AJAX stuff today. I added:
I also completely upgraded the photo system. The old way had one photo per place you visited. Now you can have as many photos as you want per place and per day. I also put Flickr thumbnails in a few more places like on your user page and on the front page. And I fixed the Flickr lookup, so you can type in your own tag to search for instead of only using the place name. Pretty fancy now.

Tuesday, March 07, 2006

RTW maps

Maps for round-the-world trips should work now. Woo! It used to screw up the line where you crossed the International Date Line. So it would draw it the long way all around the globe which looked really bad and was inaccurate. Now the line breaks properly at the IDL. (Well... almost properly. I kind of cheated on the actual IDL intercept math but it's close enough.)

Example RTW Map

Monday, March 06, 2006

Not a big fan of IE

I knew from the start that I had a few display bugs in IE. I use a lot of div's to format things and sometimes that just gets a little too complicated for this old browser to handle. But it's still functional so I'm not putting a lot of effort into IE-only CSS hacks.

But I just now realized that the Google maps were completely broken in IE. I swear they used to work, but not today. They loaded, and then it redirected the browser to a page one level up from the actual map. That didn't exist, so IE showed a page error screen. Very not cool. After some research, it turns out that IE needs a mysterious little directive on the javascript tag, defer="defer". Go figure. While I was at it, I also fixed the lines for the trip map in IE. (But I knew that part never worked.)

So, I am now slightly more welcoming to IE users. Of which there are a depressing amount.

System notices

This is the kind of feature that matters to only one person, me. In response to my earlier screw-up, I added system notices to the site. They show up on the front page, there is a list of past ones, and they are shown according to start and end dates. It's a simple thing to add (in Rails at least) but it really adds to the completeness of the system.

D'oh

Apparently running the unit test suite in Rails deletes all your data as a first step. Surprise! It makes sense in retrospect, but most stupid mistakes do. Guess it's a chance to test those backups.

Update: Well, I lost about 6 hours of updates but the databse backup did work fine. So that's nice.

Sunday, March 05, 2006

RSS

In my continuing attempt to implement every whiz-bang feature that has ever been invented, travList now supports per-user RSS feeds, linked off the user pages. It only includes visited places now, because I wasn't quite up to combining different types of objects (trips, notes, and places) into one feed. But I still think it's quite useful.

Example feed

Stupid dead site

This drives me nuts. Every so often when I restart Ruby on Rails (running on FastCGI), it just says "screw you". I go to reload a page and it just hangs hard. No response at all. I look at the process list and it isn't even starting new processes to handle the request. So there is nothing to even debug on the Rails side. This goes on for exactly 10 minutes, and then it starts working. It even handles all the queued requests. Very frustrating.

I'm sure restarting Apache would fix it but I'm fairly sure my hosting company wouldn't go for that.

Edit: And I forgot to mention the even more annoying part. Sometimes when it comes back up, it comes up half-broken. You get errors that are normally impossible, that would only happen if the data structures were corrupted. They look exactly like real errors but there's no point to debugging them, because if you restart the process, they go away. Very unpleasant.

Saturday, March 04, 2006

Remember me

I finally added something I've been meaning to add for a long time: persistent logins. If you check the "Remember me?" checkbox when you're logging in, you never have to log in again from that computer. Since most people never change userids, this is a real benefit. Pain-in-the-neck to code and test though, since there are lots of cases and you have to shut the browser down to test each one.

For anyone else who wants to do this in Ruby on Rails, I found these instructions invaluable. He just modifies the standard authentication module which was exactly what I wanted. The only problem was that his method only allows you to be logged on from one computer at a time. Since I use sites from work and home constantly, that was no good. So I used the concepts described in this best-practices document to fix that.

ooo, pretty

I finally got around to taking the huge stylesheet and splitting it into layout vs. colors. You know what that means...

Alternate color schemes!

(The only tweak left is to change the logo to be a transparent PNG that shows through the color, so that it coordinates. The only minor obstacle with that is that I never reinstalled Photoshop on this machine. And it's kind of essential for this particular job.)

Friday, March 03, 2006

New stuff

I added some new features today:
  1. Day notes. The original design was that you went to a lot of different places, and you had a single review and/or note for each. It turns out that it is much more common to go to one place, stay for a couple of days, and keep distinct notes for each day. This was a pain to do in the original design since you had to manually create a copy of the place for each day. So I added "day notes", which are notes that are tied to a place and a specific day. I'm pretty pleased with how well it came out.
  2. Overall map. (crappy name) This is just a map of the world with a pushpin for every place you've been. It was really simple to code and I don't know why I didn't think of it before since it's such a classic in the real world. Can be slow for frequent travelers though.
  3. Lat/long setting via Google Maps. If the place name lookup fails, there is no lat/long data and no pretty maps. Boo. The old way to fix this was to lookup the location some other way and then type it in. This was a pain. The new way is that there is an embedded Google map on that page. If you click on somewhere, it fills in the lat/long for you. Much easier.
  4. Local names. This is still in progress, but the basics are there. Each place will have a primary English name (like Florence) and an optional secondary local language name (like Firenze). The code is there to enter and display it but not much else. The plan is that you will be able to search for either, and that there will be a preference for whether you always want to display local names.
  5. Backups. I was a bit concerned about my backups, or lack thereof. Especially the database, since you can't just zip up the files for that. I finally did some research and found that Dreamhost does DB and filesystem backups frequently, and end-users have easy access to restoring them. So I'm 90% reassured now. Local backups should take care of the other 10%.

Thursday, March 02, 2006

First post

This is the development blog for travList, a travel tracking site that I launched a couple of days ago. BTW, I've actually had the site running since the holidays but I only used it for myself and didn't put up any links to it. So you might see references like "finally I did this thing" which don't make sense for a brand new site. Anyways, I'll talk about new features and other such concerns.

This blog was inspired by the development blog for LibraryThing, which I thought was really a great idea.

This page is powered by Blogger. Isn't yours?