Monday, July 30, 2007

DigiGirlz Camp

Last week, I participated in the Microsoft DigiGirlz technology camp at Stony Brook University. The event hosted over 120 teen girls from all over Long Island and NYC for three days of hands-on technology. I actually sort of roped myself into it; a call went out for volunteers a month ago, and I replied that I could help if needed. A couple of days later, I was signed up to teach eight courses! The whole thing was only made possible by the incredible work of Laurie Carey from Microsoft, and a bunch of hard-working volunteers from Microsoft, CA, and other companies around the Island.

We started at 7:30 AM on Tuesday, registering the girls as they got off the buses or were dropped off at the Wang Center. Things got a bit hairy, since the reg lists were sorted by phone number instead of name. (Oops.) It took a little fiddling, but we were able to get everything sorted out.

I took on three classes on Day One: Microsoft Office, Popfly, and Critical Thinking. About 40 kids were led as a group into my classroom for the first session. This was actually quite handy, because when I’ve presented in the past, I’ve had to wait around for stragglers 10 minutes after the session was scheduled to start.

I asked how many girls had used Microsoft Office before, and almost everyone’s hand went up. However, almost none of them had touched Office 2007. The goal of the camp was to empower the girls and show them what the business world is like, so we used a real-world example in the training: business cards. We fired up Publisher and I led everyone through the process of making their own cards, choosing images and color and anything else they wanted to put on it. It’s amazing how everyone seemed to have a MySpace page with a million pix on it already. I offered to take photos of anyone who wanted them on their cards, but only one kid took me up on it.

After designing their cards, some assistants gathered them up and took them to be printed for a networking event. Unfortunately, the color printer couldn’t handle the thick card stock, so the cards ended up being run in black and white. As the cards were being run, the girls were taking a self-defense course (which I wisely avoided), and I headed to my classroom to prepare for Popfly.

Popfly is a new Microsoft program/Web service that lets you design Web component mashups visually, without writing any code. It’s pretty cool – I’ve used it once or twice. It’s also in closed alpha, which posed a problem. I didn’t have accounts for everyone to use, and time was ticking down fast. With 15 minutes to go until a flood of kids came in, I was frantically emailing around to get test accounts. I managed to get hold of a list of nine accounts to use. I looked calm and collected as everyone poured in.

Popfly was a bit more challenging than the other courses, because it was one of those “stay ten minutes ahead of the class” situations. I wanted to come up with something they would find interesting – many of these classes started out confusing, so an “aha” moment always does wonders. In this case, the “aha” was creating a program that let them enter their home address and see their house. It’s a complete no-brainer in Popfly: you connect a User Input box, a GeoNames box, and a Virtual Earth box. You click a couple of settings and run it. Voila! A geosearch program. When the students did this and zoomed in on their homes, I started to hear them gasp things like “this is so cool!” One of the kids in the back said to the girl next to her, “I thought this would be stupid, but I’m glad my mom made me come!”

Then the questions started. You never know exactly where a group’s mind is headed, and the focus of the queries surprised me. A lot of girls started asking how software goes from alpha to beta to final release. I talked a lot about the process that Microsoft uses, determining feature completeness versus release readiness, and the various debugging cycles.

The next batch of questions came as we changed Virtual Earth to bird’s-eye views. The girls started to see details in their neighborhoods that had changed in the past year. Several of them asked me how often the photos were updated. I explained how services like Virtual Earth and Google Earth use satellite images, and how the bird’s eye shots are probably a couple of years old. Then we went back to more questions about alpha software.

We ended the classroom day with a session on critical debate. I split up the room and assigned the kids to develop a pro-con debate on whether mobile devices should be allowed in classrooms. Most of the kids wanted them allowed, which made it a perfect topic for them to develop the con argument. We led them through how to research a debate point online – again, the skills they would need in the real world.

On Day 2, I introduced my group to Windows Vista. There was an interesting divide with the students. They had almost all used Microsoft Office, and some of them had used Office 2007—but almost none of them had used Vista. It was a simple demo, involving searching and using the Sidebar. I wanted to show them 3D flipping, but the machines we got didn’t have Aero abilities.
After that, we did the second day of the debate class. Now that everyone had researched their topics, I had them group together and hammer out a single presentation on each side.

Day 3 started with a surprise. We had an Xbox 360 and a Zune that we were going to raffle off to the kids. When the first staffers got to Stony Brook, the locked storage room was open, and the prizes had gone missing. Yup, some dirtbag had actually stolen the prizes. I had to spend my lunch running over to Best Buy at lunch and buying new ones.

I taught three classes on Thursday. I started with a unit on HTML, explaining how every Web page was just a bunch of HTML code, and opening up a few to give examples. We looked at some basic tags, and made a simple page or two. Some of the girls figured out how to open up their favorite pages and paste the HTML into their own page. Since the course was designed to spark interest, that worked pretty well.

The second class of the day was a winner – we wheeled in a bunch of old desktop machines and opened them up. We identified all the parts inside and what they did, and installed memory. After the class, one of the girls told me that it was really easy to upgrade a PC, and why would she have a store do it anymore? I showed them where the clock battery was, the difference between RAM and drives, how the power supply works, and all the parts of the motherboard. The kids kept asking what various small transistors on the machine were.

The final class of the day was the debate wrapup. I have to say, the kids raised some interesting points. For instance, what’s the difference between passing notes between periods and txting a friend? If the former is allowed, why wouldn’t the latter be? We had everyone vote on everyone else’s presentations, and the winners got some extra raffle tickets.

The debates wrapped up early, and I had more prizes to give, so I started coming up with trivia questions for everyone. The first one was “How old am I?” It elicited answers from 19 to 62. I asked who our senators are, and who the governor was:

“Is it…George Pataki?”
“No, but good guess. Pataki left office last year.”
“Is it…Governor Pataki?”

Well, points for trying. I tossed them a trick question, too. “How many kilobytes are in a gigabyte?” It took about five minutes for anyone to figure out that it’s really 1024x1024.

We all marched back to the Wang Center for the final ceremonies. I was swarmed when the kids saw the Xbox behind me, but we regained order and got everyone into the auditorium. After a few minutes of warmup, we were treated to a multimedia presentation that some of the girls had created, and then gave out the replacement prizes.

The girls were pleasantly surprised by the presentations; most all of them said they learned a lot and wanted to come back. I was surprised by what they were able to create when given just a little pointer. I also found it interesting that so many of them were so taken with OneNote! It’s a sleeper product, like SharePoint; they are both going to get a lot more popular in the next year.

The next time something like this rolls into town, I strongly urge you to volunteer for something. You don’t have to teach – you can just help at registration, or herd kids from one place to the next. But any involvement makes a big difference for everyone.

(Cross-posted on the MSDN Magazine blog.)

Thursday, July 5, 2007

Why I wear headphones on the train

Overheard conversations like:

"They're trying to get rid of talk radio."
"Why?"
"Because liberal Democrats hate it."

Tuesday, July 3, 2007

News For Your Health!

I'd like to extend a note of thanks to my health care provider (or maybe it wasn't even mine - was it Kaiser or Premera or Fidelis? I forget) for sending me my regular health newsletter. Packed full of four pages of utterly useless shit, the flyer manages to wag its finger at me numerous times while doling out gobsmackingly obvious advice.

Included are stories about:

- How you should use sunscreen when lying in the sun for 12 hours.
- How you shouldn't eat expired cold cuts or raw chicken at a picnic.
- Why stress at work isn't good for you.
- How eating ten corn dogs at a sitting will make you belch.
- How exercise is good for you.
- How alcohol gel kills germs on your hands.

Great stuff, that. You forgot the articles about remembering not to stab your eye out with a steak knife, and why you shouldn't aim the wrong way and pee in your face. At first, I thought that maybe the entire world is filled with utter morons who have to be reminded that smoking makes you cough and to not play lawn darts with toddlers. But then I realized what this was really about.

If the health care provider told you all these great ways to "stay healthy," that kind of counts as preventative care. They've done their part, so don't get all in their grill about actually covering checkups and yearly tests and shit. And if you do need an eye operation, tough noogies. They did tell you not to eat all those corn dogs.

Hurting our troops' morale

For years now, we've been hearing the same old screed: If you criticize Bush, look at the war effort, or question any tactics, you are hurting our troops' morale and aiding al-Qaeda.

You're serving in Iraq, on your fourth tour of duty. You were originally told that the whole thing would last maybe six months. There's no end in sight. Every time you go back, things seem right back where they were. You're not stupid - you read the news, and you know that we're grinding our wheels in Baghdad and around the country.

Which of these is going to hurt your morale the most?

  1. Laura Bush saying that no one suffers more than her and her husband over Iraq.
  2. President Bush saying that we're sending in troops to draw all terrorists to Iraq, using you as a human trap.
  3. Bush saying that he doesn't care much about Bin Laden's whereabouts.
  4. Endless predictions that the hostilities would be over in just a few more months.
  5. Rumsfeld shrugging when asked why the troops don't have the proper equipment.
  6. Being trained for combat and being used for rebuilding or schools and hospitals that just get bombed again
  7. Training Iraqi police that then take the weapons and perform sectarian violence.
  8. The Iraqi government taking a couple of months off this summer, while you swelter and fight for them.
  9. Eating spoiled food and drinking tainted water supplied by Halliburton to the troops.
  10. The damn liberal media reporting that casualties continue in Iraq and that we're not making much progress.
I don't know...those first nine seem like they would sap morale, but what do I know? It's almost surely #10.

Wow, he DID walk

The commutation of Scooter Libby's sentence is, in my opinion, this is an impeachable act. Bush has subverted justice because the person in question was part of the conspiracy that involved not only the person convicted of obstructing the investigation into the conspiracy, but also much of the top levels of the Bush administration. In other words, they were able to put it all on a fall guy, and then spring him.

To make it clear, several members of the administration worked in concert to burn a covert agent out of spite. And the covert agent was working on intelligence regarding the Iranian nuclear program. When you remember the simple rule - anything conservatives accuse liberals of doing is something they're doing themselves - it puts all the "criticizing the war is treason" calls into a new light. This administration has committed treason by publicizing top secret information that damaged our national interests.

Friday, June 29, 2007

15 Minutes, The Hard Way

A few months ago, a gentleman became a hero by rescuing a rider who had fallen onto the tracks at a subway stop. The savior has had quite a bit of attention since then, not that it's undeserved.
But anyway, I was on the subway yesterday, minding my own business, when a new ad caught my eye.

GET CHECKED. IT'S JUST WHAT YOU DO.

50 or older? It's time for a colonoscopy - NOW! (blah blah blah) Be a hero for yourself and your family.

Picture: Subway hero Wesley Autrey with daughters.


Now, I know that some people are more attached to their 15 minutes of fame than others, but why would a subway hero make me get myself checked? "We've tried everything to get these people to have their asses checked. Maybe they'll listen to a subway hero."

It might've worked better with an alternate headline. Maybe... "Subway Hero says: Catch cancer NOW, before it gets into YOUR tunnel!"

Saturday, June 23, 2007

Roto-Rooter

Roto-Rooter was supposed to show up between 8 AM and 11 AM today. They showed up at 3:34 PM.

Now, call me old-fashioned, but I remember back to the old days, when "service" actually meant something. When your appointment was between 8 and 11, dammit, you showed up by 2:45 PM. No excuses. I guess it's too much to expect anymore in this day and age.

Why I (heart) British Sea Power

From their newsletter:

These shows serve as advance heralds for the third BSP album - ‘Now That’s What I Call World War One Joy Division’ - which is scheduled for the Autumn.

Wednesday, June 20, 2007

When stories collide: Pope edition

Road Rules: Vatican City
VATICAN CITY, June 19, 2007

(AP) Got road rage? The Vatican on Tuesday issued "Ten Commandments" for drivers, telling motorists to be charitable to others on the highway, to refrain from drinking and driving, and to pray you make it before you even buckle up.



Priest Crashes Into Restaurant, Arrested For DWI
Jun 19, 2007 9:29 pm US/Central

(CBS 42) SMITHVILLE A Smithville priest is charged with drunk driving after crashing the pickup truck he was driving into a restaurant.

Father Karel Fink, the pastor of St. Paul Parish according to the Diocese of Austin, was arrested Monday night for DWI.

Tuesday, June 19, 2007

FREE SCOOTER LIBBY!

When he goes to jail for his multiple federal convictions for lying and obstruction of justice, they should put a "FREE SCOOTER LIBBY" sign on his cell. You know, just to serve notice that other inmates won't have to cough up any cigarettes to purchase him for the weekend.

Saturday, June 16, 2007

Kirk and Spock

Having every episode of the original (aka ONLY) series on DVD now leads to a lot of questions.

1. After Spock takes the captain's chair, does he leave it like 175 degrees?
2. Why does Mudd have that stupid accent?
3. Do Gorns live in lakes in Florida?
4. When Jack the Ripper drops by for a visit, why does Scotty hate women after a woman caused an accident? Did he hate men after men caused other accidents?
5. This list is lame. Sorry.

Monday, June 4, 2007

Tragic news

My favorite blogger of all, Steve Gilliard, died over the weekend at the age of 41. He had gone into the hospital in February to treat an unspecified infection, which gave him a cough, fever, and some other symptoms. It got to his heart, and he fought it for over three months.

He was a fierce defender of good, and no one else could call bullshit better than he. Not the fake type of high dudgeon you see from so many conservatives, but real indignation and analysis drawn from his extensive knowledge of military history, race relations in America, and innate disgust with the crap that the administration has shoveled at us for years now. I learned a lot from him, even when I didn't completely agree with him. (I still don't like Al Sharpton, but he was the first person who really explained why Sharpton is a popular and powerful figure.)

Best of all, he hated the Yankees as much as I did. Fuck the fucking Yankees.

Steve made the world a better place, and I can't believe he's not here anymore.

Wednesday, May 30, 2007

When stories collide: Dog edition

A mystery in Westchester.

Did Wild Coyote Snatch Vanessa Williams' Dog?

The pet Yorkie belonging to actress-singer Vanessa Williams is missing. Enzo disappeared from her Chappaqua yard Monday, becoming the second pooch of a high-profile owner to go missing from northern Westchester since Mother's Day.

While Williams raised concerns that there's some sort of dognapping ring, Mount Pleasant Police Chief Louis Alagno suggested another theory: Coyotes are snatching the bite-size pets.


Never mind, we figured out what happened to Enzo.
LONDON - A British artist has eaten chunks of a Corgi dog, the breed favored by Queen Elizabeth II, live on radio to protest against the royal family's treatment of animals.

Mark McGowan, 37, said he ate "about three bites" of the dog meat, cooked with apples, onions and seasoning, to highlight what he called Prince Philip's mistreatment of a fox during a hunt by the Queen's husband in January.

"It was pretty disgusting," McGowan said of the meal, which he ate while appearing on a London radio station on Tuesday. Yoko Ono, another guest on the show, also tried the meat.

Sunday, May 27, 2007

Herb's Market

I dropped by Herb's Market to pick up lunch today. As they finished making my sandwiches, the woman said "Wait, you're the guy who wrote about us!"

Confused, I said "Uh...no I'm not."

She replied, "Yes you are, I never forget a face."

I thought back hard. "Did I say something nice?"

The woman shook her head and said, "No. You called us stupid."

It dawned on me that she had probably seen my critique of their long-gone fried chicken sign, which said "4 pieces, $4.00. 8 pieces, $8.00. 12 pieces, $12.00" on up to something like 47,200 pieces for $47,200.00. I pointed out then that the sign could've been shortened to "Fried chicken, $1.00 a piece."

Well, let me set the record straight right now. I apologize for anything I said that might've implied anything negative about Herb's Market in any way. Herb's is not stupid. Herb's is a great deli.

One of the things I like about Montauk is that the food isn't just an afterthought, and it's not just because I'm grotesquely obese. Life's too short to waste on crappy meals from Burger King, which is why I enjoy places like Herb's. I get sandwiches there almost every day when I'm out here.

To prove that I love them, and to provide pointers for others looking for good food in Montauk, here are the top ten things I like about Herb's.

1. Their fried chicken is reeeeeeally good. It's exceptional, with just the right salty touch in the batter. You can get it from the hot bar or order your own for big picnics. It's worth $5 a piece, which is what they'll probably charge me next time they see me.

2. They make really good BLTs. Tons of crispy bacon, fresh lettuce (not iceberg!), and plump tomatoes. You know when you get tomato on a sandwich and you end up taking it off because it's pale pink and chewy? We've never had one like that at Herb's.

3. They have homemade potato salad and macaroni salad that's about an order of magnitude better than what you'll find at a place like the IGA.

4. They sell Tate's cookies.

5. They always have good crunchy snacks, like Salsitos, and more importantly they have Irish crisps.

6. They have a bunch of good marinades, which work well with the prime meats they sell.

7. They hand-trim the meat that you get from their counter, even trimming the gunky membrane stuff off boneless breasts.

8. Every sandwich I've had there has been thick with meat. They don't skimp on anything, and their cold cuts are never weird-tasting or fatty. It's like the opposite of Quizno's. I suggest the chicken cutlet with swiss, lettuce, and tomato on rye with Russian.

9. They make really good smoothies in the back, near the hot bar. And unlike most places, not all their smoothies have banana in them.

10. They let me buy the sandwiches today, even though I evidently called them stupid once. Which I didn't mean to.

When you want to pick up sandwiches for the beach, or meats for the BBQ, nothing's better than Herb's Market in Montauk. They go great with an afternoon at Gin Beach.

Saturday, May 12, 2007

When you outsource headline writers...

You get headlines like this:

Royals To Get A Taste Of Angels' Colon

(Sports Network) - Bartolo Colon attempts to win his third consecutive start off the disabled list tonight for the Los Angeles Angels of Anaheim, who will be aiming to continue their recent dominance of the Kansas City Royals.

Friday, May 11, 2007

Roger that

So anyway, there's like this guy, Roger, who craves attention and who named this, like, the most useless blog in the universe. I'm not going to link to him to encourage him but just remember - I have YEARS of unread content, while he has like three things on his blog.

The throat hole

You know, I don't even smoke. I've never smoked. I will never smoke. And yet every five minutes, I am subjected to an ad where throat cancer victim Ronaldo Martinez tells me to stop smoking or I'll end up talking with a voice box like he does. OK, I GET IT. If you smoke too much you'll end up with a cool Darth Vader voice.

So this morning, I'm in the shower as my little morning radio blares next to the sink. I hear the ad come on. Not again - I'm so sick of listening to Throat Guy talking. (No offense to Throat Guy, but I'm not the target demo.) Then I step out of the shower. It's not even his voice on the radio - it's a talking didgeridoo from Outback Steakhouse. I guess there's at least one positive about having a hole in your throat - if you do find yourself accidentally eating a rapidly congealing platter of Outback cheese fries, they have a shorter, more direct evacuation route.

Tuesday, May 8, 2007

Next, wrestling my router to the ground

Another step towards victory.

After getting SharePoint 2003 nice and cozy on my server, I decided to upgrade to the latest, greatest version, 3.0. Woe is me.

I ran the installation, and it hit a couple of minor glitches, but ended up working OK. hen I ran the configuration wizard. Uh oh. It was a 12 step process, and it crudded out on step 10 every time.

I looked at the logs: NullReferenceException. Every time. The logs also contained the trace of where the problems occurred, in great detail. Helpful? Maybe, but probably not so much.Plus, it's a huge file because the SharePoint setup logging is quite verbose.

03/2007 14:15:38 11 INF Retrieved the content service and content service instance, now enum the web applications to see if there is a match with template STS
05/03/2007 14:15:38 11 INF Site with uri http://myurlhere.com/ and port 80 and template STS could not be found
05/03/2007 14:15:38 11 INF The site http://myurlhere.com could not be found in the Web application SPWebApplication Name=MY URL HERE Parent=SPWebService.
05/03/2007 14:15:38 11 INF Site with uri http://cynicor.com/ and port 80 and template STS could not be found
05/03/2007 14:15:38 11 INF The site http://cynicor.com could not be found in the Web application SPWebApplication Name=Cynicor Parent=SPWebService.
05/03/2007 14:15:38 11 INF Cannot find a site matching template STS
05/03/2007 14:15:38 11 INF Leaving function SPEvaluatorModeProvisioning.TryGetIsSiteProvisioned
05/03/2007 14:15:38 11 INF Leaving function SPEvaluatorModeProvisioner.IsProvisioned
05/03/2007 14:15:38 11 INF The default site url is http://myserver/, port 80
05/03/2007 14:15:38 11 INF The owner account for the default site is mydomain\administrator
05/03/2007 14:15:43 11 INF The owner email for the default site is someone@example.com
05/03/2007 14:15:43 11 INF The db server for the default site is myserver\Microsoft##SSEE
05/03/2007 14:15:48 11 ERR Task evalprovision has failed with an unknown exception
05/03/2007 14:15:48 11 ERR Exception: System.NullReferenceException: Object reference not set to an instance of an object. at Microsoft.SharePoint.Administration.SPConfigurationDatabase.CreateSite(SPWebApplication application, SPContentDatabase database, String originalPath, Guid id, Pairing pairing, Uri redirectUri, Boolean useHostHeaderAsSiteName, Boolean bypassExistingSiteCheck) at Microsoft.SharePoint.Administration.SPConfigurationDatabase.CreateSite(SPWebApplication application, SPContentDatabase database, String path, Boolean useHostHeaderAsSiteName) at Microsoft.SharePoint.Administration.SPSiteCollection.Add(SPContentDatabase database, String siteUrl, String title, String description, UInt32 nLCID, String webTemplate, String ownerLogin, String ownerName, String ownerEmail, String secondaryContactLogin, String secondaryContactName, String secondaryContactEmail, String quotaTemplate, String sscRootWebUrl, Boolean useHostHeaderAsSiteName) at Microsoft.SharePoint.Administration.SPSiteCollection.Add(String siteUrl, String title, String description, UInt32 nLCID, String webTemplate, String ownerLogin, String ownerName, String ownerEmail, String secondaryContactLogin, String secondaryContactName, String secondaryContactEmail, Boolean useHostHeaderAsSiteName) at Microsoft.SharePoint.Administration.SPSiteCollection.Add(String siteUrl, String title, String description, UInt32 nLCID, String webTemplate, String ownerLogin, String ownerName, String ownerEmail, String secondaryContactLogin, String secondaryContactName, String secondaryContactEmail) at Microsoft.SharePoint.Administration.SPSiteCollection.Add(String siteUrl, String title, String description, UInt32 nLCID, String webTemplate, String ownerLogin, String ownerName, String ownerEmail) at Microsoft.SharePoint.SPEvaluatorModeProvisioner.Provision() at Microsoft.SharePoint.PostSetupConfiguration.EvalModeProvisionTask.EvalProvision() at Microsoft.SharePoint.PostSetupConfiguration.EvalModeProvisionTask.Run() at Microsoft.SharePoint.PostSetupConfiguration.TaskThread.ExecuteTask()

What could be causing this? I had no idea, but staring at the log for a few minutes made a light go off: my router was failing me. It was obvious!

A couple of years ago, I got a Belkin router/wireless station. It worked decently, and had a nice Web interface that let me set up everything I needed. However, it wouldn't let me get to my own sites by name. If I went to www.cynicor.com from inside the firewall, it would redirect me to the router's administration page.

I finally figured out that there WAS no way to repair this problem. Any request coming from inside the network would go out to the router, who would figure out that it was coming from inside the network and redirect port 80 calls to the router. I asked Belkin what to do. They said "just set your Web site up to use a different port, or call it by IP address internally." The problem with configuring that is that I have multiple domains that live on my server, and calling by internal IP won't allow Windows Server 2003 to filter the requests by header.

I wrote back to Belkin and asked if I could change the admin port on the router. They said no, and I would need a router with port address translation to make this work. Instead, I bought a LinkSys router at Best Buy. The LinkSys router lets you change the administration port it uses, and it defaults to 8080. This solved my port 80 problem! Now to test SharePoint.

I ran the configuration utility again, and it worked like a champ. No more exceptions. I went to bed and slept like a baby.

When I got into work the next day, I wanted to look at the server a bit more, so I tried to use Remote Desktop to get in. Oops, I'd forgotten to open that port. On the Belkin, I foolishly set the server to be the DMZ, which allowed port 3389 (and everything else) to pass through. I had enabled remote administration on the router last night, so I was able to access the port settings from work, through port 8080. Two minutes, a couple of clicks, and I was RDCing again.

Thursday, May 3, 2007

Great shot!

Hey, let's go lens shopping.

This wide-angle lens looks nice! Let me click on the "enlarge" link to see a high-res version of the product shot.

Monday, April 30, 2007

Day By Day

Day By Day is a painfully unfunny, Republican comic strip that finds most of its audience on the Web. Various corners of BlogWorld have started a contest for the best cartoon remixed to resemble one of these atrocities.


I, of course, feel that to do it true justice, the cartoon should be in its original form, with Day By Day dialogue pasted in. So voila - this makes as much sense as the average Day By Day (click for full size):



UPDATE: A second one.