The Cobra Programming Language is an exciting new general-purpose Open-source language for .NET or Mono, which features unit tests, contracts, 'informative' asserts, generics, Compile-time nil/null tracking, lambda expressions, closures, list comprehensions and generators. Even if it had been developed by a team, it would have been a remarkable achievement. The surprise is that it is the work of one programmer with help from a group of users. We sent Richard to find out more about that one programmer.… Read more
There are suddenly a number of strong alternatives to C# or VB. F#, IronPython and Iron Ruby are now joined by an open-source alternative called Cobra. Phil is taken by surprise at a language that is so intuitive to use that it is almost like pseudocode.… Read more
Almost all applications have to interface with components or modules written by somebody else, for which you don't have the source code. This is fine until things go wrong, but when you need to refactor your code and you keep getting strange exceptions, you'll start to wish you could place breakpoints in someone else's code and step through it. Now, of course, you can, as Geoffrey Braaf discovered.… Read more
With security concerns being a constant litany, it's worth considering Active Directory Rights Management Services as a powerful tool in your access-control arsenal, particularly when it integrates so neatly with Exchange 2010. Elie Bou Issa kindly takes us, step by step, through everything we need to know to install and start using this versatile technology like a pro.… Read more
Cristina Cifuentes was already well-known for her work on decompilers before she took the development of Sun Microsystems 'Parfait' bug-checking application for C/C++ source. Unlike the classic 'Lint', Parfait is careful about avoiding false positives. What is more, it is fast, and popular with programmers.… Read more
Reflector 6 is here. Nick Harrison is a long-time Reflector enthusiast, and has been responsible for writing an add-in. As he'd helped test the new version, Nick asked to review it for Simple-Talk. The team were anxious to know what he thought. They needn't have worried.… Read more
It is scarcely surprising that it can take up to five years to release a new version of SQL Server when one understands the extent of the effort required to test it. When enterprises depend on the reliability of an application or tool such as SQL Backup, the contribution of the tester is of paramount importance. It is an interesting and enjoyable role as well, as Andrew Clarke found out by chatting to testers at Red Gate. … Read more
LINQ makes code easier to write and maintain by abstracting the data source. It provides a uniform way to handle widely diverse data structures within an application. LINQ's Lambda syntax is clever enough even to allow you to create generic building blocks with hooks into which you can inject arbitrary functions. Michael Sorens explains, and demonstrates with examples.… Read more
'Help, my database ate my disk drives!'. Many DBAs spend most of their time dealing with variations of the problem of database processes consuming too much disk space. This happens because of errors such as incorrect configurations for recovery models, data growth for large objects and queries that overtax TempDB resources. Rodney describes, with some feeling, the errors that can lead to this sort of crisis for the working DBA, and their solution.… Read more
Using ANTS Performance Profiler with SharePoint has, previously, been possible, but not easy. Version 5.2 of ANTS Performance Profiler changes all that, and Chris Allen has put together a straight-forward guide to profiling SharePoint, demonstrating just how much easier it has become.… Read more
Table partitioning is a valuable technique for managing very large database tables. It has always been possible with SQL Server, even if slightly cumbersome. SQL Server 7.0 introduced partitioning through partitioned views: These were combined with constraints to allow the query optimizer to remove irrelevant tables from the query plan and reduce the overall plan cost when a UNIONed view accessed multiple tables. As Barry King explains, this is still a valuable feature that works in every current version of SQL Server.… Read more
LINQ is a valuable technology. LINQ to XML, LINQ to Objects and LINQ to XSD, in particular, can save valuable time for developers and produce more maintainable code. Michael describes how he used three different flavours of LINQ to map XML to a Treeview component that he used in the QueryPicker control that was the subject of a two-part article here on Simple-Talk. … Read more
Donald Knuth is an extraordinary man. As well as inventing 'Literate Programming' and writing the most important textbook on programming algorithms, he is also famous for designing and programming one of the most widely-used digital typesetting systems ever, even designing the fonts that went with it. He also pioneered the use of 'Open-source' software. Knuth is a man of engaging charm and enthusiasms who combines a knowledge of history, music, art and mathematics with a unique insight into the art of computer programming.… Read more
One of the first things you notice with Windows Server 2008 R2 is that PowerShell 2.0 has become central to the admin function There is a powerful Active Directory module for Powershell that contains a provider and cmdlets that are designed to allow you to manage Active Directory from the command line. Now, you can also use versions for previous versions of Windows Server.… Read more
In which Phil is asked to write a nice simple quick-start guide about aggregation, pivoting and un-pivoting techniques. To do so, he takes us all the way from getting the data from a published source, transferring it to SQL Server, un-pivoting it, storing it in a relational table, aggregating it and finally pivoting the data in a variety of ways… Read more
The Query Optimizer gets it right most of the time, but occasionally it chooses a plan that isn't the best possible. You can give the Query Optimiser a better idea by using Table, Join and Query hints. These come with a risk: Any choices you force on the Optimizer by using hints can turn out to be entirely wrong as the database changes with the addition of data over time. Grant Fritchey, in a chapter from his highly acclaimed book, explains further.
… Read more
Josef Richberg is an exceptional person: The Judges of the Exceptional DBA Award were quickly proved right in their decision to choose him, when he subsequently showed extraordinary resilience and determination in the face of an unexpected diagnosis of cancer. His determination to deal positively with a difficult life-event is surely a source of inspiration to all of us.… Read more
Having introduced his cross-platform Query Template solution, Michael now gives us the technical details on how to integrate his .NET controls into applications both simple and complex. With screenshots and code samples, this has everything you need to build your own powerful SQL editor or Query Template explorer.… Read more
Because the Sys Admins and DBAs who are efficient end up wielding a great deal of power, there is always a danger that it can 'go to their head'. If ever you start imposing your decisions on the organisation for no better reason than the fact that they're yours, then it is time to read Matt's simple guide on how to prevent your actions being controlled by your ego.</… Read more
While trying to get the information he needed out of various SQL, MySQL and Oracle environments, Michael finally got tired of endlessly flicking through reference manuals and having to work so hard just to formulate his queries. So he decided to build a cross-platform Query Template solution to make his life easier, and he even went as far as building a .NET control to be integrated into applications. He's been kind enough to share the control, and the theory behind it, with us.… Read more