Voice of the DBAhttps://voiceofthedba.wordpress.com
Writings from the Voice of the DBAMon, 02 Mar 2015 16:27:04 +0000enhourly1http://wordpress.com/https://s2.wp.com/i/buttonw-com.pngVoice of the DBAhttps://voiceofthedba.wordpress.com
10 days, 3 cities, 4 talks, 6 flights and 6 hotelshttps://voiceofthedba.wordpress.com/2015/03/02/10-days-3-cities-4-talks-6-flights-and-6-hotels/
https://voiceofthedba.wordpress.com/2015/03/02/10-days-3-cities-4-talks-6-flights-and-6-hotels/#commentsMon, 02 Mar 2015 15:46:00 +0000http://voiceofthedba.wordpress.com/?p=9148]]>I’m off today for Europe, on the longest trip I’ve taken for Red Gate. It’s stretching me a bit, but it should be fun. It will be a whirlwind as well. I’m flying to London (2 flights) and then driving to Cambridge for a couple days (1 hotel) at the Red Gate office. Then I head back down to London on a bus for SQL Bits (3 days, 2 hotels).

On Saturday, I return to Heathrow (1 hotel) as I have an early Sunday flight (1 plane) to Dublin. There I get a day off, and I booked my hotel (1 hotel) near some of Dublin’s sights. I’m hoping for good weather to rent a bike and wander around. It’s only one day, and them I move (1 hotel) near the DLM Workshop seminar that I’ll be delivering in Dublin on Tuesday, along with a visit to the user group there.

Then I head back to London (1 flight) early Wednesday morning, changing planes and heading back to the US (2 flights) and home.

It’s a bit of a crazy trip, and with my costume for the event at SQL Bits, I’ll be checking a larger bag than I ‘m usually do.

I’m looking forward to it, and while I’m sure I’ll be tired, it will be great to see so many #sqlfamily in the UK.

Filed under: Blog Tagged: speaking, SQL Bits, travel]]>https://voiceofthedba.wordpress.com/2015/03/02/10-days-3-cities-4-talks-6-flights-and-6-hotels/feed/2way0utwestNo State Based Deploymentshttps://voiceofthedba.wordpress.com/2015/03/02/no-state-based-deployments/
https://voiceofthedba.wordpress.com/2015/03/02/no-state-based-deployments/#commentsMon, 02 Mar 2015 15:13:41 +0000http://voiceofthedba.wordpress.com/?p=9121]]>I’ve been studying deployment ideas and technologies for quite some time now, but it’s been a focus for the last year or two as my employer is interested in this area. I’ve been reading books and talking to people, comparing their experiences with my own. I’ve found that deployments for databases are much more complex than those for other software, but essentially there are two approaches that people choose: migrations and state based migrations based deployments.

Migrations based deployments are based on tracking each change to a database in a separate script and then executing each script, in order, on your production database. This is hard to do, requires discipline, and is what most people find difficult to do. Scripts get quite numerous, ordering is hard, and deployments become scary and largely unsuccessful without a lot of care. The scripts require tweaks and fixes to work efficiently, and you need smart DBAs and developers.

State based deployments are what many people try to use. They look at the state of production, the state of development, run some tool likeSQL Compare, or a process, and determine what changes need to be made to production to get it to match development. There are variations, but this is the basis for how many people try to create a deployment process. It seems easier.

The problem is that at some point a state based deployment process won’t work. It’s actually impossible for a state based approach to work in all situations. Simple actions, like renames, can’t be handled by examining two states. In order to properly manage changes, and keep your data intact and safe, you need to understand “what” happened during the process, not just the end result.

In many situations, state based deployments can work, and they can be used successfully, but there is always the possibility that you’ll need to customize your state based approach to include some migrations scripting. Keep that in mind, and make sure that any process or tool you choose has that flexibility. If you understand you need to review and modify scripts at times, you should be successful.

Steve Jones

The Voice of the DBA Podcast

Filed under: Editorial Tagged: continuous delivery, deployment, DLM, Red Gate, software development]]>https://voiceofthedba.wordpress.com/2015/03/02/no-state-based-deployments/feed/0way0utwestThe Pebblehttps://voiceofthedba.wordpress.com/2015/02/27/the-pebble/
https://voiceofthedba.wordpress.com/2015/02/27/the-pebble/#commentsFri, 27 Feb 2015 20:05:00 +0000http://voiceofthedba.wordpress.com/?p=9146]]>I have been a "watch" guy for most of my life. Ever since I was a teenager, I’ve almost always worn a watch, usually a Timex, that lets me track time. At one point I really had the goal of being successful enough to buy a Rolex, but at some point that fell away. I decided I liked something that was lighter and more durable.

A few years ago I lost a watch, taking it off for karate and forgetting about it in my bag later. I found it months later, but in the intervening time, I tried to make do with my cell phone. I found it annoying to pull out my phone to check the time. I also found myself spending time on the phone more, when I could do something else.

I was intrigued with the idea of smart watches, and I’ve looked at a few. I backed a Kickstarter project, thinking I’d get the watch and use that with my phone. The project got delayed, I got more annoyed with my phone, and eventually I got a device that didn’t work. It needed a charge every night, and the quality was slow. The app was also flaky, crashing often.

At this point I was disappointed and still wanted a watch. It was close to Christmas, so I bought myself a Pebble watch. It was on sale, only about $60, just slightly more than the $40 I’ve paid for Ironman style digital watches.

I did look at the various Android Wear watches, and the Apple watch, but they seemed to be flaky, as well as very expensive. A watch is a tool for me, not something I wanted to spend a lot of money on. Plus, I wasn’t sure how well the integration would work and how much I’d use it, so I wanted a cheaper experiment.

Getting Oriented

I was somewhat fascinated with the Pebble. It was about as simple a device as you’d want, and it just worked. I can’t speak for the Android experience, but I suspect it was as simple as the iPhone one. I essentially plugged it in, and when it had a little charge, I could connect it to my phone through Bluetooth using the Pebble app.

The small box the Pebble came in just had the watch and a cable. You can see the multiple contact cord (with USB) and the matching connectors on the watch. This is a magnetic connection, like some laptops use. It easily connects and disconnects.

Charging seems to be fast, as I’ll get a low battery warning and can connect it to my desktop, having it charged in a couple hours.

The watch itself has a nice display, that’s easy to read. There are lots of watch faces you can choose. I tend to use something simple like this:

That gives me dates and times, which I like. I also have this one, which I’ve used when I want to get away from time and work. It’s just a simple display to remind me not to worry about time. This is one I use on weekends regularly.

You can download faces from the Pebble app store, and they mostly appear to be small and fast. I’ve loaded 4 or 5 on my watch that I can choose from. There are some really interesting ones that you can get.

There’s an app store, and while you can download a bunch to your phone, you can only have 8 on your device. It’s easy to remove and add them, with a few taps on the phone and a short delay. I’m surprised how quickly they load, given the slow, bloated software I find elsewhere.

Some of the apps do time, some do other things. I’ve got this Weather Channel app, that gives me time and weather wherever I am, which is nice when traveling.

It’s a basic watch, so I needed to find a stopwatch app to use. That surprised me, but it makes sense.

I also worried about the display, but it’s easy to read during the day, and a shake of my wrist will bring up a brief backlight. That’s really handy at night when I might want to check to see if I’ve overslept in a hotel room.

45 Days Later

I initially played around with lots of watch faces. I found some neat ones, but I quickly discovered most were a bit hard to read when I was in a hurry, or driving, which is when I usually need the time. I decided that a basic display suited me better.

I’ve messed with apps, but for the most part, I want this to be a watch and a notification device. Controlling music or getting ESPN scores isn’t want I need. Those things might be handy, but as I appreciate time away from my device more and more, I want it to do less.

Battery life is great. I bought a second charging cord for traveling, and promptly forgot it on my trip to the UK in February. I had charged the device Monday morning before leaving for the airport and had the watch work until Friday morning. I’d realized I didn’t have a cord and turned off notifications sometime Wednesday, but that was still impressive. I’ve since put my cord in my laptop bag.

There isn’t a lot of notification that the battery is going down. I’ll get a 20% battery note, or a low battery, and I don’t have a lot of time (a few hours) before it just turns off. I dislike that. I need to find a battery app for the device (I’ll do that shortly).

The notifications just work. The ones that normally appear on the lock screen (texts, Word With Friends, etc.) appear on my phone. That’s super handy, especially while driving. I can see a text and decide what to do. It’s even more handy with 2FA notes from Google or WordPress. I don’t have to go find my phone. I can read things on my watch. Apps don’t have to be "pebble aware" as my Tempo calendar alerts just appear on the watch. No configuration.

It’s water proof to the extent I’ve worn it in the shower. I wore it in the pool once, for a lap, but didn’t like it and was worried, so I pulled it off. The band is a little annoying for me, so I tend to take it off when it’s going to get wet. I may look for another band at some point.

Overall, I’m very happy with the Pebble and there isn’t really anything else I want from a watch. I don’t want color if I give up any battery. I think the bluetooth cost is minimal, and haven’t noticed issues with my phone. I think it’s a great investment, and if you want a basic smart watch that gives you time and notifications, this is it.

He died today at 83, which I should have expected at some point, but after seeing him in the latest Star Trek movies, I thought he might live for quite some time. It’s a huge reminder of my own mortality as I see more and more people I’ve known, or enjoyed, for most of my life.

A sad day indeed, but I’ll have many, many fond memories of Mr. Nimoy in the years to come.

Filed under: Blog Tagged: life]]>https://voiceofthedba.wordpress.com/2015/02/27/rip-mr-nimoy/feed/0way0utwestnimoy_oldleonard_nimoy_youngThe Express Choicehttps://voiceofthedba.wordpress.com/2015/02/27/the-express-choice/
https://voiceofthedba.wordpress.com/2015/02/27/the-express-choice/#commentsFri, 27 Feb 2015 15:02:59 +0000http://voiceofthedba.wordpress.com/?p=9119]]>There are a number of editions of SQL Server, each of which has different capabilities, features, and restrictions. Over the years, the mix has changed, and it can get confusing for customers trying to decide what to purchase and use. Fortunately things seem to have become simpler the last few years, but you still have to make a few choices.

The Express Edition has the most restrictions, including a database size restriction, but in many ways, it’s a very capable database server. It’s the evolution of the “desktop database”, MSDE, that was designed to take the place of Access for desktop software that needed a database.

Recently I ran across a discussion on using Express in production, and I was surprised that many people didn’t think it was a version capable of acting as a production server. It’s the same code base as the other versions of SQL Server, with more restrictions. This week, I wanted to see how most of you feel.

Would you use Express Edition for a production database?

I would. In fact, given the way licensing costs have soared for SQL Server, I’d be tempted to use Express in many places, especially for departmental sized applications. I wouldn’t care whether they were web based or client/server. As long as the database would remain below the 10GB limit and the 1GB RAM limitation didn’t kill performance, I think Express is a fine choice.

Of course, outgrowing Express can be quite expensive and a shock for someone using it, but if you need a more powerful server, you need one. I just prefer to defer that cost if I can.

Steve Jones

The Voice of the DBA Podcast

Filed under: Editorial Tagged: Friday Poll, sql server]]>https://voiceofthedba.wordpress.com/2015/02/27/the-express-choice/feed/1way0utwestSix Months with the iPhone 6https://voiceofthedba.wordpress.com/2015/02/26/six-months-with-the-iphone-6/
https://voiceofthedba.wordpress.com/2015/02/26/six-months-with-the-iphone-6/#commentsThu, 26 Feb 2015 16:48:00 +0000http://voiceofthedba.wordpress.com/?p=9130]]>A couple years ago I switched from iOS to Android, pre-ordering a Samsung Galaxy 4. I wrote about my decision and then a short term update before I moved back to my old iPhone 4S and iOS. I have a few more thoughts on what was better on Android, but in the end there were a few things that really annoyed me, specific to how I use a mobile device.

Last fall I eagerly looked forward to the iPhone 6 as my 4S was getting old, slow, and the battery was dying. I pre-ordered the 6, and switched from Verizon to T-Mobile at the same time. I decided to take a look at the past six months and my thoughts. I’ve broken this into two parts because the carrier and phone are separate.

T-Mobile

I have mixed feelings here. I really like lots that T-Mobile has done. The freedom from contracts, the high speeds, the music streaming, the wi-fi calling, overseas data, it’s a neat company. And in some ways, they perform well. I remember sitting in Starbucks, in Parker, CO, and trying my speed test app on the phone with T-Mobile’s LTE network. I got 40Mbps down, better than I get at home!

At times, it’s amazingly fast and I appreciate that. However, at times it’s really, really bad. I live out in the country, and service is spotty near me. I can accept some of that, and certainly in the last six months I’ve seen LTE get close to me and have better service.

However I’ve been in buildings in Denver and other cities, where I have great connectivity outside, but inside a building, even a smaller two story one, I’ll see very, very poor service. Near my house the service is flaky, and T-Mobile hasn’t given me the ability to turn off data roaming near my house. Since I only get 50MB each month of roaming data, I don’t want to waste it. However I have no control, and I’ve given up. If I’m using the phone near my house, but not on wi-fi, I’ll run out of data in a few days. Even if I’m not actively browsing or searching, apps on the phone will use data.

Slightly maddening.

Overseas access has been good, and I’ve appreciated the connectivity without additional costs in the UK. Since I go 2-3 times a year, this is handy.

Wi-fi calling is spotty. At times I know my network has hiccups, but I’ll drop off the wi-fi calling and it doesn’t come back quickly. I’ll have to drop into airplane mode and back out to get wi-fi to reconnect. The transition from wi-fi calling to cellular hasn’t been very smooth, which is disappointing.

iOS8 / iPhone 6

The phone came with iOS 8, which is an evolution, not a revolution, from iOS7. I was somewhat excited, as there are a few enhancements, but also disappointed in some ways. I’ll cover a few things I like and some I don’t.

The phone itself is an iPhone. Slightly larger than the 4S, thinner, and light. It’s basically a slightly stretched version, and I haven’t noticed much. I get 5 rows of icons on the screen, which does look amazing at times. A few of my pictures, or videos I’ve shown on there look fantastic. As good as my Galaxy 4 screen. Battery life seems inconsistent. At times it runs down far too quickly, and at times it lasts. I’ve uninstalled apps at times when I’ve noticed poor battery life, but haven’t really figured out what’s happening. I have a battery case, so mostly I don’t worry about it.

iOS 8, however, took a few steps back. The biggest thing I noticed right off was that when I get forwarded to some web pages in Twitter, Facebook, or other apps, I’ll only get a partial page load. Then I’ll get white screen halfway through an article. I know this is iOS/Safari somehow, because if it happens on all kinds of target sites, and if I reload the page in Chrome, it works fine. That’s slightly maddening.

The music app works fine, and the camera does well. It’s quick, though once in a great while it hiccups. Overall, this is a better photo/video/music device than any I’ve had, but just because it’s a bit faster and it works well. I love the slow motion video, especially capturing my kids’ sports events.

Navigation/maps are fine, though I wish I could switch defaults from Apple to Google. Not that Apple maps are bad, but I often want to get a look ahead at the route. Apple maps does not make that easy.

I love having Passbook again, and I use that extensively for airline tickets, movie tickets, and Starbucks. I also use Apple Pay at a few places, but since most don’t accept it, it’s not super handy. However being able to give my phone to my daughter to go get coffee while I get gas is very nice. It’s also super handy. It wasn’t as clean on Android, though I suspect the Starbucks app there would do fine.

The TouchID, which I thought was gimmicky, is great. I use it all the time, letting me unlock my phone while I’m walking or trying to move through a line without looking at the screen. I have a password manager that uses it as well and I love it. It’s not a great security feature, but it works well enough for me for now.

The third party keyboards don’t work. That’s one thing I am disappointed in. The responsiveness of Swype and Swiftkey aren’t’ there, and at times they freeze up, especially in messaging. It doesn’t have to happen more than a few times before I abandoned them. I hope they fix this.

I do miss having the ability to resize icons, or move them around on the desktops. I’m slightly jealous of my wife’s LG III, as she got an amazing loader that gives her different backgrounds on different screens. It also rotates through all her "desktops" in a circle. I’d like to have my icons around the edge of the screen and see the background clearer as I like pictures.

I’m not too concerned anymore about which apps are where. Since I can pull down and search, I do that often, and rarely look through screens. That’s a feature I great appreciate.

The Future

I’d still like to see Windows Phone succeed a bit and evolve, but I also want it to get more apps and have more choice. That’s still a failing that keeps me off it.

I am tempted by Android, except that every time I hear a camera click or text pause the music on my wife’s phone, I’m glad I’m not using it. She did get a third party camera app that responds much quicker than the native one, so I suspect that real time interrupts and issues with the camera and music apps I had on Android are built in, but potentially handled with third party apps.

I may switch at some point, but for now I’m very pleased with my iPhone, despite a few glitches.

Filed under: Blog Tagged: cell phone]]>https://voiceofthedba.wordpress.com/2015/02/26/six-months-with-the-iphone-6/feed/0way0utwestBuilding Small Habitshttps://voiceofthedba.wordpress.com/2015/02/26/building-small-habits/
https://voiceofthedba.wordpress.com/2015/02/26/building-small-habits/#commentsThu, 26 Feb 2015 14:54:00 +0000http://voiceofthedba.wordpress.com/?p=9116]]>I was reading Kenneth Fisher’s piece on constraints recently and was struck by the fact that this is one of those small changes you make to your coding that has big benefits. In essence, rather than being lazy and writing this:

CREATE TABLE mytable ( myID INT PRIMARY KEY, MyCol ....

You decide to explicitly add a few more characters. You note this is a constraint and you type this:

It’s a small change, but it takes you from an object named PK__mytable__783FBF31F8293E74 to one named PK_MyTable_MyID, which is way easier to understand and debug when you have issues. More importantly, this is a DevOps move, where a developer can make it easier for operations people to understand the constructs and organization of a system that has moved to a production environment.

There are all sorts of little coding changes you can make that improve the way you write code, and perhaps make it perform better. Aaron Bertrand has a whole series of bad coding habits, and at SQLServerCentral, we’ve published a number of pieces on different ways to code better, such as removing cursors from your code.

By making some small improvements in your coding habits, changing to better techniques over time, you’ll slowly improve your entire codebase and help yourself and other developers code more efficiently in the future. I’d even recommend as a team that you choose a single change to make, and begin implementing it across the next month or two. Then repeat the cycle again. In a year, you’ll be amazed where you are.

Steve Jones

The Voice of the DBA Podcast

Filed under: Editorial Tagged: DevOps, software development]]>https://voiceofthedba.wordpress.com/2015/02/26/building-small-habits/feed/0way0utwestParsing SQL Saturday Data – Getting Titles from the XML documenthttps://voiceofthedba.wordpress.com/2015/02/25/parsing-sql-saturday-data-getting-titles-from-the-xml-document/
https://voiceofthedba.wordpress.com/2015/02/25/parsing-sql-saturday-data-getting-titles-from-the-xml-document/#commentsWed, 25 Feb 2015 20:33:00 +0000http://voiceofthedba.wordpress.com/?p=8951]]>I’m continuing on with my project to grab SQL Saturday data and automatically insert it into a SQL Server database. In this piece, I’m picking up from the last one where I had a loop to load all XML documents in a folder based on a pattern.

This time I want to query the XML and get out specific elements and capture them.

The Source

The XML source looks like this for the sessions:

</event> <event> <importID>2102</importID> <speakers> <speaker> <id>2102</id> <name>Jason Strate</name> </speaker> </speakers> <track>Track 3</track> <location> <name>2520C (Conference room)</name> </location> <title>Using XML to Query Execution Plans </title> <description>SQL Server stores its execution plans as XML in dynamic management views. The execution plans are a gold mine of information. From the whether or not the execution plan will rely on parallelism to what columns are requiring a key lookup after a non-clustered index seek. Through a the use of XML this information can be available at your fingertips to help determine the value and impact of an index and guide you in improving the performance of your SQL Server databases. In this session we’ll look at how you can begin to understand and query the structure of the execution plans in the procedure cache. Also, we’ll review how to uncover some potential performance issues that may be lurking in your SQL Server.</description> <startTime>9/18/2010 12:15:00 PM</startTime> <endTime>9/18/2010 1:30:00 PM</endTime> </event> <event> <importID>2109</importID> <speakers> <speaker> <id>2109</id> <name>Jason Strate</name> </speaker> </speakers> <track>Track 4</track> <location> <name>2520D (Seminar room)</name>

I’m showing the end of one element, one whole one, and the start of a third. There is a lot of extraneous information in the document that I don’t want (for now). As a result, it’s not as simple to query this as I’d thought before. Especially as I’ll want to capture each session title and insert it into a database.

I decided to use a SelectNodes to get to the <event> nodes and then loop through them. The code looks like this:

# get the event node $sessions = $doc.SelectNodes("//event")

# loop through the various //event nodes foreach ($session in $sessions) {

Note that this is inside of the code from the previous post.

Inside of this loop, I decided to create another loop. Initially I didn’t, but that made it more difficult to determine the end of the event node and capture the values, especially the speakers. As a result, I have a sub loop at well:

# probably a better way, but I wanted to loop through the various elements and only pick out certain ones foreach ($detail in $session.ChildNodes) {

If anyone has a better way, let me know. I’ll have all the code below, but this technique allows me to look for specific nodes. I know I could query for them, but since I’m looking for a few specific items, I thought I’d do this rather than multiple queries later.

Get the Title

I actually need the title and the speaker child node, but I’m doing titles only here. Here’s the whole node loop code:

foreach ($detail in $session.ChildNodes) {

# If we’re on the title node, get the value if ($detail.Name -eq "title") { $title = $detail.’#text’ }

Here if I have the title element in the foreach loop, I capture it. This allows me to use this variable later. I’ll go into the speaker code later, but for now, I left a placeholder.

That’s really it. At the end of the outer foreach, I write out the $event and $title variables. This gives me a nice output to the screen. From here I can easily substitute some ADO code to send this to SQL Server instead of the write-host, but that’s a good programming technique for me to see if I’ve got the data I want.

As you can see, there are sessions that I don’t want, but there’s nothing in the data for me to tag them as non-educational sessions. I’m not sure I care, since the speakers associated with these won’t impact my results for reports, so I’ll leave them.

Next Steps

From here I need to extract the speakers before I insert data into SQL Server. That will be the next step before I create the database and then insert data.

Filed under: Blog Tagged: powershell, SQL Saturday, syndicated, xml]]>https://voiceofthedba.wordpress.com/2015/02/25/parsing-sql-saturday-data-getting-titles-from-the-xml-document/feed/0way0utwestsqlsatloop_dSmall Leadershiphttps://voiceofthedba.wordpress.com/2015/02/25/small-leadership/
https://voiceofthedba.wordpress.com/2015/02/25/small-leadership/#commentsWed, 25 Feb 2015 14:49:37 +0000http://voiceofthedba.wordpress.com/?p=9114]]>I ran across Richard Branson’s top quotes on leadership. From a man who’s been quite a success in many areas, and has influenced many others, it was interesting to see what he considers good advice. He lists ten quotes from various others, some of which I’ve heard before. It’s an interesting mix, and these are certainly items that come from someone that could be considered a leader in business. I don’t know if that’s true, but certainly Mr. Branson is in charge of his company, and I believe that it is important for the management of a company to display leadership if they want to be successful.

Most of us, however, aren’t in management positions. Most of us might not want to ever be in management positions. Plenty of technical people prefer to remain in their roles as developers, DBAs, analysts and more. However, that desire doesn’t mean that better leadership skills wouldn’t make our jobs easier, or make us more successful.

The first quote in the story is this: “A lot of people have gone further than they thought they could because someone else thought they could.” That’s the quote of leadership that inspires, that helps others gain confidence and do more than they might otherwise. That’s the quote that shows a person who helps others is a great employee, not only because they get work done, but because they help others perform better.

Far too many managers don’t believe in their staff, and make the clear constantly. Those managers aren’t helping themselves or their company, as they’ll ensure most of their employees don’t do the best work they can. I’d encourage all of you to think about how you treat others. Think about what you say or do to encourage others to become better at their jobs. Perhaps there’s a little more you can to do lead others, and get more work done, while celebrating the success you can have together as a group of professionals.

Steve Jones

The Voice of the DBA Podcast

Filed under: Editorial Tagged: career]]>https://voiceofthedba.wordpress.com/2015/02/25/small-leadership/feed/0way0utwestDLM Workshopshttps://voiceofthedba.wordpress.com/2015/02/24/dlm-workshops/
https://voiceofthedba.wordpress.com/2015/02/24/dlm-workshops/#commentsTue, 24 Feb 2015 17:32:29 +0000http://voiceofthedba.wordpress.com/?p=9112]]>We’ve got a bunch of DLM workshops coming up in the next few months from Red Gate Software. We’ve been working on trying to bring some depth to our education, helping DBAs and developers learn how to built smoother software development pipelines for their databases.

Certainly more are coming later in the year that I’ll deliver or help out at.

We’ve built a series of three days of in depth instruction, each one building on the next. Our hope is to help you move through the subjects. Right now the days are covering these topics.

Version Control for Databases

Continuous Integration

Automating Deployments

We are looking to try and schedule these over time in a city, so that you’ll be able to learn about VCS for databases, then come back in 3-4 months and take the next step to CI. We might do all three days consecutively, but it’s a lot to learn and cover, and I’d really hope that companies would learn one area, implement it, and then come back to learn the next step.

If you have requests for dates or cities, or even private instruction, let us know. We’re growing a list of partners as well because Grant and I can’t be everywhere, so we hope to be able to help more people learn ways to build software smoother and quicker.