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:
Some ideas from my list:
- Improve the calendar by having little pop-up windows with more details, when you click on dates. Like Google Maps when you click a marker.
- Allow you to reorder places on a day. This is complicated UI-wise and complicated behind-the-scenes (since places may span multiple days.) But it is needed.
- More graphic doodads. I like icons.
- Alternate trip views. A calendar view might be fun.
- Tags. I don't know if they have a point, but they might be useful to some.
- YouTube integration. It's very simple to embed the movies and it would work just like the Flickr stuff. But 99% of people wouldn't use it and I don't want to clutter up the interface anymore. Very torn.
Wednesday, March 08, 2006
AJAX madness plus photos
I got a little carried away with the AJAX stuff today. I added:
- Inline creation of notes.
- Inline deletion of notes and photos.
- Clickable instant star ratings, just like every other site has.
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
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.
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.
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
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.
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.
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.)
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:
- 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.
- 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.
- 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.
- 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.
- 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 blog was inspired by the development blog for LibraryThing, which I thought was really a great idea.