Author: way0utwest

  • Republish: The History of the VCS

    In London today, or actually likely still at Heathrow working in an airport hotel. Tomorrow is SQL in the City, so today you get: The History of the VCS

  • More Software Quality with DevOps and CD

    Tomorrow is the SQL in the City Summit in London. Right now I’m in a Heathrow airport hotel, finalizing some prep for the event. I have to run a panel as well as give a talk, Building quality into your continuous delivery process, that will cover some of the ways that we can improve quality by moving to DevOps.

    That’s a passion of mine because I want better software quality. I know it’s hard, believe me, after the SQLServerCentral migration, I remember how hard it is. I also know that this was a few steps forward with a few backward, and across time, this is a big move forward.

    That’s how DevOps will go, especially as you implement it. That was some of what we did, with a complete change in underlying architecture, a software pipeline, and new methods for deploying changes. It’s painful, and we likely went too soon, but we also had external constraints that forced some change.

    Hopefully I’ll see some of you tomorrow and have some advice for you on how to improve quality within your organization. Culture is the big item, and I talked a bit about this at SQL in the City Streamed. Watch that and let me know what you think.

  • Getting Close

    Last week we saw the release of SQL Server 2019 CTP 2.5, with enhancements for Big data clusterrs and a Java language SDK for SQL Server. This is the 6th public release of the next version, and one that’s coming at an increasing rate. If you look at the cadence, there was a release in September, then November, then December, about once a month. A long delay at the beginning of the year, but now 3 releases in a month and a half, which lead me to think that they’re getting close to being done with features. I have no idea when the product will release, and I do think that //build/ is a little too close, but I do think that it will release in the next few months.
    For fun, I’ll send someone this mug (or a fun one of your choice) if you can guess which day the new version will release. Drop a note in the discussion with your guess.
    For SQL Server 2017, we had seven CTPs and 2 RCs. For SQL Server 2016, we had 11 CTPs and 4 RCs. SQL Server 2014, I only had 2 CTPs tracked, though I think this was barely a major release. You can flip back through our build lists and check, but there has been both an increase in the pace of CTP/RC release as well as an increasing volume through the versions. I think this is a direct result of an better engineering process that has adopted DevOps to ensure the release of software is easier than ever.
    I have to admit I’m torn on this. There is some effort to download and update software, and at times these versions have to be uninstalled to install a new version. That makes sense, and I certainly don’t want them spending time ensuring they can upgrade between CTPs if they can fix some bugs instead. Even if i have time to install the software and check a few things, I often don’t want to then recheck a number of things that used to work, and like many people, I probably just check one or two new things. Or if I haven’t finished checking something from a previous CTP, I might stick with that version.
    This is one place that I think containers can really change the world. I can get the updated software without effort. Other than the download, starting a CTP 2.5 image is no different than starting a CTP 2.4 image. There is still a challenge with data files, but in a very rapdily changing world, we want to be able to upgrade quickly. With the changes made with CUs to allow roll forward and roll back, containers make even more sense. Stop one container, start a new one, same IP, same name, same data, new version of binaries. Upgrade or downgrade.
    I’m both excited and intimidated by the new version. There are lots of enhancements that are going to make this a new generation of the platform, but as developers and customers request the use of new features, I’m going to be scrambling to better learn and understand some of the tricks I need to get the system to run well. Of course, with Intelligent Query Processing, maybe I’ll have a bit more free time away from some of the poor code that I’m stuck running.
    Steve Jones
  • SQLServerCentral Design–bbPress

    This is part of a series of posts that look at the changes to the SQLServerCentral design, bringing us to v3 of the site. You can see the other posts with the SQLServerCentral tag.

    Lots more work to be done, and hopefully some things have been fixed by the time this publishes. I’m writing a bit early, as it’s been a rough day of complaints. I get it, and I’d probably be just as upset. At least we didn’t turn off a lot of content, as MSDN did on some old blogs.

    Some History

    The forums have been one of the most popular and active sections of the site. When we founded things, there weren’t a lot of forum options on SQL Server, but we went with an old VB.NET version of InstantForums. Over the years, we stuck with these forums, and they proved very robust, despite being limited in feature set and written in VB.NET.

    A few year back we upgraded to a C# version, then upgraded again later one to a more recent copy of the same forum. The way that some data was stored and interpreted changed in that time, and various people found ways to embed in some HTML or other codes that we would have preferred not exist, but in any case, the forums worked.

    At least, they worked despite a number of complaints at each stage of change. This time it’s not different.

    Choosing bbPress

    When we decided to use WordPress as the platform for SQLServerCentral v3, we were concerned about the forums. After all, we have a huge set of posts and threads, quite a few of which have over 10,000 posts. We also have a fairly active forum user base, and so load and capacity were issues. Add to this the fact that not all forum software supports SQL Server. In fact, most don’t because of the cost of licensing and most forums are free.

    We looked at a few choices, one of which was bbPress. This is the forum that powers WordPress.org and handles a decent amount of load. This seemed like the best choice for us, with lots of plugins and options. It’s also the number one recommended WordPress forum plugin. With lots of choices, all being similar, and knowing that any choice required some customization, we went with BBPress.

    Rough Edges During Migration

    Data migration from the older, Instant Forum style codes to bbPress was a lot of work. We found lots of inconsistent formatting code, and even broken code that rendered well enough in InstantForum, but made data migration difficult. Line breaks were surprisingly difficult to find and handle.

    In addition, we had a much different styling system for code and images, which had to match up with the movement of binary files from one file system to another. All of this led to weeks of migration work that still isn’t perfect, but felt good enough to make the decision to go.

    Pasting Code

    Handling code in a forum is tricky. There are lots of styles and subtle issues that we want to handle and show. In addition, the way pasting code works on different browsers and platforms is surprisingly complex.

    We knew this wouldn’t be perfect, and we kept finding little issues, but they felt little. In addition, it was hard to tell what was an edge case and what needed fixing.

    I’ll also add that the code button used in the various editors worked fine for me, but after launch, we realized that it wasn’t visible for many people. I had two test accounts I’d create after migration tests, but I also used these to check on article submissions and other tasks. Somehow the button was enabled for my accounts, but not many others. An oversight, and probably something I should have caught.

    One of the big issues in the old forum were issues when pasting from SSMS into the code blocks. In testing, I used multiple accounts to paste all sorts of code from SSMS, ADS, and VS into code blocks, formatted before or after  pasting, included multiple lines and comments, and still we had complaints and bugs when we went live. I even tried things on 3 different machines using Chrome, Firefox, and Edge.

    I have no idea how many different ways things are formatted, or the different patterns that people use to format code. When looking at the extra stuff included by Windows in a copy/paste from SSMS, I was surprised.

    I agree with most of you that this shouldn’t be hard, but it is. Every time I repro a case and developers fix it, someone reports another issue. We still have a number of bugs around code that are open, but they are dwindling.

    Quotes

    One of the things I like about our forums is that they’re single threaded. You cannot reply to a particular post and start a separate thread for your reply. Multi-threaded forums are what Facebook, Reddit, StackOverflow, etc. use. I’ve never liked this, and many of our forum users feel the same way.

    However.

    This leads to some strange visuals.

    2019-04-17 15_04_34-Microsoft Edge

    I used to think that quotes were an issue because users were hitting the closest button to reply. I was hoping the move to the new forum would get people to reply without clicking quote.

    That’s not the case. Lots of people hit quote, and nested quotes are an issue. I’d like to remove inner quotes so that only the most recent item could be quoted, but that’s a very, very hard search and replace problem.

    We have quote bugs, especially where code and images are concerned. We are still fighting these, and it’s  nowhere near as easy as it sounds. Lots of forums just avoid allowing you to quote things.

    There is probably a longer term solution that maybe adjusts some features and display, but I’m not sure what to do now and I don’t have time to explore alternatives. It’s really up to me, since at this point I don’t really trust developers to make these decisions as they don’t use the site. Even in testing, they don’t really know how to use the site.

    There are some other forum items, but I’ll save those for another (shorter) post.