Showing posts with label 24 HOP. Show all posts
Showing posts with label 24 HOP. Show all posts

Tuesday, September 9, 2014

24 Hours of PASS Preview: Zero to Hero (I'm the Zero)

Hello Dear Reader!  We are already away into the 24 Hours of PASS Summit Preview for 2014!  I don't know if you heard, but I have a pre-con at the PASS Summit!  More precisely SQL MVP Robert Cain(@arcanecode | Blog) had a great idea for a precon and invited SQL MVP/MCM Jason Strate (@stratesql | Blog) and myself to join him.

We decided early on that we have a great opportunity to showcase how we use PowerShell to complete tasks on the Business Intelligence, DBA, and Cloud engagements and pass on real world skills.  We also want to do it in a way that things are useful.  Our goal is to have things we can give you that will allow you to leave the pre-con and use right away.

We also realized with a bunch of smart guys (and me), presenting we had the opportunity to use Humor and a bit of stage acting.  I'll be playing the role of the Zero in our pre con.

"So Balls", you say, "What's a Zero, and how do you play one? (and why are you explaining this)?"

Great questions Dear Reader!  First let's talk about, what's a zero?  I will be pretending that I do not know how to use PowerShell.  That I don't understand how to use the verbiage, variables, function, modular code design, how to import modules, or do a lot of other stuff you need to know.  I will need to learn from the ground up as if I'm a beginner in the class.
Hopefully me at the Summit (without the awkward flying)

I will ask questions, get explanations, and help bring the audience along.  As the day progresses I'll become a hero using concepts and technology to deliver some end to end solutions.  I'll even take over the Azure PowerShell portion at the very end of the day.

Why am I explaining this?  PASS has an international audience and I'm not a professional actor.  I'll do my best but some may miss the humor in what we are presenting.  Robert, Jason, and myself spoke last night and we didn't want anyone to think that I didn't actually know PowerShell or give reason to doubt why I'm participating in the pre-con.

So sit back today, enjoy our session.  I hope you enjoy me being the Zero, and come to the Summit to find out how to be a Hero with me.

But wait there's more!! Today during out session Robert and I will do most of the talking.  Jason will be live answering your PowerShell questions using the #pass24HOP hash tag on twitter, and answering the questions in the room chat on Twitter as well.  This promises to be a fun session, hope to see you there!

Here is the link to our pre-con.   Here is a link to the 24 Hours of PASS website.  Good luck, happy learning, and as always Thanks for stopping by.



Thursday, June 26, 2014

It's not Business, It's Personal

Hello Dear Reader.  I find myself at this late hour unable to sleep.  Yesterday the slate of speakers for the PASS Summit was announced.  What should have been a happy moment was quickly darkened by the words of people that I know well within the SQL Server Community.

I would ask the MVP's and others in the SQL Server Community; Did you plan on intimidating new speakers yesterday?  

Because you did.  I have a few first time speaker that I've been working with. Not first time PASS Speakers, first time period.  Encouraging and mentoring them to get involved in SSUG's and SQL Saturday's.  At the beginning of the year I told one in particular that we should work on a plan so she would have the experience to submit to the PASS Summit this year.

Her first words to me when we spoke yesterday?  "Thank God I didn't submit, because the MVP's would be talking smack about me right now!"

Wonderful work growing the next generation of SQL Server Speakers.  Is this what community has become?

It seems every year with the speaker selection process the people I would normally count on as pillars in our community take the opportunity to bash the process.

If the process is broken so be it.  We should discuss that.  WE SHOULD NOT LEVEL PERSONAL ATTACKS.

That is ill befitting of the responsibility that we as speakers have in the community.

I remember what it was like to be a simple DBA that looked at speakers at conferences with awe and wonder.  Instead of being a community where we encourage new speakers, what.... we encourage new speakers as long as they all are from different companies?

By attacking Pragmatic Works and suggesting that the speakers did anything less than earn their spots, you demean the volunteers, my co-workers, anyone who works for my company, and you demean me.

There were a couple issues that occurred yesterday that compounded one another.  The presentation that occurred during the 24 Hours of PASS that I moderated, see Brent's blog.

Then Kendal a former board member who had knowledge of the process.  Who praised the volunteers and the way the process works, as noted by absentee presenters who didn't receive sessions this year how a speakers name did not guarantee a spot.  He instead implied that something improper had happened.  Here's his blog.  Until he accused me of having no integrity and not deserving my sessions it was a pretty interesting read, click here.

Here's the part to pay attention to: 
  • "3 Preconference sessions by Pragmatic Works employees are on the list, including one delivered by PASS Executive Vice President, Finance & Governance Adam Jorgensen who is also President and Managing Partner of Pragmatic Works. I know a lot of folks that work at Pragmatic and they're good at what they do, but having 3 precon sessions (where presenters usually make good money from the sales) selected for the same company as one of PASS's execs...smells. I'd like to give PASS the benefit of doubt on this one, but I'll it's very hard to ignore, even if Adam wasn't one of the presenters."


First I reacted in his comment sections.  I was mad and I called what he wrote Bullshit.  I stand by that.

I've reached out to Kendal.  I hope to talk to him soon.  This shouldn't be a conversation on Twitter or over the blog-o-sphere.  I know him, I consider him a friend, and this accusation is beneath him and regardless of the intention it is deeply personal to me.

I reached out to Brent.  Brent and I DM'ed very very ridiculously late at night.  Brent I can't thank you enough for taking the time to reply.  I hope to talk to you soon!

I completely understand Brent with the 24 HOP.  The reason I reached out to him was because of his comment on Kendal's blog.

In the comment's Brent had this reply:

We discussed 2 different issues over DM.  One is the transparency of the process the other was the selection.  Giving vendors preferential treatment, and that this wasn’t the case here.  Brent didn't have an issue with the Pragmatic Works folks having sessions and understood the level of community involvement that we have.

His issue was transparency.  I was really glad we could discuss this, in-digital-person.  Concerns like that should be communicated amongst friends so false insults do not fly.  I consider Brent a friend, it meant a lot that he made himself so readily available to chat.  It is what I would hope for in a friend.

This is how we should handle these things.  If you have a concern with something I'm doing, reach out to me.  

I remember well what it was like to be a simple DBA that looked at speakers at conferences with awe and wonder.  Seeing people like Brian Kelly and Andy Warren, both of whom I know, comment on this blog and not try to reign in the personal attacks is disheartening.  Andy’s were not inflammatory, but they also did nothing to suggest I or my other co-workers were above the board.

I understand I haven't been at this as long as you guys.  I'm not an MVP.  I've only been speaking the last couple years.  

As a somewhat new member to all of this, I would ask the people that are supposed to be respected Sr. members of the community to conduct themselves with a little more Integrity.

If you know me.  Yet you would say these type of things about me, how does that make new people feel looking at our community from the outside.  Do you believe it makes them want to volunteer and participate in it?


My father taught me as a child you only have your integrity once and you should not waste it.  This means something to me.  When I invest in something, I invest wholeheartedly.  I cannot love with half my heart.  I cannot commit to something while sitting on the fence. If I did not earn something then I do not want it.

The greatest things that we get in life are the things we struggle to achieve.  It is only through the labor of the struggle that the fruits of success are realized.

This year I have presented 26 times.  From New Hampshire, to Boston, to Puerto Rico, to Orange County CA, to Denver, to Phoenix, to Atlanta, to Portland, Tampa, Orlando, and more.  I have done deep dives, pre-con's, 1 day sessions, 2 day sessions, 5 day sessions, and this doesn't even include customer presentations.  This is all community.

I have evangelized to user groups and individuals about how they should get involved, present, participate.  I discuss with them how it will help them and help their career.

I would once again point to my co-worker who has not yet delivered their first SQL Community presentation said to me "And you wonder why new people feel intimidated.  I would hate it if they were talking about me".


We've all heard the phrase before "it's not personal its business".  It is typically used as the justification for doing some pretty crappy stuff.

There are some people out there that believe participating in the SQL Community is all about marketing.  That it's business.  Being out there and participating gets them business.  If it is business to them, fine.  It's not to me.  To me the SQL Community is personal.

Right now I am away from home.  I'm away from my kids.  I presented at a user group in AZ last night.  I didn't get paid for it, I didn't get "new" business leads.  As a matter of fact I spent 15 minutes of my 1 hour presentation encouraging people to volunteer.

Why?  Because I love this community.  I have received a lot in my life from the SQL Community.  I have a job I love, I've made new friends, and I’ve traveled to new places, volunteered in ways I never imagined possible.

I truly believe that within every person there is a story waiting to be told that we all want to hear.  It could be brought to life during a presentation on Professional Development, a passionate Deep Dive, or a harrowing tale of lessons learned in the trenches.  When I present I tell people there is a story in each of them that I would love to hear.  They just need to have the faith in themselves to present and the possibilities of what they can do from there are endless.

This isn't business to me.  I would never invest this much time into something I didn't love.  It's personal.

Suggesting that I submitted to the same process as anyone else and received preferential treatment isn't business.  It's personal.  And it's wrong.

I hope from here we can clear the air.  If anyone would like to talk to me about this I’m happy to.  From here on out though please separate criticism of the processes from those that are here for all the right reasons.

As always Dear Reader, Thanks for stopping by.



Friday, August 16, 2013

24 Hours of PASS Q & A: Why are Bit’s Flipped?
Hello Dear Reader.  Almost two weeks ago I delivered a presentation for the 24 Hours of PASS on SQL Server Data Internals.  I received some really great questions that have pushed me to dive deeper in my understanding of SQL and computers in general.  One of the questions was as follows:

Why are Bytes sometimes swapped and why do you have to flip bits in order to decode a bitmap?

At the time I took a WAG at the question, Wild @$$ Guess.  I said that they were flipped because of a need to protect proprietary data.  I couldn’t have been more wrong.  Fortunately for me my friend and co-worker Roger Wolter (@RWolter50 | Blog)  was watching and was quick to let me know that the source of the byte swapping was not proprietary.  It was because of Endians.

“So Balls,” you say, “It was because of Endi-a-Whats?”

Don’t worry Dear Reader, I was right there with you.  This was a new term to me, some of you clever former Computer Science majors are already seeing a light bulb form.  For my sake humor me and pretend you haven’t already figured this out.  Some of you former Literature Majors, or general readers of classic tales, are wondering what Gulliver Travels has to do with SQL Internals.

Jack Black, Comedian, Singer, Dancer, ...Computer Scientist

In Jonathan Swift’s satirical novel Gulliver’s Travels, Gulliver ends up in a land called Lilliput.  Lilliput has hostilities with their neighbor Blefuscu.  You see Lilliput likes to eat their hard boiled eggs by cracking the little end.  Whereas Blefuscu likes to eat their eggs by cracking the big end.  There for the Lilliput’s are known as Little End-ians and the Blefuscu are Big End-ians.  Side stepping Swift’s satirical play on societal issues the term was later utilized in Computer Science over 200 years later.

So what does this mean for Computers?  It is how we read data out of memory. 

We will be covering memory at a very high level, even though we are pretty deep.  Memory is one big array waiting to hold our data. 

What does that array hold?  Bytes.  How do we find where we are storing the bytes in our array?  We give it an address and we look up that memory address.

An address is not an Index, but for the correlation of how to look up memory data it is comparable to the way we store data on a Clustered Index page and then look that data up by its unique key.  So to make this an easy comparison for my SQL Family, let’s just say that an Address is our Index and how we will look up data in our array/table.

When we read data into memory there is a memory address assigned to the byte or bytes depending on the chipset of the machine.  Big Endian Processors read the data from Left to right, also known as most significant byte to smallest address.  Motorola and quite a few others use Big Endian.  x86 and x64 processors use Little Endian.  Since SQL Server run’s on x86 and x64 hardware we will focus mainly on that.

For example take value XSWB.  If we translate each letter to two byte hex pairs that we would place into memory we would get X=58, S=53, W=57, B=42, or 58535742.  Each hex pair would be translated to binary which would then translate to ASCI characters which would become the regular letters we see.  How would we store that in memory?  The ASCII example below is for 8 bit access.

*We will disprove the flipping of ASCII bit’s here in a moment using a 64 bit access.  But what I want you to get from this is the concept.  More in a moment.  Also here’s a really nice graphic from theWikipedia Entry on Endianess, well worth the read.



This behavior is left over from when 8 bit processors had 16 bit memory registers and it was more efficient to load the lower byte first.  If it was only an 8 bit operation then the top byte could be skipped.  Thanks to Roger for all the technical explanations, more on that to come.

Since ASCI characters show up internally a little bit nicer than this, each letter is a two byte hex pair. No need for swapping to decode. When we get large numbers, we can really see this at work within SQL Server.  For example let’s use the following statement.

use master
if exists(select name from sys.databases where name='demoInternals')
     drop database demoInternals
Create database demoInternals
use demoInternals
if exists(select name from sys.tables where name='brad1')
     drop table brad1
create table brad1(mychar char(4) primary key clustered, myint int)
insert into brad1(mychar, myint)
values('XSWB', 12345678)

We’ll create the value we just looked at XSWB and an integer value of 12345678.  Now let’s do a DBCC IND, get our page number and look at the page dump.

dbcc ind('demointernals', 'brad1', 1)
dbcc page('demointernals', 1, 278, 3)

The ASCII doesn’t look byte swapped, but the integers obviously are. This lead to another question that I asked Roger.  Ridiculously smart man that he is, he told me that ASCII characters do not need to load the registers in the arithmetic processors.  For that reason we do not have to swap bytes.

Thanks Roger for all the great info.  This was a lot of fun to learn.  Thank You Dear Reader for stopping by.



Wednesday, July 31, 2013

24 Hours of PASS Deck and Demo's Live!

Hello Dear Reader!  Another very quick blog.  Thank you to all of the people that tuned in to see me present on SQL Data Internals for the 24 Hours of PASS tonight.  I truly appreciate you spending your hard earned time with me.

My Deck and demo's are now live on the resources page.  I've added a list of all the presentation's that I used as references.  Any Scripts not in the deck you can find at the following links.

Click Here for the Slide Deck and Click Here for the Demos.  Now the links to all the other material.

Paul Randal MCM Video Series Data Structures

Bradley Ball SQL Internals Reading Data Records Part 1: Tag Bytes

Bradley Ball SQL Internals Reading Data Records Part 2: Null Bitmap Offset

Bradley Ball SQL Internals Reading Data Records Part 3: Fixed Length Columns

Bradley Ball SQL Internals Reading Data Records Part 4: Null Bitmap

Bradley Ball SQL Internals Reading Data Records Part 5: Variable Offset Array

Bradley Ball Differences in the Null Bitmap between SQL 2005 and SQL 2012

Bradley Ball SQL Internals Reading Data Records Part 6: Variable Length Data

As always Thanks for stopping by!



I'm Presenting Today for 24 Hours of PASS!!

Hello Dear Reader!  This is just a very quick blog to let you know that the 24 Hour's of PASS is currently going on.  Brent Ozar(@BrentO | Blog) started things off Strong and Alan Hirt(@SQLHA | Blog) is working his magic as we speak.

This year I was extremely honored to get to introduce Joseph D'Antoni (@Jdanton | Blog) in the 6 am slot tomorrow.  It would also work out that I could be a backup presenter as well.  So Tonight at 6 PM East Coast Time, following the one and only Brian Knight(@BrianKnight | Blog) is SQLBall presenting on Data Internals.

This is a mere glimpse into the 90 minute Spotlight Session I'll have at the Summit this year. So come join me for some Spelunking around the Data Internals tonight!  Here's the link to sign up and Here is the Abstract.

SQL Internals

Duration: 60 minutes
Track: Enterprise Database Administration & Deployment
Often as DBAs, we learn backwards. You get a DBA job, and you have databases that have tables, which have data in them. Nobody tells you that there are records, stored on pages, grouped in extents, assigned by allocation bitmaps, with IAM pages and allocation units that span partitions and filegroups.

Today is your lucky day! This 24 Hours of PASS session will cover byte swapping and bitmaps and dive a little into decoding Hex and binary, working to give you an understanding of database internals and how you use them every day!  

Alright Dear Reader, I'm off to practice!  I'll see you at 6 pm.