With Microsoft’s new announcements, including the new Surface Studio PC – it seems like they’re finally trying to go after what remains of the PC market. Microsoft is finally at the table, trying to eat Apple’s lunch. With Apple’s “Hello Again” event tomorrow, it will be nice to see if Apple is going to take another year off, or if they’re finally ready to make some much needed updates and improvements to their Mac lineup.
I made a quick video highlighting my experience with Microsoft’s Virtual Desktop solution inside the new Windows 10 Technical Preview. So far, I’m extremely thrilled that Microsoft added virtual desktops, as it was something sorely lacking in Windows and yet was available on most other popular operating systems. Also included is a remapping of the old Windows Aero Flip 3d (Windows Key + Tab) to the new Windows 10 Task View – which is basically OS X’s Mission Control – a method for managing, switching to, and viewing virtual desktops. Here are some other useful shortcuts that are new or changed from previous versions of Windows (from here on out I’ll refer to Windows Key as WinKey):
Alt + Tab is basically unchanged and properly switches to the correct desktop when an app is selected that isn’t on the current desktop.
WinKey + Ctrl + D is the shortcut to create a new virtual desktop.
WinKey + Ctrl + F4 is the shortcut to close a virtual desktop. Closing a virtual desktop will move all open applications and windows on that desktop to the next available desktop – so don’t fret about losing all of your work by closing a desktop.
WinKey + Ctrl + Left (or Right) Arrow switches you to the left or right virtual desktop you have open. If you’re currently switched to a virtual desktop on one of the ends, it does not loop you back around if you try to continue in that direction.
The only downside to the new virtual desktop setup in Windows 10 is that you currently cannot move applications or windows from one virtual desktop to the next while in Task View. This is a major selling point of Mission Control for me, as it allows me to easily manage all of my open applications and regroup them under current or new virtual desktops as necessary to fit my current task. Other than my hopes that Microsoft implements better application and virtual desktop management into Task View before launch, I’m excited to upgrade all of my Windows 8.1 desktops and virtual machines to Windows 10 when it’s launched. The new Start menu (with integrated Start Screen) is really what Windows 8 should have shipped with; Microsoft’s new Windows 10 operating system is finally aware of its place when installed on a computer with a mouse.
It’s almost inarguable that Microsoft’s IntelliSense is either the top dog, or in the top three at syntax suggestion/completion. What bothers me is that with standard Visual Studio installs (as recent as VS 2013), you don’t get the full SQL Management Studio package. Instead you have to go download SQL Management Studio Jr., with a severely reduced feature set, from Microsoft. Why should you care?
How many developers of relational database-backed applications are there in 2014 that don’t have to think about database performance or troubleshooting ever?
I hope that answer is close to zero.
Even if you’re fortunate enough to have an experienced database administrator, as a developer it would be in everyone’s best interest if you tried to make their job easier and not harder.
As a developer that’s using Microsoft’s database platform, even if you’re not necessarily using Microsoft’s languages (Python, PHP, Ruby, and Node are all supported on Windows Servers), you should be able to do some simple query plan analysis, reporting, and troubleshooting. Yet, the tools required to do these simple tasks are mysteriously left out of the “free” version of Management Studio.
Have a query that’s running long for no apparent reason? Have fun; you’re on your own – unless of course you have access to a Microsoft SQL Server license key and supporting disk image.
In order to have access to the latest SQL Server Profiler, Integration Tools, and Database Engine Tuning Advisor, you’ll either need a better MSDN account (the MSDN account included with Visual Studio didn’t include SQL Server for me) or a full-on SQL Server license.
Luckily, my workplace has an MSDN account for us and I was able to use that. Had I been on my own, I would’ve been shelling out some serious dollars (SQL Server licensing is hilariously expensive) to have very basic tools that should be bundled with Visual Studio by default.
While some might view Visual Studio as the best IDE currently available, I still believe it has a ways to go in terms of developer friendly enhancements and decoupling from Microsoft as an avenue for revenue and instead using it as an incentive (reduced cost, free, etc.) to bring more developers to their platform. The full version of SQL Server Management Studio is a developer tool and should be included with every Visual Studio install.
UPDATE: I’ve included a list of items to consider when connecting to a Microsoft SQL Server from Linux here. Please review this if you’re starting out and don’t fully understand your possibly choices (using your programming language of choice’s driver, using the Microsoft ODBC driver for linux, or possibly using an open-source driver such as freetds).
UPDATE 2: I’ve included a new link to a tutorial I wrote on how to install an updated unixODBC on Ubuntu Server.
Need to connect to a Microsoft SQL Server on Linux? Your best bet is to use their ODBC drivers (available here) – but OH NO – they’re only supported via Red Hat Enterprise Linux.
No fear – of course they’ll work on most 64bit distributions.
Install Instructions for Ubuntu Server 12.10 – this should actually work for most Debian/Ubuntu distributions that have packages available for openssl-1.0.0 and unixODBC 2.3.0 (though you may want to download and install 2.3.2 for better performance):
The following numbered steps have become mostly unnecessary. I’ve fixed the Microsoft scripts so you no longer have to use “–force” to install the driver on Ubuntu and create all the symlinks yourself.
Those fixed scripts are available here: Microsoft SQL Server ODBC Driver 1.0 for Linux Fixed Install Scripts.
To use the modified scripts you can:
- Download the modified scripts
- Download the Microsoft Driver (as shown in step 1 below)
- Copy my “build_dm.sh” and “install.sh” into the “msodbcsql-11.0.2270.0” directory (after completing step 2 below)
- Follow my tutorial to install unixODBC – if you’re using Ubuntu 12.04 or higher I recommend just using my unixODBC package.
- Use the “install.sh” script to automate Microsoft SQL Server ODBC driver installation as Microsoft’s Documentation instructs.
To install the driver manually:
- Visit http://www.microsoft.com/en-us/download/details.aspx?id=36437 and download the file for “RedHat6\msodbcsql-11.0.2270.0.tar.gz”. Currently you can use the following command until the link changes:
$ wget http://download.microsoft.com/download/B/C/D/BCDD264C-7517-4B7D-8159-C99FC5535680/RedHat6/msodbcsql-11.0.2270.0.tar.gz
- Extract the tarball:
tar -zxvf msodbcsql-11.0.2270.0.tar.gz
- Download and Install unixODBC 2.3.0+ if you haven’t already
- change to the new directory ( cd sqlncli-11.0.1790.0 ) and run the install script:
sudo bash install.sh install --accept-license --force
- make sure the SQL Server dependencies are installed:
sudo apt-get install openssl libkrb5-3 libc6 e2fsprogs
- Create some symlinks so everything works with the paths these binaries are expecting to find libraries:
sudo ln -s /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 /usr/lib/x86_64-linux-gnu/libcrypto.so.10;
sudo ln -s /lib/x86_64-linux-gnu/libssl.so.1.0.0 /usr/lib/x86_64-linux-gnu/libssl.so.10;
sudo ln -s /usr/lib/x86_64-linux-gnu/libodbcinst.so.2.0.0 /usr/lib/x86_64-linux-gnu/libodbcinst.so.1;
sudo ln -s /usr/lib/x86_64-linux-gnu/libodbc.so.2.0.0 /usr/lib/x86_64-linux-gnu/libodbc.so.1
And that should be it. The last two steps are dependent on unixODBC-2.3.1 or higher. If you’re using 2.3.0 (please upgrade) you’ll need to link against the “1.0.0” libraries.
Test your install by connecting to your server using
sqlcmd -S my.sql.server.com -U username) to make sure everything is ok. You should now be able to configure ODBC to use the MS SQL ODBC Driver for Linux on Ubuntu.
Yes – in that last steps we’re creating symlinks from “2.0.0” with a link names “.so.1” – masquerading as the older version 1 doesn’t seem to hurt anything in any of my installations. According to the unixODBC changelog: “Major change is to change the library version number from 1 to 2 to signal the SQLLEN change for 64 land. Should have been done for 2.3.0, but better late than never. So if after installing you have apps that can’t find libodbc.so, its likely they are linked to libodbc.so.1, so just create a symlink from libodbc.so.2”
So I think we’re OK.