Continuous Integration with Team Foundation Server

by Dmitry Kirsanov 12. September 2013 09:00

Team Foundation Server logo

Continuous Integration is extremely important part of software development process, but is also the least used at the same time. Even at relatively big software shops, the continuous integration usually is something, that everyone heard of, but that’s it.

Among all the things you can do to shift the focus of your software developers to what they really have to do instead of what they have to do now, the continuous integration is perhaps the most rewarding. More...

My First Application for Windows Phone 8

by Dmitry Kirsanov 1. September 2013 08:33

It finally happened - I am releasing my first application for Windows Phone 8. And Windows Phone 7.1, for a change. Taking into account the average (in all meanings of that word) quality of applications in Windows Phone Store, I should be proud of myself.

If, by chance, you own a Windows Phone device, and in need of a currency converter for Windows Phone, I highly recommend this app, as it’s the most advanced one in the store at the moment, and will become even more useful in time.

Here are the few images of it that you can also see at the store:

wxga1 wxga2 wxga3 wxga4


I really like how it looks and works so far. Planning to release its Windows 8 analogue in a few days.

If you are planning to give it a try, let me know what you think and what else you’d like to see in it. Your feedback is important!

Restoring Access to Microsoft SQL Server

by Dmitry Kirsanov 26. August 2013 05:29

As a note to system administrator – what to do, when your one and only administrators account is locked on your SQL Server.

You need to perform 5 quick steps. More...

A short note about using Windows Updates

by Dmitry Kirsanov 15. August 2013 16:00

The Perils of Playing Russian Roulette With Windows Updates

Let's talk about a high-stakes game that you may be unknowingly playing in your server room. It lurks under the innocuous name "automatic Windows updates", but if you've been in the trenches long enough, you know it better as Russian Roulette.

Windows Updates: A Necessary Evil

Ever second Tuesday of the month, our friends at Microsoft bequeath us a fresh batch of patches for Windows. These patches — necessary to keep our machines secure, efficient and bug-free — often require a restart to take effect. But not all of these 'restarts' are equal. You see, sometimes, during the reboot process, instead of simply restarting, the machine shuts down. And sometimes, it won't even shut down gracefully. It's a gamble, a flip of the coin, a spin of a bullet chamber — it's Russian roulette.

The Danger in The Server Room

Now, this game of chance may seem insignificant, just another quirk of the IT industry. But consider this: in many cases, production servers have the "Install updates automatically" setting turned on. A server going offline without warning? That's the stuff of nightmares for any business. It can lead to unanticipated downtime, loss of productivity and worst of all, loss of revenue. Not to mention the chaos it wreaks on your IT team's peace of mind!

Morale of the Story: Let's Be Safe Out There

So, what's the solution? It's simple: Do not enable automatic installation of updates on production servers or any machines that you can't easily power back up. The minor inconvenience of manually installing important updates far outweigh swiftly falling into the pitfall of unexpected system shut downs.

In the world of IT, unexpected surprises are rarely welcome. Let's keep Russian roulette out of our server rooms and ensure consistent, reliable operation for our businesses. And remember, a mindful approach to updates is the mark of a truly professional system administrator.

Creative Ideas for Pond Owners

by Dmitry Kirsanov 12. August 2013 05:09

So, you have a pond. Now, what to do if the fish is lazy to breed? Here is the answer from LinkedIn.

First, let’s see if Bob was looking for Alice in Wonderland. Let’s say, there were 20 different Alices, but not the one he was looking for. Let’s wait for about a month and send invitation from random Alice from the previously displayed list to Bob, and from Bob to Alice. They both will think that they initiated the invitation. But first we need to make sure, that they can’t ask questions before accepting the invitation, so let’s remove that feature.

Yeah, that’s how it works in LinkedIn now. Now let’s hope that Alice is not ex-wife of Bob, or his ex business partner, or even better – a partner of his ex wife.

What happens when you leave your Windows session unattended for days

by Dmitry Kirsanov 11. August 2013 00:33

IE_VM13

This is a CPU usage graph of a Windows Server 2008 R2 machine, with all latest patches applied, and Internet Explorer 10 left opened for a few days. It had only two pages opened, both are Microsoft’s own support pages with no active content.

Remote session (RDP) was opened for about 5 days, and every hour Internet Explorer process took more and more memory and CPU, until it took most resources from server.

More...

Introducing Prerequisit.es

by Dmitry Kirsanov 9. June 2013 22:00

A few weeks ago I had to install very old software on very old server. And it turned out, that a few libraries for Visual Basic 6 were not found anywhere in the net. The company which made them doesn’t exist for many years, their website was abandoned and purchased by squatters since then. There were some binaries posted at some ancient pages, but most of them led to 404 (file not found) and the authority of the files that I managed to find, couldn’t be verified. I mean – I wouldn’t install such file at production server.

And if you think that such ill fate is only for small and unknown companies – you couldn’t be farther from truth. One of such companies is Sheridan, if you remember such name. They were quite famous in the era of Visual Basic 4, 5 and 6. But the point is – any binary of any company can be virtually lost or extremely hard to find in 10 years from now – at least the specific version of it.

That’s how I came with the

Idea

What if, just like the NuGet Package Manager, we would be able to get the binaries from a simple and never changing link, and be sure that this file is not infected and won’t disappear?

More...

Design Language is not Design

by Dmitry Kirsanov 7. June 2013 19:14

Last year I visited event at Dublin’s Aviva stadium, where Microsoft’s principal researcher at Microsoft Research, Bill Buxton, presented a keynote about design. Microsoft Windows Apps team was generous enough to share this video with the world, and I highly recommend it to everyone who wants to understand the concepts and reasons behind the design shift we experience today.

It’s almost 90 minutes, but they might well worth it, despite the quality.

Bill Buxton–Design Language is not Design, keynote at Aviva Stadium, Dublin

Getting Rid of Windows 8 Virtues

by Dmitry Kirsanov 29. May 2013 04:40

I had two problems with my Windows Me 8. At least two which were clearly bugs in operating system and not a usual Dell hardware failure. And seems like both of these problems had the same solution, which potentially should be able to fix some other issues with Windows 8. More...

SQL Bits: Working with AlwaysOn Availability Groups in SQL Server 2012

by Dmitry Kirsanov 24. February 2013 14:23

In SQL Server 2012, we have 4 main options for High Availability: Database Mirroring, Failover Clustering, Availability Groups and Log Shipping. All but Availability Groups (AG) are available in SQL Server 2008 as well. Today we’ll review Availability Groups and how to create and use them.

Before we begin, make sure you understand what is Windows Server Failover Cluster (WSFC). I covered it almost a year ago for Windows Server 2008 R2 and SQL Server 2008 R2, and you’ll need WSFC in order for AG to work.

A few points about Availability Groups to make sure they are what you are looking for:

  • Availability Groups are not share-nothing scalability option. They are using shared storage, such as storage area network (SAN), although it’s not a requirement. We’ll speak about share-nothing scalability later.
  • For AlwaysOn Availability Groups, you need SQL Server 2012 Enterprise edition or higher. Business Intelligence edition or Standard won’t do.
  • AG provide failover with up to 5 readable nodes.
  • AG provide you with something like load balancing option, but AG is not NLB. Also, all nodes can work independently, i.e. you can still connect to them to retrieve information. Only the primary node can change information in the database.
  • AG does not require working in the same IP subnet, but it requires Active Directory domain. This means, that you can have geographically remote nodes participating in one AG, but they must be members of the same AD domain.
    In case of multi-subnet cluster, you’ll have to implement the file replication solution on your file servers to synchronize the data.
  • AG is database-level, as opposed to node-level failover cluster. AG serves group of databases, unlike the simple database mirroring, with 4 replicas instead of one.

Overall, the AlwaysOn Availability Groups are conceptually similar to database mirroring, but provide more advanced functionality and security.

More...