That Diversity

The last session of That Conference is about to begin. I’ve been steeped in technology for three days. I oscillate from confident and excited to overwhelmed and tired. There is so much to learn. I want to play with my nascent Swift app, but another talk beckons…

And then it’s over. It echoed a common theme– be nice. It seems obvious, but it bears repeating because some people just aren’t listening. There’s such a positive vibe at That Conference that harsh comments stand out— a snide tweet about the registration lines and a casual “worst ever” dismissal of a talk.

The organizers, counselors, and campers are doing what they can. Clark reminded us it’s a family atmosphere and encouraged us to get uncomfortable— in a good way— and get to know our fellow geeks. A session on team building explained how to build trust with empathy and listening. Another explained how withering code reviews and post-mortem witch hunts destroy spirits and encourage hiding mistakes. There was even an open space to discuss our aggressive developer culture.

I’m confident that conferences, user groups, and anything else which gets us out from behind keyboards and in front of each other will have a chilling effect on chiding. It’s easy to snipe at pixels or talk behind backs; a face makes it real.

I also believe that increasing the diversity of our community will force this issue. Diluting the monoculture will help dissipate its caustic effects. Here again, That Conference is fighting the good fight. Their efforts brought in 42 women speakers this year, and they have a goal of at least half for next year. There’s still room for improvement— my scan of their website found only a handful of speakers of color— but they’ve taken good steps with a public commitment, outreach, a code of conduct, and women’s t-shirt sizes.

They also gave me a chance to talk about this issue last year, and yesterday one of the attendees of that talk came up to me to thank me for giving him something to think about over the last year. So it’s working. Our culture is evolving, but we need to keep pushing.

Thank you to the organizers of That Conference for bringing us together to share knowledge and build our community. I hope to come back next year and continue to grow and make connections.

The Gift that Keeps on Giving

T-SQL Tuesday Logo

Chris Yates is hosting T-SQL Tuesday #080 and asks us to come up with a SQL-related present such as the gift of knowledge. Rather than simply share some tidbit of information, why not teach folks to fish?

Someone recently asked me how they could get started learning about SQL Server. Like many in technology, I’ve just learned things along the way, so I didn’t have an organized response. My first instinct of course was to Google “learn sql server”. I saw some of the usual online training suspects like Udemy, Lynda, and w3schools. Strangely, Pluralsight didn’t make the first page, despite several lessons by the prominent SQLskills crew.

At the time, I missed what appears to be an excellent summary on becoming a DBA by John Sansom (@SQLBrit) and my advice ended up as a list of relevant SQL-related websites. I thought I’d expand on that here and perhaps evolve it as time allows.

I find one of the assets of SQL Server is its community of professionals and PASS is the heart of that community. Through its local and virtual chapters, it “empower[s] data professionals who leverage Microsoft technologies”. If you have a local chapter– mine is PASSMN– you should join it immediately. Typically these user-run groups offer free food and training on a monthly basis.

PASS Summit “is the world’s largest and most intensive technical training conference for Microsoft SQL Server and BI professionals.” It’s put on annually, usually in Seattle, WA in October. I’ve never been, but from what I understand it’s *the* event for SQL Server. If you can swing the travel and conference costs ($1800), you’ll be in for loads of learning and– perhaps more importantly, engaging in the community.

If you can’t make to to Summit, there are still ample opportunities to engage. In addition to the monthly meetings, most local user groups also put on annual free training events called SQL Saturdays. Our local group in Minnesota is hosting one this October. Again, they are full days of *free* training, and because they’re on Saturday, you generally can’t be too busy with work to attend. (Sadly it does interfere with family time, and I wish there were more short, cheap training opportunities during business hours for those with supportive employers.)

If PASS is the heart of the community, then Twitter seems to be its veins. If you don’t have an account, make one. It’s easy and free. And it’s not just inane chatter; hundreds of SQL Server professionals have conversations and reference blog posts, news, and industry articles. SQL Server community member Brent Ozar has a Twitter guide for new users.

And then there’s the people of the community. No comprehensive list could possibly be compiled, but there is some guidance. Thomas LaRock has curated a list of important SQL Server related blogs. However, it hasn’t been updated in some time, and it’s missing what I would consider some notable personalities such as:

There are also a variety of SQL Server related web sites which have excellent content. Here are just a few:

Last but not least, everyone in IT turns to a search engine for help, and lately they all seem to point to the Stack Exchange network. And there’s even a Stack Exchange for Database Administrators.

There is no end to the content produced by the community of SQL Server Database Professionals, which is evidenced by the close of another T-SQL Tuesday.

Let me count the ways…

T-SQL Tuesday LogoMichael J Swart is hosting this month’s T-SQL Tuesday, about the June 1st release of SQL Server 2016.

There’s so much “new” that Microsoft spread it out across several sprawling lists. The headline features from a year ago are:

  • Query Store
  • Polybase
  • Stretch Database
  • JSON Support
  • Row Level Security
  • Always Encrypted
  • In-Memory Enhancements

Microsoft’s more recent data sheet lists a few more including:

  • Temporal Tables
  • Mobile Data Visualizations
  • R Language Support
  • Dynamic Data Masking

What’s impressive to me is that, despite neglecting Standard Edition for some time, many of these trumpeted features are available (in some form) in Microsoft’s $4000 per core budget offering. You only need to pay treble damages for Always Encrypted, In-Memory Enhancements, and Mobile Data Visualizations. You can check the exhaustive list for your favorite new feature. Maybe it’s some simple syntactic sugar like DROP IF EXISTS.

As usual, all of these tasty treats are available in the developer edition which is now a free download. Technically, this started with SQL Server 2014 (but not until April of 2016). Plus, the 2016 version of SQL Server Management Studio (SSMS) is also a free and separate download, so you can enjoy toys like Live Query Statistics even for your 2014 servers.

“Awesome Abacus” by Anne Ruthmann

“Awesome Abacus” by Anne Ruthmann

Despite all of this bounty, Microsoft passed over a seemingly low-hanging fruit. All sorts of T-SQL gymnastics can be performed with a simple table of numbers—often called a Tally TableThere are a variety of ways to make them, but Itzik Ben-Gan has a widely regarded solution involving CTEs and CROSS JOINs and TOP. But it’s 2016—we shouldn’t have to roll our own row constructor, even if it’s a neat trick using the new JSON capability. Microsoft should just answer the will of the people and create an optimized, pure T-SQL mechanism to produce some numbered rows for us.

Oh, well, perhaps they thought that we really only needed them to split strings and they took care of that for us with string_split. Sure, it performs well, but it’s no generic row expander.

Maybe in 2018.

SQL Server Community Speaker Ratings with Joind.In

Stack of Paper Surveys

“Surveys to compile” by The Bees @ Flickr.com

Earlier this year Stuart Ainsworth wrote about some controversy over speaker selection for the PASS Summit. He lamented the “lack of a repeatable objective tool for speaker evaluations”. His solution was SpeakerRate.com.

I have also been dismayed by the paper slips used by the SQL community. As technology and data professionals, we really ought to have a database of speaker evaluations.

Stuart recognizes that SpeakerRate.com might not be the best choice but says he hasn’t found an alternative.

Commenter Rob Volk offers up Lanyrd.com (acquired by Eventbrite in 2013) as an alternative. Eventbrite is currently used by our local PASS chapter (PASSMN). However, Lanyrd does not support speaker rating. They’ve said on Twitter they don’t like its chilling effect on new speakers.

I suggest joind.in as a superior alternative.

Joind.in is actively used by the PHP community and is open source. They support short URLs, a QR code generator, a star rating system, and room for comments. They allow anonymous and authenticated ratings. They also have an API. Their site is reasonably mobile friendly and they are actively working on improvements.

They have a manual approval system for new events, but they approved a SQL Saturday after a Thursday submission. I recently set up my talk and suggested using it during my presentation. There were no takers, but I did get paper evals.

Because joind.in is open source and has an API, at any point the SQL Server community could download the evaluation data, fork the code, and move things in a different direction. That wouldn’t be possible using SpeakerRate.com.

I think joind.in is the best choice, but SpeakerRate.com would still be superior to the current manual methods. Let’s just move forward with online speaker reviews.

SQL Saturday #332 – Minnesota

PASSMN once again put on a great SQL Saturday. Kudos to Rick Krueger (Blog | @DataOgre) and the whole team for putting on a great event.

Folks were so impressed they compared it to a mini-PASS Summit (the premier SQL Server event):

I had the pleasure and honor of speaking at the event. It was a fulfilling experience with a small but interested group. I look forward to doing it again some day.

iOS 7 Reminders – Remove Due Date

Let’s say you make a reminder in iOS7 and set an alarm for some future time.

IMG_0114

You get a nice, normal reminder:

IMG_0107

Oh, it’s time to write a blog post!

IMG_0109

Nah, maybe later. But now it scolds you with menacing cyan text:

IMG_0110

You can’t handle all that pressure and decide to write it tomorrow. Edit the reminder:

IMG_0111

Wait, what’s that now? When did you set a due date?

Well, you didn’t. The Reminders app did. It decided that although you might have wanted to be reminded a bit later, you still wanted to know the original due date, just so you felt really guilty.

But you’re the boss. These machines do your bidding. You’ll just go into that due date and remove it:

IMG_0112

What’s that you say? You can’t figure out how to remove it? No, it’s not that “Never” underneath the dials. That’s tempting. After all, you’d rather this task were never due, right? But alas, that’s when it’s set to repeat. Scribnasium ad nauseam?

If you have an OS X device, you can just remove the checkbox.

Screen Shot 2013-10-22 at 11.48.32 PM - Cropped

But what if you don’t, or you don’t want to? It took me a bit to figure this out, but all you have to do is turn the “Remind me on a day” off and back on:

IMG_0113     IMG_0108

Voilà. Due date gone. If only real life were so easy.

In for a penny, in for a pound…

Jar of pennies.

“Three liters of pennies! 12.6 kg total mass.” — (c) Michael Pereckas

I historically eschewed Apple products because of the closed ecosystem and what I felt was an oversimplification of their software products. Everything “just worked”, but in mysterious ways. For example, just playing a media file on an Apple computer put it in your iTunes library– convenient for the average user, but as a power user I like to control where things are stored and how they are organized. That way I know how to back them up. But Apple’s got an app for that, too– Time Machine. Just turn it on and it takes care everything. I was a little bit too “Type A” to surrender to the simplicity and hope for the best.

My wife is a teacher, so whether she’s liked it or not, she’s used Apple products for many years. But she has liked it, so we got her a an Intel Core Duo Mac Mini back in the day. It’s still running, now as our simple home file server. That was the only foothold into our household Apple had for some time. As a primarily Microsoft ecosystem technology professional, all of my experience had been with Windows. I even used a smart phone with the much maligned Windows Phone OS (the Samsung Saga, which had a physical keyboard and a touchscreen back when folks thought those were mutually exclusive concepts). Then I won an iPad.

I had no plans to purchase a tablet, especially an expensive iPad. I thought the OS was crippled and it was useful mostly for surfing the web. If I needed to work on something away from home, I could just use my laptop. I was fooling myself. My old eMachines plodding tank of laptop barely got an hour on its aging batteries. I had no real mobility. I never took it anywhere but bed or vacation to offload pictures from my camera. With the iPad, I suddenly had something I could tote around as an afterthought. I started taking it to conferences and found that I could actually type really well on it. And it didn’t make a racket– no fan noises, no beeping with a failing battery, and my fingers made an almost-pleasant, muted tapping sound instead of the disruptive clacking of a keyboard. I was a fan.

It’s true what they say about the Apple ecosystem. When it was time for a phone upgrade, the iPhone– something I’d previously derided for its lack of a physical keyboard– was the default choice. I could buy an app on one device and use it on all my iOS devices for no extra charge. Plus, while my wife wasn’t interested in poking around on a half-size screen with a stylus, the iPhone’s consumer-friendly experience and polished media player which integrated with iTunes on her Mac Mini was enticing.

And the dominoes kept falling. iTunes was managing our media with our iOS devices and feeding the Apple TVs and Airport Expresses we’ve acquired, but that old Mac Mini couldn’t run the newest OS with the latest iTunes, and it was a big pain to increase the memory in that model. So we upgraded. That clunker laptop needed replacing– with a sleek MacBook Pro (Retina, because I love all those sweet, sweet pixels). And we recently upgraded from the iPhone 4S to the 5S.

We keep pouring money into Apple’s coffers. And while each product is excellent in its own right, if a bit expensive, the integration is a big driver. Reminders, calendars, contacts, and media (oh, yeah, we have iTunes Match, too) sync across all of the devices. We can throw audio and video from our portable devices to speakers and TVs throughout our house. When we buy an iOS application, all of our mobile devices can use it. When we buy an OS X application (on the App Store), all of our OS X devices can use it. For those most part, “it just works”.

And that’s the kicker. While it’s possible to get most of that working with Android, Windows, and/or Linux devices it’s not as easy or seamless– at least as far as I understand. It can be fun, to an extent. I get it. I used to assemble my own computers. I was impressed when I met my wife back in college and she was swapping out a replacement motherboard Gateway had sent her. I remember messing with IRQs and DMAs. I used to use ANSI drivers to make my MS-DOS prompt pretty colors. I played the game of loading things into extended memory to preserve that precious “conventional” 640K.

But that was then. I have a job now. And I have a family. Time on my hands could be time spent with them. So I pay a little extra to grease the gears of technology.

SQL Saturday #238

I will be attending SQL Saturday #238 tomorrow– or rather, later today.

I am amazed at the quantity and quality of *free* training available for SQL Server in the form of blog posts, webinars, training videos, user group meetings, and SQL Saturdays (an entire day of free, seminar-style training provided by industry experts– often Microsoft MVPs or Microsoft Certified Masters).

I’m grateful to the community for putting these events together.

A scribnasium is built.

My wife thought it was a horrible name. She thought it sounded like an infection.

I thought it was a clever portmanteau of “scribe” and “gymnasium”– as in, a place where words could get some exercise.

She might be right, but the domain was available and I was off to the races.

I have been meaning to start a blog for some time. I have a history of sharing personal details on the web which predates the concept of social media, but I clammed up once I entered the corporate world 13 years ago. My youthful sharing came back to haunt me once my colleagues stumbled upon what I presumed was a defunct personal site. It turns out that despite having cancelled my Qwest service, my web site kept on truckin’. Without an active account, I couldn’t just log in and delete it, so my diatribes on advertising and fashion and the picture gallery with the time-lapse healing of a smashed fingernail haunted me from my own personal Wayback Machine.

I’ve tried to keep my online nose clean since then. I’ve even stayed off Facebook, which is challenging as an exhibitionist voyeur, for fear of the endless time suck. So there’s a bit of pent up rambling. I started with a professional presence on LinkedIn (RileyMajor) and I’ve taken some baby steps into the sea of tweets (@RileyMajor), but now I finally bit the bullet and have started a blog.