02/2015

Monday, February 02, 2015

Weekend Wrap-up

We got out of town this weekend, driving south to see our friends, Sam and Kristen, in the city of Richmond. After seeing their cozy basement apartment, we went to Lunch. for brunch. However, Lunch. was packed, so we ended up next door at Supper! for brunch instead (I had an omelet with grilled bison and mushrooms).

Following a tasting at Ardent Craft Ales, Sam introduced us to the magic of Ubering around the city. We toured the Virginia Museum of Fine Art while they went to the VCU basketball game. The art was artsy, as they had a good selection of both old and new stuff. Rebecca was unimpressed by Art Deco and Art Nouveau, and their Photography exhibit turned out to be a small row of old black and white portraits next to the bathroom. However, admission was free, which always buys plenty of goodwill.

In the evening, we ate Mexican food at En Su Boca, saw a little live music at the Hardywood Park brewery, and then went to The National to see Ingrid Michaelson perform. Her live act matched the quality of her albums, in spite of the drunk sorority girls having loud conversations behind us at the bar. The only downside of the concert was that she only performed for a little over an hour -- this would have been less annoying had Ticketmaster not charged a 40% surcharge for a $20 ticket. We had post-concert appetizers and yet another restaurant somewhere in Richmond and then retired for the night.

On Sunday, we had brunch at Saison Market, walked around Belle Isle where we met a crazy guy who was copyrighting "Indian Rock Sculptures" (extra emphasis on air quotes) he had "discovered" in the brush. I doubt an Indian actually carved that boulder, but it did kind of look like a frog if you turned your head, squinted, and painted a frog on it.

We ended our Richmond adventure at Sugar Shack, where the line was out the door for delicacies such as maple-bacon doughnuts and doughnuts with pieces of fried chicken on top. Afterwards, we made it back to Sterling in record time (1hr 35min), just in time for a small Super Bowl party at the Cranes. We left during the third quarter because responsible people need to get ready for work, but greatly enjoyed the sharks.

tagged as day-to-day | permalink | 2 comments

Tuesday, February 03, 2015

BUriversity: Course Topics

With the recent popularity of massive open online courses (MOOCs), I thought it would be a good idea to jump on the bandwagon and do some teachin'. My university has no accreditation, although I did once pursue a Ph.D.

To get the course list going, give me a concept or topic that you simply can't wrap your head around, be it a real educational topic or just something about daily life. I will employ speed reading techniques and academic ninja skills to learn everything about that topic in less than an hour, and then provide a witty, pedagogically sound distillation of the topic in a single post for your consumption.

My courses will be absolutely free, although there will be an annual certification track that you can put on your LinkedIn profile for several thousand dollars. And, you don't have to worry about my lectures being incorrect -- the power of MOOCs and the democratic Internet in general is that if I write something completely wrong, you'll just have to scroll down through about 500 comments to find someone who actually knows what they're talking about to correct the mistake.

So, what don't you know?

tagged as buriversity, you speak | permalink | 5 comments

Wednesday, February 04, 2015

Time-lapsed Blogography Day

BU at multiple data points

21 years ago today, in 1994, I was 7th chair in All-District Band, which had made the logistically poor decision to host in the tiny T.C. Williams music facilities. The guest conductor was Gene Corcoran, and all I wrote about him was that he acted arrogant.

20 years ago today, in 1995, it snowed 5 inches and I built a big snow fort.

19 years ago today, in 1996, I bought Warcraft II. It was so good that Jack went out and bought it immediately after he came over to see it.

15 years ago today, in 2000, I went to Jason Chrisley's with Shac, Kelley, Liz, and Karissa for steaks and sledding.

14 years ago today, in 2001, I stayed in all day playing on my new Nintendo 64 (five years old but found in a Walmart sale) with Rosie and Anna.

13 years ago today, in 2002, I bought a jigsaw puzzle as a "short-lived hobby to pass time in Tallahassee" (see also, USA Today crossword puzzles). I never bought another puzzle.

12 years ago today, in 2003, I was the only one in our friend group to attend Kathy's Tallahassee Winds concert. I did not get a prize.

9 years ago today, in 2006, I watched, and hated, Broken Flowers.

8 years ago today, in 2007, I installed laminate flooring in my foyer.

4 years ago today, in 2011, we went to Anna's for Game Night, squeezing past her giant new minivan for a game of Hoopla.

tagged as memories | permalink | 1 comment

Thursday, February 05, 2015

Review Day

There are no major spoilers in these reviews.

Like It Never Happened by Elizabeth and the Catapult:
Compared to Taller Children, this album has more highs and fewer listless ballads. Her style has evolved to incorporate more clown chords and electronica, reminding me to some extent of Bird and the Bee. The opener, Happy Pop, is one of the stronger songs.

Final Grade: B+

Brand New Thing by Doc Severinsen:
I somehow overlooked this album in my mass consumption of all things Doc during high school, even though it's now 38 years old. It's a very polished collection of lush combo funk served over a bed of creamy cello chords, with Doc as a well-balanced part of the ensemble, rather than screaming over the top.

Final Grade: B+

Lie to Me, Season Two:
The second season of this show is a full 22 episodes, and the writing has greatly improved. The "B story" found so often in procedurals is killed in favour of making the "A story" more interesting, and the writers have a better grasp on giving each plot a sense of urgency that was missing from most of season one. Free on Amazon Prime.

Final Grade: B+

Legend of Grimrock 2:
I got a solid 10 hours of entertainment out of the original Grimrock, but stopped because the character progression was ultimately pretty shallow. I picked up the sequel in a Steam sale, but apparently I've moved on from the hybrid grid-based, real-time system that frames the game. I only played this one for about 80 minutes before tiring of the cryptic riddles and hunger mechanics.

Final Grade: Not Graded

tagged as reviews | permalink | 0 comments

Friday, February 06, 2015

Random Chart Day: Hearthstone Games

Here is a chart of my last 200 Hearthstone games, played with my primary Paladin deck, in my quest to get 500 wins and a golden portrait. The rows are ordered by Win Rate, and the wins and losses are segregated by whether the games lasted less than 10 rounds. Some observations:

  • Everyone is playing Mage decks with tons of new Mech cards right now, but I'm slowly getting better at countering it.

  • I can counter aggressive Warlocks easily, but those that draw cards until their hand is full of giants still beat me pretty well.

  • Every Hunter I play is trying to win in the first 8 rounds (and before the Undertaker nerf, they succeeded most of the time).

  • Shamans in general are the perfect counter to my deck.

  • I can zoom up to level 18 easily, but then get stalled in the 18 to 16 range. The highest rank I've gotten was 12.

  • I'm not very good at Hearthstone, but I did get my golden portrait!

tagged as data | permalink | 3 comments

Monday, February 09, 2015

Weekend Wrap-up

On Friday night, Annie came over for tacos and Girl's Night, where they literally watched the show, Girls. I was busy in the other room solving puzzles by stacking boxes on other boxes, but it sounded like a really whiny main character getting into otherwise avoidable shenangans.

On Saturday night, we went into DC via the Silver Line for my company party, which took place in the various lobbies of the American History museum. The event was fun, although we didn't win anything beyond free food. The Smithsonian did have a fairly ingenious money-making scheme though -- they had bars peddling free drinks every four feet, followed immediately by "NO DRINKS IN THE EXHIBITS" signs. Leaving your mostly full drink at the entrance would get it immediately cleaned up by the wait staff, requiring you to get another one after an exhibit. I'm sure whoever gets the bill on Monday will be thrilled.

On Sunday, we went to the "Pups in the Pub" event at Old Ox Brewery, where the owned and up-for-adoption dogs outnumbered the people. The dog talent contest had poor participation, and the "kegstanding dog" trick turned out to be a dog that literally stood on a keg. Booty could do that easily.

How was your weekend?

tagged as day-to-day | permalink | 0 comments

Tuesday, February 10, 2015

BUriversity: Lights On 101

Based on readers' topic suggestions

Why do many people refuse to drive with their lights on in the rain?

It's a phenomenon that most drivers have experienced at least once -- driving in moderate to heavy rain and coming up quickly on a driver whose bland-coloured car (often a Toyota) is nearly invisible against the backdrop of muted daylight and scattered raindrops. Since cloaking technology (and the hoverboard) is still at least eight months away from fruition1, there must be a more mundane reason behind these drivers' decision to place you at risk by making their car harder to spot.

In today's lecture, we will explore the social and physical roots of this behaviour. Why do people do this?

Is it political? No.

Turning on your lights and making your car visible to other drivers in the rain is a recognized and useful safety practice, as evinced by the 19 forward-thinking states who have some variant of "wipers on, lights on" in their law books. Our intial hypothesis was that those states with laws might fall along political divisions, but as you can see from the map below, there is a statistically insignificant2 difference between red and blue states with "lights on" laws. (The lawless states are solid colors, while the lawful states look like glass ornaments from a 1980s Make It and Bake It oven).

In spite of this lack of conclusion, overlaying various data sets onto a map is a critical activity in big data and trend detection, so we also compared the data against maps of average US rainfall, Nielsen ratings for The Bachelor, day length, and headlight pricing data for the past 50 years. No discernable correlations were discovered, although we did determine that this is mostly an Eastern practice3. (The data from California can be discarded because hippies).

Is it science? Partly.

As cars evolve over time to be more curvy and less boxy, the geometric slope of the windshield has decreased. This is a shady trick by car companies to simultaneously increase the advertised volume of the cabin (albeit with completely useless space) while also making it a pain in the ass to remove your tax and inspection stickers every year.

When rain falls against a more modern windshield, it bounces further towards the front of the car. If headlights are on in this situation, the errant raindrops will diffuse, reflect, and / or refract the potentially blinding light back at the driver, putting them in a dangerous situation comparable to driving through the Windows 3.1 Starfield screensaver4. Surely some drivers opt to leave their headlights off to avoid this, at the expense of all other drivers.

Is it cultural? Yes.

The cultural reason for why people don't turn on their lights in the rain is actually the same as the dearth of turn signal usage -- it's not that people are assholes (most are), so much as they are just completely oblivious to the impact of their actions on the people around them. Daytime headlights, like gift cards to Applebees, are really intended for other people, not yourself.

The good news is that car makers have been phasing in daytime-running lights for many years now. Ten years from now, everyone's lights will be on all of the time (with the exception of that Ford Escort your redneck friend has been replacing the engine in since 1981).

1 Source: Back to the Future II.
2 Source: Did some math on Windows Calculator in Scientific mode.
3 Work not shown. You only show work when you are not confident in your final answer.
4 Source: That guy in your dorm that often took interstate road trips while on acid.

tagged as buriversity | permalink | 2 comments

Wednesday, February 11, 2015

Memory Day: Snapshots

This picture was taken sometime in 1982 on the Mall in DC. My sister is eating a bag of vendored popcorn -- a rarity since later in life we were constantly taught that buying food at a venue or 7-11 is never as cost-effective as buying more of it at the grocery store and bringing it along.

As for me, I look like one of those chubby toddlers with too much world experience that you might see in a National Geographic photojournalism spread about southeastern Asia. All I'm missing is a cigarette.

tagged as memories | permalink | 3 comments

Thursday, February 12, 2015

Chad Darnell's 12 of 12

4:58 AM: Ready to work.
5:15 AM: Lonely parking lot at this hour.
7:12 AM: Working on REST services.
11:38 AM: Driving home for lunch, listening to Nappy Roots.
11:46 AM: Welcome committee.
11:51 AM: Leftover pizza for lunch.
12:14 PM: Back to work, with distractions.
3:22 PM: Putting the finishing touches on a new bookcase.
5:30 PM: Exercising with Better Call Saul.
6:58 PM: Playing Far Cry 4 from the Weekend Steam Sale.
8:16 PM: A very frigid grilling adventure.
8:30 PM: Burger Night!

tagged as 12 of 12 | permalink | 0 comments

Friday, February 13, 2015

Memory Day: Snapshots Follow-up

Here is the companion photo to the one from Wednesday, taken 31 years later, in 2013. Less ivy, more statue, and a goofier looking stroller (containing nephew #2 of 2).

tagged as memories | permalink | 0 comments

Monday, February 16, 2015

Weekend Wrap-up

in haiku form

Friday

Manassas, driving
to meet the newest Ahlbin,
and play some Hearthstone.

Saturday

Brunch with the parents
at Le Pain Quotidien,
want more breakfast meats.

Took the Yellow Line,
Columbia Heights Metro,
partly gentrified.

Saw Mike and Annie
eating pancakes at The Coupe
then left before dark.

Mom's roast for dinner,
West side Alexandria.
Donley for Mayor.

Drove home through white-out,
which sounds like a dumb blonde joke,
but is wind and snow.

Sunday

Did refactoring,
of a fairly new codebase.
Fried chicken for lunch.

Settlers of Catan
has too many syllables,
unless you're Kathy.

Ate pizza and saw
Guardians of the Galax-
Bored, turned it off.

Monday

Working at home for
frigid conditions and for
the dead presidents.

Expecting up to
eight inches of snow tonight.
How was your weekend?

tagged as day-to-day | permalink | 3 comments

Tuesday, February 17, 2015

BUriversity: Class Cancelled

The MOOC lecture is cancelled today, because the snow is introducing static in the Internet tubes. Tune in next week for a class on binary machine code. Suggest future topics in the comments section!

tagged as buriversity | permalink | 1 comment

Wednesday, February 18, 2015

Memory Day: Snapshots

This picture was taken twenty years ago today, on February 18, 1995. As a member of the marching band, we were required to volunteer in the annual George Washington 10K race around Alexandria. A clarinetist named Rebecca is on my right, and a trumpeter named Mike Stafford is on my left.

The standard operating procedure for the 10K race was to give all the band kids a reflective vest and a flag, and then plant them in front of every driveway along Eisenhower Avenue. Our only instructions were to prevent drivers from leaving establishments during the race, to minimize the number of runners hit by cars.

Luckily for us, the entire trumpet section was assigned to several driveways very close together that all led into the same industrial park. This park was obviously shut down for the weekend (and the closed metal gates confirmed this), so we spent the entire race goofing off and having sword fights with our safety flags.

No one died, so it was a good day.

tagged as memories | permalink | 0 comments

Thursday, February 19, 2015

Review Day: The Talos Principle

There are no major spoilers in these reviews.

The Talos Principle is a first-person puzzle game from the creators of 2001's Serious Sam. Although it's not amazing or addictive, it's a very pleasant way to spend a few laid-back hours solving cerebral puzzles.

There are almost too many puzzles in this game: 3 worlds with 7 lands each, containing an average of 5 puzzles per land, not to mention a neverending array of secret puzzles. It's possible to burn out if you play too many back-to-back, but it's perfectly paced for doing a puzzle or two in very short gameplay sessions.

The puzzles run the usual gamut of 3D puzzles, and generally involve aiming lasers, moving boxes, dodging robots, and turning on the power to various switches. Once you know all of the rules, the puzzles are logical and deviously clever, but a few of the earlier puzzles suffer from poor explanation of the underlying concepts, relying on your continued experimentation instead. It doesn't help that the puzzle chambers are massive and full of dead space -- it makes it harder to determine what is relevant to the solution. If you get stuck on an early puzzle with no obvious way to proceed, it might help to know that some unexpected things are capable of having other things stacked on top of them.

The game is wrapped in a heavily-thematic story about consciousness and existence, but it comes across as a humourless Portal and is mostly forgettable. However, it does give a passable background for why you might be solving all of these puzzles, and serves its purpose.

The world is graphically excellent and runs smoothly on my old graphics card, and the soundtrack is a muted New Age mix that made me recollect Myst. Overall, I made it about 2/3rds of the way through the game (10 hours or so) before losing interest, but I came away with a positive impression of the game.

Final Grade: B+, great if you like puzzles and greater if it's on sale

tagged as games | permalink | 0 comments

Friday, February 20, 2015

Random Chart Day: Real Estate Assessment

I can't wait until this area has reached ridiculous Alexandria levels of inflation so we can sell out and move to Kauai. Remember, Loudoun County is only a few years of global warming away from being the new coastline of the Potomac River. Lock in your riverside views today!

tagged as data | permalink | 2 comments

Monday, February 23, 2015

Weekend Wrap-up

On Friday night, we stayed in with gyros and wings from Joe's Pizzaria and started the show, Sherlock. We tend to fall on the extreme ends of the television show hipster spectrum -- either we discover shows that no one is watching yet like a normal hipster, or we enjoy a show like Sherlock only to find that everyone else liked it five years ago and doesn't care about it anymore.

The rest of the weekend was snowbound, with Sterling getting about 8 inches before it switched over to sleet. We did some shoveling, cancelled our Saturday night plans with Katie and Joe, rewatched the movie, Awakenings, which Rebecca had never seen, and played some games.

On Sunday, the snow melted enough for us to go to the Cranes for the Oscars and some Chipotle, but we left early before any award of note had been given -- the show felt particularly boring and sterile this year. Neil Patrick Harris has done some great hosting in the past, but last night's Oscars kind of felt like he was once again hosting the Tony Awards.

How was your weekend?

tagged as day-to-day | permalink | 1 comment

Tuesday, February 24, 2015

BUriversity: Machine Code 101

Based on readers' topic suggestions

How do we tell computers what to do?

The central processing unit, or CPU, is the brain of any computer. It understands a very basic set of atomic instructions like "add this value to that value" and speaks only in binary -- a neverending series of 0s and 1s. In the early days of computer programming, programmers quickly came to the realization that communicating with the CPU at this level was error-prone and migraine-inducing, like the job of a cop reporting on the high-speed pursuit of a criminal whose license plate is a random mix of capital Is and lowercase Ls.

To remedy this situation, programmers relied on "layers of abstraction", taking chunks of machine code and assembling them together into human-readable instructions just slightly more understandable (called assembly language). Programmers then went up another level to languages like C, which are English-like and compiled into assembly language. Programming languages, then, are like ogres -- they have layers. If this layering concept is still hard to grasp, click on one of the buttons below to get an example in a context you are more familiar with.

This layering of abstractions continued over fifty years until today, where we have high-level languages that are so close to English prose that they sometimes read like poorly-written Twilight fan fiction. The benefit of these layers of abstraction is that a human programmer can write instructions in a language more closely related to the domain he or she is working in. Unfortunately, as languages becomes easier for humans to understand, they become more difficult for the binary-based computers to understand.

Every high-level language is eventually translated down to binary machine code before execution, since the CPU is essentially like a calculator with only 3 buttons. Thankfully, this translation is not a manual process, since a single line of code like System.out.println("Booty"); could end up being hundreds of lines of machine code.

Wouldn't the machine code need to be able to read itself as binary?

No. The machine code is just a dumb set of instructions with no processing smarts of its own. And, the CPU has a small set of instructions hardwired into it, such that there is a one-to-one mapping of every incoming machine code instruction to a CPU instruction. No interpretation or translation is happening when the machine code arrives at the CPU -- it just gets stored and run as-is. The CPU is like the bureaucrat with fifty years experience who knows exactly where to file your paperwork just by the identifying number on the form, not the summer intern who has to look up the form number in a process manual every time he sorts the mail.

Have any more ideas for future BUriversity courses? Suggest them in the comments section!

tagged as buriversity | permalink | 3 comments

Wednesday, February 25, 2015

Memory Day: Twelve Years Ago Today

Twelve years ago, on February 25, 2003, I was a grad student finishing up my Masters at Florida State. After spending the day sparring with committee members for my upcoming thesis defense, I played in a basketball game with the Music Theory basketball team against a team called "Happy Hour". We lost, 62-22, and 3 of our 4 starters had accrued fouls by game's end. I also got in a shouting match with a frat boy who fouled me, which got me a foul.

I also spent the day helping a procrastinating Kathy finish up her presentation (to be presented 24 hours later), Where's the Beat? Metrical Ambiguities in the Introductions of New Wave Pop Songs of the 1980s, by applying PDF magicks to handouts and proofreading her prose.

boyllama (8:49:02 PM): how's it comin'?
ksb629 (8:49:15 PM): on conclusion
ksb629 (8:49:23 PM): need help
ksb629 (8:49:37 PM): Each of these examples demonstrates the possibility of multiple interpretations when establishing meter. In every case, the song began with an event that was neither a clear upbeat or downbeat. In such cases, I believe that it is reasonable to assume that the first event is a downbeat. This metrical interpretation seems correct until the established meter is disturbed or overpowered by another, stronger layer of sound. In most examples, it is possible to hear the "correct" interpretation of the metric placement retroactively, although even then it is frequently difficult to feel it correctly until the most dominant layer enters.
boyllama (8:55:40 PM): Each of these examples provides an open-ended scenario for a listener who is trying to establish meter. Every song began with an event that could be either an upbeat or a downbeat. In such ambiguous cases, it is reasonable to assume that the first event is a downbeat. This metrical interpretation feels correct by default, until the established pulse is disturbed or overpowered by a stronger layer of sound. It is sometimes possible to determine the true metric placement retroactively, although even then, it can be difficult to hear with confidence until the dominant layer enters.
ksb629 (9:17:05 PM): thanks
boyllama (9:17:14 PM): no problem
ksb629 (9:18:49 PM): fucking shit fuck
ksb629 (9:18:57 PM): I closed your window that had your suggested changes
ksb629 (9:19:00 PM): poop!

tagged as memories | permalink | 6 comments

Thursday, February 26, 2015

Review Day

There are no major spoilers in these reviews.

Treme, Season Four:
This abbreviated final season was well done, but ultimately pointless. Although it gives the characters a nice send-off and wrap-up, it doesn't do much more than the similar wrap-up of Season Three, which could have (and probably should have) functioned as the series finale. Overall, the first season was probably the best, and could be watched in isolation.

Final Grade: C

Guardians of the Galaxy (PG-13):
Although we turned this off after an hour originally, I did go back to finish it on my own, because legitimate Internet reviewers like myself adhere to a high code of reviewing conduct. This movie was not as good as everyone said it would be. Sure, there were a few funny jokes here and there, but the rest of the movie felt like setup for those few jokes. Most of the movie is spent with the main characters running around SHOUTING lines of dialogue like super heroes while chasing random artifacts through realms of poorly acted supporting characters.

Final Grade: C-

Uptown Special by Mark Ronson:
As a longtime fan of Mark Ronson, this album was pretty disappointing. Uptown Funk is Ronson at his best, and it's nice that he's getting a lot new fans from this being played ad nauseum on American radio. Feel Right (not safe for work) is bubbling over with energy and feels like a track from the movie, Lock, Stock, and Two Smoking Barrels. However, the rest of the album is forgettable, with a bunch of minimally exciting B-sides and weak supporting artist performances.

Final Grade: C+

Better Call Saul, Pilot Episode:
I didn't expect this to be anything more than a derivative valentine to Breaking Bad, but was unexpectedly impressed. The pilot manages to have its own style and themes, and while a little Breaking Bad knowledge is nice, this show looks like it'll be enjoyable on its own merits. The pilot is free on Amazon Prime, although we'll be waiting for the whole season to come out before we watch any more.

Final Grade: A-

tagged as reviews | permalink | 7 comments

Friday, February 27, 2015

End-of-the-Month Highlights Day

New photos have been added to the Life, 2015 album.

  • Events
    • Visited Sam, Kristen, Ingrid Michaelson, and all the restaurants in Richmond on the weekend of 1/31 - 2/1.

    • Went to a mini Super Bowl party with dancing sharks at the Crane's on 2/1.

    • Had my company winter event at the American History museum on 2/7.

    • Went to "Pups in the Pub" at Old Ox Brewery with the Lowry dogs on 2/8.

    • Met Isaac Ahlbin and played Hearthstone on 2/13.

    • Saw both sets of parents as well as newly-relocated Mike (Local-Mike?) on 2/14.

    • Enjoyed good snows on 2/17 and 2/21.

    • Went back to the Crane's for the Oscars on 2/22.

    • Survived another overnight deployment for work on 2/26.

  • Projects
    • Studying for my AWS Developer certification in earnest this month through LinuxAcademy.com.

    • Assembled a bookshelf.

    • Shoveled lots of snow.

  • Consumerism
    • Enjoyed seasons of Justified, Bosch, Lilyhammer, and Lie to Me. Just started Sherlock.

    • No great new music this month.

    • Played Hearthstone, The Talos Principle, and Far Cry 4.

February's Final Grade: B, lots of indoor time, but pleasant and mostly low-key

tagged as day-to-day | permalink | 2 comments

 

You are currently viewing a monthly archive, so the posts are in chronological order with the oldest at the top. On the front page, the newest post is at the top. The entire URI! Zone is © 1996 - 2017 by Brian Uri!. Please see the About page for further information.

Jump to Top
Jump to the Front Page


February 2015
SMTWHFS
1234567
891011121314
15161718192021
22232425262728
BIRTHDAYS
BLOGLOG
08/20
08/09
08/03
06/29

OLD POSTS
Old News Years J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
J F M A M J
J A S O N D
visitors since November 2003