Tag: windows

  • Power Tools for Windows

    Scott Hanselman has a great list of the power tools he uses for Windows and development. It’s worth a read, and worth checking some of them out. I have used quite a few of these tools over the years, and I find them great, however I’m definitely considering trying a few of his recommendations out.

    Ones I like:

    • Paint.NET – Beware the big download buttons that take you to GIMP. Click download at the top and follow the text.
    • 7-Zip – I moved to this a few years ago and it works great. Is it better than others? No idea, but it works well and easily for me. It doesn’t get in the way.
    • DropBox – This works well for me. Is it better than Box, or Live Mesh? I still use LiveMesh, but this gives me a nice integration with a lot of iPhone apps.
    • SysInternals – If you admin a network or an AD domain, you need these.
    • PowerShell If you work with SQL Server, spend a few minutes working with this. Here’s a cheat sheet.
    • ZoomIt –  If you present, drop this on every machine, and a flash drive.
    • TortoiseSVN – Use a VCS, any of them.
    • Skype– I’ve also tried Oovoo, but size matters. Skype works well for me.
    • Bart’s Preinstalled Enviroment (BartPE) – Saved my wife one time
    • DVDDecrypter– With kids this is handy. Rip your own DVDs and give the kids the copy.

    The tools I am interested in trying from the list:

    • Boot to VHD – I’ve heard a lot about it and maybe it will make things simpler. When (if?) I go back to a Windows laptop, I might try this.
    • LogParser – On my list as a way to dig through log files in Windows.
    • Hiren’s BootCD – Probably worth keeping around
    • SyncBack -Windows Home Server is a POS for me. Looking for a basic file server and scheduled backups.

    If you have your own recommendations, I’d love to hear them.

  • Dreaming of Windows

    What will Windows 8 bring?

    I haven’t been too excited about the Windows OS in some time. For the most part, I consider the OS a tool, and I was happy to run Windows XP for nearly a decade. The main reason I switched to Windows 7 was a friend noted it ran much more lean on hardware, and it was built as a 64 bit OS from the beginning. I’ve been happy with it, but overall I don’t care. It’s a tool that allows me to interact with the important things in my job: the data I use or create.

    Windows 8 was semi-released this week at the Microsoft Build conference. Microsoft gave away 5000 tablets to attendees, proving once again that I am attending the wrong conferences. I almost wish I had had an excuse to go to this one. I’ll have to come up with one for the next potential hardware release event.

    There are a number of reviews out there of the early preview from various people, and so far the initial impressions are positive. I read Jamie Thomson’s thoughts on the conference early in the week and found myself a little interested in what Microsoft has done. I wasn’t thinking to upgrade to Windows 8 in 2012, given that I mostly deal with writing, email, and SQL Server, but I do know what I’d like to see in the OS.

    I’ve come to really appreciate the interface on my iPhone/iPad. The scrolling, pinch/zoom, and a number of other features are very handy. For tablets, they are important, not because they’re cool, but because they’re intuitive. For a time I had a Windows 7 tablet, and the touch response, as well as implementation was horrible. In Win8, I really hope that they improve the experience with touch, and use similar gestures to what iOS/OS X use. However I don’t want a touch screen in many cases. Having to pull my hands off a keyboard to use a touch interface is hard, unless they implement a pad like the MacBooks. That interface I like.

    The live tiles interface works well for phones, but what I’d really like is an extension of the familiar ALT-TAB that will quickly flip among applications, which can easily run as full screen applications. I would also like to see a simpler development/deployment model that allows me to COPY an application to a machine, any machine I have, and connect to “the cloud” somewhere (or even insert a USB stick/HDD/SDD) and have my data populate the application. The idea of requiring local machine configurations should be a thing of the past. Moving my “experience” among machines ought to be as simple as moving a SIM card or signing into some service.

    Lastly, be more open. I like the idea of a Microsoft “Virtual Store” where I can buy software, and I like the idea of using SkyDrive to move my data, but don’t force me to use those. Give me a choice of Dropbox for storage, or Amazon as a software store. That’s the one thing I think Apple could do better. Keep the AppStore, and I’ll still use it, but give me a choice of other trusted vendors that can operate stores and manage the review of applications.

    Windows is a tool for me, and one I interact with very little. The only thing I’m really looking forward to is getting SQL Server on Windows Core, where I can minimize the footprint and resources required to host the important stuff: data.

  • Patch Week

    My email account started getting notices of Windows patches yesterday, indicating it’s patch week again. If you manage Windows devices, be sure you are aware of the patches that came out. The May Bulletin on Technet shows 2 issues, one critical, one important.

    I tend to apply patches late, probably a month after release, just to see if anyone reports an issue. It’s up to you, but be aware of the patches, and if you could be affected, make sure you test machines and then schedule the downtime.

  • Brian Kelley talking Windows Internals for SQL Pros at DevConnections

    I have known Brian for nearly as long as i have been running SQLServerCentral. He has been the guy that I called for security questions. He was a DBA, then became a security and auditing guy, and is now back to being a DBA. This talk is designed to better explain the host OS for SQL Server pros. Some random notes since i am off to lunch.

    We have user mode and kernel mode. Where does SQL Server run? Most services run in user mode. Kernel mode is for privileged mode, base OS services, memory access, device drivers,, HAL, etc. Most crashes come from device drivers or video drivers, so be sure these are up to date.

    If SQL Server crashes, and it could, you don’t want the OS to crash. You want a graceful recovery or restart. That is why SQL Server runs in user mode.

    Most processes start in user mode. If it makes a call to a system function, the kernel traps the request and switches to kernel mode, the call is carried out, and then the OS switches the process back to user mode. This tries to prevent poorly written applications from harming the OS environment.

    BSOD. Microsoft doesn’t like this terminology and i am not surprised. When this happens, you have a hard OS crash. However you get a crash dump and information. The code listed, the parameters, and the dump file can be important to finding the root cause of the issue. Microsoft typically uses the mini-dump these days of the kernel to debug the issue.

    SQL Server can be run as a command line application, but it typically runs as a server. The services subsystem in Windows manages this. There are various services host that control the services. Your interactions with services, starting, stopping, etc, are with these hosts, not the actual program. The services hosts must communicate with the actual program to have it perform an action.

    Most services are also command line apps because they cannot have on screen interactions. MAPI was an example of this causing problems with SQL Server when it would pop a message at times that required an interactive desktop.

    Windows 2008 (and later) and Vista (and later) have service isolation to prevent service hopping of service accounts. These OS’s also have a delayed auto start to allow some services to be delayed at startup for places where there are dependencies. Reporting services is an example here, you might want to delay this so that the database engine has a chance to start.

    Sql manages its own threads, which are not linked to connections. So each connection is not a thread. Usually more connections than threads. SQL Server manages the threads and while you can boost the maximum number, you ought to do this only after extensive testing or advice from CSS. Or both.

    Threads have priority, determining which threads may run before other threads, there are 32 priority levels. 1-15 are normal, and 16-31 are realtime processes, most things ought not run as 16 or above, SQL Server normally runs at 7, but can be boosted to 13. This is generally not recommended for most systems, but it can be an option. Often if SQL Server is waiting on something, it is usually disk or another bottleneck. Changing thread priority will not necessarily help.

    Affinity mask determines which processors is SQL Server allowed to run on. Tis might be something you use if you have multiple instances and they compete for CPU time.

    Highest priority thread always runs first. The OS an boost priority to prevent thread starvation, but the highest priority runs. Threads run for the duration of its quantum (duration). It can end early because it finishes, it needs to wait in something, or it is pre-empted.

    Why are client tools slow on the server? The quantum duration is lower on servers. The server OS is optimized for background tasks, not interactive tasks. Some tasks get higher boosts. Sound application gets a very high boost, so do not run things like Media Player on a server.