Yep, you read that right. I’m building tools in Go.
I can hear you now…. But Wes you are a SQL Server guy, a WINDOWS guy! What about C#? What about Powershell? What about ANY THING ELSE???Making Decisions
Sometimes you make choices, not based on what you want to use but what you must use when building your tool set.
Here was my decision making path I hope it isn’t too complex.
It must run on everything from Windows Server 2003 through Windows 2012 R2 where I don’t have total control over the OS or what is installed on it.
That was it. I had no clue it would be so difficult to More >
What else can I say. I finally broke when I had to build a flat file connector with 258 columns that needed to be imported into a staging database. 258 columns… I almost had a stroke. Not only is it mind numbing it’s also error prone. I do dabble in c# so I build a little tool to automate this for me.Introducing SSISConnectionBuilder
SSISConnectionBuilder is a simple command line tool to ease the burden of building flat file connectors for SSIS. It is WAY WAY alpha but I am working on cleaning up the code. You can pick it up here on codeplex.
I More >
I write little tools from time to time that I need to manage my personal lab. Since my machines are in their own powered and air conditioned closet it isn’t very convenient to get up, open the closet, get slammed by the noise and turn a machine on. And, I don’t want to leave them on all the time if I’m not using them. I’m no Paul Randal (blog|twitter) but I do use between 4000 and 5000 kilowatt hours a month.Enter Innovation!
So, since I couldn’t find a simple tool to handle this I wrote one! LabWakeUp is pretty easy to use.
I More >
If you have been following my trials with working with C# and files you know it hasn’t been a bed of roses. I ran into a roadblock when I was trying to build a high performance file copy tool in the CLR. I eventually found a solution. It works but it isn’t very clean. So, I did a little more work, removed a broken bit and simplified another bit to make it a little more stable. I’m not done yet. I know there are a couple of places I can clean the code up a bit more and a way to speed things up a bit more at the cost of using more memory, but that is for another blog post.Logging, to the More >
My friend, and newly minted MVP, Jen McCown (blog|twitter) is hosting T-SQL Tuesday this month. I normally don’t do the T-SQL Tuesday, but this is a post about resolutions so I am resolving to do more of them in the new year. I’ve always considered myself a core engine kind of guy. Focused on things like I/O, on disk structures and the optimizer. As SQL Server grows it has become harder and harder to keep up with the Joneses’ (Steve?). Like every other DBA that earned their salt in the mines of 6.0 through 2000 I’ve got a ton of tools I’ve written myself to monitor every aspect of SQL More >
Not being one for letting a problem get the best of me, I took another look at the asynchronous overlapped IO problem. If you read my last post on the subject, you know I’ve done a lot of work on this already. None of the things I said last time have changed at all. If you want to do asynchronous and un-buffered IO in C# using the native file stream calls you can’t… So, I rolled my own. The kicker is, I don’t use any unmanaged code to do this. No call to VirtualAlloc() or anything else using DLL imports. Oh, and the speed is spectacular.The Goal
My ultimate goal was to build a routine that More >
Previously I’ve written about doing fun IO stuff in C#. I found out that some of my old tricks still worked in C# but….
Now having done a lot of C++ I knew about async IO buffered and un-buffered and could have made unmanaged code calls to open or create the file and pass the handle back, but just like it sounds it is kind of a pain to setup and if you are going down that path you might as well code it all up in C++ anyway.
I was mostly right. I have been working on a file sync tool for managing all my SQL Sever backup files. Naturally, I wanted to be as fast as humanly possible. Wanting that More >
Many years ago, in the dark ages of DTS I created a little app that would take two parameters and build a UDL file. This an some crafty VBScript allowed me to loop through a list of servers on the fly. I haven’t thought about this code in almost ten years when I came across John Paul Cooks’ blog post on using UDL files. I thought I’d just post up the code, it is basic but got the job done! I did clean it up a bit since it was written when .net 1.0 was all the rage. The secret sauce is writing the file encoded Unicode and doing binary writes to get all the little bits in the correct palace. More >
I’ve toyed with the CLR in SQL Sever 2005 off and on since the first Yukon beta had it enabled. And I’ll be honest with you, I was not a fan.It wasn’t like “YOU got chocolate in my peanut butter!” kind of moment for me. I really thought it was going to be a disaster of biblical proportions. As SQL Server DBA’s we caught a break, adoption wasn’t exactly stellar. The problem was there are enough restrictions and little gotchas to keep developers from whole sale abandoning Transact SQL for something more familiar. Fast forward a few years and now I’m not so scared.My biggest worry back then was More >
I do more than just SQL Server. I enjoy programming. In my former life I have worked with C/C++ and Assembler. As I spent more and more time with SQL Server my programming took a back seat career wise. Having that background though really helps me day in and day out understanding why SQL Server does some of the things it does at the system level.
Fast forward several years and I’ve moved away from C/C++ and spent the last few years learning C#.