Tuesday, April 9, 2013

T-SQL Tuesday #41 - Presenting and Loving it!



My first T-SQL Tuesday post!

For those that don't know what T-SQL Tuesday is, you can get a brief overview from the host blog for this week @ Bob Pusateri's The Outer Join blog post. The topic for this T-SQL Tuesday is Presenting and Loving it!

When I saw that this was the topic for this week I decided that this would be a good one to jump into T-SQL Tuesday with, since this really is how I got introduced to the SQL Server Community. 

I was not really into doing much with presentations at work and I didn't really have to do it much in College either. I had done some presentations in High School as part of various classes, but I was not very good at presenting or speaking in public at all back then. So, it took a lot for me to even consider doing any presentations again after all of these years.

I started to attend the Denver Visual Studio User Group meetings on a regular basis about the same time that I started to learn C# and .NET and found that I was learning a lot from those meetings and wanted to share some of my knowledge with the group. I had been applying my C# skills to build custom .NET web front-ends for Reporting Services right after it went live in 2002. Since that was such a new product it was something that lots of people wanted to know about, so I created a couple of intro 30 minute presentations and did them at the DVSUG meetings and received a lot of positive comments about expanding on it. From there I created a series of labs that I presented over multiple separate meetings which helped bring many members back to those lab sessions after some low attendance was threatening to cancel them entirely.

After my presentations at DVSUG were going well, I was looking for other groups that I could present this material at and that is when I found the Denver SQL Server User Group along with the other SQL Server User Groups in the Colorado Front Range. I presented some of the same presentations at these groups and had the same success. 

From there I got to know the people running the Denver SQL Server User Group and decided to make the step to volunteer for the Board and help to build the local community in even more direct ways. Just as my career progressed from a COBOL programmer to .NET and then to a SQL Server BI Developer and now a BI Consultant, I have seen my role in the local community grow the same way and it all goes back to that first thought of wanting to share something that I had been working on with others. I have been rewarded many times over by presenting at many different User Groups and SQLSaturdays across the country (that is the great thing about being a consultant is you can use the trips for work to visit/present at other groups) and hopefully being able to present at the PASS Summit in the near future.

If you are thinking about making that step to share and present your ideas, DO IT! It is the one thing that I did all of those years ago that I have never regretted and always encourage others to do it to. Yes, we all get nervous before getting up in front of people to speak, but you can harness that nervousness and use it. Just contact the leaders of the group that you are interested in speaking at and they will give you all of the support you need to be successful at presenting. All of us User Group Leaders are always looking for new speakers in our communities, so if you haven't done it yet, WHY NOT? It was worked out so well for me that my job at Pragmatic Works even has presenting as a big component of the job description and it was one of the main reasons for going after the position there.

Thursday, March 28, 2013

SSIS - Using Caching in Loops

Earlier this week I had an SSIS 2008R2 package that I wanted to try and cut down the runtime from over 5 total hours. This package does a lot of work in many separate Data Flows, but a bulk of the time in this package is spent in a For Each loop that iterates through "snapshots" stored a database. These "snapshots" are not actual database snapshots, just a day, month or quarter worth of data that get loaded into a database and uses a unique ID (date/sequence number in this case) on every single row. Normal processing of this database is to just include a WHERE clause in your SQL statements to filter by the appropriate "snapshot". The For Each loop that I had setup needs to do a bunch of logic for different tables within this database, but it needs to do this filter by "snapshot" to cut down on the number of rows being processed.

For regular OLE DB source queries you can specify these kind of parameters very easily in SSIS using a ? in your query and then telling SSIS what variable to plug into that ? at runtime. That is perfect for that use and I used that as much as possible in this setup, but my other issue is that it has many Lookups that need to be done within the For Each loop as well and because of the way the Lookup queries are setup you cannot specify the same kind of parameter/variable based queries. I know that there are some ways to "fake" this out by changing the caching mode from Full Cache to Partial Cache, but that solution requires a lot of crazy changes to make it work and at that point the package becomes very difficult to support.

After doing some more digging around I found out about using Cache Connection Managers and the Cache Transform to load this Cache Connection Manager (I had not previously used either of these components). Initially I thought that this could solve my issue, so I setup a new Data Flow as the first step inside the For Each loop and load up a few of these Cache Connection Managers using the same parameter based queries and the variable from my For Each loop to create the appropriate filtered datasets for use in my Lookups. Then the Lookups can be modified very easily to use these Cache Connection Managers (you do have to setup Index columns in the Cache Connection Manager for every column you are going to use for mapping in the Lookup).

All of this was very quick and easy to setup and with that I kicked off a test and it all worked perfectly for the first time through the For Each loop, then the package ended with the following error message:

[Cache_xxxxx] Error: The component "Cache_xxxxx" (22) cannot write to the cache because component "Cache_xxxxx" (22) has already written to it.

At this point I knew that I was not going to be able to use the Cache Connection Managers within a For Each loop and get unique result sets for each time through the loop, since Microsoft has setup these Cache Connection Managers a write once object. Very disappointing that Microsoft did not find a way to make it so that these Cache Connection Managers can be purged and reloaded. I have heard of some people doing something like this by writing the cache data out to files instead of keeping it in memory, and that solution sounds good, but I didn't want to go do that route since I don't have any access to the servers themselves to make sure it works and I was on a very strict deadline to get a solution working.

Unfortunately until Microsoft makes some updates to how these Cache Connection Managers work, I don't really see an easy way to use them in this context, which is too bad, because that first run through the loop was lightning fast. And yes, I did try to move the Data Flow that fills the Cache Connection Managers outside of the For Each loop and just have it load everything. The solution did not work either in my case because I needed to load over 24 million rows of a very wide table when it is the entire dataset, instead of the "snapshot" filtered version I wanted to do.

Now that I have some experience using the Cache Connection Managers and Cache Transform, I'm going to keep my eyes on updates that are made to both of these components to see if they are more useful in the future in loops.

Stay tuned for a future blog post where I will show all of the setup steps for using Cache Connection Managers and Cache Transform along with how it works with the Lookup transform in detail (with plenty of screenshots).

Monday, March 4, 2013

SQLSaturday #215 - Jacksonville, FL



Just a quick announcement that I have been selected to present at SQLSaturday #215 in Jacksonville, FL on April 27th!

Looking forward to hanging out with my Pragmatic Works colleagues again and see all of the attendees at the event. For more information on the event, please visit their page and make sure you register, because space is limited and it is FREE! SQLSaturday's are held all around the world and there are usually multiple events going on at the same time in various locations, if Jacksonville is not convenient, make sure you check out the SQLSaturday site for other locations and dates.

Currently I'm scheduled to present "ABCs of CDC with SSIS 2012" in BI Room 1402 @ 1:15pm, but that schedule may change so make sure to check the schedule on the site.


Wednesday, February 27, 2013

Building a Microsoft BI Demo Environment

I've been asked at multiple meetings in the last month what is the best way to build a Microsoft BI demo environment. There are a few ways that you can do this:

Excel 2013

If you have access to Excel 2013 (you can get the 60 day evaluation version here), both PowerPivot and Power View are included as add-ins that don't require additional downloads (or SharePoint), just activate them from the File menu, select Options.

Then select Add-Ins from the Options left navigation panel. In the Add-Ins panel change the Manage dropdown at the bottom of the panel to COM Add-ins and click Go....

From the COM Add-Ins popup, check the boxes for Microsoft Office PowerPivot for Excel 2013 and Power View and then click OK to close the popup.

That should add the POWERPIVOT menu to your Excel 2013 menu bar and allow you to build PowerPivot workbooks.

To create Power View reports, just go to the Insert menu and click on the Power View button that should appear between PivotChart and Sparklines items in the ribbon.

With Excel 2013 you can create the PowerPivot/Power View workbook and save them as normal Excel workbooks without requiring SharePoint or other software on your computer.

Microsoft Virtual Labs

Microsoft has posted virtual labs that you access with an internet connection. All of these labs are provided free of charge, but there is a limit of time you can access each lab. This link will take you to a list of all available labs, or use this link to go right to the Power View lab or this link for the PowerPivot lab. There are also some TechNet virtual labs that you can access from this link as well.

Virtual Machine

The last and most complex to setup option is to build your own complete VM (or VMs). For this option you will have full control over the environment, but you will need to install and configure all of the software yourself. For a complete environment you will need to install Windows Server, SQL Server, SharePoint and Office. For help getting all of this installed and configured in the correct order, see this post put together by Microsoft. This guide is also available, but it is a bit dated since it is using SQL 2008R2 and SharePoint 2010. There is also a guide for specifically setting up SharePoint 2013 or SharePoint 2010. All of the software that is required for setting up this VM(s) is available in evaluation versions, just keep in mind that these versions will expire after a period of time (180 days max). The other thing to keep in mind is that you can buy a TechNet Professional annual subscription for $349 (renewal $249 after first year), you might also find this cheaper online. I recommend the TechNet Professional license over the other versions of TechNet because it does include license keys for all of the Enterprise server products that Microsoft offers.

Microsoft has also provided a version of a VM (previously referred to as the Microsoft All-Up BI Image) that you can download, this VM can be run in HyperV, VirtualBox or VMWare and is available at this location. Here is a review of this VM from Dan English. Microsoft has said that they are working on a new version of this image, but it is currently not available for download.


Personally I like the control of having everything in a VM that I have built, but it is a lot more work. The good thing is you will become very knowledgeable on how to install and configure all of this software (comes in very handy for Microsoft Certifications). I do buy a TechNet Professional license for my own use every year, so this is how I am able to license all of the Enterprise versions of the OS, SQL Server and even SharePoint. I also have Excel 2013 installed on the laptop itself as well, so that I can do a quick demo if necessary without spinning up a whole VM.


Tuesday, February 5, 2013

ABCs of CDC with SSIS 2012

Today I presented a session as part of Pragmatic Works free "Training on the T's", called "ABCs of CDC with SSIS 2012". The session was attended by 507 people and I received a lot of positive feedback (even though my voice as a bit rough because of a cold that I'm getting over).

This session focuses on defining what CDC (Change Data Capture) is for those that have heard of it and maybe even know that it has been offered with SQL Server 2008 and greater, but didn't really know how to use it. I also show how it is much easier to consume the CDC data now with SSIS 2012, since it now includes native components for CDC.

I have posted all of the slides and demo materials for this session to my SkyDrive for anyone to download and try out. The only thing that you will need to get this up and running in your environment is the AdventureWorksDW2012 database from CodePlex  and a SQL Server 2012 Enterprise/Developer/Evaluation Edition instance with the Database Engine and SSIS setup on (CDC only works on these editions of SQL Server). You will need to make sure you have full admin rights on this instance since the commands to setup CDC require that level of permission.

Below are a few of the most common questions that I received in the session with answers:

What is the performance impact for using CDC on a database/table?
This will vary based on the amount of changes that are being done to the database/table you are using CDC on, but Microsoft has optimized this process to use as little CPU/memory as possible. As with any process that you are going to add to a database you should test this in your own environment to know for sure what the impacts are. There is a great White Paper available on MSDN that covers many different scenarios and impacts of CDC on each.

How is CDC different from Replication, Mirroring or other Disaster Recovery/Backup Scenarios?
CDC is only going to track the changes to the data in the database/table that it is implemented on, so it will not be able to capture security changes or many other DDL changes done to a table (columns being added/removed are tracked, but with limits, see MSDN article). The main purpose behind CDC is for a quick way to track the changes to the data made over time and to periodically apply those changes to another database with the same schema. CDC is not meant to be used in place of Replication, Mirroring, Log Shipping or other disaster recovery type of scenarios. It is possible to use some of these other technologies with a database/table that has CDC enabled (see the "Change Data Capture and Other SQL Server Features" section of the MSDN article linked here). The most common use for CDC is where a source database needs to be loaded into a data warehouse or the staging area for a data warehouse and you want to get all of the data inserts, updates and deletes applied appropriately without using triggers or other custom code that will have to be maintained.

Can CDC be enabled on any database/table?
Yes it can, but it must be enabled at the database level first and then the table(s) in that database that you want to track with CDC have to be enabled separately. CDC is not on by default on any databases or tables when it is first setup. There are also some important column restrictions that are shown in the slides that I have attached above.

Is it possible to have the CDC track only Updates and Inserts and not Deletes (or any combination of these)?
The CDC stored procedures provided by Microsoft to enable CDC on the database and table do not have any options to ignore certain changes, so once it is enabled it will track all Inserts, Updates and Deletes done to that table. When you are creating the processes that use the CDC data to apply the changes to the destination database, you can choose to not implement any of the types of changes you don't want by using the _$operation column and looking for the appropriate value(s). If you are using SSIS 2012 and the new CDC Splitter, then you can choose not to implement any of the data flows off of it that you don't want to have processed.

Can the SSIS 2012 CDC components read the CDC source data from older versions of SQL Server?
Yes! The SSIS 2012 CDC components can connect to a SQL Server 2008/2008R2/2012 CDC enabled database/table and use that data to then update any SQL Server 2008/2008R2/2012 destination (along with the possibility of other databases that have the required ADO .NET data providers in SSIS 2012). See this link for details on using SSIS 2012 CDC with Oracle!

For more details on how CDC works, there are great resources available on MSDN.

If you have any other specific questions, please feel free to email me at the address in the slides attached above or send me a message on Twitter.

Tuesday, January 29, 2013

24HOP - Business Analytics Edition

Tomorrow morning at 06:00 MT the new 24 Hours of PASS (24HOP) event begins with 12 hour long sessions on a variety of Business Analytics topics. This 24HOP is a preview of the types of sessions that will be offered at the PASS Business Analytics Conference 2013 on April 10-12 in Chicago (use referral code BAC158LC when registering to take $150 off the current registration fee).

If you don't get up that early, don't worry the first 12 hours of sessions will be repeated again 12 hours later, so for example the first session at 06:00 MT will be on again at 18:00 MT (6PM MT).

And best of all this training is all FREE! Register using this link today for some great training starting tomorrow morning!


Monday, January 14, 2013

Balanced Data Distributor (BDD) for SSIS

I was just alerted to a Microsoft developed SSIS component that might help in situations where you need to load large amounts of data via SSIS and have some slow components in your Data Flow. The component is called Balanced Data Distributor or BDD and it is available for free from Microsoft for SQL Server 2008/2008R2/2012 in both 32bit and 64bit flavors.

This component was developed as a way to split your processing within an SSIS package to take advantage of today's multi-threaded servers and do it without requiring you to run multiple copies of the same packages in parallel or other more difficult solutions. The component is very easy to use, once installed you just drag in onto your Data Flow and hook it up to your input data, then you can pull off as many output flows from it as you want (Microsoft is currently not recommending more than 5, but you should test it in your environment to see what works best). From there your output flows should be the same to execute the slow moving processes and then they can each write directly to the same output or be merged back together using a Union All depending on your needs. Whatever the number of outputs you use the component will do the splitting by routing each pipeline buffer of data to the outputs in order. So, if you have 2 outputs setup, the first buffer goes to output 1 and the second buffer goes to output 2 and so on until the whole input file is complete.

Nice simple component that can have huge benefits if you are working with data that is just taking way too long to load in a single Data Flow. The downside is that you will need to duplicate the components in each of the output flows, so maintenance might be a mess later on since you will have make changes in each of the flows. Overall, though that issue is probably going to be out-weighted by the runtime improvements you should see in your packages. Also, keep in mind that this is going to be processing the data out of order, so if your process requires that this component won't help you unless you can work around that requirement.

Below are some links on this component:


Stay tuned for a more detailed post on using this as I do some experiments in my development environment to see just how this component works. I wanted to get this out there as a quick post since I already know of 2 clients that I have worked with recently that will probably benefit from using this component.

Wednesday, January 9, 2013

SQLSaturday #183 Albuquerque, NM

I'm starting off my 2013 speaking engagements at SQLSaturday #183 in Albuquerque  NM on February 9th. Currently my session, "SSIS 2012: More Than Just a Pretty UI" is scheduled for 4:15pm in Room 4. For those that can, please sign up on the SQLSaturday #183 site. The event is free to attend, but you will have to pay $10 if you want the lunch provided onsite. I have attended many SQLSaturday's over the last few years and have been honored to speak at many as well as organizing the Denver SQLSaturday in 2012 (stay tuned for more news on SQLSaturday #190 in Denver on 9/22) and I think this is some of THE BEST SQL training out there, done by people in the local community and from around the world. All of the speakers and volunteers put on these events in their free time with the help of sponsors to offset the costs.

If you have the time and you are in the Albuquerque, NM area, please register and attend SQLSaturday #183. If you are not in the Albuquerque area, please visit the main SQLSaturday website and see if there is an event in your area!

Tuesday, November 27, 2012

PASS Summit 2012 - Part 2

Sorry for the long delay in posting my summary of PASS Summit 2012 activities, but I needed to enjoy the Thanksgiving break off from work and travel.

I left off on my previous post on Monday afternoon before the Networking Event that took place around dinner time. The Network Event has been done for many years now by Steve Jones (b|t) and Andy Warren (b|t) before PASS Summit starts and is always a good event to meet lots of people. For me I had overdone it earlier in the day so I wasn't feeling very well, so sorry if you tried to meet with me and I didn't make it around to talk to you. Thankfully the issues I was having passed later in the evening, but I wasn't sure what was going on for awhile that evening.

Tuesday was the first day that I had Chapter Leader meetings to attend throughout the day. First was the meeting with all SQL Saturday organizers where we had many discussions on where we are with SQL Saturdays and where we want to take them in the future. Lots of very helpful information that we will be using for our next SQL Saturday on 9/21/2013! After lunch was the Chapter Leaders meeting where we split up into multiple different groups to talk about specific issues around starting/running/extending our User Groups. Again lots of great info that I will be looking forward to implementing in our group.

Tuesday evening was the Welcome Reception put on by PASS. As usual I was a little bit late getting to this event again this year, so I missed the First Timers entering the party (maybe next year I need to be a mentor to force myself to be there when this happens). The party was big as it has been over the past couple of years, was still able to get to the food and drink without too much waiting though. After meeting quite a few people I headed over with a few of the Pragmatic Works guys to the Volunteer Party at The Garage. Even though I had paid for the Exceptional DBA Awards put on by SQLServerCentral.com & Red Gate, I wanted to attend the Volunteer Party since this was the first year I have been invited to it (hate it when there are multiple parties going on at same time). Had a great time bowling and watching the election coverage.

Wednesday was finally the first official day of the Summit. It started off with Keynotes given by the current PASS President, Bill Graziano (b|t) and various Microsoft representatives. The biggest announcement that I picked up on are the changes to allow Multi-Dimensional cubes to be queried by DAX along with MDX, this puts Multi-Dimensional cubes on par with the newer Tabular models. Can't wait to see how this is fully implemented in vNext of SQL 2012 (this will not be included with SQL 2012 SP1 which was also announced). Also announced were changes to the ColumnStore Indexes to make the updateable and able to be clustered, should add some pretty cool new capabilities. The last thing that I remember from that Keynote was the Hekaton announcements, which is an in-memory OLTP solution that is supposed to add many X improvements in speed for most database solutions (assuming you have tons of memory on your servers). There were other announcements at the Thursday Keynote, but I didn't attend much of that one and heard from others that some of the demos were a bit long, lots of stuff around Big Data/Hadoop.

As with previous years I didn't attend a bunch of sessions during Summit, I end up spending a bunch of time networking and volunteering at the PASS Community Zone and spending some time at the Pragmatic Works booth. It was cool to see the Summit from the perspective of an exhibitor this year, that was the first time I got to see it that way. I did attend a session given by Mark Stacey (b|t) on using NASA data with PowerPivot, which was really cool because he built the whole session around how to get and use the free NASA and ESA data that is out there in demos. Being a Space Nut this was right up my alley and gave me some possible great ideas for future presentations (thanks Mark!). I also saw a great presentation on setting up Kerberos with SharePoint, which as anyone that has done knows this is a real pain point and Chuck Heinzelman (t) laid it out in 7 steps, should help if I do end up running into this in the future. I was able to get to one of the Lightning Talk sessions (yet again in way too small of a room again this year) and saw Bill Fellows (b|t), Jes Borland (b|t), Niko Neugebauer (b|t) and Oliver Engels (t) present on some great topics. As with most conferences with any BI sessions there was a BI Power Hour at Summit again this year and as with the previous ones this did not disappoint in presenting more solutions with Microsoft BI that you probably never would have thought it could do. Great job by Matt Masson (b|t), Chuck Heinzelman (t), Peter Myers, Matthew Roche (b|t), Sean Boon (b|t) and of course Patrick LeBlanc (b|t). I have been to at least 6 different BI Power Hours over the years at various conferences and they are still by far the funniest session to go to. The last session that I remember going to was on the details of the changes to allow for DAX on the Multi-Dimensional cubes, sounds like they did a good job adding these changes in the right way, including no translation to MDX, just adding DAX as a full featured query language against the MD cube.

As with every year there were tons of events in the evenings after the sessions stop, including the Exhibitor's Reception on Wednesday night that I had to try and work as "security" at the Pragmatic Works booth for the 200+ free books that Brian Knight (b|t), Adam Jorgensen (b|t), Mike Davis (b|t) and various other current/past Pragmatic Works employees were signing for free! Was a very popular thing at the reception and we were able to offer many more books to the attendees thanks to Wiley/Wrox being in the booth next to us and having boxes of these books there that they could allow us to give out. After we got rid of all the books at the reception, a few of us headed over to get setup at the Hard Rock Cafe for the Pragmatic Works, Microsoft and HP SQLKaraoke Event with a live band! Was an awesome party and the first time that I have seen karaoke done with a live band, which was really cool. Not sure how we are going to top that party next year in Charlotte, but I'm sure we will come up with something! :)  Thursday evening was the night that we set for the annual Colorado Dinner at PASS Summit. As in past years we had it at Elliot's Oyster House and as always they were very accommodating for a group of 20+ people that were all paying separately and ordering whatever they wanted. After the dinner we caught a cab over to the EMP (Experience Music Project) to catch the end of the Attendee party. I love this museum, in fact I have been there so many times over the years that it is one that I actually went ahead and became a yearly paying member of. I got to go down to the Science Fiction Museum that is in the lower 2 levels and enjoy all of the great exhibits from my favorite TV and movie memorabilia  There was even more SQLKaraoke with a live band there, guess that is the new trend for the Summit this year. I didn't make it to SQLKaraoke at Bush Gardens until Friday evening this year, just too much going on during the week.

And that is it for another Summit, it was a crazy week that went by far too fast. I had a great time meeting everyone for the first time and again and I'm already looking forward to 2013 in Charlotte!

Sunday, November 11, 2012

PASS Summit 2012 - Part 1 (Pre-Summit Activities)

While I'm sitting in the Atlanta airport waiting for my connecting flight to Columbia, SC, thought that it was a great time to get some of my thoughts on last week's PASS Summit 2012 posted. This post will cover the activities I did before Summit.

I arrived in Seattle on the Friday morning to spend some time with some of the other Pragmatic Works folks in the Mount Rainer area. Being in Denver, I'm not in direct contact with most of the other Pragmatic Works people on a regular basis, so this was a great way to get to know more of them. Friday night we all ate at the cabin, thanks to Brian Knight our chef for the evening. The cabin was pretty cool, if not a bit old. Had a fireplace, pool table and Foosball table and tons of beds for all of us.

We all attempted to hike up Mt. Rainer first thing Saturday morning. Weather was not great as we left the cabin, raining, foggy and pretty windy. We got to the parking lot to get all of our gear setup and this was the first time I have ever hiked anything more than just some paved trails in Colorado, but I figured I live a mile high so I shouldn't have too many issues. Oh, was I completely wrong! Didn't take me very long to realize that even living at altitude doesn't help if you don't also work out regularly at altitude (those that have seen me recently know just how out of shape I am). Thankfully we were prepared for the full group of 9 people to split up into at least 3 smaller groups as the hike went on. I quickly feel back into the back group, which was great because we were all pushing each other on to continue even when at different times all of us wanted to just quit and go back. We got all of the way up to around 7000 feet and to the point where the snowfield starts and we would have to put on our snowshoes. That was when Mt. Rainer really let us know that it was in control and the wind was blowing at 30mph+ with sleet and snow blowing in our face. We stood there for awhile and realized that we could see the first of the groups coming back our way. Turned out that not too much farther ahead they hit snow that was waist deep and even harder going, so we all made the decision to head back to the cars. No one got to the goal of the basecamp (Camp Muir) this year. According to others that have done this hike at other times the snow was higher then they have ever seen it. It was very grueling for me, but I'm glad that I tried it and made it as far as I did. I don't think that I will ever need to try and hike a mountain again, but you never know.

After the Mt. Rainer adventure all of us headed back to Seattle on Sunday morning. Before leaving I made breakfast for everyone. Thankfully I didn't make anyone sick (or at least they didn't tell me) with my French Toast, Bacon and Hash Brown feast. On the way into Seattle we all stopped at the mall in Bellevue since some in the group wanted to stop at the Microsoft Store and see about getting a Surface. I had seen Brian Knight's Surface at the cabin previously, so I didn't see the need to get one (I'm already an Apple fanboy, I'm more interested in the Windows 8 Pro tablets). This was also my first time in a Microsoft Store, definitely looks like a copy of the Apple Stores, guess you need to copy something that works! :)  While I didn't get a Surface I did wander to the back of the store and found an awesome Ogio Bandit backpack that is White and Black with Gold highlights. As soon as I saw that bag I had to have it since those are my Alma mater's Purdue University colors (only thing missing is Purdue patch, which I'm going to fix). After a couple of people bought Surface's we headed off to P.F. Chang's for lunch. Was great to sit down and talk about the weekend and prepare ourselves for the week to come.

We headed out of Bellevue into Seattle and dropped everyone off a their hotels for the next week. I was staying at the Sheraton again this year. Definitely my favorite hotel for PASS Summit in Seattle since you only have to walk half a block to get into the convention center (wish it was cheaper though). The only thing that I found after checking-in that sucked is that our normal staging area for post-conference activities each night the Sheraton bar was closed for renovations. Now we would all have to use Twitter to find out what was going on or make sure to contact attendees at the conference/hotel as we saw each other.

On Monday I didn't have any PASS Summit related activities, so I got up early to make a visit to Top Pot Doughnuts. If you have never been to Top Pot, you should definitely try to go next time you are in Seattle, very good doughnuts! After that I walked down to the pier area to walk around and saw the new Seattle Giant Wheel that was under construction that last 2 trips I made to Seattle. Before lunch I meant up with a few other Pragmatic Works people to take the Seattle Underground tour. I have done this tour twice previously, but it is always great to go on this tour to get the different stories on Seattle's very colorful past. If you have not done the Seattle Underground tour, you should best tour I have done in any city I have visited. Grabbed some lunch after the tour and then headed back to the hotel to recharge before the Networking Event that evening.

That covers all of the pre-Summit activities, so I'll post the details on the rest of the week in a future post.