Rochester Wing Theory

Today I learned that apparently the best wings in Rochester can be found at *drumroll* the Klassy Cat.

This was shocking news to me. Imagine the last place on Earth where you would look for wings, and you have the Klassy Cat. (As the name suggests, people come here for other sort of entertainment.) And now we know that they also have seriously good wings, thanks to a new local site, Rochester Wing Theory.

The admins are two guys who have sworn oath to review as many bars, pubs, restaurants, strip clubs, and other establishments in the area as possible to find THE best wings in town. If you’ve ever had good wings, you know that this is some serious pro bono effort for the public. We all will benefit from this.

Conclusion: The guys have an excellent style and great sense of humor, and they review chicken wings for you in Rochester. Head over to Rochester Wing Theory and follow their adventures, then go eat some wings. Wings are good for you.

Running sum for last 12 months, SQL style

I’m going to tell you a little secret. Come, sit closer.

You know your running chart for every other dashboard, showing

the SUM / Average / Top / Least / etc.

of Sales / New customers / Quotes  / etc.

for the last…

1 hour / 1 day / 1 week / 4 weeks / 12 months / etc…. ?

In SQL world I’ve been solving the problem with dateadd() getdate().

sum(case when month(orderDate) = dateadd( mm, -1, getdate()) then orderAmount end) as [total order amount last month]

Of course if you want your chart to contain the last 12 months, you’d have to repeat the select 12 times. No brainer, redundant query.

Here comes this little trick I’ve been using:

SUM(orderAmount), month(orderDate)
orderDate >= dateadd(yy, -1, getdate())
ORDER BY –this is where the magic happens
year(orderDate) desc,
month(orderDate) desc

The ORDER BY has it all.

On a completely unrelated note: USA won 2-1 against Ghana!

Conclusion: Now you know how to write even shorter code for your running charts.

The Good, the Bad and the Ugly – part 2

A little while ago I did a roundup on two LMS out there – Opigno (‘The Good’) featured the article on their site as well.

Since that post we’ve been continuously testing Opigno, and I still couldn’t manage to install Moodle (‘The Bad’). However, I haven’t said a word on ‘The Ugly.’ Therefore, ladies and gentlemen, this is the time that I finish the article, and speak up about edX.

For those who are not familiar with edX – another platform in the arena, ‘cept for that this one actually puts the platform in good use as well. You can go to and start participating in free online classes. I do, too, this is what my dash looked like in June, 2014:



EdX was founded by MIT and Harvard, and was open sourced in June, 2013. The code can be found on GitHub, forks come from all over the world, including Stanford and Google. You, too, can download the code, but I’m warning you – you’re in for a difficult time.

For the purpose of getting the production stack first I tried with a Virtual Machine (edX feels most comfortable on Ubuntu), but the box was killing my memory and eventually I just snatched up an idle laptop, and put a fresh copy of Ubuntu 12.04 on it. There are decent instructions on GitHub to setup the environment and install the software, and yet it took me two weeks to get this thing to work.

I wish I could explain you what happened in that two weeks. Install ruby, install this, install that, start the edX installation process, run into an error, try again, fail better. I have never seen such a complicated installation before. Constant errors, luckily google was my friend every time, and someone had a solution to any of the errors I encountered.

Also, here is one more thing I didn’t realize, and it’s kind of silly. Hopefully you’ll read this article and not make the same mistake.

Once the installation process ended without errors, with other words: it was done, I somehow didn’t realize that we were done. I thought I have to rehash, or rake something, or run some additional commands. Wrong. Once the production stack’s playbook ran, and you get the green light, you can hit http://localhost:80 immediately and check out your new edX site. No additional steps required. EdX does come out of the box, it just takes a lot of patience to unbox it. A LOT of patience. Don’t give up.

So there you go.

Conclusion: You, too, can install edX, but the process will most likely do magic to your blood pressure.

Can’t save hosts file under Win Server 2008 r2

I’m just saving this for myself for future reference, and sharing the info with you in case you would run into the same issue.

Brian Smith here has the solution for us, let me clean my throat and gesture him to take the podium:

Click on the windows button, then type in “notepad” in the search box, you will see the notepad icon near the top of the window.  Right click it, “run as administrator” then open the file “%windir%\System32\drivers\etc\hosts” then go ahead and edit it.

Thank you for your valuable input, Brian.

Conclusion: Windows’ security is still stupid easy to bypass.

If I had a restaurant

I would build the 20% service fee into the prices.

Tipping should be based on performance, right? Turns out, it’s not. My experience shows tipping is based on everything BUT performance, and judging by the articles I’ve read, my assumption remains correct.

A couple things that influence tips:

  • Boobs. Male customers tip better if being served by young, blonde, busty servers. Female customers tip their male servers better.
  • Age. Young adults and teenagers tip better than mid-age customers.
  • Table size. The larger the table, the less tips (per person) the server gets.
  • POC and tourists. POC customers and tourists tend to tip less. POC customers and old ladies with strong Italian accent also tend to give me more attitude if we’re busy and I have to seat them at a noisier table, or when they don’t get a booth. From an experience I know how it feels to be a tourist, so I expect tourists to get upset. You can’t speak the language properly, can’t understand tonality and body language. Being in a foreign country is always stressful, so I know they’ll take it out on me. It’s fine. Regarding to POC, my theory is that POC have been kicked in the face by other people, other restaurants, other servers so many times, they expect the same to happen everywhere. Say what you want to say, this is still a very racist society. If I were as oppressed and mistreated as they are, I would be grumpy, too. Therefore POC get a pass in my book, even if I get criticized and yelled at by them on a highly frequent basis. (The winners of the yelling-contest are white mid-age, mid-upper class men, however.)
    Edit: As I said, we live in a racist society, so I’m walking on eggshells here. I understand this comment might come out very racist, despite all my intentions. Please note the fact that I also point out sexism, and the greediness of older generations in this same article. I’m picking on bad tippers, not POC.)
  • Performance. This seems to be a binary parameter in oppose to a continuous array. Meaning, if the server tipped well, she gets tips. If the server’s performance wasn’t satisfactory, she gets no tips. Even a small inconvenience in the serving experience results in huge drops in tips.
  • Awkwardness. My manager told me he gets $10-$15 on any average night when he sits at the door. (which then he gives to the kitchen, or buys a round for the servers at the end of the shift.) I was shocked, because I host on two of the busiest nights, and I’m happy if I get $15 out of tips IN TOTAL. He said, “you have to make them feel awkward. Be super nice, lean in, hold onto that credit card slip for just a second longer.” So I did, I made them feel awkward, and I doubled my tips. It’s guilt money – it’s not for my performance, but to make the customer feel less guilty in his/her own head. *mind blown*

Now a word on math, since we’re on my blog. At the restaurant where I work, an average person will drop around $30 on a meal. If Average Person wants to tip 15%, the total check ends up being $34.5. If Average Person wants to tip 20%, the check ends up being $36. See that right there?! It’s a matter of $1.5!
For Average Person the difference would be $1.5, which is loose change, pocket money. (Especially if Average Person already decided to go out and have dinner for $30.) For the server, that small sum of $1.5 adds up over one night.

Tips are part of a server’s/busser’s/bartender’s salary, and you shouldn’t have the power to adjust that salary unfairly. You, who come in once a month for 60 minutes, get drunk, make inappropriate comments, yell at the staff, complain about the prices: you shouldn’t be allowed to determine anyone’s salary.

I hope I’ll get to own a restaurant once, and in large, red letters write it on the cover of our menu:

“20% gratuity is built into our prices. If you think you’ve received excellent service today, please tell our staff. We’re always happy to hear your feedback. We, however, don’t require you to pay our staff’s salary – we already took care of that.”

Conclusion: When you tip, you think you consider performance, and performance only. NOT TRUE. Be a good person, and shell out that 20%.