We have decided the name Aryan for our son

Aryan Kamboj
Aryan Kamboj

As you know we was blessed with baby boy on 15-Mar-2010. We have selected the name Aryan for him. The process of selecting name was very interesting. We had short-listed nearly 100 names for him and out of all these names, we finally decided on this name. The term Aryan originates from the Sanskrit word arya, attested in the ancient texts of Hinduism such as the Rigveda. Arya in Sanskrit holds the meaning noble, civilized or simply referring to an individual of higher consciousness..

Ar·y·an
n.
1. Indo-Iranian. No longer in technical use.
2. A member of the people who spoke the parent language of the Indo-European languages. No longer in technical use.
3. A member of any people speaking an Indo-European language. No longer in technical use.
4. In Nazism and neo-Nazism, a non-Jewish Caucasian, especially one of Nordic type, supposed to be part of a master race.

Aryan, Arian [ˈɛərɪən]
n
1. (Social Science / Peoples) (Government, Politics & Diplomacy) (in Nazi ideology) a Caucasian of non-Jewish descent, esp of the Nordic type
2. (Social Science / Peoples) a member of any of the peoples supposedly descended from the Indo-Europeans, esp a speaker of an Iranian or Indic language in ancient times
adj
(Government, Politics & Diplomacy) (Social Science / Peoples) of, relating to, or characteristic of an Aryan or Aryans
adj & n
(Linguistics / Languages) (Social Science / Peoples) Archaic Indo-European
[from Sanskrit arya of noble birth]

What History Says About Aryan

Aryan is an English language loanword denoting variously

  • in historical or dated usage,
    • the Indo-Iranian languages and their speakers, viz. the Iranian and Indo-Aryan peoples, collectively known as the Indo-Iranians
    • the Indo-European languages more generally and their speakers,
  • in contemporary usage,
    • Among the Hindu/Indian nationalists, the Hindu/Indian people (Aryan derives from the Sanskrit word Arya)
    • in colloquial English by Nazi racism, persons corresponding to the "Nordic", "blond-haired, blue-eyed" physical ideal of Nazi Germany within US white supremacy, the "white race".

The "Aryan race" taken to correspond to the original speakers of Indo-European languages and their present day descendants.
As an adaptation of the Latin Arianus, referring to Iran, 'Aryan' has "long been in English language use". Its history as a loan word began in the late 1700s, when the word was borrowed from Sanskrit a´rya- to refer to speakers of North Indian languages.. When it was determined that Iranian languages — both living and ancient — used a similar term in much the same way (but in the Iranian context as a self-identifier of Iranian peoples), it became apparent that the shared meaning had to derive from the ancestor language of the shared past, and so, by the early 1800s, the word 'Aryan' came to refer to the group of languages deriving from that ancestor language, and by extension, the speakers of those languages.

Source: Wikipedia (http://en.wikipedia.org/wiki/Aryan)

What Numerology Says About Aryan

The numerological meaning of this name is also very interesting.
Soul Urge: People with the name Aryan have a deep inner desire for love and companionship, and want to work with others to achieve peace and harmony. <
Expression: People with the name Aryan are excited by change, adventure, and excitement. They are dynamic, visionary and versatile, able to make constructive use of freedom. They fight being restricted by rules and conventions. They tend to be optimistic, energetic, intelligent, and to make friends easily. They may be changeable, restless, untidy, and rebellious.
Sylables: 2
Variants:
# of Characters: 5
First Consonant: R
First Vowel: A

Reason for Deciding Aryan as His Name

My Daughter, Diya with my son, Aryan
Diya and Aryan

The main reason for deciding Aryan as his name is that We are Kambojas, a representative of Indo-Aryans. We are an ethnic community of the Punjab region. We are the modern representatives of ancient Kambojas, a well known Kshatriya tribe of Indo-Aryans of Iron Age India, said to have Indian as well as Iranian affinities. In fact, we are stated to be the ancient inhabitants of Persia. 

The second major decision for deciding Aryan as his name was having common alphabets ‘A’ and ‘Y’ in names of kids of our family: ANANYA, YASH, DIYA and ADITYA and now ARYAN.

I have received many suggestions for his name and had created a big pool of baby names. This name was selected by us considering its meaning and also importance of this baby in our life.  I would like to know if you all liked my son’s name.


  • Permanent link to this post Permalink 
  • Share this post! Share It! 
  • View this post's comments Comments (81) 
  • RSS Feed for this post's comments Comment RSS
  •    


SQLExpress database file auto-creation error

When trying to attach a database file created in Vista, my WinXP gave the following error:
"...is compressed but does not reside in a read-only database or filegroup"
This means that the file is compressed because when it was created (in Vista), the Vista disk is a compressed Disk. But when I transfer it to WinXP, the disk is not a compressed disk.
Solution:
On the WinXP (Uncompressed disk),
1. Right-click on the .mdf file
2. In the Context Menu that appears, select Properties
3. In the Properties Dialog that appears, click on the Advanced button
4. In the Advanced Attributes Dialog that appears, uncheck the Compress Contents To Save Disk Space checkbox. Then click OK. See image
5. Repeat the same thing for the .ldf file.


  • Permanent link to this post Permalink 
  • Share this post! Share It! 
  • View this post's comments Comments (69) 
  • RSS Feed for this post's comments Comment RSS
  •    


Blessed with Baby Boy

March 15, 2010 07:52:00 AM was one of the most beautiful moment of my life! God has graced us with baby boy. My wife (Simmi), my daughter (Diya)  and I am very happy today. We have no words to express our happiness. Baby boy and mother both are healthy.

IMG_0349 IMG_0346 IMG_0347

We have yet to name our baby boy. Do you have any suggestions for Indian name?


  • Permanent link to this post Permalink 
  • Share this post! Share It! 
  • View this post's comments Comments (58) 
  • RSS Feed for this post's comments Comment RSS
  •    


Role of Data Architect

A Data Architect is an increasingly important role.
It is a natural evolution from Data Analyst and Database Designer, and reflects the emergence
of Internet Web Sites which need to integrate data from different unrelated Data Sources.

These Sources can be either :-

  • external, such as Market Feeds,(e.g. Bloombergs), and News Agencies,(e.g. Reuters).
  • Internal, such as existing systems, such as HR for Employee details.

    The Data Architect will work closely with the Users, systems designers and the developers on a Project team.

    To get an idea of the skills the Data Architect should have, check out this Page with typical adverts from www.monster.com

    Vision - The Data Architect needs to be able to have an end-to-end vision, and to see how a logical design will translate into one or more physical Databases, and how the Data will flow through the successive Stages involved. He (or she) will need to be able to address issues of Data Migration(Validation, Clean-up and Mapping), and will need to understand the importance of Data Dictionaries.

    The appropriate Attitude should include :-

  • An Enquiring Mind
  • The ability to abstract general principles from specifics.
  • A strong desire to establish Standards of Best Practice.
  • Recognition of the value of Data Architecture Design Patterns

    The required Skills include :-

  • Data Analysis
  • Data Migration Tools Knowledge
  • Data Modelling
  • Data Integration
  • Data Warehousing
  • Database Design
  • etc..

    Personal Qualities should include :-

  • Communications and Presentation Skills
  • A Good team Player

    Good relevant Books are hard to find :-

  • Maybe I should write one, in the meantime, I have put together a small list, although they are primarily about Enterprise Architecture.

    Good relevant Organizations are also in short supply, so here are a few that might be worth joining.

    Training is also in short supply. The best way to get an idea of the best training is to check some job adverts for Data Architects. Then plan your training accordingly, depending on how your strengths and weaknesses compare with the requirements.

    Here's a Page with typical adverts from www.monster.com

    Salary.com provides the following Job Description for a Data Architect III (Senior Data Architect) :-

  • Designs Data Architectures.
  • Designs and builds relational databases.
  • Develops strategies for data acquisitions, archive recovery, and implementation of a database.
  • Cleans and maintains the database by removing and deleting old data.
  • Usually requires a degree in an appropriate area and at least 5 years of experience in a related area.
  • Be able to design and develop Databases, Data Warehouses and Multidimensional Databases.
  • Relies on experience and judgment to plan and accomplish goals.
  • May lead and direct the work of others.
  • Typically reports to a project leader or manager.
  • A wide degree of creativity and lateral thinking is expected.
  •  

    Trackback: http://www.databaseanswers.org/role_of_data_architect.htm


    • Permanent link to this post Permalink 
    • Share this post! Share It! 
    • View this post's comments Comments (90) 
    • RSS Feed for this post's comments Comment RSS
    •    


    5 useful url rewriting examples using .htaccess

    Now let’s look at the examples

    1)Rewriting product.php?id=12 to product-12.html

    It is a simple redirection in which .php extension is hidden from the browser’s address bar and dynamic url (containing “?” character) is converted into a static URL.

    RewriteEngine on
    RewriteRule ^product-([0-9]+)\.html$ product.php?id=$1

    2) Rewriting product.php?id=12 to product/ipod-nano/12.html

    SEO expert always suggest to display the main keyword in the URL. In the following URL rewriting technique you can display the name of the product in URL.

    RewriteEngine on
    RewriteRule ^product/([a-zA-Z0-9_-]+)/([0-9]+)\.html$ product.php?id=$2

    3) Redirecting non www URL to www URL

    If you type yahoo.com in browser it will be redirected to www.yahoo.com. If you want to do same with your website then put the following code to .htaccess file. What is benefit of this kind of redirection?? Please check the post about SEO friendly redirect (301) redirect in php and .htaccess.

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^optimaxwebsolutions\.com$
    RewriteRule (.*) http://www.optimaxwebsolutions.com/$1 [R=301,L]

    4) Rewriting yoursite.com/user.php?username=xyz to yoursite.com/xyz

    Have you checked zorpia.com.If you type http://zorpia.com/roshanbh233 in browser you can see my profile over there. If you want to do the same kind of redirection i.e http://yoursite.com/xyz to http://yoursite.com/user.php?username=xyz then you can add the following code to the .htaccess file.

    RewriteEngine On
    RewriteRule ^([a-zA-Z0-9_-]+)$ user.php?username=$1
    RewriteRule ^([a-zA-Z0-9_-]+)/$ user.php?username=$1

    5) Redirecting the domain to a new subfolder of inside public_html.

    Suppose the you’ve redeveloped your site and all the new development reside inside the “new” folder of inside root folder.Then the new development of the website can be accessed like “test.com/new”. Now moving these files to the root folder can be a hectic process so you can create the following code inside the .htaccess file and place it under the root folder of the website. In result, www.test.com point out to the files inside “new” folder.

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^test\.com$ [OR]
    RewriteCond %{HTTP_HOST} ^www\.test\.com$
    RewriteCond %{REQUEST_URI} !^/new/
    RewriteRule (.*) /new/$1

    Backtrack: http://roshanbh.com.np/2008/03/url-rewriting-examples-htaccess.html


    • Permanent link to this post Permalink 
    • Share this post! Share It! 
    • View this post's comments Comments (243) 
    • RSS Feed for this post's comments Comment RSS
    •    


    Role of Solution Architect

    What is a Solution Architect?

    The essence of the Solution Architect (SA) role is the conversion of the requirements into an architecture and design that will become the blueprint for the solution being created. This conversion is based largely upon the previous design patterns that the SA has been involved with in the past through reading and staying abreast of the latest techniques, or through personal experience.

    It is this conversion part of the role - the role of the SA -that most often is underestimated in its complexity. Just as the ability of the Functional Analyst to create a requirements document is one part science and wrote procedure so is the creation of the architecture. The rest, however, is an art form. Creating effective architectures to create a solution requires the careful balance of dozens of development concepts ranging from "Keep it Simple Stupid" to "Fail to Safe".

    In the process of converting requirements to an architecture there are often parts of the SA's role which seem out of place. For instance, there is often a fair amount of research that happens during this phase. The research may be targeted at testing a technology that will become critical to the architecture. For instance, the SA may test to see if USB or serial port access is available from Java if there's a need to read a device without downloading software. This process can either be done alone or depending upon the size and velocity of the project can be delegated to a development lead.

    In addition to research on technologies and approaches critical to the architecture, there is often a review of patterns that might be useful to the architecture. Patterns are previously described and validated approaches that can be used to create portions of the solution. Patterns are released through research and can come from places such as Microsoft's software development libraries. Reviewing the pattern allows the architect to refresh their memory on the details of the pattern and to evaluate what additional guidance they will have to provide if they choose to use the pattern.

    The final component to the role of solution architect is the motivation and guidance of the development leads. Development leaders need to buy into and accept the architecture, to know how the pieces will fit together at a high level. They must also see the art portion of the architecture to get an appreciation of the subtle nuances of their portion of the architecture. It's the art portion of the architecture that makes it elegant. That elegance helps to maintain cohesion between various parts of the design and encourages simplicity. It is necessary for the lower level design and approach to match the higher-level architecture for the solution to be cohesive. Once the development leader has internalized their portion of the architecture the SA must continuously motivate and reinforce the good work that is being done. They must continue to motivate the Developer Lead(s) to push through tough issues and create the solution.

    Getting Started as a Solution Architect

    For most people becoming the SA on a large project doesn't just happen. It's not like winning the lottery where one day your name is drawn out of the proverbial hat. It is, instead, a slow steady progression of learning and developing. A person may find their way to this coveted role within only a few years of professional experience but more frequently it takes a dozen or more years to consistently find themselves in this role.

    The starting point is generally being the only person on a very small, and sometimes insignificant project. The project may be small enough that a single person may fill every role - including the role of solution architect. These little projects can even be ones where the organization hasn't identified the project as something that needs to be done yet but are items that a member of the software development team realizes that would be helpful.

    Another approach to becoming a SA is to become a distinguished Development Lead (DL). The SA role and the role of the DL are very similar in the skill sets needed. The SA skill set is slightly broader and requires a bit more finesse, however, fundamentally the same. The SA lays out the architecture for the overall solution whereas the DL converts that architecture into detailed design. One approach to getting started as a SA is to become a DL and work towards the additional skills that a SA possesses. Most SAs have that ability to give some of their work to DLs looking to step up.

    One of the ways to demonstrate an interest in the SA role, no matter what role you may currently be filling is to invest time in learning patterns. Because patterns form the basic building blocks of nearly every architecture, learning patterns makes it far easier to identify where they can be helpful. Also, reading books and articles on different architecture perspectives and new development techniques can broaden your point of view and allow you to see opportunities to create your own small sections of the solution.

    The distinction between a development lead and the SA are often subtle. Where the development lead focuses on detailed knowledge of a particular area the SA is very broad. This allows the SA to view the problem from a different perspective. Instead of getting mired down into the details of implementing one specific thing the SA focuses on integrating various parts of the solution into one cohesive network that solves the larger problem.

    The other subtle change is in accountability. While the development lead is responsible for their part of the solution, the SA is the proverbial one neck to choke if it doesn't all come together right. The SA has the ultimate responsibility for making the technologies work together. As a result the SA role comes with a requisite level of responsibility for the success of the project.

    What's in their Toolbox?

    The toolbox of a SA has more tools in it than most other roles. Most SAs have grown up in the software development world and have learned dozens of tools designed to help them be more productive.

    Perhaps the most important tool in the toolbox is a visual documentation language, such as UML. The UML structure for describing a variety of different views of the software development problem in pictorial form is the most recognizable visual documentation language for developers. The SA should be familiar with each of the various UML forms and have expertise in the development of use cases, class diagrams, and occasionally state diagrams as well. Mastery of UML allows quicker, easier, and better communication with the DLs and the developers.

    In addition to UML, the SA may need to be good at database design. Because most of the time the way that data is stored and retrieved is integral to the success of the solution, knowing how to design a database to hold the information is a critical part of the solution being successful. SAs know how to create databases and optimize them for good performance.

    In addition to mastery of UML and database design, it's sometimes necessary for the SA to have experience with specific tools and processes when the organization has decided upon a specific process for software development. The most common software and process is the Rational Rose Unified Process. Other tools and processes exist the ones that the SA will have to master are based on what the organization has chosen.

    Perhaps the most critical skills for the SA are the ability to create consensus and understanding around the architecture. While a development lead my need to involve a few people in their detailed design the architecture of the application touches every member of the team and there's a need to get them to understand it and agree with it. Once the SA has created the architecture it's time to communicate and sell it.

    Where's the position heading anyway?

    There is a great deal of pressure in the US to move development to countries with cheaper labor. While the SA role could be outsourced, , there is some insulation because of the need to work closely with the Functional Analysts in the gathering and organization of requirements. The distributed software of the global world requires more effort on the part of the SA and increases their need.

    The overall need for SAs will continue to increase as the problems that the SMEs present are more complex and thus they require more complex solutions. The more complex the solution, the more SAs will be required to create it.

    The software development tools were supposed to reduce the effort of the SAs and therefore reduce their need for the role, however, that increase in efficiency has been far outstripped by new demand.

    The Good, the Bad, and the Ugly
    • Good: Key, High-Value Position - The SA is a key role and one which can provide immense value if done correctly. This generally means a healthy salary.
    • Good: An SA is likely to get to interact with many of the key members of the development team as well as key members of the user community. This makes it a very visible position.
    • Bad: Hard to keep up - Being a SA means keeping up to date on a wide variety of new techniques, patterns, and tools. The effort to keep up can be very draining at times.
    • Bad: Difficult to get right - The role requires balancing so many factors that it's difficult to get right. In other words, it's easy to fail.
    • Ugly: Requirements - Although a good Functional Analyst can provide great requirements a moderately skilled one may not. The difficulty is that most people, including seasoned SAs, have trouble spotting bad requirements documents before it's too late. The SA must always have to consider that the requirements may require the SA to do a lot more research and legwork into what the client really needs.
    • Ugly: If a project fails, the SA is at the top of the list for people to blame.
    Conclusion

    The solution architect role may be the most sought after role in the software development process but it's not without its challenges. Learning the broad array of skills, shouldering the responsibility, and dealing with the consequences can be more than the average mortal may want to take on.

    About the Author

    Robert Bogue, MCSE (NT4/W2K), MCSA:Security, A+, Network+, Server+, I-Net+, IT Project+, E-Biz+, CDIA+ has contributed to more than 100 book projects and numerous other publishing projects. He writes on topics from networking and certification to Microsoft applications and business needs. Robert is a strategic consultant for Crowe Chizek in Indianapolis. Some of Robert's more recent books are Mobilize Yourself!: The Microsoft Guide to Mobile Technology, Server+ Training Kit, and MCSA Training Guide (70-218): Managing a Windows 2000 Network. He was honored to become a Microsoft MVP for Microsoft Windows Server - Networking. You can reach Robert at Robert.Bogue@CroweChizek.com

    Backtrack: http://www.developer.com/mgmt/article.php/3504496/Anatomy-of-a-Software-Development-Role-Solution-Architect.htm


    • Permanent link to this post Permalink 
    • Share this post! Share It! 
    • View this post's comments Comments (247) 
    • RSS Feed for this post's comments Comment RSS
    •    


    List of C# Tools

    A collection of development tools and utilities for C# programming.

    C# Build Tools

    • CruiseControl.NET - A .NET continuous integration tool and an extensible framework for creating a custom continuous build process. more
    • FinalBuilder - An automated build and release management solution for Windows software developers. more
    • Hippo.NET - A tool for streamlining the build process of .NET projects in a team environment. more
    • MegaBuild - An automated build utility. more
    • MSBuild - The build system for Microsoft and Visual Studio. more
    • NAnt - An open source .NET build tool. more
    • Visual Build Professional - Software for Windows that enables developers and build masters to easily create an automated, repeatable process for building and deploying software. more

    C# Compilers and Frameworks

    • .NET Framework SDK - Contains the .NET Framework, runtime and compilers for C# (and other languages). more
    • ANTLR - ANother Tool for Language Recognition, is a language tool that provides a framework for constructing recognizers, compilers, and translators from grammatical descriptions. more
    • Coco/R - A compiler generator, which takes an attributed grammar of a source language and generates a scanner and a parser for this language. more
    • DotGNU - DotGNU Portable.NET, a cross-platform implementation of the Common Language Infrastructure (CLI). more
    • Mono - A cross-platform, open-source .NET development framework. more
    • Script# - Brings the power and productivity of C# and .NET tools to AJAX development by compiling C# source code into regular JavaScript. more
    • Silverlight - Microsoft Silverlight 2 allows rich application experiences for the Web and mobile devices to be written in C#. more
    • Visual C# Express Edition - Free edition of Visual Studio for C# developers. more

    Collaboration

    • AQdevTeam - A project control and management system. more
    • Ultra Apps - Free web-based bug tracking with source code in ASP and ASP.NET/C#. Features include: issue tracking, response history, Excel export, bookmarks, search and more... more
    • Visual Studio Team System - An integrated application life-cycle management (ALM) solution comprising tools, processes, and guidance to help everyone on the team improve their skills and work more effectively together. more

    C# Decompilers

    • .NET Reflector - A class browser and analysis tool for .NET. It allows developers to navigate, search, disassemble and analyze .NET components. more
    • Anakrino/Exemplar - more
    • Dis# - A .NET decompiler. more
    • Spices.Decompiler - A powerful and flexible .NET decompiler that converts .NET assemblies from binary format to well-formed and optimized source code. more
    • Salamander .NET Decompiler - A .NET decompiler that converts executable files (.EXE or .DLL) from Intermediate Language (IL, MSIL, CIL) binary format to high-level source code, such as C#, managed C++, Visual Basic.NET, etc. more

    C# Deployment

    • Thinstall - Application virtualization for .NET. more
    • Windows Installer XML - (WiX) A toolset that builds Windows installation packages from XML source code. The toolset supports a command line environment that developers may integrate into their build processes to build MSI and MSM setup packages. more

    C# Design Tools

    • StarUML - An open source project to develop a fast, flexible, extensible, featureful and freely-available UML/MDA platform running on the Win32 platform. more
    • WithClass - A UML design tool that can generate and reverse engineer C# source code. more

    C# Development Environments (IDEs)

    • Borland C#Builder for Microsoft .NET - Integrated development environment (IDE) for building .NET applications with C#. more
    • C# Studio - A simple IDE for a C#/Mono/GTK# developer. more
    • QuickSharp - QuickSharp 2008 is a simplified, free C# development environment for Microsoft .NET 2.0. It's open source and allows C# applications to be created instantly without having to create projects and solutions. Ideal for the beginner just wanting to try out some code. more
    • MonoDevelop - An open source integrated development environment for the Linux platform, primarily targeted for the development of software that uses both the Mono and Microsoft .NET framework. more
    • SharpDevelop - The Open Source Development Environment for .NET. #develop (short for SharpDevelop) is a free IDE for C# and VB.NET projects on Microsoft's .NET platform. more
    • Snippet Compiler - A tool for working with C# code snippets (perfect for when you just need to run a couple lines of code). more
    • Visual C# Express Edition - An integrated development environment designed for beginning programmers and non-professional developers interested in building Windows Forms, class libraries, and console-based applications. Visual C# 2005/2008 Express Edition includes many of the same productivity features found in Visual Studio, all streamlined to fit the needs of the non-professional Windows developer. more

    C# Documentation

    • GhostDoc - A free add-in for Visual Studio that automatically generates XML documentation comments for C#, either by using existing documentation inherited from base classes or implemented interfaces, or by deducing comments from the name and type of methods, properties or parameters. more
    • NDoc - Generates class library documentation from .NET assemblies and the XML documentation files generated by the C# compiler. more
    • Sandcastle - Produces MSDN style documentation by reflecting over the source assemblies and optionally integrating XML documentation comments. more

    Database

    • ADO.NET Express - Add-in for Visual Studio that automates common tasks of writing repetitive data access code. more
    • Data Access Application Block for .NET - A reusable and extensible source code-based guidance that simplifies development of common data access functionality in .NET-based applications. more
    • DataLG - Generates a complete data layer for your VB and C# applications. more
    • DeKlarit - A model-driven tool that combines agile database modeling, declarative business rules, code generation and integration with Microsoft Visual Studio. more
    • NHibernate - An object-relational mapping (ORM) solution for the Microsoft .NET platform. It provides a framework for mapping an object-oriented domain model to a traditional relational database. more
    • OlyMars - SQL Server Centric .NET Code Generator (code named OlyMars) is a code generator based on database modeling. more

    C# Editors

    C# Formatters and C# Code Beautifiers

    • Code Highlighter - A source code syntax highlighting component available for the .NET environment. more
    • NArrange - An open-source tool for arranging .NET source code. This code beautifier allows you to sort and organize C# and VB.NET code members into groups or regions. more
    • Semantic Designs: C# Source Code Formatter - Reorganizes C# source text files to neatly indent code blocks according to their nesting level, or, conversely, obfuscates the code to make it difficult to understand by renaming variables. more
    • Uncrustify - Source code beautifier for many languages, including C#. more
    • Regionerate - An open-source tool for developers and team leaders that allows you to automatically apply layout rules on C# code. more

    C# Graphics and Games

    • CadLib - DXF 3D .NET component and viewer. more
    • ExoEngine - An open source C# 3D game engine for Microsoft .NET, based upon OpenGL and NVIDIA's Cg. more
    • OpenGL & SDL for C# - An open source implementation of OpenGL in C#. more
    • VG.net - Animated vector graphics in Visual Studio .NET. more
    • XNA Game Studio - Enables hobbyists, academics, and independent game developers to easily create video games for Microsoft Windows and the Microsoft Zune digital media player using optimized cross-platform gaming libraries based on the Microsoft .NET Framework. more

    C# Libraries and Components

    • C# Math Expression parser assembly - Math expression parser written in C#. It evaluates mathematical expressions such as "cos(x)+cos(y)-2", with given values. more
    • C-Sharpener For VB - Code converter tool from VB.NET to C#. more
    • Castle .NET - An open-source project to create a set of .NET tools/frameworks to ease enterprise and web application development. more
    • CenterSpace Software - C# libraries that provide building blocks for .NET mathematical and financial applications, including matrix and vector classes, and object-oriented interfaces to public domain computing packages such as the BLAS (Basic Linear Algebra Subprograms) and LAPACK (Linear Algebra PACKage). more
    • Enterprise Library - A collection of reusable software components (application blocks), provided by Microsoft, that assist enterprise .NET developers with common application development scenarios. more
    • Evolutility - Dual-licensed, open-source web UI framework for CRUD applications. Free for use in open-source projects. more
    • Glacial Components - Free .NET components. more
    • IE Web Controls - The Internet Explorer Web Controls including C# source code. more
    • LibCheck - This tool allows you to compare two versions of an assembly and determine the differences. more
    • Neural Network Library in C# - A neural network library written in C#. more
    • Sharp3D.Math - Fundamental classes for dealing with numerics on the .NET platform. more
    • Spring.NET: Application Framework - Spring.NET is a port and extension of the Spring Framework for .NET. more
    • Visual Guard - Security solution for .NET Applications. Allows management of users, memberships, roles and password policy. more

    C# Logging

    • Log4Net - A tool to help the programmer output log statements to a variety of output targets. log4net is a port of the log4j framework to the .NET runtime more
    • SmartInspect - Logging tool for debugging and monitoring .NET applications. more

    Miscellaneous

    • CSharpTelnet - Telnet client for C#. more
    • IntelliSpell - Spell-checking add-in for Microsoft Visual Studio. A free, community edition is available. more
    • Ora Visual Studio Add-In - A Visual Studio 2008 add-in that provides an instant grouped overview of the class, interface or struct you are viewing or editing. more
    • PostSharp - An aspect weaver for .NET. It can can reduce the number of lines of code and improve the logical decoupling of your programs. more
    • Resourcer - Resourcer is an editor for .resources binaries and .resx XML file formats used with the .NET platform. Resourcer allows editing of name/string pairs, import of bitmaps/icons and and merging of resources from different sources. By Lutz Roeder. more
    • StudioSpell - A Visual Studio spell check add-in. more

    C# Obfuscators

    • C# Source Code Obfuscator - by Semantic Designs. Scrambles C# source code to make it very difficult to understand or reverse-engineer. more
    • .NET Reactor - A .NET code protection and licensing system which assists developers in protecting their .NET software. more
    • {smartassembly} - A .NET obfuscation, protection and improvement tool. more
    • Demeanor for .NET - Protects your intellectual property by making it difficult to reverse engineer your .NET applications. more
    • Dotfuscator - A .NET Obfuscator. more
    • Salamander .NET Obfuscator - A .NET code protection tool that offers sophisticated technologies to protect your .NET code and intellectual properties. more

    Object Browsers

    C# Profiling Tools and C# Optimization

    • .NET Memory Profiler - A tool for finding memory leaks and optimizing the memory usage in programs written in C#, VB.NET or any other .NET Language. more
    • ANTS Profiler - Performance profiling and memory profiler for .NET code. more
    • AQtime - Performance profiling and memory/resource debugging toolset for Microsoft, Borland, Intel, Compaq and GNU compilers. more
    • CLR Profiler - The CLR Profiler allows developers to see the allocation profile of their managed applications. more
    • DevPartner Studio Professional Edition - A suite of software development and testing tools that enable Windows application teams to build reliable, high-performance applications, components and web services for Microsoft .NET and native Windows platforms. more
    • ILMerge - A utility for merging multiple .NET assemblies into a single .NET assembly. more
    • NCover - .NET code coverage tool. Commercial, but a disontinued free version is also available. more
    • NGen - The Native Image Generator (Ngen.exe) is a tool that improves the performance of managed applications. Ngen.exe creates native images, which are files containing compiled processor-specific machine code, and installs them into the native image cache on the local computer. more
    • NProf - .NET profiler application and API. more
    • PartCover - An open-source .NET code coverage tool. more
    • Prof-It for C# - A standalone profiler for C# that measures execution frequencies for each statement, while keeping the instrumentation of the source code to a minimum. more

    C# Refactoring

    • devAdvantage - C# source code analyzer for Visual Studio.NET - A Microsoft Visual Studio .NET add-in that provides C# static source code analysis to automate code reviews and detects errors, bugs and issues. The community edition is free. more
    • dotEASY - A Visual Studio .NET add-in that evaluates C# source code and performs “advices” in order to improve software quality. more
    • ReSharper - A powerful productivity suite for Visual Studio. Refactoring, code analysis, code generation... more

    Regular Expressions

    • Expresso - A regular expression development tool. more
    • RegexDesigner.NET - A visual tool for helping you construct and test .NET regular expressions. more
    • The Regulator - An advanced regular expressions testing tool, featuring syntax highlighting and web-service integration with Regexlib.com's database of online regular expressions. more

    C# Reporting

    • ActiveReports - Reporting solution for .NET that is written in fully managed Visual C# and provides complete integration into the Visual Studio .NET IDE. more
    • Crystal Reports - Professional .NET reporting. more
    • Report Generator List & Label - Equip your applications with classic printing, fast preview and comprehensive export functions. more

    C# Standards Verifiers

    • Code Style Enforcer - A DXCore plug-in for Microsoft Visual Studio 2005/2008 that provides code style enforcement against configurable coding standards. more
    • devAdvantage - C# source code analyzer for Visual Studio .NET - A Microsoft Visual Studio .NET add-in that provides C# static source code analysis to automate code reviews and detects errors, bugs and issues. The community edition is free. more
    • FxCop - FxCop is an application that analyzes managed code assemblies and reports information about the assemblies, such as possible design, localization, performance and security improvements. more
    • StyleCop - Analyzes C# source code to enforce a set of style and consistency rules. It can be run from inside of Visual Studio or integrated into an MSBuild project. more

    C# Testing and C# Test Frameworks

    • .NETUnit - An implementation of Kent Beck's XUnit testing framework designed specifically for unit testing components written for the .NET platform. more
    • csUnit - Inspired by JUnit, csUnit brings the power of unit testing to the .NET framework. csUnit is your key to unit testing and test-driven development using .NET languages such as C#, Visual Basic .NET, Visual J#, or Managed C++. more
    • MbUnit - A generative unit test framework for the .NET Framework. more
    • NMock - A dynamic mock object library for .NET. more
    • NUnit - A unit-testing framework for all .NET languages; initially ported from JUnit. more
    • Pex - Automated white box testing for .NET. more
    • POCMock - A tool for creating mock classes. more
    • Rhino Mocks - A dynamic mock object framework for the .Net platform. Its purpose is to ease testing by allowing the developer to create mock implementations of custom objects and verify the interactions using unit testing. more
    • Silverlight Unit Test Framework (Ignite) - A simple, extensible unit testing solution for rich Silverlight 2 applications, controls and class libraries. more
    • TestComplete - A full-featured environment for automated testing of Windows, .NET, WPF (XAML) applications, web pages, web servers and web services. more
    • TestDriven.NET - Unit-Testing add-in for Visual Studio .NET that is fully integrated with all major unit testing frameworks including NUnit, MbUnit, csUnit and Visual Studio Team System. more
    • TestMatrix for Visual Studio - Adds test driven development support to Visual Studio with unit testing, code coverage analysis, and test profiling. more
    • WatiN - Write automated web application tests in C#. more
    • XtUnit - Extend NUnit or MbUnit with new test attributes. more
    • xUnit.net - Unit testing for .NET. more
    • X-Unity - A suite of development tools enabling unit testing and continuous integration activities on Microsoft .NET projects. more

    Source: http://www.csharptools.com


    • Permanent link to this post Permalink 
    • Share this post! Share It! 
    • View this post's comments Comments (813) 
    • RSS Feed for this post's comments Comment RSS
    •    


    Breaking Down the Software Development Roles

    Software development is done differently at every organization, and in every home office throughout the world. The process that one organization or person uses to develop software may work for their specific environment and situation but may fail miserably in another set of circumstances.

    It is, in part, the differences in environments which make it so difficult to quantify the process of software development in a single set of terms that all practitioners can agree to. As newer approaches appear on the scene, such as extreme programming and agile development the perspective of the world on what the process should look like changes slightly or dramatically.

    However, despite these changes there are some things that remain the same. There will always be a need to understand the business problem, convert that problem into an architecture, convert the architecture into a solution, test the solution, and deploy the solution. Although each of these processes may change to some extent based on the programming models and tools being used, fundamentally there are some roles, which every process has in one form or another. One person may be filling all the roles or a handful of the roles, or one very specific role. Despite this there is a need for all of the roles - each serves a purpose. The origanization chart below gives you an idea of how each position fits together within an organization.

    Common Roles

    There is a series of roles that exist in most software development processes. As mentioned above one team member may be filling many roles and some roles may be suppressed for a specific type of project but all of these roles exist in one form or another in every software development project:

    FullSA

    Click here for a larger image.

    • Subject Matter Experts (SMEs) - The subject matter expert is the person or persons from which requirements are captured. These are the people who know what the software needs to do and how the process works. The SME role is somewhat different from the other roles because it is constantly changing as new clients (internal or external) are brought in to help design a solution. SMEs are rarely from IT - except when the solution is being designed to support IT. SMEs are most frequently the person who will receive the benefit of the system.
    • Functional Analysts (FAs) - Functional analysts have the unenviable roles of eliciting clear, concise, non-conflicting requirements from the Subject Matter Experts who may or may not understand how technology can be used to transform the business processes in a positive way.
    • Solutions Architect (SA) - The technical architect is responsible for transforming the requirements created by the Functional Analysts into a set of architecture and design documents that can be used by the rest of the team to actually create the solution. The Solutions Architect is typically responsible for matching technologies to the problem being solved.
    • Development Lead (DL) - The development lead's role is focused around providing more detail to the Solution Architect's architecture. This would include detailed program specifications creation. The Development Lead is also the first line of support for the developers who need help understanding a concept or working through a particularly thorny issue.
    • Developer (Dev) - The heart and soul of the process, the developer actually writes the code that the Development Leads provided specifications for.
    • Quality Assurance (QA) - The quality assurance role is an often thankless position that is designed to find bugs before they find their way to the end customers. Using a variety of techniques ranging from keying in data and playing with the system to formalized, automated testing scripts the Quality Assurance team is responsible for ensuring the quality of the solution and it's fit to the requirements gathered by the Functional Analyst. Sometimes the QA team is known by their less flattering name of testers.
    • Deployment (Deploy) - The deployment role is the one which packages up all of the compiled code and configuration files and deploys it through the appropriate environments or on the appropriate systems. The deployment role is focused on getting the solution used. To that end the role may include automated software installation procedures or may be as simple as copying the files to the appropriate place and running them.
    • Training - The training role is responsible for documentation for the system as well as any instructor or computer based training solutions, which are designed to help the users better understand how the system works and what they can do with it.
    • Project Manager (PM) - The project manager is responsible for ensuring consistent reporting, risk mitigation, timeline, and cost control. The project manager role is a problem solver role. They try to resolve problems why they are small so that they can be handled more quickly and with less cost.
    • Development Manager (DM) - The development manager is responsible for managing multiple priorities of conflicting projects. The Development Manager role is also an escalation for issues from the team, which it is unable to resolve internally.

    Of course, each organization has it's own take on these roles; however, these are the roles you'll see most often in an organization doing development.

    Over the course of the next few weeks, articles will be published that delve deeper into each of the above roles.

    Critical Skills for Every Role

    In the articles describing each role there is a section, much like this one, which is designed to support a bulleted list of items that are critical to the success of the role. During the creation of the series a common set of skills was identified that were essential business skills that professionals in nearly every role needed to consider during their career. Rather than repeat them within the individual articles describing each role, they have been brought together here so that you could consider the impact of these roles in whole no matter where you are in the software development process. The common skills to all roles are:

    • Understanding Business - Although some roles are focused very specifically around certain aspects of understanding and converting business requirements, every role in the process should have an awareness and sensitivity to the business processes and needs which require technology in the first place. Without this technology may be implemented but it may not solve the real needs and will therefore be considered a failure.
    • Broad Understanding - Although an understanding of software development is critical there are other areas where an understanding can be invaluable. For instance, understanding how computers work internally including memory, cache, hard drives, etc., can help you learn how to more appropriately conserve those resources. Similarly understanding networking can help in the development of applications, which are compatible or even friendly to the networks that they're working across. SMEs broad understanding of the industry can be invaluable in terms of creating solutions that fit both the organization and the industry. The QA team can benefit the project by a broad understanding by minimizing QA costs while improving testing coverage. In short, a broad understanding can help every role.
    • Multiple Perspectives - The ability to approach solutions from multiple perspectives is critical to software development. Understanding how each person who is working on a problem views an issue - or how different customers will view the solution is important to be able to find the best solution based on all of the information. There are always multiple ways of viewing - and solving - a problem. The trick is to find the best one from the list of possible options. The larger the list of options (perspectives) the better the solution.
    • People Skills - Also known as soft skills, the ability to interact with other people and to be a part of a team is essential to nearly every role in a software development project. The lower the overall people skills of the team the higher the likelihood that the project will end in some explosion.
    • Lifelong Learning - Although some might argue that the perspective of being a life long learner is more of an attitude than a skill, it is a critical part of being in a high-change industry like IT in general and software development specifically. What is learned today will be obsolete tomorrow. The only way to stay ahead of the game is to approach life from the perspective of continuous learning. Each new experience is a new opportunity to learn and each new year brings with it the need for skills renewal.

    In the next article, the first detailed review of a role in the series, we'll delve into the role of the SME in the process and what specific skills can make an SME stand out from the rest.

    About the Author

    Robert Bogue, MCSE (NT4/W2K), MCSA:Security, A+, Network+, Server+, I-Net+, IT Project+, E-Biz+, CDIA+ has contributed to more than 100 book projects and numerous other publishing projects. He writes on topics from networking and certification to Microsoft applications and business needs. Robert is a strategic consultant for Crowe Chizek in Indianapolis. Some of Robert's more recent books are Mobilize Yourself!: The Microsoft Guide to Mobile Technology, Server+ Training Kit, and MCSA Training Guide (70-218): Managing a Windows 2000 Network. He was honored to become a Microsoft MVP for Microsoft Windows Server - Networking . You can reach Robert at Robert.Bogue@CroweChizek.com

    Trackback: http://www.developer.com/print.php/3490871


    • Permanent link to this post Permalink 
    • Share this post! Share It! 
    • View this post's comments Comments (35) 
    • RSS Feed for this post's comments Comment RSS
    •    


    Using MetaWebLog with PHP-XMLRPC

    Due to the fact that there is virtually no documentation available on how to get the MetaWebLog API working with the PHP-XMLRPC library, I decided to write this post. The MetaWebLog API is an application programming interface that allows data to be passed from a client to a server, and vice versa. It is used by all of the most popular blogging software, allowing the user to post blog entries from software like Microsoft Word or Windows Live Writer.

    If you want to add MetaWebLog functionality to your custom blog or CMS, then this post will really help you. First off, download the PHP-XMLRPC library and upload the three files - xmlrpc.inc, xmlrpcs.inc, xmlrpc_wrappers.inc - found within the lib folder to your web server.

    With that done, you can now start implementing the MetaWebLog functions. The first one you’ll need to implement is blogger.getUsersBlogs, otherwise software like Microsoft Word won’t recognise it as a valid MetaWebLog implementation. With that done, you can then start working on the functions that you might need to use.

    To debug your code, make sure you take advantage of the XMLRPC debugger. And for more information on what each function is supposed to accept and return, check out Microsoft’s MSDN.

    Trackback: http://ryanhemelaar.blogsome.com/2009/01/29/using-metaweblog-with-php-xmlrpc/trackback/


    • Permanent link to this post Permalink 
    • Share this post! Share It! 
    • View this post's comments Comments (307) 
    • RSS Feed for this post's comments Comment RSS
    •    


    Wishing you a Merry Christmas

    I would like to wish you a warm Merry Christmas and prosperous Happy New Year.

    9-creative-christmas-cards 5-merry-christmas-greeting-card


    • Permanent link to this post Permalink 
    • Share this post! Share It! 
    • View this post's comments Comments (77) 
    • RSS Feed for this post's comments Comment RSS
    •    


    About Me

    Deepak Kamboj

    Deepak Kamboj, MCTS, JCP
    ASP.NET/C# Web Developer
    Chandigarh, India

    RSS Contact Twitter Facebook LinkedIn

    Yahoo: DeepakKamboj@yahoo.com
    GTalk: DeepakKamboj@gmail.com
    Skype: DeepakKamboj

    Recent Comments