Every year, I spend the Sunday after SQL Saturday Rochester scanning & processing raffle tickets for our wonderful sponsors. Here’s how the system works:
Attendees get tickets (one ticket per sponsor) with their name, the sponsors name, and a QR code on them
The QR codes represents a URI, unique to the combination of event, attendee and sponsor.
Attendees drop their tickets in a box to enter the sponsor’s raffle prize drawing
When the URI from the QR code is accessed, it registers in the SQL Saturday system
Organizers run a report for each sponsor that includes the contact info of all attendees who dropped off a raffle ticket, then email the report to the sponsor
It works pretty well, but the hangup is that most QR scanners will open your web browser (or prompt you to open it) to the URL on each scan. For 150+ tickets, this takes a long time. Every year, I lament “oh, how I wish I could just scan these, collect the URLs into a nicely formatted file, and script this whole thing”.
Finally, this year, I found a way to do it with my iPhone, MacBook Pro & PowerShell. Here’s what I did:
Scan the tickets. This app is really fast, it may scan before you even realize it. I just stacked them up, pointed the phone at the pile, and as the app beeped (to tell me it had scanned successfully), I tossed the ticket to the side.
When done, tap the file box icon in the upper-right corner
Tap the Share icon
Save the file out to a CSV on iCloud (you can email it if you like, but iCloud is a little easier for me)
On the Mac, open up Terminal and navigate to /Users/YOURNAME/Library/Mobile Documents/com~apple~CloudDocs
Fire up PowerShell (I installed it via HomeBrew with brew install powershell and start it by running pwsh).
Run the following one-liner:
This bit of PowerShell:
Imports the CSV file and forces column names (as the file doesn’t include them) of my choosing
Extracts the unique URIs from the data
Loops through all the URIs and invokes a web request to each one of them
It’s the same process I’ve used in the past, just much faster because I’m not pausing after each scan to load a URI in my web browser.
With nearly 300 raffle and attendance tickets scanned, this zipped through all of them in less than 90 seconds. Best of all, I could start it and walk away to do something else. Doing it this way made my SQL Saturday “closeout” process a little less stressful.
A couple weeks ago Carlos L. Cachon (b|t) put out a call on Twitter looking for SQL Saturday organizers to join him on the SQL Data Partners Podcast. When I signed on to record, I learned that Chris Hyde (b|t) and Eugene Meindinger (b|t) were joining us. I’ve met and spoken with all three previously, so it was easy talking to everyone and I thought the conversation flowed well.
I am very happy to announce that SQL Saturday returns to Rochester, NY on March 24, 2018. This is the Flour/Flower City’s seventh SQL Saturday and SQL Saturday #723 overall. This is a little earlier than in years past due to the scheduling of other SQL Saturdays as well as the availability of our venue and key people, and I can’t wait to see how this change works out.
SQL Saturday is a free one-day event for anyone working with the Microsoft data platform. Whether you’re a DBA, developer, work in PowerBI, work with people who spend their day with data, on-premises or in the cloud, or are just curious about it, this is the event for you.
SQL Saturday is a free day of training centered on the Microsoft Data Platform. Volunteer speakers come from all over the country (and sometimes beyond) to share their knowledge with attendees. There are sessions available for professionals of all skill levels, whether you’re just starting to learn about databases or a seasoned veteran, in addition to valuable professional development guidance.
Why should you attend?
Free training from renowned experts
Network with other professionals in the field
Check out new products and services from our sponsors
Do you work for a company that offers products or services that would be of interest to developers, data professionals or system administrators? Please consider sponsoring our event! We offer several sponsorship plans and if you don’t see something that quite works for you, let us know and we’ll discuss a custom sponsorship plan.
Get face time with data professionals in our local community
Learn about the topics that are front of mind for developers and DBAs
SQL Saturday attendees and presenters are people who are taking time out of their weekend to grow their professional skills and networks. They are leaders and decision makers. They are the people you want in your organization and advising their management teams about infrastructure, architecture and software purchasing decisions
Our call for speakers is open through March 7th, 2017. Don’t let a lack of speaking experience stop you! You’ve got lots of time to rehearse and many SQL Saturday speakers have spoken first at SQL Saturday Rochester.
Follow #SQLSatROC on Twitter and join us in April!
It took a while for me to build up the courage to finally get up in the front of a room at SQL Saturday. As I mentioned in my prior post, I did quite a bit of studying of other peoples’ sessions, read peoples’ studies of other peoples’ sessions (Grant Fritchey’s “Speaker of the Month” series) and talked to a few people at the speakers’ dinner. Here are a few of the key things I learned which put me more at ease.
Everyone gets a little nervous
Feeling a little twinge of nerves is completely normal, even for seasoned speakers. Those feelings are what keep you on your toes. Get “comfortable”, get complacent, and you’ll probably overlook something.
Your audience is there for you
If you’ve only ever spoken previously in a classroom setting or making a pitch at work, SQL Saturday is very different. In those other scenarios, you have a mandated audience. People are there because they have to be there. They don’t really care much about you or what you have to say. At SQL Saturday, your audience is has opted into your session. They’re there because you have something they want. They’re receptive. They’re giving you their time and attention.
It’s OK to unwind after you speak
I don’t mean you should run out of the room as soon as you’ve finished the last slide. People may have questions they want to ask you. But if you need to go to the speaker’s room for a bit to decompress and unwind afterwards, it’s OK.
You’ll never finish the slide deck
I completely redid one slide on Thursday night, and was still fiddling with a few others Saturday morning. Just don’t tell people that you were working on it right up until the last moment; as long as what you say matches up with what’s on the screen, they don’t have to know.
It’s only SQL Saturday
That’s not meant to diminish SQL Saturday at all. But you’re not hosting the Oscars. If something goes wrong, it’s not happening live on TV with 50 million people (including your parents and kids) watching. You aren’t a paid professional speaker – you’re just there to share with people. People will give you some slack if you aren’t perfect.
It’s important to look at the feedback you get (attendees: please fill out those evals!). Reflecting on what went well is just as important as looking for areas of improvement.
What went well
I hit all but one of the points I wanted to hit. The one I missed wasn’t critical.
I didn’t run short on time. I think I paced myself pretty well, and took a sip of water when I felt I needed to slow myself down.
All my demos & equipment worked. My demos depended upon Azure, and RIT (our hosts) made major improvements to their guest network since last year.
I picked up a Logitech R400 remote so I wasn’t tethered to the podium for changing slides. I’m a “fidgety” kind of person, so in addition to achieving that goal, it gave my hands something to do without attracting attention
I didn’t spontaneously combust
What I need to work on
People want demos, not talk and slides. I’m already working on trimming the deck down to give myself more time to show and explain code.
I had trouble reading the audience. This is something I have trouble with elsewhere as well. Maybe I need to pick up a book on body language.
Most of my attempts at levity fell flat. I knew I was rolling the dice and while I didn’t roll snake eyes, I didn’t roll a 7 or 11 either. I also had one obscure reference which I knew only one person in the building would be likely to pick up on, but he wasn’t in the room. That one didn’t hurt me, but had I been able to find the image I really wanted, it would have worked better.
I didn’t move around as much as I wanted or expected to. I thought I was going to make more use of the notes I’d written in PowerPoint but to read them, I would have had to stay too close to the podium. Next time, fewer notes & more moving around.
I’m looking forward to working on that last point. I was disappointed with how few demos I had for my session, and that feeling was backed up by some of the feedback I got. Next time, it’ll be better.
I’m not sure when the next time will be. Unfortunately, the SQL Saturdays that are close enough for me to get to interfere with other obligations on my calendar.
That is the first and last Katy Perry reference you will find on this blog or anywhere else in my life.
Last weekend I spoke at the 4th edition of my “home” SQL Saturday, SQL Saturday #383. This was the end of a path that started four years ago, and the beginning of an exciting new one.
About four years ago, I was introduced to PASS. It didn’t take long for people to start talking to me about public speaking. I went to my first-ever SQL Saturday, and kept thinking to myself “I could never do that.” Then I was given the opportunity to attend PASS Summit 2012 and was hooked on the PASS community – SQL Family. I stepped onto the floor at the convention center and felt comfortable immediately. I think my exact words when I called home that evening were “I’m home. I found my people.” Mid-Summit, in a 10-minute conversation with a chapter leader, I was told “you should speak at one of my user group meetings.”
But I have nothing to talk about. I’m terrified of public speaking. I’ve only ever done it in a classroom, in college or high school and I hated it. It terrified me. And I’m not an expert on anything. Well…maybe. Someday. A long time from now.
Time passed. I got involved with my local PASS chapter, got heavily involved with our annual SQL Saturday events, and got to know (or at least meet) more people in the SQL Server community. And I kept hearing the question “so when are you going to start speaking?”
But I have nothing to talk about. I’m not a speaker. I don’t have the polish that all these people on stage at Summit or in the front of the room at SQL Saturday have. I’m not even a DBA!
In 2014, one of my professional development goals at work was to give at least two presentations. I pretty much didn’t have a choice now, I had to get up in front of a crowd. So I wrote & delivered two sessions:
An introduction to PowerShell. Adoption of PowerShell had been slow in my office and I wanted to demonstrate how it could benefit the entire IT department. This wasn’t targeted at any particular job role; I was addressing the whole department.
A demo of SQL Sentry Performance Advisor & Event Monitor. We’ve been using this software for a few years now and I’ve spent quite a bit of time getting comfortable with these two portions of it, mostly in the course of figuring out why our systems were running poorly.
I was starting to get a bit more relaxed about talking in front of people. But this was a comfortable environment – I knew everyone in the room. That summer, I attended Mark Vaillancourt’s (b | t) session DANGER! The Art and Science of Presenting at SQL Saturday Albany, looking to fill in some gaps and figure out how to put myself at ease in less familiar territory.
Well, maybe I can put together a beginner-level session.
In February 2015, I attended SQL Saturday Cleveland. One of my goals for the day was to catch beginner-level sessions. I wanted to study the type and depth of the material, as well as how it was presented. Late in the day I had my breakthrough moment. The room was completely packed and the crowd was hanging on the presenter’s every word. I finally had a grasp of how to tailor a topic to a “beginner” audience.
I don’t have to put on a flashy show with 20 different advanced features and techniques. There’s room for the basics because there are always people who are new to this stuff and they want sessions too!
That same month, we needed a a speaker for our chapter meeting and rather than find someone to do a remote presentation, I decided to dust off my PowerShell talk from work, retool it for a DBA crowd, and go for it. It went pretty well, and the next week I took the plunge. I wrote up an abstract and submitted for SQL Saturday.
Pressing this button is one of the most nerve-wracking things I’ve done. Deep breath…go.
At the chapter meeting, I’d gone over 90 minutes with my slides and demos. At SQL Saturday, I’d only have 60. I had my work cut out for me. I spent April tweaking and tuning my slide deck, honing my demos. I felt like I had a pretty solid setup. The Sunday before SQL Saturday, I sent myself to the basement and started rehearsing my presentation. I went 48 minutes. Without demos or questions from an audience (proving that cats don’t care about PowerShell).
Hard stop at 60 minutes. What can I cut? Where did I waste time? Am I speaking too slowly?
Every night that week I was in the basement, running through my presentation and demos. I got myself to 55 minutes for the whole package.
That’ll have to do. If I get questions mid-session, I’ll just drop a demo or two to make up the time.
I arrived home from the speaker dinner Friday night and did one last run through my deck. I had just redone one of my big slides Thursday night. Friday was a terrible run, but it was getting late. I had 38 minutes on the slides themselves.
Saturday morning, I awoke at 6 and my brain was already in overdrive; on a scale of one to ten, I was at an eleven. I fired up my Azure VMs so they’d be ready well ahead of time and hit the road for RIT. I found my room (I was speaking in the first slot) and got myself set up. I wanted to check and re-check everything. I was not about to let a technical problem take me down.
That settled, I milled around a bit and as 8:15 arrived, I found myself escalating from 11 to 15. People started filtering into the room and I tried to chat with them a bit as I’d read about doing so in Grant Fritchey’s (b | t) most recent Speaker of the Month post. That helped calm me down a bit.
8:30. Showtime. Breathe.
I feel like I fumbled a little bit on my intro (before I even got off my title slide), but by the time I hit my 3rd slide, a calm fell over me. I got out of my head and cruised through the material. It seemed like it was going smoother than any of my rehearsals. I wasn’t relying on my written notes. I got a couple chuckles out of the audience before I reached my demos. As I returned to the keyboard, I glanced at the clock.
What? 9:00? I burned through my slides in 30 minutes and I’d planned for close to 40. Am I speaking that quickly? Did I stumble that much when I practiced?
Fortunately, I’d set up my demos in preparation for such an event. I had a set of “must do” demos, and then a bunch of alternates which I could bring in to fill some time. I got through my demos, answered the lone question I was asked, and wrapped up right on time.
As people filtered out of the room and I started packing up, an enormous weight was lifted off my shoulders. I was done. I survived. And scanning through the feedback, it looked like I did an OK job. Reading through it later, I saw a few notes that meshed with things I was thinking during the session, and I will definitely take into consideration for the next time.
Yes, the next time. I’m doing this again. I’m hooked.
We’re already in the early stages of preparing for our 2015 SQL Saturday. One thing that was missing from this year’s event was local speakers; we just didn’t have many, and I’m hoping we can change that the next time around.
For a lot of people (myself included), getting into speaking can be intimidating. Do I even have something interesting to say? What if I can’t fill an entire hour (or 75 minutes)? What if I get everything all wrong?
One session held each day at PASS Summit may hold the answer – Lightning Talks. In a standard session time block, 5-7 speakers each present for only about 10 minutes each. Step up, hook up your laptop, talk about a very focused, narrowly-scoped topic, and then yield the floor to the next speaker.
I held my own “lightning talk” at work one day as an experiment. While working on some reports, I found an alternative way to write a portion of the query which resulted in a significant improvement in the execution plan. I brought my team together, gave a brief intro (basically, the preceding sentence here), then gave a demo:
Present both versions of the query
Explain the change made for the faster version
Run the query
Compare I/O and time statistics
Compare the execution plans
With a couple of questions and some technical difficulties sprinkled in, it was over in just under 15 minutes. Not bad, and with some practice & honing, I think I could get it to 10 minutes.
Could this work at SQL Saturday scale? I think it’s mostly a matter of finding volunteers. But this should be easier than full sessions. Everyone has at least one thing they’ve discovered, learned, experimented with or implemented in a creative way that’s worth sharing – even if it’s something very brief. With it being only 10-15 minutes, you don’t have to worry about filling a full session slot or losing the audience.
This past weekend I made the journey to Cleveland, OH (Westlake, actually) for SQL Saturday#241. I’ve attended two local SQL Saturdays in the past (helping organize/run one), but seeing the list of speakers and knowing a few of the local chapter members, I couldn’t pass up the opportunity to visit.
I packed my bags and hit the road. It’s about a 300 mile trip so I gassed up, settled in with my backlog of podcasts and set the cruise control. The drive was almost zen-like. The sky was clear and the sun shining (almost painfully bright) and I don’t recall the last time I took a road trip solo. It was a very relaxing drive.
After arriving at the hotel and settling in, I went out for a bit to stretch my legs and get some fresh air before searching for dinner. Forgetting that most people coming from out of town are speakers and there’s usually a speaker’s dinner on the Friday night before SQL Saturday, I had trouble finding people to meet for dinner. Ultimately I met up with Travis Garland (t) and his team at the Winking Lizard in downtown Cleveland after a 20 minute search for parking. I wasn’t able to stay too late as I wanted to be up early on Saturday.
6 AM is pretty early when you’re on the road. I pulled myself out of bed, packed up my stuff, got ready & headed down the road to Hyland Software, the venue for the event. The place is set up perfectly for a SQL Saturday. Great layout, a good amount of space, and terrific technical facilities.
After getting registered, I made the rounds of the vendor tables & caught up with several of the people I was looking forward to seeing again, including Karla Landrum (t), Hope Foley (b|t), Allen White (b|t), and Kendal Van Dyke (b|t). While I was at it, I managed to meet one new person, Wendy Pastrick (b|t) – so immediately the weekend was a networking success (one of my goals was to meet & talk with at least one new person this weekend, and I was up to 5 by 8:15 AM on Saturday). After the opening remarks from Allen, Thomas LaRock (b|t) and Adam Belebczuk (b|t), it was time to get our learn on.
Session 1 – Query Performance Tuning: A 12 Step Program
Query performance is always a concern for DBAs, developers and users alike. Thomas & Tim Chapman (t) presented a great series of steps to take while investigating slow queries, and did it in a very engaging way. Some of these techniques I was already familiar with, but there was plenty of new material in here as well. The biggest surprise to me was that they put examining execution plans halfway down the list – 5 stages of investigation before even looking at the plan! The execution plan is usually one of my first stops in trying to optimize queries, but I’m going to adjust that thinking going forward.
Session 2 – Writing Better Queries with T-SQL Window Functions
Confession time: this was my “backup” session. I had planned on attending Grant Fritchey’s (b|t) Statistics and Query Optimization session, but by the time I got to the room it was standing room only with a line out the door. So I crossed the hall to this session, presented by Kathi Kellenberger (t). I’d heard about window functions before, and seen them in blog posts, but had no idea what they were really good for. Kathi presented the material in a very clear, relatable way and by the end of it my mind was racing, trying to find scenarios at work where I could put them to use. I’m very happy that I landed in this session – lots of great stuff to work with. It’s rare that I sit in a session where I know nothing coming into it and feel like I can apply the knowledge gained immediately. This was one of those sessions – highly recommended if you see Kathi presenting at another PASS event.
Session 3 – Code Management with SQL Server Data Tools
I’ve dabbled with SSDT a bit, but never been able to put it to good use for a variety of reasons. Lisa Gardner (t) presented this session and provided good information around some of the things that I’m trying to implement better in my environments – namely automated deploys and keeping environments in sync. I’m not sure when exactly I’ll get to use all of it, but now I know more about what situations call for it and a start down the path of using it to its fullest potential.
The provided lunch was good, a self-serve taco bar and lots of available seating. There was plenty of seating available in the common areas, but several sponsors had presentations in the training rooms and I took a seat with SQL Sentry. I’ve been using their Performance Monitor and Event Manager products for a couple years now, but always forget about Plan Explorer so I soaked up the demo.
Session 4 – Discover, Document & Diagnose Your Servers on Your Coffee Break
I’ve been working with Kendal for a while and I was eager to see what SQL Power Doc was all about. I came for the PowerShell and stayed for the amazingly detailed documentation of any SQL Server environment. I lack the credentials to run it at work, but I know that it’s being run on a regular basis on our network. It’s everything you wanted to know about your environment but didn’t know it could be documented. The volume of information it churns out is amazing. Note to self: run SQL Power Doc against my computers where I have dev instances set up.
Session 5 – Spatial Data: Cooler Than You’d Think!
I’ve wanted to see this session since I first heard about it last year. I have a project I’ve been working on for a bit that has a lot of GPS data in it and I was eager to learn from Hope what else I could/should be doing with it, as well as validating that I was already on the right track. I got some good ideas here with regard to how my tables are defined and what options are available for mapping the data I’ve captured – something that I hadn’t even considered yet.
Session 6 – Making the Leap from Profiler to Extended Events
I met Erin Stellato (b|t) at PASS Summit 2012 during #SQLRun, and her session about DBCC was the first regular session I attended that week (portions of which were way over my head – not an unexpected phenomenon). So I had to check this session out. I don’t do much with Profiler but I know it’s going away and I want to be ready. This session was a great introduction to XE without getting into too much complexity, and she did a great job of showing off some of the aspects of XE that make it so much better than Profiler.
Raffle drawings! I continued my non-winning streak.
After wrapping up at Hyland Software and dropping all my stuff at the hotel, I headed over to Dave & Buster’s for the after-party. Some game credits were provided, but I was there more to talk to people than play games (aside: I’m really bad at meeting people & “working the room.” I’m better at it than I used to be, but it’s still something I have to work very hard at). I spent most of the event camped out at a table with a rotating cast, but I left without catching up with everyone I wanted to speak with.
After Dave & Buster’s, a few people were headed to the “other” hotel for a few hours of Cards Against Humanity & invited me to join. I’d never played before, and did pretty poorly, but it was a hell of a time. I just wish I was staying at that hotel so I didn’t have to worry about making the drive back to mine.
After being out until 1 AM, my 7 AM alarm sounded way too early. I slowly rolled out of bed, packed up & prepped to hit the road. In sharp contrast to my drive to Cleveland, the drive home was looking a bit rough with lake-effect snow on the radar until my halfway point. Of course, as I approached that point I checked again and saw that snow would follow me all the way home. It was slow, treacherous going in places but I managed to stay on the road and got home without any drama.
Everyone involved with this SQL Saturday did an amazing job. Terrific venue, terrific speakers, and everything seemed to go off without a hitch. If you haven’t been to a SQL Saturday and there’s one coming up near you, take advantage of the opportunity to attend. Just being around the PASS community can stir up or re-ignite a passion for all things data-related. And as always, the biggest thing I learned this weekend is that there are so many more things out there for me to learn.
I brought a backpack and PC with me to collect swag and possibly fiddle with a project while I was at the event, but it just ended up being a lot of dead weight I carried around all day. Next time, I’m leaving the computer at home and replacing it with a big battery pack for my phone.
I can’t wait to make the trip to Cleveland again next year – in the meantime, there’s #302 & #303 this summer which I’ll be attending