Thursday, August 31, 2006

The Atrium

I've previously talked about a military base (wikipedia) near my parents' house is closing.

Today, I went to the Portland Press Herald site and saw a story I hadn't expected: Brunswick hotel closing before Navy base does. The Atrium is a hotel near where I grew up, across the street from the base. We used to go there for Chinese food when my grandparents were at their summer cottage.

Over the past 10 years, the hotel has become more run-down and their clientele has become primarily military. Now, the owners can't stay in business.

It's a bellweather of things to come. I'm curious to see what Brunswick will look like after 2011, when the base is officially destaffed.

Friday, August 25, 2006

Misspelled

There are a few words that really bother me when misspelled. For example, I cringe when I see 'definatly'. I must have annoyed a few people before I learned that ridiculous is spelled 'ri' not 're'. The whole it's/its, your/you're, and their/they're/there thing makes my skin crawl when I read the wrong one.

What are the misspellings that make you cringe?

Thursday, August 24, 2006

Outsmarted

I tried to get really good tickets to the Dave Matthews Band show at Shoreline Amphitheatre by joining up for the DMB fanclub and buying the tickets in March.

Well, I'm in row S of section 200 (seating chart), which is one of the back seating areas before the grass seating.

Fan club tickets are based on seniority (so I'm a new member, I'll be at the back of the fan clubbers) but I'm guessing some people who bought through TicketMaster will be sitting ahead of me.

I had pretty far back seats in North Carolina and still had a great time, so it should still be a great show. So sometimes, ticket sellers outsmart me!

Monday, August 21, 2006

The first twinge

I smelled the first twinge of autumn in the air this morning, faint but detectible.
In my family, the first hints of autumn always coincide with the first discussions of the ski season.

Ways in which the ski season's ramping up:
* My skiing magazines (Ski and Powder) have started to arrive for the season.
* My family is already talking about a trip to Mammoth Mountain for January.
* I'm thinking about a $399 season pass to Alpine Meadows.
* My oldest sister is coming to town in early December, and we're talking about going skiing.
* I've ordered a Camelbak Scorpion, with a built in insulated tube so the mouthpiece doesn't freeze!
* I've ordered new ski socks, pants, gloves, and a hat. (Hey Carolyn, want your gloves back?)
* Every member of my family has already mentioned the ski season to me!

So I know that ski season is at least 3 months away, but the first scent of fall air reminds me of the snow.

Unlike parents, I mourn the start of the school year

I bike to work on average 2-3 times a week. It's 6 miles, it's safe, I ride in bike lanes for most of the time. All in all, about the perfect ride to work.

Well, today was the start of school in Palo Alto.

I pass by 2 schools on the way to work. I also live in an area where tons of kids bike to school or parents drive the kids in. This makes for lots of fun, as I pass by the schools during peak drop-off time. Bike lanes become temporary parking lanes. Parents cut off bikers to pull into bike lanes, having seen the bikers. It makes my otherwise tranquil ride not so tranquil and a few minutes longer.

So, Palo Alto parents, if your child goes to Addison Elementary School or Duveneck Elementary School, I beseech you, look for bikers!

Monday, August 14, 2006

A veritable crapstorm of Spam

The past few days have seemed to be amazingly bad for Spam. Anyone else seeing this? I'm getting a metric crapload on all my addresses. Sad.

The Stehlik Fund

If you went to the Carnegie Mellon School of Computer Science and find yourself with some extra money, I encourage you to donate some of that to Mark Stehlik's discretionary spending fund aka the Stehlik Fund.

Sunday, August 13, 2006

National parks visited

I never knew some places were national parks, I swore the only national park I'd been to was The Grand Canyon, and I'd driven around Acadia. So, with no further ado, the national parks (and recreation areas, and monuments, whatever is listed at the national parks listing) I've visited.

Acadia
Cape Cod National Seashore
Fire Island National Seashore
Golden Gate Recreation Area/Alcatraz/Presidio of San Francisco/San Francisco Maritime
Grand Canyon
Lake Mead (at least Hoover Dam)
Minute Man National Historical Park
National Mall/Washington Monument
Saguaro National Park (I believe... it's been awhile)
Statue of Liberty
Yosemite

I want to go to Devils Postpile when I'm next in Mammoth. Only problem, it's only open from mid June to mid October.

Monday, August 07, 2006

Bryan!

I'd like to point out my friend Bryan got a post on the Google Blog.

Friday, August 04, 2006

wOOt

Does anyone else think that it's cute that Woot advertises on Adwords for Goog?


Tuesday, August 01, 2006

Password-storage-busting

Firefox and Internet Explorer store passwords if you want them to. I'm sure other browsers do too, but the big two do.

However, there are times you don't want people auto logged in - sometimes it's unwise. You want to prevent this. (Nevermind that help desk bans password storage like this, that doesn't matter when it's not followed)

So, how do you fix this, with Struts + JSP + JSTL, in a cross platform way?

Let's explore the options:
1. Turn autocomplete off. This is a non-standard (non html-4.01) attribute. Struts doesn't want to pass it through - it's not XHTML. So I can't just do:
<html:form autocomplete="off">

2. Ok, let's try Javascript. Let's say
form.password.value = "";
This legitimately blanks the password field on load - however, when the user's cursor enters the password field, it pulls the password from the browser and automatically enters it for the user.

3. Howabout trying
<input type="password" autocomplete="off">
This is supposed to do the trick. It, upon my testing, does nothing about preventing password storage in Firefox 1.5.

4. Now how about the option I liked the best: Having the following in your jsp:
<jsp:useBean id="now" class="java.util.Date" scope="request"/>
<c:set var="nowInt" value="${now.time}" scope="page"/>
<input type="text" name="username/">
<input type="password" name="password<c:out value="${nowInt}"/>"/>
<input type="hidden" name="salt" value="<c:out value="${nowInt}"/>">

On the backend, you do:

String salt = (String) PropertyUtils.getSimpleProperty("salt");
String username = (String) PropertyUtils.getSimpleProperty("username");
String password = (String) PropertyUtils.getSimpleProperty("password" + salt);

Unfortunately, this doesn't work. strut's config doesn't allow a dynamically named form element name. It works on the frontend, no password is ever stored, across any browser. Close, but not working on the backend.

4a. The final solution works! We use the same frontend from 4, and we ignore Struts to get what we want.

String salt = (String) PropertyUtils.getSimpleProperty("salt");
String username = (String) PropertyUtils.getSimpleProperty("username");
String password = (String) request.getProperty("password" + salt);
verify(username, password);


Basically, Struts sometimes is useful. It makes everything we do regular. But sometimes it gets in my way. However, this is the solution I liked in the first place, it just took beating struts into submission.