Jan
14
2011

Algorithm theory and complexity introduction

"Before there were computers, there were algorithms." - H.Cormen. But now that there are computers, there are even more algorithms, and algorithms lie at the heart of computing. What are algorithms? Informally, an algorithm is any well-defined computational procedure that takes some value, or set of values, as input and produces some value, or set of values, as output. An algorithm is thus a sequence of computational steps that transform the input into the output. We can also view an algorithm as a tool for solving a well-specified computational problem. The statement of the problem specifies in general terms the desired input/output relationship. The algorithm describes a specific computational procedure for achieving that input/output relationship. For example, we might need to sort a sequence of numbers into nondecreasing order. This problem arises frequently in practice and provides fertile ground for introducing many standard design techniques and analysis tools. More...


Nov
5
2010

Visual Studio Async

Asynchronous operations are methods and other function members that may have most of their execution take place after they return. In .NET the recommended pattern for asynchronous operations is for them to return a task which represents the ongoing operation and allows waiting for its eventual outcome. An asynchronous function is a method or anonymous function which is marked with the async modifier. A function without the async modifier is called synchronous. You would experience the following behavior using a synchronous application. The program becomes non-responsive. You cannot move, resize the window while data is loading. You cannot hit the Close button to end the program while data is loading. More...


Sep
24
2010

What software architect should know?

What things Software Architect should know? Effective Java was the first book I’ve read whose table of contents had read like programming commandments. The rest of the book provided commentary and examples, but the section headers read like axioms to program by. I found a similar book in 97 Things Every Software Architect Should Know. 97 Things is a collection of 97 short essays from a number of architects on topics such as soft skills, leadership, and software architecture. The table of contents for 97 Things also reads like commandments or axioms. 97 Things Every Software Architect Should Know is a collaborate effort from numerous contributors. The project wiki is available here. Below are 101 axioms taken from the different essay titles from the project. The axioms have been rearranged from the original order provided online to provide context, and in cases edited for legibility. More...


Sep
20
2010

Solid ASP.NET MVC applications recommendations

Coding guidelines aimed at helping the ASP.NET MVC developer create solid applications. Of course, it's up to you as the developer to decide which of these guidelines are appropriate for your application. Mode, View, Controller, Performance and testing recommendations can show best practices for any developer that using ASP.NET MVC 2 or ASP.NET MVC 3. More...


Sep
14
2010

Licenses

When uploading an article you need to be aware of the risks and legal issues involved. We need to protect yourself against those seeking damages against you for problems that may or not have been caused by your article, and this is really big problem for all of us. Just saying "The code is free for use" is no longer enough and this is stupid. What does "free" mean, why we can use this word? Are there any restrictions with free license at all? What happens if your code breaks my system, for example how much it will costs me? Below are a list of licenses that we at The Code project support for article contributions. The main points to think about are:

  1. What restrictions do I want to impose on my code?
  2. How much do I wish to protect myself and my readers (licenses go both ways) More...

Sep
7
2010

Friend assemblies in .NET

What is friend assemblies in .NET and how it works? Friend assembly is an assembly that can access another assembly's or project Friend (Visual Basic) or internal (C#) types and members. If you identify an assembly as a friend assembly, you no longer need to have this types and members as public in order for them to be accessed by other assemblies. Why you need friend assembly especially if you senior developer? More...


Aug
25
2010

Top merge and diff tools for coding

There are a multitude of Diff/Merge Utilities out there but this review will cover. Each developer need to have ability for merging code between different versions or branches into one place. Once in a while every software developer will find himself or herself using a file-differencing program such as Windiff.exe or TortoiseMerge, which comes with the Microsoft Visual Studio .NET environment and its constituent languages, such as Microsoft Visual C#. But you can also use Araxis Merge, because it improves upon the facilities available within Windiff.exe and other differencing utilities by not only pinpointing the exact characters within a line that have changed, but also allowing developers to edit the files directly within Araxis Merge and to perform folder-based differencing by simply right-clicking in Windows Explorer and selecting “Compare with Araxis Merge” on the folders or files they would like to compare. We always can find open source project such as WinMerge from sourceforge community or MAC OS application Guiffy, but what is better exactly for you? I will write more about Araxis tool, because I use it for a long time more, but will cover other tools too. More...


Author - Agafonov Viacheslav

Agafonov Slava site

Hello world! My name is Agafonov Viacheslav. I'm a software engineer at Microsoft located in Bellevue next to Redmond campus and Seattle downtown, state Washington. I was born in Ukraine. My passion for programming is in my ability to create tools that make people's lives easier.

Vyacheslav Agafonov profileAgafonov blog Agafonov Slava on Twitter Counter.com

Month List

Disclaimer

The opinions and information that expressed here do not represent my employer's view in any way. Information in this blog is my own opinion and does not reflect on employer. Content on this site is licensed under a Creative Commons 3.0 license.

Advertise with me!