September 2007

Album Cover: Pretty Hate Machine

"If I was twice the man I could be, I'd still be half of what you need."
NIN / Ringfinger

My Wikipedia Claim to Fame

September 30, 2007 1:41 AM

My Wikipedia claim to fame? The Internet Explorer box model:

Another argument, given by Bernie Zimmermann in support of the Internet Explorer box model, is its closeness to the definition of cell dimensions and padding in the HTML table model, as defined by the W3C and implemented in most browsers.

The article cites a post of mine from way back in the day: Box Model Enlightenment.

Elsewhere | Post Comments | View Comments (3) | Permalink

My First Experience with MKV

September 29, 2007 12:42 AM

We all know .mp3 and .avi, but have you heard of .mkv?

I checked Mininova this morning to find a torrent of the first episode of the brand new (and final?) season of Smallville. To my surprise, one of the search results had "720p HDTV" in the title, so I decided to download it. It was a little over a gigabyte in size (compared to roughly 350 megabytes for most normal episode torrents), so I let the download sit all day, and it was finished by the time I got home from work.

When I tried to play the file, though, I realized that it had an .mkv extension that I had not encountered before. It didn't take long to find AfterDawn.com's guide to .mkv files, which explained that .mkv files are "Matroska files" and pointed me to the Combined Community Codec Pack, a pack of media codecs that would allow me to watch .mkv files in Windows Media Player.

After installing the codec pack, the .mkv file was immediately associated with WMP and I was able to play it. What I saw was what I expected and hoped for: the first episode of the new season of Smallville in glorious, crystal clear HD.

Long live BitTorrent and long live technology!

Computers | Post Comments | View Comments (0) | Permalink

Did She Just Do What I Think She Did?

September 28, 2007 6:32 PM

This goal by the Brazil women's soccer team's Marta has to be the best I've ever seen, period.

It made the U.S. women's excruciating loss to Brazil in the Women's World Cup this week a little less excruciating.

Sports | Post Comments | View Comments (0) | Permalink

Bad Web Design Abounds

September 27, 2007 11:17 PM

It pains me to see potentially high-profile websites (or sites that aspire to be high-profile) that suffer from really bad web design. Take a look at this page to get an example of what I mean. The page is only one among millions, but it's a relevant reminder, to me at least, that good web design should be appreciated whenever encountered — it really is a rare thing. It's just a shame it has to be that way.

Web Design | Post Comments | View Comments (2) | Permalink

The Difference Between Antennas and Antennae

September 27, 2007 3:40 PM

I was IMing a co-worker today about TV antennas, and I kept writing "antennae," thinking I was being all smart and stuff. Turns out I was being silly.

Antennae is the plural form of "antenna," or one of the paired, flexible, segmented sensory appendages on the head of an insect.

Antennas is the plural form of "antenna," or a metallic apparatus for sending or receiving electromagnetic waves.

So don't be silly like me. Just remember, antennas are made of metal; antennae are made of evolution.

Miscellaneous | Post Comments | View Comments (1) | Permalink

Five Years

September 24, 2007 7:08 PM

Today marks five years working for my current employer. The day went by pretty much like any other Monday ;)

I wonder where I'll be five years from now.

Personal | Post Comments | View Comments (2) | Permalink

Feist in iPod nano Ad

September 23, 2007 8:39 PM

The song in Apple's new nano commercial is called "One Two Three Four" and it's by a band called Feist.

You can download the track here.

Music | Post Comments | View Comments (2) | Permalink

Useless

September 23, 2007 12:47 PM

A URI that doesn't go anywhere is about as useful as a car with no engine.

Screenshot of a Useless URI on a Web Page

But looking on the bright side, if you're a web developer who's a little slow in the head, there are plenty of job opportunities out there for you.

Web Development | Post Comments | View Comments (0) | Permalink

The Titanic

September 22, 2007 6:52 PM

I read The New York Times' original coverage of the sinking of the Titanic today (via Jason Kottke). It's pretty crazy to read it, especially knowing that the number of people killed amounted to roughly half of those killed on 9/11.

...about 655 souls have been saved of the crew and passengers, most of the latter presumably women and children.

There were about 2,100 persons aboard the Titanic.

It's also an interesting read if only for the difference in tone and verbiage compared to today's news articles (e.g. the "souls" reference in the above quote).

Elsewhere | Post Comments | View Comments (0) | Permalink

The Fair

September 22, 2007 3:48 PM

My fiancée and I went to The Fair on Wednesday. It's the first time we've gone since about four or five years ago. Not much has changed, but that's part of the fun of going to the fair.

After sitting in traffic for over an hour, we arrived at my brother's place. He was nice enough to offer to drop us off, and my cousin Travis, who apparently has been working at the fair this year, was nice enough to offer to come to the gate and give us free admission tickets. That saved us a good $20 right-off-the-bat, and it was good to finally see my cousin again. The last time I saw him, I think he was probably somewhere in the four-to-five foot range. Now he towers over me.

After we picked up our Dizzy Passes (which basically give you free access to ride on 95% of the rides as much as you want), we quickly headed toward the Wildcat. After that, it was on to the Sea Dragon, a pendulum like ride that never disappoints.

After that, my brother called and let us know he was on his way over to join us. We met him back where he had dropped us off, and after they picked up their Dizzy Passes, we walked to the Enterprise, my favorite ride. My fiancée wasn't so sure about going on it with me, but after some convincing on my part, we got on and had a fun time. She was a good sport about it.

We then waited in line for half an hour for a ride called "Jumping," which coincidentally has to be one of the stupidest names I've seen for a fair ride. However, the ride looked fun, so we waited patiently, even after seeing that the ride had been stopped for a short while as some fair employees inspected it. When we finally rode it and it started to shake uncontrollably, my brother and I looked at each other as if our lives were about to end. However, it ended up being a part of the fun the ride has to offer, and we ended up living to tell about it.

What we thought would be our last ride of the night was called El Niño. It spun around and went upside down several times. It's one that my fiancée and I had gone on the last time we were at the fair, so it would have been a good one to end on.

Once we had our fair share of rides, we made our way over to one of the games. We sat down at one of the horse race games where you roll the ball into holes, each with an associated number of points, and your horse moves forward according to the points you accumulate. I picked horse #10, named "Gallant Fox," and it ended up being a lucky horse. I was the winner among about six or seven fairgoers — my brother and fiancée included — so I won a little stuffed lion that I, of course, gave to my bride-to-be.

After that, she wanted a snow cone, so we got her one of those (one of the biggest snow cones I've ever seen), and since we knew she'd be occupied for a bit and didn't have any interest in going on any other rides, my brother, his girlfriend and I went on a smaller ride called Torpedo. The whole point of the ride was to spin a wheel in the middle to get your four-seated compartment spinning as fast as you could. We got going so fast that it really didn't matter that the ride wasn't officially "going" at that point. Once the outer portion of the ride finally started spinning in circles, we couldn't tell the difference. I never officially slipped into a state of vertigo, but it took about an hour for the effects of that ride to wear off and for my stomach to feel even remotely close to normal again.

As the fair was closing, we made our way into a long line of people waiting to buy scones, probably the single most important thing that the fair has to offer each and every year. The 45-minute wait was well worth it, as we made out with two dozen of the delicious scones, the taste of which there are no words to describe.

Photo of Scones in Bags at The Fair

Scones courtesy of Flickr user davem.com.

Personal | Post Comments | View Comments (0) | Permalink

Google Reader Loses Posts Older than a Month

September 19, 2007 8:59 AM

On Sunday, I wrote that Google Reader has been losing some of my unread items. The next morning, I found out that I'm not the only one seeing the problem. Then, I sent an email to the Google Reader Team and then started a new thread in the Google Reader Group.

Today, I received the following email from the Google Reader Team (emphasis mine):

Hi Bernie,

Thanks for writing in. Are the unread items in question particularly old? If so, that would be the cause of it. The items we show as bold in Reader are not "unread," strictly speaking, but simply "new." They stop being new either when you read them, or after a month without having been read.

Sincerely,
The Google Team

So that confirms it. Google Reader is losing unread items, but not with great abandon.

However methodical they may be about losing those unread posts, I know for a fact that I'm too busy to stay on top of the thousands of unread items sitting in my feed reader on any given day. As unfortunate as it is, it looks like I may still need to jump ship back to Bloglines, as long as I can confirm that they hold on to all posts until they are read. Anyone happen to know this? And do they keep collecting new posts beyond the first 200 nowadays?

Blogging | Post Comments | View Comments (0) | Permalink

Oh, the Irony

September 18, 2007 7:52 AM

Haha. Just as I've posted this, Google Reader decides to do this.

Priceless.

Blogging | Post Comments | View Comments (0) | Permalink

Google Reader Losing Unread Items

September 16, 2007 10:49 PM

I first wrote about this about a week ago, but tonight I'm certain that Google Reader is losing my unread items. I don't see anyone else reporting this via Google Blog Search or Bloglines Search, but I know it's happening. The last report I can find online is from back in June when Robert Scoble first reported on this debacle.

Any other Google Reader users seeing this? I hope for your sake that I'm alone in this, but then again that may mean the problem isn't being looked at.

Blogging | Post Comments | View Comments (3) | Permalink

Firefox's Strange 'Save File' Behavior

September 16, 2007 7:45 AM

This has been happening to me for a long time, but it never gets any less annoying. For some reason, when I download a file in Firefox, I very often get presented with a save dialog in which the "Save File" button is disabled. The following is a screenshot of the problem:

Screenshot of Firefox's Save File Dialog

Sometimes the button gets enabled after a few seconds. However, sometimes it remains disabled until after I change focus to another window and then back to the dialog.

Bizarre.

Browsers | Post Comments | View Comments (9) | Permalink

Music and Language

September 16, 2007 6:58 AM

I've called music the greatest invention of all time, so I was pleased to see that on Wikipedia's timeline of historic inventions (via Jason Kottke), both music and language appear at the top of the list (as "indeterminate," as far as attributing a date goes).

Music | Post Comments | View Comments (0) | Permalink

Hello, Future Grandson

September 14, 2007 12:57 AM

Now that I'm getting older and thinking about starting a family in the next couple of years, I've been thinking about my family and my ancestors a bit more. Unfortunately, most of what I know about my ancestors is limited to childhood memories or stories I remember hearing from my parents or grandparents. I know quite a bit about who 3/4 of my grandparents were as people, but mostly in terms of how they interacted with me when I was younger. I don't know nearly as much about who they were as individuals, what they thought about life, politics, etc. At this point, with 3/4 of my grandparents no longer alive, I really don't have many options for reconciling that.

Therefore, it's very interesting to think about how the future will be completely different — not for me, but for my children, their children, and so on. Everything I've written here on this blog, many of the comments I've contributed around the web and other artifacts like the photos I've taken and the music I've listened to could very easily be available to my children and their grandchildren.

I kind of envy them for that, but I'm happy that they'll have the additional information. I think there's something really important about knowing your history and the story of your family, even if only for sentimental or existential reasons.

So grandson and/or granddaughter, if you're reading this, take a look around. I hope you're proud of what you see.

Personal | Post Comments | View Comments (0) | Permalink

Google Reader Facts and Rumors

September 13, 2007 9:17 AM

There are some interesting rumors about the future of Google Reader and some interesting facts in general over at Google Blogoscoped. Among them:

  • Google will work on a standard for feed publishers to tell aggegrators about changes in the feed (I wonder if this will help address this issue).
  • The crawl rate of feeds is prioritized when they've got more subscribers. They're updated within one hour when there's more than one subscriber, or else once in three hours.
  • A new feature called Activity Streams will be introduced or at least implemented in Reader this quarter. This will be comparable to Facebook's News Feed (Minifeed?) feature, and integrate Gmail's addressbook and contact list.
  • Three people are working on Reader's backend, and three plus one intern are working on the frontend.
  • Very soon, Reader will recommend feeds to the user, based on previous subscriptions and other Google activity.
  • According to FeedBurner statistics, Google Reader is the world's largest full-content reader. My Yahoo! is the largest headline reader.
  • As Google has grown into the market, the usage of Bloglines hasn't really decreased much.
  • 70 % of [its] users use Firefox.

Those are the ones that caught my eye, but the full list of rumors and facts is over at Google Blogoscoped if you're interested.

Blogging | Post Comments | View Comments (1) | Permalink

Back to School

September 11, 2007 8:20 PM

I walked outside to get the mail at around 8am this morning, and for the first time this year I got that "back to school" feeling. Something about the sunshine, the wet grass and the smell of the air triggered it.

I'm annually amazed by how that feeling gets triggered long after school is still relevant.

Personal | Post Comments | View Comments (0) | Permalink

Six Years Later

September 11, 2007 12:04 AM

American Flag

Miscellaneous | Post Comments | View Comments (0) | Permalink

Gym Class Fallout

September 10, 2007 11:09 PM

I skimmed through the VMAs tonight during halftime of the Cardinals vs. 49ers game.

What a mess!

I don't know if it's just 'cause I'm getting older or what, but what was described as a show that flourished totally sucked if you ask me. The performances were random and cut off. At one point I think I saw Rihanna performing with Fall Out Boy. Huh? And then even the Foo Fighters — a band I really like — sounded like a noisy mess.

Flourished? I think not. Although, I do have to say that Jennifer Garner's "Gym Class...Fallout?" line at the end of the show almost made up for the rest of the disaster that was the 2007 MTV Video Music Awards.

Television | Post Comments | View Comments (0) | Permalink

Manual Spam

September 10, 2007 2:01 PM

Holy cow. I think I just got hit by a manual spammer.

Blogging | Post Comments | View Comments (0) | Permalink

Amazon.com Remodeled

September 10, 2007 11:40 AM

I haven't been bashful in the past when bashing the design of Amazon.com. I was pleasantly surprised today to see that they've finally done something about the mess they called a website. Apparently the changes they've made are only viewable by a percentage of visitors right now, but they've got a page describing their new "remodel" that I think anybody can access. I haven't had a chance to play around with it all that much, but the color scheme is more appealing and their navigation has improved dramatically. I may post more once I've had more experience with it, but the short of it is that they've finally done something good with their website.

Web Design | Post Comments | View Comments (0) | Permalink

WebCore's Anonymous Blocks

September 08, 2007 8:37 PM

In Content Model Changes in HTML5, I wrote about how I'd feel dirty mixing inline content with block-level content.

According to WebCore Rendering II - Blocks and Inlines, that is a good thing:

All in-flow children of a block flow must be blocks, or all in-flow children of a block flow must be inlines.

Apparently, at least in WebCore, whenever this rule is broken, the renderer will construct an "anonymous block flow" to correct the error, like so:

<div>
 <anonymous block>
  Some text
 </anonymous block>
 <div>
  Some more text
 </div>
</div>

So remember, mixing inline and block-level content should make you feel dirty ;)

Web Development | Post Comments | View Comments (2) | Permalink

Slip Slidin' Away

September 08, 2007 8:15 PM

I'm not sure what's going on with Google Reader lately, but I seem to be losing some posts that I haven't yet marked as read. I know this because I've been saving Dave Hyatt's posts on WebCore rendering for a rainy day when I'd actually have the time to read through them all in one pass.

As of two days ago, that meant I had five unread posts listed for my Surfin' Safari subscription in Google Reader. Then, earlier tonight I saw that two of those unread posts had disappeared. Now, only about an hour later, yet another post has gone away.

The most unfortunate thing about this is that I'm not tracking my other feeds as closely, so who knows what else I've lost. Hopefully it's an isolated incident and the Google Reader Team is working on it.

I'm starting to have flashbacks.

Blogging | Post Comments | View Comments (0) | Permalink

Lawn Bowling and Curling

September 08, 2007 8:02 PM

My fiancée and I met a friend of ours for dinner last night. During our conversation, we had agreed it would be fun to go bowling this weekend. However, given that our friend is a member of the tribe to the north, it wasn't clear to her what we meant by bowling. She started asking whether we meant 5-pin or 10-pin bowling. Neither my fiancée nor myself had ever heard of the former, given that it is a Canadian-only variant of the sport.

The confusion eventually led to me asking if she meant lawn bowling (which apparently is actually called Bowls?), but she obviously did not. That spun off into a conversation about strange sports — or more importantly, strange Canadian sports. And therefore, we inevitably ended up on the topic of Curling, a hilarious sport that is on the list of things I want to try before I die.

Anyway, tonight I decided to skim through some of my older poems (after reading this article), and lo and behold I stumbled upon a poem I wrote in college (which was actually published in PLU's Saxifrage):

Why is it that wisdom prides itself in wrinkles?
I am simply too naive to write poetry
Had I the years and a trip to Greece
Or the energy of a crippled man
Then would I write!
There must be some mystical season
That some power has bestowed upon the Mediterranean
That would in no doubt put our autumn to shame
If, later in life, I were to take up lawn bowling or curling
And forget to write about the things I cannot say
Then I might as well live in Canada
And be buried in an unmarked grave
Next to the old woman who bred weasels

Life sure is crazy sometimes.

Poetry | Post Comments | View Comments (0) | Permalink

A Vote of Confidence

September 08, 2007 7:02 PM

Over at Yahoo! Answers, someone asked how do I determine what web browser I have?

It's a rather innocuous question, but obviously one from someone who probably doesn't know much about computers. That's why one of the provided answers completely cracked me up:

use php function get_browser()

Hilarious.

Web Development | Post Comments | View Comments (0) | Permalink

Battle on Green Turf

September 08, 2007 4:44 PM

Wow. The Huskies just beat the Broncos — the same Huskies that have been picked to be 2nd to last in the Pac-10 this year and the same Broncos that had won 14 straight games coming into today's. What an impressive way to start the season, a season with the nation's toughest schedule. There's a long way to go, but it's finally fun to be a Husky fan again.

Sports | Post Comments | View Comments (0) | Permalink

Mad Men

September 08, 2007 8:56 AM

I've been watching Mad Men since it premiered back in July. It took me a little while to get used to all the male chauvinism, but now that I've learned to accept that as a part of the show's arguably accurate depiction of 1960s New York, I'm nothing short of hooked.

As it should be, the show's main character, Don Draper, is easily the most interesting part of the show. His quiet self-reflection and his marital and extramarital activities combined with his man's man persona make for quite the lead. As a viewer, I feel like I'm constantly guessing at what he's thinking, just like the other characters who surround him in his day-to-day life.

If you haven't had a chance to catch Mad Men yet, I'd highly recommend it. I think I'm about halfway through the season at this point and I seriously can't get enough.

Television | Post Comments | View Comments (0) | Permalink

Google Reader Mangled in Opera 9.5 Alpha

September 07, 2007 7:37 PM

If you're looking to give the Opera 9.5 Alpha a try, don't expect to use it to catch up on feeds in Google Reader. I just mosied on over to that application in the new alpha build, and to my dismay the reading pane is all but invisible.

It's unfortunate, because so far the alpha build seems relatively stable and pretty darn fast. However, Google Reader is the slowest app for me when running in my usual browser, so I can't really form a definitive conclusion in terms of useful efficiency until I can try out my favorite feed reader.

Another thing I noticed is that whenever I browse to my blog, the main page title appears black. It stays that way until I either highlight and unhighlight it, or scroll away from that section of the page and then back.

Oh well, it's an alpha. I'll continue to play around with it and write again if anything substantial catches my eye. If you feel like giving it a try yourself, you can download it here.

Update: Changed the post title from "Opera 9.5 Alpha Mangles Google Reader" to "Google Reader Mangled in Opera 9.5 Alpha" ;)

Browsers | Post Comments | View Comments (18) | Permalink

Google Reader Grand

September 05, 2007 8:18 PM

I was a bit surprised to launch Firefox tonight and see that my Google Reader Notifier extension was reporting that I have 2,335 unread posts to catch up on.

In the past, that number has typically hovered somewhere in the 500 to 1,000 range, simply because Google Reader has always capped the unread count of any single feed at 100+ (to indicate that there are 100 or more unread posts). Today (or sometime in the last 24 hours) it seems they have bumped that cap to 1,000 instead.

Google System reports (via Dipping into the Blog Pond):

Apparently, Google Reader learned to count to 1,000, which is a major improvement if we consider that Google Reader was only able to count to 100. More exactly, all the feeds, folders and other views showed 100+ if you had more than 99 unread items. I wonder if this is a technical limitation or Google is afraid we're not able to handle the information overload.

I still think it's weak that they don't just display the total count, but I'm sure the 1,000 item cap covers most people just fine. Subscribers like me, though, who subscribe to feeds from sites like Digg, Slashdot and custom searches from providers like Bloglines, get stuck playing the guessing game after being away from the feeds for only a few days.

But when you get behind, maybe that's not such a bad thing.

Computers | Post Comments | View Comments (0) | Permalink

Try Bikini Waxing Monkeys

September 05, 2007 1:35 AM

I just caught this over at this site:

Screenshot of Google Ads

Hairy applicants welcome.

Elsewhere | Post Comments | View Comments (1) | Permalink

Labor Day Thunder and Lightning

September 04, 2007 12:33 AM

We just had a nice thunderstorm roll through Seattle. My fiancée and I were watching TV when we noticed the flashes of light shining in through the windows. We decided to turn the TV off and open the blinds of our big living room window to watch the storm. We saw some big flashes of light that turned the sky blue and heard lots of rolling thunder far off in the distance. I can't remember the last time we had such a storm in the summer here, but it was a nice way to cap the three-day weekend.

Personal | Post Comments | View Comments (2) | Permalink

Don't Let Me Down

September 03, 2007 1:36 PM

There's nothing more off-putting than dedicating a few minutes of your already busy day to comment on someone's blog, only to find that once you hit the submit button, your browser does nothing more than churn and churn, attempting to connect with and transmit data to the blog's web server.

I just got done skimming through 45 Excellent Blog Designs. After noticing that less than half of them were probably worthy of such a post ("20 Excellent Blog Designs" would have made for a more efficient and interesting read), I decided to leave a comment with my list of the top six designs from that particular selection.

However, Firefox has been churning away for almost ten minutes now — oh wait, now my comment finally went through. Oh, but look what I got in response:

Sorry, but your comment has been flagged by the spam filter running on this blog: this might be an error, in which case all apologies. Your comment will be presented to the blog admin who will be able to restore it immediately.

You may want to contact the blog admin via e-mail to notify him.

Okay, sure, I'll spend a few more minutes making sure my comment gets through. Afterall, after ten, what's two more?

Update: I sent an email and it got bounced back to me. Haha.

Blogging | Post Comments | View Comments (0) | Permalink

Bloglines Beta

September 02, 2007 7:48 PM

I know I have at least a few readers who use Bloglines. Have you tried the new beta? If so, what do you think?

I read some of the things Read/WriteWeb had to say about the new beta and didn't really see anything that seemed worthy of a switch back to Bloglines, even if they are still the market leader.

Computers | Post Comments | View Comments (0) | Permalink

Bumbershoot 2007

September 02, 2007 2:32 PM

The Shins at Bumbershoot 2007

My buddy Mike and I went to Bumbershoot yesterday. It ended up being the perfect day for it as the weather was nice and warm. We showed up a bit too early, as most of the acts had not started yet and there were relatively few people there. However, once we had walked the grounds for a bit, more people started pouring in and the acts started getting underway.

After grabbing some lunch (I had a bratwurst with sauerkraut), we went over to catch Carrie Akre, who used to be the lead singer for the band Goodness back in the day. She was pretty good, but also pretty mellow.

Next we wandered over to the "Esurance" stage (the fact that all the stages were named after companies and not after their actual location was a bit annoying) and leisurely listened in on the end of the set of Forgotten Sol. They were a little more upbeat, and were pretty good background music for a conversation Mike and I had.

At around a 1:45pm we made our way down to Memorial Stadium in anticipation for The Shins, the main reason we went to Bumbershoot. I thought their set was good and I noticed they really do a good job of emulating their studio sound, most likely because their studio sound emulates playing live so well. The crowd was a little strange in that there were a few people randomly crowd surfing during slow songs or when music wasn't even playing, there were a couple guys up on the shoulders of who knows who, and everyone was kind of content with their little bubble of personal space rather than squishing up toward the front to get a closer look at the band.

If the Bumbershoot organizers didn't make it nearly impossible to figure out where the comedy acts were, we probably would have checked a couple of those out too, but by the time we did find them the shows seemed to be full. We therefore ended up leaving not long after The Shins set.

Probably my biggest disappointment is missing out on the Crowded House set. Hindsight is 20/20, but according to Billboard, Eddie Vedder joined them on stage. I'm pretty much kicking myself right now.

The Shins courtesy of Flickr user joshc.

Music | Post Comments | View Comments (0) | Permalink

When Feeds Go Wrong

September 01, 2007 5:43 PM

I subscribed to the main Top Headlines feed at ESPN about a week ago. I just tried clicking on one of its links today and got an error dialog from Firefox telling me the URL was invalid. So I took a look at the link:

http:///#%22%20onclick=%22window.open('http://sports...

It goes on from there, but I think you can see why it causes some problems ;)

Brilliant!

Web Development | Post Comments | View Comments (0) | Permalink