Development

#NeverStopLearning: 10 Minutes of Code – PS Get-ChildItem

In my last post, I started working on a very simple script to explore files in a directory using PowerShell: Get-ChildItem allows me to find the files and folders in the user directory, but what if I wanted to start with a different directory? That’s where the -Path switch comes in.

Get-ChildItem -Path C:\

gives em a listing of all of the files and folders at the root of my C drive. Lots more to come; this is just the beginning of my journey.

#NeverStopLearning: 10 Minutes of code

Today, I spent 10 minutes working on PowerShell. I’ve never really spent much time in PowerShell before. I’ve had a few classes a few years ago, but like most things, if you don’t use it, you lose it.  I was going to do a Pluralsight course, but frankly, I haven’t been great about following up on these sorts of things, so I figured I’d start with the completely free (no trial expiration) knowledge at the MS Docs site

I knew most of this stuff, but the point of this exercise is to force myself to start using again.  I spent a few minutes running the ISE, using Get-Help (and updating the help files), and then thought I’d try a quick script.  Like most coders, I stole this from the web:

Get-ChildItem | Where-Object {$_.LastWriteTime -gt (Get-Date).AddDays(-180)}

This simple script helped me find the files and folders in my user directory (the current context) that were modified within the last 180 days.  To limit the results to files only, I added an additional clause to the filter:

Get-ChildItem | Where-Object {$_.LastWriteTime -gt (Get-Date).AddDays(-180) -and ! $_.PsIsContainer }

I think I can do this.  More to come.

Writing is hard…

I’ve recently started working on a book, and have rediscovered that if you don’t exercise on a regular basis, it sucks to start. I need to think of this blog as an opportunity to get my regular writing “steps in”, so that when the time comes to actually start running, I’m ready.

One of the challenges I’m having is articulating my thoughts on the concept of “people first” in DevOps. It’s the first element in Donovan Brown’s definition, and embedded in the first value of the agile manifesto, but yet, people don’t get it. I was recently involved in a Facebook conversation on the evolution of graph databases, and was saddened by the fact that many people who I know and respect still see an ongoing war between developers and DBA’s (and often make assumptions about the other camp).

I may be naive, but I’m trying to find the good in people, and trying to build value to customers. Different roles and skills are necessary, but allowing those roles to foster tribalism to the detriment of the goal is a futile pursuit.

More to come.

#DOES18 – Tuesday Takeaways

Thoughts from yesterday’s DevOps Enterprise Summit in Las Vegas

  1. Managing workflow is different than managing configuration changes or code.  It’s related, but you can have separate systems for individual team’s processes and procedures (i.e., Azure DevOps for developers, ServiceNow for ops), but you want to make work visible to all affected teams.
  2. Making work visible was a theme I heard over and over again; so much of the “throw it over the wall” mentality stems from the fact that ops does magic. 
  3. Processes are necessary, but they must be as light as possible or they won’t meet the need (they get in the way of rapid response).  People often adapt by ditching the process anyway.

TIL from Atlanta #AzureDataFest

AZURE DATAFEST

I’ve been meaning to write this post since we wrapped up the event, but life, as usual, gets in the way.  Overall, I was very pleased with the whole event; things (for the most part) ran very smoothly.  However, in the spirit of continuous learning, here’s a few lessons (in no particular order) for anyone considering hosting an Azure DataFest in the future. 

Event Management

We used Sessionize and EventBrite to handle speaker submissions, schedule building, and attendee management.  Both tools worked great, but both are a little pricey (Sessionize charges $250 for the event, and EventBrite added a $3.54 fee to every ticket sold).  The benefit is that it was very easy to generate a professional looking schedule, review abstracts, and manage attendees (from fee collection to attendance rosters).  The one downside is that the tools don’t integrate (no way to easily export speakers into Eventbrite), and we really need a central website for people to hit rather than each individual tool.  I also had a small issue where some attendee badges didn’t print; that was probably user error.

Sponsor Expectations

  • I should have added company names to each attendee badge to make it easier for them to see what company attendees were from when talking.
  • I need to explain the email\contact information privacy policies better.  Some sponsors wanted to get more contacts to add to their mailing list.  May need to borrow a page from the SQLSaturday playbook and encourage raffles to get information directly from the attendees.
  • Microsoft SSP’s were on site, and that was a very valuable contribution.  Saw lots of hallway conversations with clients and Microsoft; that’s rare for SQLSaturdays.
  • Need to charge more for sponsorships in general; we had a flat rate of $500, which doesn’t go a long way toward building a community.  Also, I need to provide more structure over what’s included in a sponsorship; we had a couple of sponsors which had 5 or 6 team members show up.  Since food was included in their sponsorship, that literally ate up most of the profit from their sponsorship.
  • Need to find ways to encourage relationships between speakers and sponsors; speaker dinners or vendor parties?

Attendee Management

  • Generally, went well.  Food portions were about right, fee was right for a two day affair, and we had very few snacks and\or drinks left over.
  • Would love to go as paperless as possible; however, I think people like having SWAG bags.  Maybe provide them with an empty bag, and tell them SWAG is available at sponsor tables?
  • Stickers were a HIT!
  • Very different crowd than a SQLSaturday.  In fact, during opening session, only a few people had heard of SQLSaturday or AtlantaMDF.  Need to do a better job of evangelizing both of those, while recognizing that this is a crowd that may not want to give up their weekend.
  • Pretty sizable fall-off on Friday (the second day).  May need to do Monday-Tuesday to see if we do a better job of retaining folks.

Speaker Management

  • As noted above, Sessionize worked great for speaker management.  Abstracts were easy to receive and review, and building a schedule was a snap.
  • Need to be more up-front about the volunteer nature of this conference.  We had a few people that misunderstood, and submitted from abroad, and then inquired about travel reimbursement.  It was cleared up over a few emails, but I should have headed that conversation off earlier.
  • I had a speaker withdraw because we charged $50 to attend the two-day conference;  they felt that didn’t fit as a “community” event, since most community events should be free to the consumer (or offer an optional lunch, like SQLSaturday does).  I get the point, but in practical terms, that’s tough to do with a new event.  No event is free; just different people (sponsors) pick up the tab.  We’ll continue to work on this, but ADF may always have a small fee associated with it.
  • Most sessions had speakers sitting in the audience.  I haven’t seen that happen at SQLSaturday’s in a long time, so I’m hoping that people learned as much as they gave.

Logistics

  • Facility was great, but room capacity != seating arrangement.  I had to steal chairs from sponsors, and actually order more chairs on the first day to eliminate standing room only.
  • I loved having the plenary (everybody in one room) sessions at the start; really need to do one at the end, and then do a wrapup.
  • I could have saved some funds on table linens.  The caterer brought their own, and they weren’t really necessary for the check in tables.
  • We had a few technical glitches, so we need to make sure we keep the facility staff around next year.  They went to lunch and weren’t back in time for the afternoon session, so those were a little rough (maybe promise them free lunch next year?).

#Azure DataFest Sessions I want to see: @sqlgator #Cortana and #PowerBI

There are still plenty of seats left for the inaugural #AtlantaAzureDataFest2018, so I thought I’d try to drum up some interest by posting about a few of the sessions I really want to see.  First up, Ed Watson‘s session: “With Power BI and Cortana, You Can Take Over the World”.

I love the thought of integrating voice control with reporting; have no clue what that means, but it definitely satisfies the whimsical nature of this conference. Let’s build something together just because we can, not necessarily because it satisfies a need.  Ed is a crazy fun presenter to watch (and a good friend).  I’m excited to see him push the envelope a bit.

Join us!  Seats start at $50 for two days of jam-packed training on Aug 16-17th, 2018.  Tell your boss you’re being forward-thinking; they love that.

 

#Azure DataFest Atlanta #ADFATL – Call for Speakers Now Open!

As I’ve mentioned on twitter (what, you don’t follow me?), I’ve been involved with a new conference that’s focusing on the Microsoft Data Platform – Azure DataFest. It’s still very much in the works, but there’ have been a few events around the country so far, and we’re bringing one to Atlanta in August (as well as working on a national standardized presence). If you want to help build a community of data professionals that are passionate about the next generation of analytics and data science, please feel free a topic. Text for the CFP is below, but the actual call for speakers is here: https://sessionize.com/atlanta-2018-azure-datafest-microsoft.

More details to come (after I get through Atlanta SQLSaturday).

Atlanta 2018 Azure DataFest: Microsoft Azure Advanced Analytics and Big Data Conference

This is a call for speakers for the inaugural Atlanta Azure DataFest: Microsoft Azure Advance Analytics and Big Data Conference, a 2-day event to be held on August 16-17, 2018, 9:00AM to 5:00PM at the Microsoft Technology Center, 8000 Avalon Boulevard Suite 900, Alpharetta, GA 30009.

We are looking for 10-12 speakers to present on the following Azure Advanced Analytics and Big Data topics:

  • Azure Data Services
  • Azure Data Warehouse
  • Power BI
  • Cosmos DB
  • Azure Analysis Services
  • HDInsight
  • Machine Learning
  • Stream Analytics
  • Cognitive Services
  • Azure Bot Services
  • Data Lake Analytics
  • Data Lake Store
  • Data Factory
  • Power BI Embedded
  • Data Catalog
  • Log Analytics
  • Apache Spark for Azure
  • Dynamics 365 for Customer Insights
  • Custom Speech Service  APIs
  • Spark

Planned Schedule (Thursday, August 16)        

We plan on delivering a keynote, and three sessions to the at-large audience, then breaking into tracks after lunch.

8:00AM – 9:00AM – check-in/breakfast/networking

9:00AM – 9:50AM – Key Note, Room # All/Combined

10:00AM -10:50AM – Session 1  Room # All/Combined

11:00AM -11:50AM – Session 2 Room # All/Combined

12:00PM – 12:50PM – Partner/Sponsor Lunch and Learn – Room # All/Combined

1:15PM – 2:15PM  Breakout sessions

2:30PM – 3:30PM  Breakout sessions

3:45PM – 4:45PM Breakout sessions

Sessions should be 1 hour in duration, level 300 or higher. You can use best practices, case studies, demos, chalk talks, etc.

Planned Schedule (Friday, August 17)
The second day is intended to build on the first day with workshops, allowing attendees to have hands-on experiences with the applications.

8:00AM – 9:00AM – check-in/breakfast/networking

9:00AM – 11:50AM Workshops

12:00PM – 12:50PM – Lunch – Networking

1:00PM – 3:50PM Workshops

Workshop sessions should be 3 hours in length, and relate to material covered in the sessions on day one.  If you would like to submit a workshop session,  please ALSO submit a single-hour session for the first day.

The session submission deadline is Friday, July 13, 2018.  We will announce the speaker list and alternates on Monday, July 16, 2018.     

If you have questions, please contact stuart.ainsworth@azuredatafest.com

#DevOps – Lead by example, but set the right example.

Last weekend, I missed a data center migration.

It was a scheduling conflict; for Christmas last year, my wife had bought me tickets to High Water music festival (which was great, btw), and when they set the dates for the data center migration, I was worried. The tickets were expensive, and we had booked hotels, etc; I couldn’t change plans to work with the schedule, and there were too many teams involved in the migration for them to pick a different date. We’d done this migration once before (6 months ago), and I was confident in my team’s ability, but still… I was worried. You see, missing an after-hours deployment or a maintenance window of this size wasn’t usually considered to be an option before (by me). I’ve always been a firm believer in the management rule of: Don’t Ask Others to Do Something You Won’t Do.

So, every migration, every deployment, every maintenance window… I was there. Weekends, mornings, evenings… I was there. When our first major data center migration blew up a year ago, I was there for 26 hours. I THOUGHT I was sending the message that “I’m here for you… I’m leading the way… I’m being a team player.

That’s not the message I was sending.

What happened while I was away is that others stepped up and filled the void left in my absence. They didn’t do things exactly like I would have done, and they had to take on some additional responsibilities during the migration, so their timing wasn’t as efficient as if I had been there. But the work got done, and we survived without me. I could have looked at that and said “aha; I’m not really necessary; there’s some waste savings there!”. Instead, I realized that what I thought was a four-person job was really a three person job, and that meant that the fourth person could do what was more important than work; life.

You see, the message that I was sending by being at every activity outside of work was that I Expect Y’All to Give Up Your Free Time for Your Job, Just Like I Do. I didn’t mean it that way, but my employees picked up on it. I was there; they were there. Every time. And that’s no way to work.

What I realized this weekend is that Leading By Example also means Resting By Example. If the job really is a three person job, then four people don’t need to show up to do it (or else work will expand to make it a four person job; a variant of Parkinson’s law). And while I should still be willing to do the job, I need to be willing to do it when it’s my turn. I’m now scheduling rotations (I’m in one of those rotations as an engineer), and letting my team understand that it’s not just OK to not be at every maintenance window activity; it’s expected. A job is what you do to pay the bills and enjoy life. If I believe that for myself, then I need to set that example for my team as well.

“Presenting” at #SQLSATATL – #LeanCoffee #DevOps

My supplies for my workshop!

On Saturday, May 19, 2018 at SQL Saturday Atlanta, I won’t just be an organizer; I’m a presenter! My session, “All (Data) Things Considered: The Lean Coffee Workshop” is something I’m very excited to “present”. I use that term loosely, because the whole point of a lean coffee workshop is that it’s a structured, but agenda-less discussion. I participated in one of these at the DevOps Enterprise Summit in 2017, and it was a fun, and inspiring way to engage with other people who were facing very similar problems as I was.

The way it works is that there will be a brief introduction at the beginning of the session, but people are expected to form several small groups. A seed topic will be presented, but each small group will have a moderator (and thanks to my volunteers) who will make sure that their group stays on track. Every group will:

  1. Set up a personal Kanban board.
  2. Identify topics
  3. Vote & discuss.

That’s it. Easiest presentation I’ve ever done, but the goals are really deep. I want to encourage people to engage with each other; that’s one of the original goals of SQLSaturday, and I think traditional classroom settings don’t do enough of that (conversations are usually instructor -> audience, or audience -> instructor). This puts people around a table in a small, safe environment, and that leads to long term possibilities for relationships.

Second, I’m more interested in conversations about improving work, rather than just how to do work. I think coffee talks foster that because you’re not looking at a tool or a piece of code; you’re talking to a person, and hearing what they think. That sharing of perspective can spark new ideas, and new ways of looking at the forest, rather than individual trees.

Looking forward to seeing you there!