<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-539697305589608654</id><updated>2011-11-28T06:19:49.342+06:00</updated><category term='C#'/><category term='LINQ'/><category term='.Net 3.5'/><category term='SQL'/><category term='Agile'/><category term='Scrum'/><category term='Design Pattern'/><category term='Link'/><category term='InstallShield Script'/><category term='ASP.Net'/><category term='Lambda Expressions'/><category term='Ajax'/><category term='Sample Code'/><category term='Issues'/><title type='text'>Zakirul's blog</title><subtitle type='html'>This blog contains posts on coding samples, design pattern and general computing</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://zakirul-quayum.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://zakirul-quayum.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Zakirul Quayum</name><uri>http://www.blogger.com/profile/08621333404610655822</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>29</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-539697305589608654.post-1733881433339773239</id><published>2010-04-12T18:36:00.002+06:00</published><updated>2010-04-12T18:37:01.041+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='InstallShield Script'/><title type='text'>Delete Registry key using Install Script</title><content type='html'>&lt;span xmlns=""&gt;&lt;p&gt;Delete Registry key using Install Script.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Here is the function you can use to delete a registry key in InstallShield project.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;function DeleteRegisrtyKey(szKey)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;    STRING szClass;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;begin&lt;br /&gt;&lt;/p&gt;&lt;p&gt;    try&lt;br /&gt;&lt;/p&gt;&lt;p&gt;        RegDBSetDefaultRoot( HKEY_LOCAL_MACHINE );&lt;br /&gt;&lt;/p&gt;&lt;p&gt;        szKey="SOFTWARE\\"+szKey;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;        WriteLog("Trying to delete registry value for "+szKey);&lt;br /&gt;&lt;/p&gt;&lt;p&gt;        szClass = "FPClass";&lt;br /&gt;&lt;/p&gt;&lt;p&gt;        if (RegDBKeyExist(szKey) &amp;lt; 0) then&lt;br /&gt;&lt;/p&gt;&lt;p&gt;            WriteLog(szKey +" can not be located in the registry. Deletion failed.");&lt;br /&gt;&lt;/p&gt;&lt;p&gt;            MessageBox("Unable to delete the registry "+szKey,INFORMATION);&lt;br /&gt;&lt;/p&gt;&lt;p&gt;        else&lt;br /&gt;&lt;/p&gt;&lt;p&gt;            if (RegDBDeleteKey (szKey) &amp;lt; 0) then&lt;br /&gt;&lt;/p&gt;&lt;p&gt;                WriteLog("Failed to delete the Registry.");&lt;br /&gt;&lt;/p&gt;&lt;p&gt;            else&lt;br /&gt;&lt;/p&gt;&lt;p&gt;                WriteLog("Registry successfully deleted.");&lt;br /&gt;&lt;/p&gt;&lt;p&gt;            endif; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;        endif;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;    catch&lt;br /&gt;&lt;/p&gt;&lt;p&gt;        WriteErrorLog("Exception during deleting the registry key. The key is: "+szKey);&lt;br /&gt;&lt;/p&gt;&lt;p&gt;    endcatch;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;end;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/539697305589608654-1733881433339773239?l=zakirul-quayum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zakirul-quayum.blogspot.com/feeds/1733881433339773239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=539697305589608654&amp;postID=1733881433339773239' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/1733881433339773239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/1733881433339773239'/><link rel='alternate' type='text/html' href='http://zakirul-quayum.blogspot.com/2010/04/delete-registry-key-using-install.html' title='Delete Registry key using Install Script'/><author><name>Zakirul Quayum</name><uri>http://www.blogger.com/profile/08621333404610655822</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-539697305589608654.post-1648931332951274734</id><published>2010-04-05T09:27:00.000+06:00</published><updated>2010-04-05T09:29:03.437+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Issues'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>SQL Server 2005 VS SQL Server 2008</title><content type='html'>New Features in SQL Server 2005:&lt;br /&gt;1. It included native support for managing XML data, in addition to relational data.For this purpose, it defined an xml data type that could be used either as a data type in database columns or as literals in queries.&lt;br /&gt;2. XML columns can be associated with XSD schemas; XML data being stored is verified against the schema. XML is converted to an internal binary data type before being stored in the database. Specialized indexing methods were made available for XML data. XML data is queried using XQuery; SQL Server 2005 added some extensions to the T-SQL language to allow embedding XQuery queries in T-SQL. In addition, it also defines a new extension to XQuery, called XML DML, that allows query-based modifications to XML data.&lt;br /&gt;3. SQL Server 2005 also allows a database server to be exposed over web services using TDS packets encapsulated within SOAP (protocol) requests. When the data is accessed over web services, results are returned as XML.&lt;br /&gt;4. For relational data, T-SQL has been augmented with error handling features (try/catch) and support for recursive queries (Common Table Expressions).&lt;br /&gt;5. SQL Server 2005 has also been enhanced with new indexing algorithms and better error recovery systems. Data pages are checksummed for better error resiliency, and optimistic concurrency support has been added for better performance.&lt;br /&gt;6. Permissions and access control have been made more granular and the query processor handles concurrent execution of queries in a more efficient way.&lt;br /&gt;7. Partitions on tables and indexes are supported natively, so scaling out a database onto a cluster is easier.&lt;br /&gt;8. SQL CLR was introduced with SQL Server 2005 to let it integrate with the .NET Framework.&lt;br /&gt;9. SQL Server 2005 introduced "MARS" (Multiple Active Results Sets), a method of allowing usage of database connections for multiple purposes.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;New Features in SQL Server 2008:&lt;br /&gt;1. The current version of SQL Server, SQL Server 2008,[4] (code-named "Katmai",[5]) was released (RTM) on August 6, 2008[6] and aims to make data management self-tuning, self organizing, and self maintaining with the development of SQL Server Always On technologies, to provide near-zero downtime.&lt;br /&gt;2. SQL Server 2008 also includes support for structured and semi-structured data, including digital media formats for pictures, audio, video and other multimedia data. In current versions, such multimedia data can be stored as BLOBs (binary large objects), but they are generic bitstreams.&lt;br /&gt;3. Other new data types include specialized date and time types and a Spatial data type for location-dependent data.&lt;br /&gt;4. Better support for unstructured and semi-structured data is provided using the new FILESTREAM[8] data type, which can be used to reference any file stored on the file system.&lt;br /&gt;5. Structured data and metadata about the file is stored in SQL Server database, whereas the unstructured component is stored in the file system. Such files can be accessed both via Win32 file handling APIs as well as via SQL Server using T-SQL; doing the latter accesses the file data as a BLOB.&lt;br /&gt;6. Backing up and restoring the database backs up or restores the referenced files as well.&lt;br /&gt;7. SQL Server 2008 also natively supports hierarchical data, and includes T-SQL constructs to directly deal with them, without using recursive queries.&lt;br /&gt;8. The Full-Text Search functionality has been integrated with the database engine, which simplifies management and improves performance.&lt;br /&gt;9. Spatial data will be stored in two types. A "Flat Earth" (GEOMETRY or planar) data type represents geospatial data which has been projected from its native, spherical, coordinate system into a plane. A "Round Earth" data type (GEOGRAPHY) uses an ellipsoidal model in which the Earth is defined as a single continuous entity which does not suffer from the singularities such as the international dateline, poles, or map projection zone "edges". Approximately 70 methods are available to represent spatial operations for the Open Geospatial Consortium Simple Features for SQL, Version 1.1&lt;br /&gt;10. SQL Server includes better compression features, which also helps in improving scalability.&lt;br /&gt;11. It also includes Resource Governor that allows reserving resources for certain users or workflows.&lt;br /&gt;12. It also includes capabilities for transparent encryption of data as well as compression of backups.&lt;br /&gt;13. SQL Server 2008 supports the ADO.NET Entity Framework and the reporting tools, replication, and data definition will be built around the Entity Data Model.&lt;br /&gt;14. On the management side, SQL Server 2008 includes the Declarative Management Framework which allows configuring policies and constraints, on the entire database or certain tables, declaratively.&lt;br /&gt;15. The version of SQL Server Management Studio included with SQL Server 2008 supports IntelliSense for SQL queries against a SQL Server 2008 Database Engine&lt;br /&gt;16. SQL Server 2008 also makes the databases available via Windows PowerShell providers and management functionality available as Cmdlets, so that the server and all the running instances can be managed from Windows PowerShell.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/539697305589608654-1648931332951274734?l=zakirul-quayum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zakirul-quayum.blogspot.com/feeds/1648931332951274734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=539697305589608654&amp;postID=1648931332951274734' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/1648931332951274734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/1648931332951274734'/><link rel='alternate' type='text/html' href='http://zakirul-quayum.blogspot.com/2010/04/sql-server-2005-vs-sql-server-2008.html' title='SQL Server 2005 VS SQL Server 2008'/><author><name>Zakirul Quayum</name><uri>http://www.blogger.com/profile/08621333404610655822</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-539697305589608654.post-6759112645058759584</id><published>2010-03-22T15:55:00.002+06:00</published><updated>2010-03-22T16:04:04.929+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Issues'/><title type='text'>Registry key contain last few “Run” command</title><content type='html'>&lt;span xmlns=""&gt;&lt;p&gt;Today I came across a very interesting registry key which I wanna share. If you go to your "Start" menu and open the "Run" dialog from there, you will see a dropdown list labeled as "Open". This list contains the last few entries you wrote there [probably last 26 entry is its limit]. This list populated from the following registry key&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU"&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Lets try yourself, and you know you can make some funny staff from there.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Have fun coding, take care.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;/Zaq&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/539697305589608654-6759112645058759584?l=zakirul-quayum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zakirul-quayum.blogspot.com/feeds/6759112645058759584/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=539697305589608654&amp;postID=6759112645058759584' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/6759112645058759584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/6759112645058759584'/><link rel='alternate' type='text/html' href='http://zakirul-quayum.blogspot.com/2010/03/registry-key-contain-last-few-run.html' title='Registry key contain last few “Run” command'/><author><name>Zakirul Quayum</name><uri>http://www.blogger.com/profile/08621333404610655822</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-539697305589608654.post-673832753173788567</id><published>2010-03-07T10:46:00.002+06:00</published><updated>2010-03-07T10:48:32.036+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.Net'/><title type='text'>Compatibility issue on IE7 and IE8</title><content type='html'>&lt;span xmlns=""&gt;&lt;p&gt;If you want to make your site compatible with both IE7 and IE8 together, then just add this meta tag in your site. It will solve your problem.&lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: lucida grande;"&gt;&lt;span style=";font-size:100%;color:black;"  &gt;&amp;lt;meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/539697305589608654-673832753173788567?l=zakirul-quayum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zakirul-quayum.blogspot.com/feeds/673832753173788567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=539697305589608654&amp;postID=673832753173788567' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/673832753173788567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/673832753173788567'/><link rel='alternate' type='text/html' href='http://zakirul-quayum.blogspot.com/2010/03/compatibility-issue-on-ie7-and-ie8.html' title='Compatibility issue on IE7 and IE8'/><author><name>Zakirul Quayum</name><uri>http://www.blogger.com/profile/08621333404610655822</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-539697305589608654.post-6529459914470632962</id><published>2010-02-15T19:20:00.004+06:00</published><updated>2010-02-15T19:22:47.789+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='InstallShield Script'/><title type='text'>Check if a String contains a substring using InstallScript</title><content type='html'>&lt;span xmlns=""&gt;&lt;p&gt;Check if a String contains a substring.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;If you want to check whether a string contains a specific substring or not, it's quite easy in .net or Java or any other OO language. But when it comes to InstallScript it's not that straight forward. In spent little time on InstallShield help but could not manage anything usual. And then finally google help me to reach some example on that. Here is a function I wrote to use in my project:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-size:85%;"&gt;prototype BOOL IsStringContains(STRING,STRING);&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;function BOOL IsStringContains(szSource, szArgs)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;    BOOL bIsContains;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;begin   &lt;br /&gt;&lt;/p&gt;&lt;p&gt;    if(szSource % szArgs) then&lt;br /&gt;&lt;/p&gt;&lt;p&gt;        bIsContains = TRUE;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;    else&lt;br /&gt;&lt;/p&gt;&lt;p&gt;        bIsContains = FALSE;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;    endif;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;    return bIsContains;                                    &lt;br /&gt;&lt;/p&gt;&lt;p&gt;end;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;And then I use this call this function like this:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;if(IsStringContains("This is Zakirul","Zakirul")) then&lt;br /&gt;&lt;/p&gt;&lt;p&gt;    MessageBox("String match found.", INFORMATION);&lt;br /&gt;&lt;/p&gt;&lt;p&gt;else&lt;br /&gt;&lt;/p&gt;&lt;p&gt;    MessageBox("String doesn't found",INFORMATION);&lt;br /&gt;&lt;/p&gt;&lt;p&gt;endif;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;Hope this will help you.&lt;/p&gt;&lt;p&gt;Thanks,&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Zakirul&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/539697305589608654-6529459914470632962?l=zakirul-quayum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zakirul-quayum.blogspot.com/feeds/6529459914470632962/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=539697305589608654&amp;postID=6529459914470632962' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/6529459914470632962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/6529459914470632962'/><link rel='alternate' type='text/html' href='http://zakirul-quayum.blogspot.com/2010/02/check-if-string-contains-substring.html' title='Check if a String contains a substring using InstallScript'/><author><name>Zakirul Quayum</name><uri>http://www.blogger.com/profile/08621333404610655822</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-539697305589608654.post-7283948997452874881</id><published>2009-04-07T15:04:00.002+06:00</published><updated>2009-04-07T15:10:37.562+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sample Code'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.Net'/><title type='text'>Calling Javascript functino from your code behind in ASP.Net</title><content type='html'>Here is the code by which you can call a javascript function within any where of you C# code.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Page.ClientScript.RegisterStartupScript(Page.GetType(), "YourPrompt",&lt;br /&gt;"&amp;lt;script&amp;gt;alert('Hello');&amp;lt;/script&amp;gt;");&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Hope it works.&lt;br /&gt;&lt;br /&gt;Thanks&lt;br /&gt;/Zaq&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/539697305589608654-7283948997452874881?l=zakirul-quayum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zakirul-quayum.blogspot.com/feeds/7283948997452874881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=539697305589608654&amp;postID=7283948997452874881' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/7283948997452874881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/7283948997452874881'/><link rel='alternate' type='text/html' href='http://zakirul-quayum.blogspot.com/2009/04/calling-javascript-functino-from-your.html' title='Calling Javascript functino from your code behind in ASP.Net'/><author><name>Zakirul Quayum</name><uri>http://www.blogger.com/profile/08621333404610655822</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-539697305589608654.post-3469663814156776723</id><published>2009-03-04T17:34:00.003+06:00</published><updated>2009-03-04T17:47:12.834+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sample Code'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Zip/Unzip using C#</title><content type='html'>&lt;span xmlns=""  style="font-size:100%;"&gt;&lt;p&gt;I have spent few hours over internet to find out a way to create zip file using .net 2.0, C#. My intention was to avoid any third party library or application. I started with System.IO.Compression, but I did not find any resource about creating a zip from a directory with files and subdirectory as well. I got few .net library and I felt few of those are quite familier and using wiedly. But as I have some restriction i can not use those. Finally I got a solutoin to create and extract zip file using Shell32.dll. Here is two functions I wrote.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    private static void ZipFile(string sourceFolder, string destinationFile)&lt;br /&gt;   {&lt;br /&gt;      byte[] emptyzip = new byte[] { 80, 75, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };&lt;br /&gt;&lt;br /&gt;      FileStream fs = File.Create(destinationFile);&lt;br /&gt;      fs.Write(emptyzip, 0, emptyzip.Length);&lt;br /&gt;      fs.Flush();&lt;br /&gt;      fs.Close();&lt;br /&gt;      fs = null;&lt;br /&gt;&lt;br /&gt;      //Copy a folder and its contents into the newly created zip file&lt;br /&gt;      Shell32.ShellClass sc = new Shell32.ShellClass();&lt;br /&gt;      Shell32.Folder SrcFlder = sc.NameSpace(sourceFolder);&lt;br /&gt;      Shell32.Folder DestFlder = sc.NameSpace(destinationFile);&lt;br /&gt;      Shell32.FolderItems items = SrcFlder.Items();&lt;br /&gt;      DestFlder.CopyHere(items, 20);&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   private static string UnzipFile(string inputFileName, string destinationPath)&lt;br /&gt;   {&lt;br /&gt;   if (!Directory.Exists(destinationPath))&lt;br /&gt;       Directory.CreateDirectory(destinationPath);&lt;br /&gt;&lt;br /&gt;   Shell shell = new ShellClass();&lt;br /&gt;   Folder sourceFolder = shell.NameSpace(inputFileName);&lt;br /&gt;   Folder destinationFolder = shell.NameSpace(destinationPath);&lt;br /&gt;   string outputFileName = sourceFolder.Items().Item(0).Name;&lt;br /&gt;   destinationFolder.CopyHere(sourceFolder.Items(), "");&lt;br /&gt;   return outputFileName;&lt;br /&gt;   }    &lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: lucida grande;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: lucida grande;"&gt;&lt;span style=""&gt; Here is the code to call those function.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family: lucida grande;"&gt;&lt;span style=""&gt;ZipFile(&lt;span style="color: rgb(163, 21, 21);"&gt;@"D:\SourceFolder"&lt;/span&gt;, &lt;span style="color: rgb(163, 21, 21);"&gt;@"D:\MyZip.zip"&lt;/span&gt;);&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family: lucida grande;"&gt;&lt;span style=""&gt;UnzipFile(&lt;span style="color: rgb(163, 21, 21);"&gt;@"D:\MyZip.zip"&lt;/span&gt;, &lt;span style="color: rgb(163, 21, 21);"&gt;@"D:\ExtractFolder"&lt;/span&gt;);&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family: lucida grande;"&gt;Hope this may help you. Thanks.&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/539697305589608654-3469663814156776723?l=zakirul-quayum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zakirul-quayum.blogspot.com/feeds/3469663814156776723/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=539697305589608654&amp;postID=3469663814156776723' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/3469663814156776723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/3469663814156776723'/><link rel='alternate' type='text/html' href='http://zakirul-quayum.blogspot.com/2009/03/zipunzip-using-c.html' title='Zip/Unzip using C#'/><author><name>Zakirul Quayum</name><uri>http://www.blogger.com/profile/08621333404610655822</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-539697305589608654.post-1805720934393951651</id><published>2009-03-04T10:49:00.001+06:00</published><updated>2009-03-04T10:49:12.174+06:00</updated><title type='text'>How to merge multiple .NET assemblies into a single .NET assembly?</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;Answer is &lt;a href='http://www.microsoft.com/downloads/details.aspx?familyid=22914587-b4ad-4eae-87cf-b14ae6a939b0&amp;amp;displaylang=en'&gt;ILMerge&lt;/a&gt;, LMerge is a utility for merging multiple .NET assemblies into a single .NET assembly. It works on executables and DLLs alike and comes with several options for controlling the processing and format of the output. See the accompanying documentation for details.&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/539697305589608654-1805720934393951651?l=zakirul-quayum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zakirul-quayum.blogspot.com/feeds/1805720934393951651/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=539697305589608654&amp;postID=1805720934393951651' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/1805720934393951651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/1805720934393951651'/><link rel='alternate' type='text/html' href='http://zakirul-quayum.blogspot.com/2009/03/how-to-merge-multiple-net-assemblies.html' title='How to merge multiple .NET assemblies into a single .NET assembly?'/><author><name>Zakirul Quayum</name><uri>http://www.blogger.com/profile/08621333404610655822</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-539697305589608654.post-9103551516130959978</id><published>2009-02-12T11:13:00.001+06:00</published><updated>2009-02-12T11:13:43.910+06:00</updated><title type='text'>XML Document Reading</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;xPath sample:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href='http://www.java2s.com/Code/CSharp/XML/ReadXMLnodeusingtheXMLpath.htm'&gt;http://www.java2s.com/Code/CSharp/XML/ReadXMLnodeusingtheXMLpath.htm&lt;/a&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;Read XML document:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href='http://www.java2s.com/Tutorial/CSharp/0540__XML/ReadXMLdocumentbynodetype.htm'&gt;http://www.java2s.com/Tutorial/CSharp/0540__XML/ReadXMLdocumentbynodetype.htm&lt;/a&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;&lt;a href='http://support.microsoft.com/kb/307548'&gt;http://support.microsoft.com/kb/307548&lt;/a&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/539697305589608654-9103551516130959978?l=zakirul-quayum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zakirul-quayum.blogspot.com/feeds/9103551516130959978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=539697305589608654&amp;postID=9103551516130959978' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/9103551516130959978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/9103551516130959978'/><link rel='alternate' type='text/html' href='http://zakirul-quayum.blogspot.com/2009/02/xml-document-reading.html' title='XML Document Reading'/><author><name>Zakirul Quayum</name><uri>http://www.blogger.com/profile/08621333404610655822</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-539697305589608654.post-3031434378285606171</id><published>2009-01-26T19:36:00.001+06:00</published><updated>2009-01-26T19:36:54.332+06:00</updated><title type='text'>RegExp for Telephone Number</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;^[+]?[\d]{1,3}[\-]?(([\d]{8,18})|([(]{1}[\d]{8,18}[)]{1}))&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Lets explain this RegExp part by part.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;"^[+]?" this part ensures that there will be an optional first character which will be a "+". And if you will start with a digit then it will be fine due to the next part of Expression.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;"[\d]{1,3}" this part will ensure that you must enter a number not more than 3 digit and not less than 1 digit.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;"[\-]?" this part will ensure that you may enter a "-"after satisfying first two part.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;"[\d]{8,18}" this part ensure that you need to enter a number from 8-18 digit.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;"[(]{1}[\d]{8,18}[)]{1}" this part will ensure that you will start with a "(" and enter a number between 8 to 18 digits and at the end you will enter a ")".&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Now "(([\d]{8,18})|([(]{1}[\d]{8,18}[)]{1}))" this part will ensure to have any one part of these two  to be satisfied. &lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/539697305589608654-3031434378285606171?l=zakirul-quayum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zakirul-quayum.blogspot.com/feeds/3031434378285606171/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=539697305589608654&amp;postID=3031434378285606171' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/3031434378285606171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/3031434378285606171'/><link rel='alternate' type='text/html' href='http://zakirul-quayum.blogspot.com/2009/01/regexp-for-telephone-number.html' title='RegExp for Telephone Number'/><author><name>Zakirul Quayum</name><uri>http://www.blogger.com/profile/08621333404610655822</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-539697305589608654.post-5704387191002114875</id><published>2009-01-05T12:51:00.001+06:00</published><updated>2009-01-05T12:51:50.724+06:00</updated><title type='text'>Free eBooks download</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;http://www.ebooksboard.com/&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/539697305589608654-5704387191002114875?l=zakirul-quayum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zakirul-quayum.blogspot.com/feeds/5704387191002114875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=539697305589608654&amp;postID=5704387191002114875' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/5704387191002114875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/5704387191002114875'/><link rel='alternate' type='text/html' href='http://zakirul-quayum.blogspot.com/2009/01/free-ebooks-download.html' title='Free eBooks download'/><author><name>Zakirul Quayum</name><uri>http://www.blogger.com/profile/08621333404610655822</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-539697305589608654.post-5773921785496631875</id><published>2009-01-05T12:44:00.001+06:00</published><updated>2009-01-05T12:44:39.375+06:00</updated><title type='text'>Event list on XHTML</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;Event list on XHTML&lt;br /&gt;&lt;/p&gt;&lt;p&gt;http://www.w3schools.com/tags/ref_eventattributes.asp&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/539697305589608654-5773921785496631875?l=zakirul-quayum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zakirul-quayum.blogspot.com/feeds/5773921785496631875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=539697305589608654&amp;postID=5773921785496631875' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/5773921785496631875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/5773921785496631875'/><link rel='alternate' type='text/html' href='http://zakirul-quayum.blogspot.com/2009/01/event-list-on-xhtml.html' title='Event list on XHTML'/><author><name>Zakirul Quayum</name><uri>http://www.blogger.com/profile/08621333404610655822</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-539697305589608654.post-3087694857019140664</id><published>2009-01-01T14:28:00.001+06:00</published><updated>2009-01-01T14:28:24.112+06:00</updated><title type='text'>Link for HTML color code in hex with sample</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;Link for HTML color code in hex with sample.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;http://www.colourlovers.com/blog/2007/06/30/ultimate-html-color-hex-code-list/&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/539697305589608654-3087694857019140664?l=zakirul-quayum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zakirul-quayum.blogspot.com/feeds/3087694857019140664/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=539697305589608654&amp;postID=3087694857019140664' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/3087694857019140664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/3087694857019140664'/><link rel='alternate' type='text/html' href='http://zakirul-quayum.blogspot.com/2009/01/link-for-html-color-code-in-hex-with.html' title='Link for HTML color code in hex with sample'/><author><name>Zakirul Quayum</name><uri>http://www.blogger.com/profile/08621333404610655822</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-539697305589608654.post-5102808097248835338</id><published>2008-12-31T17:57:00.002+06:00</published><updated>2008-12-31T17:59:09.921+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Link'/><category scheme='http://www.blogger.com/atom/ns#' term='Ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.Net'/><title type='text'>Link for AJAX learning videos from asp forum.</title><content type='html'>&lt;span xmlns=""&gt;&lt;p&gt;Here is the link http://www.asp.net/learn/ajax-videos/&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/539697305589608654-5102808097248835338?l=zakirul-quayum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zakirul-quayum.blogspot.com/feeds/5102808097248835338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=539697305589608654&amp;postID=5102808097248835338' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/5102808097248835338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/5102808097248835338'/><link rel='alternate' type='text/html' href='http://zakirul-quayum.blogspot.com/2008/12/link-for-ajax-learning-videos-from-asp.html' title='Link for AJAX learning videos from asp forum.'/><author><name>Zakirul Quayum</name><uri>http://www.blogger.com/profile/08621333404610655822</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-539697305589608654.post-3986580773344766509</id><published>2008-10-26T18:31:00.002+06:00</published><updated>2008-10-26T18:32:41.362+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='InstallShield Script'/><title type='text'>Creating a Windows Registry entry in InstallShield script</title><content type='html'>&lt;span xmlns=""&gt;&lt;p&gt;Hi,&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Now we will try to create a Registry entry from Installshield script. Here I am giving a function which I have used in my projects and its worked fine.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;function CreateRegistry(sKey, sKeyName, sKeyValue)  &lt;br /&gt;&lt;/p&gt;&lt;p&gt;    int iResult;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;    STRING sClass;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;begin &lt;br /&gt;&lt;/p&gt;&lt;p&gt; Disable(LOGGING);&lt;br /&gt;&lt;/p&gt;&lt;p&gt;    WriteLog("Trying to create registry. Reg Key: "+sKey+ " ,KeyName: "+sKeyName+" ,KeyValue: "+sKeyValue);&lt;br /&gt;&lt;/p&gt;&lt;p&gt;    try &lt;br /&gt;&lt;/p&gt;&lt;p&gt;          sKey="SOFTWARE\\"+sKey;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;           RegDBSetDefaultRoot( HKEY_LOCAL_MACHINE );&lt;br /&gt;&lt;/p&gt;&lt;p&gt;          sClass = "FPClass";&lt;br /&gt;&lt;/p&gt;&lt;p&gt;          if( RegDBCreateKeyEx(sKey,sClass)&amp;lt; 0 ) then&lt;br /&gt;&lt;/p&gt;&lt;p&gt;           WriteLog("Failed to create registry key.");&lt;br /&gt;&lt;/p&gt;&lt;p&gt;             MessageBox("Fail to create key for application",INFORMATION);&lt;br /&gt;&lt;/p&gt;&lt;p&gt;          else&lt;br /&gt;&lt;/p&gt;&lt;p&gt;          WriteLog("Registry Key successfully created. Trying to create Registry Value.");&lt;br /&gt;&lt;/p&gt;&lt;p&gt;            iResult = RegDBSetKeyValueEx(sKey,sKeyName,REGDB_STRING_EXPAND,sKeyValue,-1);&lt;br /&gt;&lt;/p&gt;&lt;p&gt;             if(iResult &amp;gt; 0) then        &lt;br /&gt;&lt;/p&gt;&lt;p&gt;              WriteLog("Failed to creat Registry value");&lt;br /&gt;&lt;/p&gt;&lt;p&gt;                MessageBox("Unable to create Registry",INFORMATION);&lt;br /&gt;&lt;/p&gt;&lt;p&gt;           else &lt;br /&gt;&lt;/p&gt;&lt;p&gt;               WriteLog("Registry value successfully created.");&lt;br /&gt;&lt;/p&gt;&lt;p&gt;             endif ;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;         endif;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;    catch&lt;br /&gt;&lt;/p&gt;&lt;p&gt;          WriteErrorLog("Unable to create registry key. The key is "+sKey+" and name is "+sKeyName);&lt;br /&gt;&lt;/p&gt;&lt;p&gt;          MessageBox("Unable to create Registry", INFORMATION);&lt;br /&gt;&lt;/p&gt;&lt;p&gt;    endcatch;   &lt;br /&gt;&lt;/p&gt;&lt;p&gt;    Enable(LOGGING);&lt;br /&gt;&lt;/p&gt;&lt;p&gt;end;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;Hope this will help someone somewhere&lt;span style="font-family:Wingdings;"&gt;J&lt;/span&gt;.&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/539697305589608654-3986580773344766509?l=zakirul-quayum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zakirul-quayum.blogspot.com/feeds/3986580773344766509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=539697305589608654&amp;postID=3986580773344766509' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/3986580773344766509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/3986580773344766509'/><link rel='alternate' type='text/html' href='http://zakirul-quayum.blogspot.com/2008/10/creating-windows-registry-entry-in.html' title='Creating a Windows Registry entry in InstallShield script'/><author><name>Zakirul Quayum</name><uri>http://www.blogger.com/profile/08621333404610655822</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-539697305589608654.post-5110376879007070284</id><published>2008-09-16T14:28:00.002+06:00</published><updated>2008-09-16T14:29:46.792+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sample Code'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Execute Java jar file from .Net</title><content type='html'>Step1: Creating a Java Class&lt;br /&gt;&lt;br /&gt;package ZAQ;&lt;br /&gt;&lt;br /&gt;import javax.swing.JOptionPane;&lt;br /&gt;public class Hello {&lt;br /&gt; public static void main (String [] args) {&lt;br /&gt;   JOptionPane.showMessageDialog(null, "Hello World!");&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Put this Class Inside ZAQ directory and set the class file name as Hello.java&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Step2: Preparing of mainClass.txt file.&lt;br /&gt;Write the following line in the file. Please remember to put a carriage return after the line.&lt;br /&gt;Main-Class: ZAQ.Hello&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Step3: Compile the Java Class and Build the jar file&lt;br /&gt;Create class file for Hello.java and then build the jar file. Do the following commands&lt;br /&gt;-&gt;Javac ZAQ/Hello.java&lt;br /&gt;-&gt;jar cmf mainClass.txt ZAQ.jar ZAQ&lt;br /&gt;-&gt;java –jar ZAQ.jar Hello&lt;br /&gt;Now your jar is ready.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Step4: Create a batch file to be execute in .Net&lt;br /&gt;Save a file with the following text:&lt;br /&gt;java -jar D:\ZAQ.jar&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Step5: .Net code is here.&lt;br /&gt;&lt;br /&gt;int i = 0;&lt;br /&gt;string sOut = ShellExec(@"d:\Comm.bat", "", "", out i);&lt;br /&gt;Console.WriteLine(sOut);&lt;br /&gt;&lt;br /&gt;And the function is here:&lt;br /&gt;&lt;br /&gt;protected static String ShellExec(String cmd, String path, String parms, out int exit_code)&lt;br /&gt;       {&lt;br /&gt;           System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(path + cmd, parms);&lt;br /&gt;           psi.RedirectStandardOutput = true;&lt;br /&gt;           psi.UseShellExecute = false;                      &lt;br /&gt;         &lt;br /&gt;           System.Diagnostics.Process p = System.Diagnostics.Process.Start(psi);&lt;br /&gt;           string tool_output = p.StandardOutput.ReadToEnd();&lt;br /&gt;           p.WaitForExit();&lt;br /&gt;           exit_code = p.ExitCode;&lt;br /&gt;           return tool_output;&lt;br /&gt;       }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/539697305589608654-5110376879007070284?l=zakirul-quayum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zakirul-quayum.blogspot.com/feeds/5110376879007070284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=539697305589608654&amp;postID=5110376879007070284' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/5110376879007070284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/5110376879007070284'/><link rel='alternate' type='text/html' href='http://zakirul-quayum.blogspot.com/2008/09/execute-java-jar-file-from-net.html' title='Execute Java jar file from .Net'/><author><name>Zakirul Quayum</name><uri>http://www.blogger.com/profile/08621333404610655822</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-539697305589608654.post-6286577007879119782</id><published>2008-09-14T12:35:00.001+06:00</published><updated>2008-09-14T12:37:04.037+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Use windows authentication for your own application.</title><content type='html'>This sample is very short and clear, if you wish to authenticate your application user as a windows or domain user then follow the next few steps.&lt;br /&gt;&lt;br /&gt;Step1: declare an external function like this.&lt;br /&gt;[DllImport("advapi32.dll", SetLastError = true)]&lt;br /&gt;protected static extern bool LogonUser(string sUsername, string sDomain, string sPassword,&lt;br /&gt;            int iLogonType, int iLogonProvider, ref IntPtr ipToken);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Step2: Call the function.&lt;br /&gt;IntPtr pExistingTokenHandle = new IntPtr(0);&lt;br /&gt;pExistingTokenHandle = IntPtr.Zero;&lt;br /&gt;const int LOGON32_PROVIDER_DEFAULT = 0;&lt;br /&gt;// create token&lt;br /&gt;const int LOGON32_LOGON_INTERACTIVE = 2;&lt;br /&gt;string sUserName = "use1";&lt;br /&gt;string sDomain = "domain1";&lt;br /&gt;string sPassword = "Test123";&lt;br /&gt;bool bImpersonated = LogonUser(sUserName, sDomain, sPassword,&lt;br /&gt;LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, ref pExistingTokenHandle);&lt;br /&gt;&lt;br /&gt;This "bImpersonated" return True if user authenticated and false if not. And you can decide actions for your application based on this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/539697305589608654-6286577007879119782?l=zakirul-quayum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zakirul-quayum.blogspot.com/feeds/6286577007879119782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=539697305589608654&amp;postID=6286577007879119782' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/6286577007879119782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/6286577007879119782'/><link rel='alternate' type='text/html' href='http://zakirul-quayum.blogspot.com/2008/09/use-windows-authentication-for-your-own.html' title='Use windows authentication for your own application.'/><author><name>Zakirul Quayum</name><uri>http://www.blogger.com/profile/08621333404610655822</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-539697305589608654.post-8586566021939764366</id><published>2008-09-07T09:34:00.003+06:00</published><updated>2008-09-07T09:37:57.160+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Playing with Windows Registry, CRUD</title><content type='html'>In this article I’ll show the sample for each operation of CRUD for Win32 Registry. There is nothing theoretical that you should know before this, just should have idea what is win32 registry and how a developer can use it for a product.&lt;br /&gt;Registry keeps information in a hierarchy format. You can put here data for using globally for a client PC. That means if you set a registry value you may use it for any number of product installed on this PC. But this place is not for storing huge data or operation data for your application, rather this place to keep information like settings information, license information, last instance value of your product, or even you can save URL for use external services. I can show hundreds of examples in where you can use Registry as a repository, but I think it’s up to you that how you would like take the advantage of this. Just leave it here and start play with this.&lt;br /&gt;&lt;br /&gt;Create a Registry:&lt;br /&gt;In Registry you will be able to save several data type but all will be under a key. In hierarchy it shows like a directory but registry will count this as a Key. So, you can add a key, string, binary, multi-string value and few more type of data under a Key. Here is the code:&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;string sPath = "HKEY_LOCAL_MACHINE\\SOFTWARE\\TestingRegistry\\ZAQ\\";&lt;br /&gt;string sKeyName = "Address";&lt;br /&gt;&lt;br /&gt;static void CreateSubKey(string sPath, string sKeyName, string sValue)&lt;br /&gt;     {&lt;br /&gt;         RegistryKey reg = null;&lt;br /&gt;         if (sPath.Contains("HKEY_LOCAL_MACHINE"))&lt;br /&gt;         {&lt;br /&gt;             reg = Registry.LocalMachine.CreateSubKey(sPath.Replace("HKEY_LOCAL_MACHINE\\", ""));&lt;br /&gt;             reg.SetValue(sKeyName, sValue);&lt;br /&gt;         }&lt;br /&gt;         else if (sPath.Contains("HKEY_CURRENT_USER"))&lt;br /&gt;         {            &lt;br /&gt;             reg = Registry.CurrentUser.CreateSubKey(sPath.Replace("HKEY_CURRENT_USER\\", ""));&lt;br /&gt;             reg.SetValue(sKeyName, sValue);&lt;br /&gt;         }                   &lt;br /&gt;     }&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;Let’s consider you will call this function with this way.&lt;br /&gt;CreateSubKey(sPath,"Phone","010101");&lt;br /&gt;So, this function will add a string value named “Phone” under the key of “ZAQ”. But if you will look at this hierarchy then you will find it will be more logical if there will be a Key name “Address” and the phone number data will be kept under this. To do this you just need to change the “sPath” and make it more extended.&lt;br /&gt;&lt;br /&gt;string sPath = "HKEY_LOCAL_MACHINE\\SOFTWARE\\TestingRegistry\\ZAQ\\Address";&lt;br /&gt;&lt;br /&gt;So now this one will create a Key name Address and then the Phone number will be kept.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/539697305589608654-8586566021939764366?l=zakirul-quayum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zakirul-quayum.blogspot.com/feeds/8586566021939764366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=539697305589608654&amp;postID=8586566021939764366' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/8586566021939764366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/8586566021939764366'/><link rel='alternate' type='text/html' href='http://zakirul-quayum.blogspot.com/2008/09/playing-with-windows-registry-crud.html' title='Playing with Windows Registry, CRUD'/><author><name>Zakirul Quayum</name><uri>http://www.blogger.com/profile/08621333404610655822</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-539697305589608654.post-6326593363707556823</id><published>2008-09-02T12:34:00.002+06:00</published><updated>2008-09-02T12:38:07.092+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Example for Encryption and Decryption with C#.</title><content type='html'>This example describes how a simple Encryption and Decryption can be written and how those functions can be used from client application.&lt;br /&gt;&lt;br /&gt;First we will create a singleton Utility class which will contain Encryption and Decryption functions. For Cryptography operation two values will be required which are “Key” and “IV”. By default I have set those values and also I expose properties for both, so that you can use these values when you will use this class as per your demand.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Text;&lt;br /&gt;using System.Security.Cryptography;&lt;br /&gt;using System.IO;&lt;br /&gt;&lt;br /&gt;namespace ZAQ.Util.CCryptography&lt;br /&gt;{   &lt;br /&gt;   public class CCryptography&lt;br /&gt;   {&lt;br /&gt;       protected string sKey = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456";&lt;br /&gt;       protected string sIV = "ABCDEFGHIJKL";&lt;br /&gt;&lt;br /&gt;       protected byte[] bKey;&lt;br /&gt;       protected byte[] bIV;&lt;br /&gt;&lt;br /&gt;       private CCryptography()&lt;br /&gt;       {&lt;br /&gt;           bKey = Convert.FromBase64String(sKey);&lt;br /&gt;           bIV = Convert.FromBase64String(sIV);&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       public static CCryptography Instance&lt;br /&gt;       {&lt;br /&gt;           get&lt;br /&gt;           {&lt;br /&gt;               return UIUtilityCreator.CreatorInstance;&lt;br /&gt;           }&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       public string EncryptString(string Value)&lt;br /&gt;       {&lt;br /&gt;           UTF8Encoding utf8encoder =  new UTF8Encoding();&lt;br /&gt;           byte[] inputBytes = utf8encoder.GetBytes(Value);&lt;br /&gt;         &lt;br /&gt;           TripleDESCryptoServiceProvider tdesProvider = new TripleDESCryptoServiceProvider();&lt;br /&gt;           ICryptoTransform  cryptoTransform = tdesProvider.CreateEncryptor(bKey, bIV);&lt;br /&gt;         &lt;br /&gt;           MemoryStream encryptedStream = new MemoryStream();&lt;br /&gt;           CryptoStream cryptStream = new CryptoStream(encryptedStream, cryptoTransform, CryptoStreamMode.Write);&lt;br /&gt;           cryptStream.Write(inputBytes, 0, inputBytes.Length);&lt;br /&gt;           cryptStream.FlushFinalBlock();&lt;br /&gt;           encryptedStream.Position = 0;&lt;br /&gt;&lt;br /&gt;           Byte[] bResult = new Byte[encryptedStream.ToArray().Length];&lt;br /&gt;           encryptedStream.Read(bResult, 0, encryptedStream.ToArray().Length);&lt;br /&gt;           cryptStream.Close();&lt;br /&gt;           return Convert.ToBase64String(bResult);&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       public string DecryptString(string Value)&lt;br /&gt;       {&lt;br /&gt;           byte[] inputBytes = Convert.FromBase64String(Value);&lt;br /&gt;           TripleDESCryptoServiceProvider tdesProvider = new TripleDESCryptoServiceProvider();&lt;br /&gt;           ICryptoTransform  cryptoTransform = tdesProvider.CreateDecryptor(bKey, bIV);&lt;br /&gt;         &lt;br /&gt;           MemoryStream decryptedStream = new MemoryStream();&lt;br /&gt;           CryptoStream cryptStream = new CryptoStream(decryptedStream, cryptoTransform, CryptoStreamMode.Write);&lt;br /&gt;&lt;br /&gt;           cryptStream.Write(inputBytes, 0, inputBytes.Length);&lt;br /&gt;           cryptStream.FlushFinalBlock();&lt;br /&gt;           decryptedStream.Position = 0;&lt;br /&gt;&lt;br /&gt;           byte[] bResult = new byte[decryptedStream.ToArray().Length];          &lt;br /&gt;           decryptedStream.Read(bResult, 0, decryptedStream.ToArray().Length);&lt;br /&gt;           cryptStream.Close();&lt;br /&gt;&lt;br /&gt;           UTF8Encoding myutf  = new UTF8Encoding();&lt;br /&gt;           return myutf.GetString(bResult).ToString();&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       public string Key&lt;br /&gt;       {&lt;br /&gt;           set&lt;br /&gt;           {&lt;br /&gt;               sKey = value;&lt;br /&gt;           }&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       public string IV&lt;br /&gt;       {&lt;br /&gt;           set&lt;br /&gt;           {&lt;br /&gt;               sIV = value;&lt;br /&gt;           }&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       private sealed class UIUtilityCreator&lt;br /&gt;       {&lt;br /&gt;           // Retrieve a single instance of a Singleton&lt;br /&gt;           private static readonly CCryptography _instance = new CCryptography();&lt;br /&gt;&lt;br /&gt;           public static CCryptography CreatorInstance&lt;br /&gt;           {&lt;br /&gt;               get { return _instance; }&lt;br /&gt;           }&lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now here is the sample code to use this class.&lt;br /&gt;&lt;br /&gt;class Program&lt;br /&gt;   {&lt;br /&gt;       static void Main(string[] args)&lt;br /&gt;       {&lt;br /&gt;           CCryptography oCryptography = CCryptography.Instance;&lt;br /&gt;&lt;br /&gt;           string sEncrypt = "Test";&lt;br /&gt;           string sEncrypted ="";&lt;br /&gt;           string sDecrypted = "";&lt;br /&gt;           sEncrypted = oCryptography.EncryptString(sEncrypt);&lt;br /&gt;           sDecrypted = oCryptography.DecryptString(sEncrypted);&lt;br /&gt;&lt;br /&gt;           Console.WriteLine("Text to be Encrypted: " + sEncrypt + "\nEncrypted Text: " + sEncrypted + "\nDecrypted Text: " + sDecrypted);&lt;br /&gt;           Console.ReadLine();&lt;br /&gt;       }&lt;br /&gt;   }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/539697305589608654-6326593363707556823?l=zakirul-quayum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zakirul-quayum.blogspot.com/feeds/6326593363707556823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=539697305589608654&amp;postID=6326593363707556823' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/6326593363707556823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/6326593363707556823'/><link rel='alternate' type='text/html' href='http://zakirul-quayum.blogspot.com/2008/09/example-for-encryption-and-decryption.html' title='Example for Encryption and Decryption with C#.'/><author><name>Zakirul Quayum</name><uri>http://www.blogger.com/profile/08621333404610655822</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-539697305589608654.post-3033058885669513348</id><published>2008-02-19T14:04:00.001+06:00</published><updated>2008-02-19T14:16:54.504+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Design Pattern'/><title type='text'>Real life example of Factory Method Design Pattern</title><content type='html'>&lt;span style="font-family:verdana;font-size:85%;"&gt;Hi,&lt;br /&gt;&lt;br /&gt;When i read any design pattern i would like to have some real life example to get that easily. Today i was going throug Factory Method design pattern from &lt;/span&gt;&lt;a href="http://www.dofactory.com/Patterns/PatternFactory.aspx"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;http://www.dofactory.com/Patterns/PatternFactory.aspx&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt; and looking for one good example. Finally i found a good one and now i am sharing that with you.&lt;br /&gt;&lt;br /&gt;A non-software example that demonstrates this pattern would be a restaurant. Restaurants serve a variety of items which they list in the menu. The restaurant's waiter provides a menu to the customer and, based on the items available in the Menu, the customer selects the items and orders them. These selected items are prepared and served to the customer by the waiter.&lt;br /&gt;If you map this non-software example against the factory design pattern, we can say:&lt;br /&gt;Items, as the subclasses, are served to the customer by a waiter and its preparation is hidden from the customer.&lt;br /&gt;The waiter, as the Factory class, takes the customer's order based on the items available in the menu and serves them.&lt;br /&gt;The customer, as the Client code, orders the items and does not see how the items are prepared.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt; Hope this will help you to understand the implementation of this pattern.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;/Zaq &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/539697305589608654-3033058885669513348?l=zakirul-quayum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zakirul-quayum.blogspot.com/feeds/3033058885669513348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=539697305589608654&amp;postID=3033058885669513348' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/3033058885669513348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/3033058885669513348'/><link rel='alternate' type='text/html' href='http://zakirul-quayum.blogspot.com/2008/02/real-life-example-of-factory-method.html' title='Real life example of Factory Method Design Pattern'/><author><name>Zakirul Quayum</name><uri>http://www.blogger.com/profile/08621333404610655822</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-539697305589608654.post-636954037096415948</id><published>2008-02-17T14:31:00.005+06:00</published><updated>2008-02-17T18:53:57.891+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Get the list of bugs that you have fixed during development. [Part-III]</title><content type='html'>And finally here is your implementation.&lt;br /&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Text;&lt;br /&gt;using FindBug.Entity;&lt;br /&gt;&lt;br /&gt;namespace FindBug&lt;br /&gt;{&lt;br /&gt;public class Program&lt;br /&gt;{&lt;br /&gt;static void Main(string[] args)&lt;br /&gt;{&lt;br /&gt;MyCodeWitBugFixing mm = new MyCodeWitBugFixing();&lt;br /&gt;Console.WriteLine("Calling SumTwoDigit(7, 3). Result: {0}", mm.SumTwoDigit(7, 3));&lt;br /&gt;// get the member information and use it to retrieve the custom attributes&lt;br /&gt;System.Reflection.MemberInfo inf = typeof(MyCodeWitBugFixing);&lt;br /&gt;&lt;br /&gt;object[] attributes;&lt;br /&gt;attributes = inf.GetCustomAttributes(typeof(BugInformation), false);&lt;br /&gt;&lt;br /&gt;// iterate through the attributes, retrieving the properties&lt;br /&gt;foreach (Object attribute in attributes)&lt;br /&gt;{&lt;br /&gt;BugInformation bfa = (BugInformation)attribute;&lt;br /&gt;Console.WriteLine("\nBugID: {0}", bfa.BugID);&lt;br /&gt;Console.WriteLine("Programmer: {0}", bfa.Programmer);&lt;br /&gt;Console.WriteLine("Date: {0}", bfa.Date);&lt;br /&gt;Console.WriteLine("Comment: {0}", bfa.Comment);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Put all code together and test it. Hope you will like it.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://zakirul-quayum.blogspot.com/2008/02/get-list-of-bugs-that-you-have-fixed.html"&gt;Part-I&lt;/a&gt;, &lt;a href="http://zakirul-quayum.blogspot.com/2008/02/get-list-of-bugs-that-you-have-fixed_17.html"&gt;Part-II&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/539697305589608654-636954037096415948?l=zakirul-quayum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zakirul-quayum.blogspot.com/feeds/636954037096415948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=539697305589608654&amp;postID=636954037096415948' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/636954037096415948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/636954037096415948'/><link rel='alternate' type='text/html' href='http://zakirul-quayum.blogspot.com/2008/02/get-list-of-bugs-that-you-have-fixed_7444.html' title='Get the list of bugs that you have fixed during development. [Part-III]'/><author><name>Zakirul Quayum</name><uri>http://www.blogger.com/profile/08621333404610655822</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-539697305589608654.post-8547008777142074158</id><published>2008-02-17T14:19:00.006+06:00</published><updated>2008-02-17T14:57:41.226+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Get the list of bugs that you have fixed during development. [Part-II]</title><content type='html'>This is your BugInformation attribute class.&lt;br /&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Text;&lt;br /&gt;&lt;br /&gt;namespace FindBug.Entity&lt;br /&gt;{&lt;br /&gt;[AttributeUsage(AttributeTargets.Class AttributeTargets.Constructor&lt;br /&gt;AttributeTargets.Field AttributeTargets.Method&lt;br /&gt;AttributeTargets.Property, AllowMultiple = true)]&lt;br /&gt;public class BugInformation : System.Attribute&lt;br /&gt;{&lt;br /&gt;//private member data&lt;br /&gt;private int bugID;&lt;br /&gt;private string comment;&lt;br /&gt;private string date;&lt;br /&gt;private string programmer;&lt;br /&gt;&lt;br /&gt;public BugInformation(int bugID, string programmer, string date)&lt;br /&gt;{&lt;br /&gt;this.bugID = bugID;&lt;br /&gt;this.programmer = programmer;&lt;br /&gt;this.date = date;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//Named Param&lt;br /&gt;public string Comment&lt;br /&gt;{&lt;br /&gt;get&lt;br /&gt;{&lt;br /&gt;return comment;&lt;br /&gt;}&lt;br /&gt;set&lt;br /&gt;{&lt;br /&gt;comment = value;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//Positional Param&lt;br /&gt;public int BugID&lt;br /&gt;{&lt;br /&gt;get&lt;br /&gt;{&lt;br /&gt;return bugID;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public string Programmer&lt;br /&gt;{&lt;br /&gt;get&lt;br /&gt;{&lt;br /&gt;return programmer;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public string Date&lt;br /&gt;{&lt;br /&gt;get&lt;br /&gt;{&lt;br /&gt;return date;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here is your Class, for which you fix bugs.&lt;br /&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Text;&lt;br /&gt;using FindBug.Entity;&lt;br /&gt;&lt;br /&gt;namespace FindBug&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;[BugInformation(121, "Mamun", "01/03/08")]&lt;br /&gt;[BugInformation(107, "Zaq", "01/04/08", Comment = "Fixed one error")]&lt;br /&gt;public class MyCodeWitBugFixing&lt;br /&gt;{&lt;br /&gt;public MyCodeWitBugFixing()&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public int SumTwoDigit(int i, int j)&lt;br /&gt;{&lt;br /&gt;return i + j;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public int DeductTwoDigit(int i, int j)&lt;br /&gt;{&lt;br /&gt;return i - j;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;a href="http://zakirul-quayum.blogspot.com/2008/02/get-list-of-bugs-that-you-have-fixed.html"&gt;Part-I&lt;/a&gt;, &lt;a href="http://zakirul-quayum.blogspot.com/2008/02/get-list-of-bugs-that-you-have-fixed_7444.html"&gt;Part-III&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/539697305589608654-8547008777142074158?l=zakirul-quayum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zakirul-quayum.blogspot.com/feeds/8547008777142074158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=539697305589608654&amp;postID=8547008777142074158' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/8547008777142074158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/8547008777142074158'/><link rel='alternate' type='text/html' href='http://zakirul-quayum.blogspot.com/2008/02/get-list-of-bugs-that-you-have-fixed_17.html' title='Get the list of bugs that you have fixed during development. [Part-II]'/><author><name>Zakirul Quayum</name><uri>http://www.blogger.com/profile/08621333404610655822</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-539697305589608654.post-3632907330078639928</id><published>2008-02-17T14:14:00.002+06:00</published><updated>2008-02-17T14:52:42.199+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Get the list of bugs that you have fixed during development. [Part-I]</title><content type='html'>The way I will describe is a use of Custom Attribute. Suppose, your organization wants to keep track of bug fixes and you have your own BugTracking system or a database to keep all of your bugs, but you’d like to attach your comment on specific code that you have been fixed and get them as a list to put in database whenever you like. This example describe how to attach bug information to a class and get them by your code.&lt;br /&gt;&lt;br /&gt;Generally when you fixed a bug then add comments to your code like this:&lt;br /&gt;// Bug 323 fixed by Mamun on 17/2/2008.&lt;br /&gt;&lt;br /&gt;This would make it easy to see in your source code, but there is no enforced connection to Bug 323 in the database. A custom attribute might be just what you need. You would replace your comment with something like this:&lt;br /&gt;[BugInformation(323,"Mamun","17/2/2008") Comment="Off by one error"]&lt;br /&gt;&lt;br /&gt;You could then write a program to read through the metadata to find these bug-fix notations and update the database. The attribute would serve the purposes of a comment, but would also allow you to retrieve the information programmatically through tools you'd create.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://zakirul-quayum.blogspot.com/2008/02/get-list-of-bugs-that-you-have-fixed_17.html"&gt;Part-II&lt;/a&gt;, &lt;a href="http://zakirul-quayum.blogspot.com/2008/02/get-list-of-bugs-that-you-have-fixed_7444.html"&gt;Part-III&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/539697305589608654-3632907330078639928?l=zakirul-quayum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zakirul-quayum.blogspot.com/feeds/3632907330078639928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=539697305589608654&amp;postID=3632907330078639928' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/3632907330078639928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/3632907330078639928'/><link rel='alternate' type='text/html' href='http://zakirul-quayum.blogspot.com/2008/02/get-list-of-bugs-that-you-have-fixed.html' title='Get the list of bugs that you have fixed during development. [Part-I]'/><author><name>Zakirul Quayum</name><uri>http://www.blogger.com/profile/08621333404610655822</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-539697305589608654.post-124428479645449861</id><published>2008-01-15T09:35:00.000+06:00</published><updated>2008-01-15T10:21:07.477+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Finding gaps in an identity column (or any integer based column for that matter) using MS SQL</title><content type='html'>&lt;span style="font-family:verdana;"&gt;Few days ago one of my friend ask me to do a query to find gaps in an identity column in MS &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;SQL&lt;/span&gt;&lt;/span&gt;. This is not that tough i thought and started to work on it. But i was given a &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;boundary&lt;/span&gt;, no Stored Procedure can be introduced. Need to write it in query and if possible then in a &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;single&lt;/span&gt; query! I found some &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;solution&lt;/span&gt; but those were for MS &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;SQL&lt;/span&gt;&lt;/span&gt; 2005 and got a comment "With &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Sql&lt;/span&gt;&lt;/span&gt; Server 2000, it would be extremely difficult and would require some iterative techniques."&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;But now i have a solution for that and want to share with you. Here it is with complete query for Table &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;Creation&lt;/span&gt;, Data insertion and Selecting query.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Table query :&lt;/span&gt;&lt;/strong&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;if exists (select * from &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;dbo&lt;/span&gt;&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;sysobjects&lt;/span&gt;&lt;/span&gt; where id = object_id(N'[&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;dbo&lt;/span&gt;&lt;/span&gt;].[&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;StudentInfo&lt;/span&gt;&lt;/span&gt;]') and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;OBJECTPROPERTY&lt;/span&gt;&lt;/span&gt;(id, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;N'IsUserTable&lt;/span&gt;&lt;/span&gt;') = 1)drop table [&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;dbo&lt;/span&gt;&lt;/span&gt;].[&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;StudentInfo&lt;/span&gt;&lt;/span&gt;]&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;GOCREATE&lt;/span&gt;&lt;/span&gt; TABLE [&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;dbo&lt;/span&gt;&lt;/span&gt;].[&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;StudentInfo&lt;/span&gt;&lt;/span&gt;] ( [&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;SlNo&lt;/span&gt;&lt;/span&gt;] [int] NULL , [Name] [char] (50) COLLATE &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;SQL&lt;/span&gt;&lt;/span&gt;_Latin1_General_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;CP&lt;/span&gt;&lt;/span&gt;1_CI_AS NULL , [Roll] [int] NULL ) ON [PRIMARY]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;GO &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;font-size:130%;"&gt;&lt;strong&gt;Inserting Data:&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Insert Into &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;StudentInfo&lt;/span&gt;&lt;/span&gt; Values(1,'&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;Zakirul&lt;/span&gt;&lt;/span&gt;', 1)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Insert Into &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;StudentInfo&lt;/span&gt;&lt;/span&gt; Values(2,'&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;Mamun&lt;/span&gt;&lt;/span&gt;', 2)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Insert Into &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;StudentInfo&lt;/span&gt;&lt;/span&gt; Values(3,'Robin', 3)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Insert Into &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;StudentInfo&lt;/span&gt;&lt;/span&gt; Values(5,'&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;Fakhrul&lt;/span&gt;&lt;/span&gt;', 4) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Insert Into &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;StudentInfo&lt;/span&gt;&lt;/span&gt; Values(7,'&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;Shamol&lt;/span&gt;&lt;/span&gt;', 5) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Selection Query:&lt;/span&gt;&lt;/strong&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;SELECT DISTINCT (a.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;SlNo&lt;/span&gt;&lt;/span&gt; + 1) &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;gapId&lt;/span&gt;&lt;/span&gt; Into #&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;tmp&lt;/span&gt;&lt;/span&gt; FROM &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;StudentInfo&lt;/span&gt;&lt;/span&gt; a &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;WHERE NOT EXISTS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;(SELECT * FROM &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_34"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;StudentInfo&lt;/span&gt;&lt;/span&gt; b WHERE b.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;SlNo&lt;/span&gt;&lt;/span&gt; = a.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_36"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;SlNo&lt;/span&gt;&lt;/span&gt; + 1) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;AND a.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_37"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;SlNo&lt;/span&gt;&lt;/span&gt; &lt; (SELECT MAX(SlNo) FROM StudentInfo) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;UNION ALL &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;SELECT a.SlNo + 1 FROM StudentInfo a &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;WHERE NOT EXISTS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;(SELECT * FROM StudentInfo b WHERE b.SlNo = a.SlNo + 1) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;AND a.SlNo &gt; (SELECT MAX(&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_38"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_34"&gt;SlNo&lt;/span&gt;&lt;/span&gt;) FROM &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_39"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;StudentInfo&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;SELECT &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_40"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_36"&gt;gapId&lt;/span&gt;&lt;/span&gt; AS &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_41"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_37"&gt;BitPosition&lt;/span&gt;&lt;/span&gt; FROM #&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_42"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_38"&gt;tmp&lt;/span&gt;&lt;/span&gt; ORDER BY &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_43"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_39"&gt;gapId&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;It is working nicely for my domain, hope work with yours. Feel free to ask me any question regarding this.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Thanks,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_40"&gt;Zaq&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/539697305589608654-124428479645449861?l=zakirul-quayum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zakirul-quayum.blogspot.com/feeds/124428479645449861/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=539697305589608654&amp;postID=124428479645449861' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/124428479645449861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/124428479645449861'/><link rel='alternate' type='text/html' href='http://zakirul-quayum.blogspot.com/2008/01/finding-gaps-in-identity-column-or-any.html' title='Finding gaps in an identity column (or any integer based column for that matter) using MS SQL'/><author><name>Zakirul Quayum</name><uri>http://www.blogger.com/profile/08621333404610655822</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-539697305589608654.post-7162884940879473547</id><published>2008-01-09T09:12:00.000+06:00</published><updated>2008-01-09T09:22:48.142+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LINQ'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net 3.5'/><category scheme='http://www.blogger.com/atom/ns#' term='Lambda Expressions'/><title type='text'>An introduction about Lambda Expressions</title><content type='html'>Ok start with a short introduction. With lambda expressions, we can define function objects for use at any time. C# has always supported this capability via delegates, whereby you create a function object and wire it up to the backing code at the time of creation. Lambda expressions join these two actions—creation and connection—into one expressive statement in the code. A functional is a function that takes functions in its parameter list and operates on those functions, possibly even returning another function as the result. For example, a functional could accept two functions, where one performs one mathematical operation and the other performs a different mathematical operation, and return a third function that is a composite function built from the two. Lambda expressions provide a more natural way to create and invoke functionals. In simple syntactic terms, lambda expressions are a syntax whereby you can declare anonymous functions (delegates) in a more fluid and expressive way. Lambda expressions really take two forms. The form that most directly replaces anonymous methods in syntax includes a statement block within braces. I like to refer to these as lambda statements. These lambda statements are a direct replacement for anonymous methods. Lambda expressions, on the other hand, provide an even more abbreviated way to declare an anonymous method and do not require code within braces nor a return statement. Both types of lambda expressions can be converted to delegates.&lt;br /&gt;&lt;br /&gt;Zaq&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/539697305589608654-7162884940879473547?l=zakirul-quayum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zakirul-quayum.blogspot.com/feeds/7162884940879473547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=539697305589608654&amp;postID=7162884940879473547' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/7162884940879473547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/7162884940879473547'/><link rel='alternate' type='text/html' href='http://zakirul-quayum.blogspot.com/2008/01/introduction-about-lambda-expressions.html' title='An introduction about Lambda Expressions'/><author><name>Zakirul Quayum</name><uri>http://www.blogger.com/profile/08621333404610655822</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-539697305589608654.post-2201681856381056203</id><published>2008-01-07T16:12:00.000+06:00</published><updated>2008-01-07T17:08:12.374+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>How to run a script file from MS SQL Query Analyzer</title><content type='html'>No direct command can be use to read a script file and execute it. But the isql.exe and osql.exe come in handy when you have to execute a script file from within T-SQL. Just call any of these exes using xp_cmdshell and pass the script file name as parameter to it. See SQL Server Books Online for more information about the input parameters of these exes. Here are some quick examples:&lt;br /&gt;&lt;br /&gt;EXEC master..xp_cmdshell 'osql /d DatabaseName /U UserName /P Password /i C:\YourFileNameWithExt -n'&lt;br /&gt;&lt;br /&gt;See xp_cmdshell in SQL Server Books Online if you are having permissions problems in getting this technique to work&lt;br /&gt;&lt;br /&gt;Hope this will work.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Zaq&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/539697305589608654-2201681856381056203?l=zakirul-quayum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zakirul-quayum.blogspot.com/feeds/2201681856381056203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=539697305589608654&amp;postID=2201681856381056203' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/2201681856381056203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/2201681856381056203'/><link rel='alternate' type='text/html' href='http://zakirul-quayum.blogspot.com/2008/01/how-to-run-script-fiel-from-ms-sql.html' title='How to run a script file from MS SQL Query Analyzer'/><author><name>Zakirul Quayum</name><uri>http://www.blogger.com/profile/08621333404610655822</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-539697305589608654.post-4995167204960965788</id><published>2007-12-17T22:59:00.000+06:00</published><updated>2007-12-17T23:20:34.050+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><category scheme='http://www.blogger.com/atom/ns#' term='Agile'/><title type='text'>Scrum and its practice</title><content type='html'>In this writing we will create question first and then try to find the answer. So, here we are starting from the first question.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;What is Scrum?&lt;/span&gt;&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Well, this might be the shortest and finest answer; “Scrum is a project management method for agile software development”. But to be more clear we need to know few more things.&lt;br /&gt;&lt;br /&gt;SCRUM is a loose set of guidelines that govern the development process of a product, from its design stages to its completion. It aims to cure some common failures of the typical development process, such as:&lt;br /&gt;&lt;span style="color:#000000;"&gt;&lt;strong&gt;Chaos due to changing requirements&lt;/strong&gt;&lt;/span&gt; - the real or perceived requirements of a project usually change drastically from the time the product is designed to when it is released. Under most product development methods, all design is done at the beginning of the project, and then no changes are allowed for or made when the requirements change.&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Unrealistic estimates of time, cost, and quality of the product&lt;/strong&gt; - the project management and the developers tend to underestimate how much time and resources a project will take, and how much functionality can be produced within those constraints. In actuality, this usually cannot be accurately predicted at the beginning of the development cycle.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Developers are forced to lie about how the project is progressing&lt;/strong&gt; - When management underestimates the time and cost needed to reach a certain level of quality, the developers must either lie about how much progress has been made on the product, or face the indignation of the management.&lt;br /&gt;&lt;br /&gt;SCRUM has been successfully employed by hundreds of different companies in many different fields, with outstanding results.&lt;br /&gt;&lt;br /&gt;You will find many similarities between SCRUM and Extreme Programming, but one of the major differences is that SCRUM is a fairly general set of guidelines that govern the development process of a product. For this reason, it is often used as a "wrapper" for other methodologies, such as XP or CMM (Capability Maturity Model) - that is, it is used to guide the overall process of development when using these other methodologies.&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;What are the Characteristics of Scrum?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;A product backlog of prioritized work to be done;&lt;br /&gt;Completion of a fixed set of backlog items in a series of short iterations or sprints;&lt;br /&gt;&lt;br /&gt;A brief daily meeting or scrum, at which progress is explained, upcoming work is described and impediments are raised.&lt;br /&gt;&lt;br /&gt;A brief sprint planning session in which the backlog items for the sprint will be defined.&lt;br /&gt;&lt;br /&gt;A brief sprint retrospective, at which all team members reflect about the past sprint.&lt;br /&gt;Scrum enables the creation of self-organizing teams by encouraging co-location of all team members, and verbal communication across all team members and disciplines that are involved in the project.&lt;br /&gt;&lt;br /&gt;A key principle of Scrum is its recognition that during a project, 60 to 65% of requirements change and that fundamentally empirical challenge cannot be addressed successfully in a traditional predictive or planned manner. As such, Scrum adopts an empirical approach – accepting that the problem cannot be fully understood or defined, focusing instead on maximizing the team's ability to deliver quickly and respond to emerging requirements.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;How many phases can be defined?&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;We can use three phase here:&lt;br /&gt;&lt;a name="Planning3"&gt;&lt;strong&gt;Planning&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;br /&gt;&lt;/strong&gt;In this phase, the project is planned and high-level design decisions are made. And output from this phase will be taken for next phase.&lt;br /&gt;&lt;a name="SprintCycle4"&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Sprint Cycle:&lt;/strong&gt;&lt;br /&gt;The sprint cycle is an iterative cycle of about 3-4 weeks, in which the actual development of the product is done. It starts out with a Sprint Planning Meeting to decide what will be done in the current sprint. Then the development is done. A sprint is closed with a Sprint Review Meeting where the progress made in the last sprint is demonstrated, the sprint is reviewed, and adjustments are made to the project as necessary.&lt;br /&gt;The sprint cycle is repeated until the product's development is complete. The product is complete when the variables of time, quality, competition, and cost are at a balance.&lt;br /&gt;Develop the product further - implement, test, and document.&lt;br /&gt;Wrap up the work - get it ready to be evaluated and integrated.&lt;br /&gt;Review the work done in this sprint.&lt;br /&gt;Adjust for any changes in requirements or plans.&lt;br /&gt;&lt;a name="Closure5"&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Closure:&lt;br /&gt;&lt;/strong&gt;In this phase, the product's development is brought to a close, and the product is released.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;How many Scrum Roles are there?&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;Several roles are defined in Scrum; these are divided into two groups; pigs and chickens, based on a joke about a pig and a chicken:&lt;br /&gt;&lt;br /&gt;A pig and a chicken are walking down a road. The Chicken looks at the pig and says "Hey, why don't we open a restaurant?" The pig looks back at the chicken and says "Good idea, what do you want to call it?" The chicken thinks about it and says "Why don't we call it 'Ham and Eggs'?" "I don't think so" says the pig, "I'd be committed but you'd only be involved"&lt;br /&gt;&lt;br /&gt;So the pigs are committed to building software regularly and frequently, while everyone else are chickens that are interested in the project but are really irrelevant because if it fails they're not a pig, that is they weren't the ones that committed to doing it. The needs, desires, ideas and influences of the chicken roles are taken into account, but not in any way letting it affect or distort or get in the way of the actual Scrum project.&lt;br /&gt;So, Basically People who are interested and do work in team are one type and the other type is who are interested but don’t work in team.&lt;br /&gt;&lt;a name="Pig_Roles"&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Pig Roles&lt;br /&gt;&lt;/strong&gt;Pigs are the ones committed to the project and the Scrum process; they are the ones with "their bacon on the line".&lt;br /&gt;&lt;br /&gt;&lt;a name="Product_Owner"&gt;&lt;/a&gt;&lt;strong&gt;Product Owner&lt;br /&gt;&lt;/strong&gt;Represents the voice of the customer to ensure the Scrum Team works with the right things from a business perspective.&lt;br /&gt;&lt;br /&gt;&lt;a name="Scrum_Master_.28or_Facilitator.29"&gt;&lt;/a&gt;&lt;strong&gt;Scrum Master (or Facilitator)&lt;br /&gt;&lt;/strong&gt;Ensure that the Scrum process is used as proposed. The Scrum Master is the enforcer of rules and sprints of practice. The master protects the scrum team from impediments and distractions. Master’s primary job is to remove impediments to the ability of the team to deliver the sprint goal. The Master is not the leader of the team (as they are self-organizing) but acts as a buffer between the team and any distracting influences.&lt;br /&gt;&lt;br /&gt;&lt;a name="Scrum_Team"&gt;&lt;/a&gt;&lt;strong&gt;Scrum Team&lt;br /&gt;&lt;/strong&gt;A small team of 5-9 people with cross-functional skills to do the actual work.&lt;br /&gt;&lt;a name="Chicken_Roles"&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Chicken Roles&lt;br /&gt;&lt;/strong&gt;Chicken roles are not part of the actual Scrum process, but must be taken into account. An important aspect of agile approach is the practice of involving users, business and stakeholders into part of the process. It is important for these people to be engaged and provide feedback into the outputs for review and planning of each sprint.&lt;br /&gt;&lt;a name="Users"&gt;&lt;/a&gt;&lt;a name="Stakeholders"&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Stakeholders&lt;br /&gt;&lt;/strong&gt;The people that will enable the project, but not directly involved in the process. This includes Executives.&lt;br /&gt;&lt;a name="Consulting_Experts"&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Consulting Experts&lt;br /&gt;&lt;/strong&gt;These are people who provide expertise that is not required on every sprint. Often these chickens will become a pig as part of the Scrum Team during some sprints.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;What are the common practices of Scrum?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Following are some practices for the Scrum:&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Customers become a part of the development team.&lt;br /&gt;&lt;br /&gt;Frequent intermediate deliveries with working functionality. – Incremental development and releases (may be internal only) – providing you an opportunity to validate and verify at shorter intervals rather than only at the end; thereby, providing you time to fix, and reducing the cost to fix.&lt;br /&gt;&lt;br /&gt;Frequent risk and mitigation plans developed by the development team itself. – Risk Mitigation, Monitoring and Management (risk analysis) at every stage and with genuinely – Make it live, and continuous activity.&lt;br /&gt;&lt;br /&gt;A daily status discussion (Standup/Scrum meetings) asking each team member:&lt;br /&gt;What have you done since yesterday? (accomplishments)&lt;br /&gt;What are you planning to do by tomorrow? (to be accomplished)&lt;br /&gt;Do you have any problems preventing you from accomplishing your goal? (issues/concerns/risks)&lt;br /&gt;&lt;br /&gt;Transparency in planning and module development – Let everyone know who is accountable for what and by when.&lt;br /&gt;&lt;br /&gt;Frequent stakeholder meetings to monitor progress – Balanced (Delivery, Customer, Employee, Process) Dashboard updates – Stakeholders' update – You have to have Advance Warning Mechanism, i.e. visibility to potential slippage / deviation ahead of time.&lt;br /&gt;&lt;br /&gt;No problems are swept under the carpet. No one is penalized for recognizing or describing any unforeseen problem.&lt;br /&gt;&lt;br /&gt;Workplaces and working hours must be energized. – "Working more hours" does not necessarily mean "producing more output."&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;How and when to conduct daily status discussions?&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;A popular time for the daily status discussion is after the lunch break. Doing it in the morning may be troublesome especially if the team is working in a company using flextime. These status discussions don't take long, so one way is to do standup meetings where the team meets in front of a whiteboard. Because people tend to get tired after lunch, having a lively standup meeting at that time may keep their energy up. Because everybody has already been working that day, their minds are focused on the job and not on their personal issues.&lt;br /&gt;&lt;strong&gt;&lt;a name="Solo_Scrum"&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;What is Solo Scrum?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Scrum is based on small teams. It enhances communication between team members. Nevertheless, there is a huge amount of software that is developed by solo programmers. A software system being built by a single programmer can still benefit from some of the Scrum principles such as: a product backlog, a sprint backlog, a sprint and a sprint retrospective. Solo Scrum is an adapted version of Scrum for use by solo programmers.&lt;br /&gt;&lt;br /&gt;&lt;a name="CommonlyUsedTerms8"&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;Commonly Used Terms&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a name="Sprint9"&gt;&lt;strong&gt;Sprint &lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;The product is developed in a series of 1-to-4-week iterations, or sprints. Before a sprint is begun, a Sprint Planning Meeting is held to determine what features are to be implemented in that sprint. The sprint has 4 major steps:&lt;br /&gt;Develop the product further - implement, test, and document.&lt;br /&gt;Wrap up the work - get it ready to be evaluated and integrated.&lt;br /&gt;Review the work done in this sprint.&lt;br /&gt;Adjust for any changes in requirements or plans.&lt;br /&gt;&lt;br /&gt;&lt;a name="ProductBacklog10"&gt;&lt;strong&gt;Product Backlog&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;A prioritized list of all the desired changes to the product being developed, put together by the product owner. See Figure 2.&lt;br /&gt;&lt;br /&gt;&lt;a name="SprintBackLog11"&gt;&lt;strong&gt;Sprint &lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;Backlog&lt;br /&gt;&lt;/strong&gt;A list with items that will be completed in the current sprint, taken from the product backlog.&lt;br /&gt;&lt;a name="DailySCRUMMeeting12"&gt;Daily SCRUM Meeting &lt;/a&gt;&lt;br /&gt;A 15-minute SCRUM meeting is held every day. The SCRUM Master asks the three questions, and all members of the team and interested parties take part and give feedback. The meeting should be held at the same place every time, so that people know where to go.&lt;br /&gt;&lt;br /&gt;&lt;a name="Impediment14"&gt;&lt;strong&gt;Impediment &lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;Impediments are things that get in the way of the progress of the project. The SCRUM Master is responsible to look for and remove these obstacles so that they do not slow down or impair the project.&lt;br /&gt;&lt;br /&gt;&lt;a name="3Questions15"&gt;&lt;strong&gt;3 Questions &lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;The Scrum Master asks the developers 3 important questions at every SCRUM meeting:&lt;br /&gt;What have you accomplished since the last meeting?&lt;br /&gt;Are there any obstacles in the way of meeting your goal?&lt;br /&gt;What will you accomplish before the next meeting?&lt;br /&gt;&lt;br /&gt;&lt;a name="ProductOwner16"&gt;&lt;strong&gt;Product Owner &lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;The person who commissions the project, and defines the requirements and priorities for the product.&lt;br /&gt;&lt;br /&gt;&lt;a name="SprintPlanningMeeting17"&gt;&lt;strong&gt;Sprint Planning Meeting &lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;A meeting at the beginning of a sprint where the sprint is planned. Items from the Product Backlog are selected to be completed in the sprint, based on the priorities set by the Product Owner.&lt;br /&gt;&lt;br /&gt;&lt;a name="SprintReviewMeeting18"&gt;&lt;strong&gt;Sprint Review Meeting &lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;A sprint is closed with a Sprint Review Meeting where the progress made in the last sprint is demonstrated, the sprint is reviewed, and adjustments are made to the project as necessary.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Conclusion&lt;/span&gt;&lt;br /&gt;&lt;/strong&gt;Scrum naturally focuses an entire organization on building successful products. Without major changes -often within thirty days - teams are building useful, demonstrable product functionality. Scrum can be implemented at the beginning of a project or in the middle of a project or product development effort that is in trouble. Scrum is a set of interrelated practices and rules that optimize the development environment, reduce organizational overhead, and closely synchronize market requirements with iterative prototypes. Based in modern process control theory, Scrum causes the best possible software to be constructed given the available resources, acceptable quality, and required release dates. Useful product functionality is delivered every thirty days as requirements, architecture, and design emerge, even when using unstable technologies. Scrum has been used to produce financial products, Internet products, and medical products by ADM. In every instance, the organization was log-jammed, unable to produce shippable products for such a long period of time that engineers, management, and investors were deeply concerned. Scrum broke the logjam and began incremental product delivery, often with the first shippable product occurring with the same quarter.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Refferences&lt;/span&gt;:&lt;/strong&gt; I have just composed these writing for make it more useful for me and may be you. But this reference is really important if you want to know a bit more then this article.&lt;br /&gt;&lt;br /&gt;http://www.controlchaos.com/about/&lt;br /&gt;http://www.codeproject.com/KB/architecture/scrum.aspx#DailySCRUMMeeting12&lt;br /&gt;http://en.wikipedia.org/wiki/Scrum_(management)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/539697305589608654-4995167204960965788?l=zakirul-quayum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zakirul-quayum.blogspot.com/feeds/4995167204960965788/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=539697305589608654&amp;postID=4995167204960965788' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/4995167204960965788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/4995167204960965788'/><link rel='alternate' type='text/html' href='http://zakirul-quayum.blogspot.com/2007/12/scrum-and-its-practice.html' title='Scrum and its practice'/><author><name>Zakirul Quayum</name><uri>http://www.blogger.com/profile/08621333404610655822</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-539697305589608654.post-2472304467786699101</id><published>2007-12-05T21:12:00.000+06:00</published><updated>2007-12-05T21:19:21.842+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Issues'/><title type='text'>Children are spending more time at their computers today than playing with their friends. What are the negative consequences of that.</title><content type='html'>&lt;p class="MsoNormal"  style="margin: 0in 0in 0pt; font-family: verdana;font-family:verdana;"&gt;&lt;span style="font-size:100%;"&gt;One of the most significant and  useful invention from last century is computer, which has huge upbeat impact on  our daily life as well as few side effects are annihilating our next generation;  the more important one is addiction of &lt;span class="yshortcuts" id="lw_1196867119_0" style="border-bottom: 1px dashed rgb(0, 102, 204);"&gt;computer games&lt;/span&gt;  specially to children.&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"  style="margin: 0in 0in 0pt; font-family: verdana;font-family:verdana;"&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"  style="margin: 0in 0in 0pt; font-family: verdana;font-family:verdana;"&gt;&lt;span style="font-size:100%;"&gt;It’s about not only playing with  friends and shouting; there are lots of other things that the children from this  generation are missing while they are choosing playing game with computer rather  than friends. Play ground is second school for children; there are lots of thing  that they learn from there. It helps to growing up child metal health; to learn  about team work, to share skills, get habituation to win and acquire loses.  Children have their own community and a big part of this build during playing  with friend especially in play ground. Physical game always helps child to grow  and strong their physical health. Few times indoor games may also make children  blow and usually those are more interesting as well as more effective to build  IQ, learn them take quick decision and let them improve their observation. And  one more thing; getting habituation with virtual world makes them test and  emotion less which makes others to suffer including their family.&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"  style="margin: 0in 0in 0pt; font-family: verdana;font-family:verdana;"&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"  style="margin: 0in 0in 0pt; font-family: verdana;font-family:verdana;"&gt;&lt;span style="font-size:100%;"&gt;To avert this problem the main part  depends on guardian or who are responsible to taking care of children. They  should have sense how paying with computer is demolishing their children’s’  health; both psychological and physical. They can bring their child to play  grounds to play regularly. We should also be more conscious about making more  playgrounds instead of destroying from the rest few. School can have the most  significant role regarding this issue; they can design few courses that can  create opportunity to play in school which is more secured place for child to  play. We can also talk with our child to let them know the fact why they should  choose playing with their friend but playing with computers.&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"  style="margin: 0in 0in 0pt; font-family: verdana;font-family:verdana;"&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"  style="margin: 0in 0in 0pt; font-family: verdana;font-family:verdana;"&gt;&lt;span style="font-size:100%;"&gt;In conclusion I want to say we are  losing our green child and which is not for green house effect fairly less of  our awareness. And we are offering a very feeling less and robotics generation  for the next world.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/539697305589608654-2472304467786699101?l=zakirul-quayum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zakirul-quayum.blogspot.com/feeds/2472304467786699101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=539697305589608654&amp;postID=2472304467786699101' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/2472304467786699101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/2472304467786699101'/><link rel='alternate' type='text/html' href='http://zakirul-quayum.blogspot.com/2007/12/children-are-spending-more-time-at.html' title='Children are spending more time at their computers today than playing with their friends. What are the negative consequences of that.'/><author><name>Zakirul Quayum</name><uri>http://www.blogger.com/profile/08621333404610655822</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-539697305589608654.post-2917695100601525343</id><published>2007-12-05T20:59:00.001+06:00</published><updated>2007-12-05T21:20:07.582+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Issues'/><title type='text'>Overpopulation is a twentieth century concern. What are the reasons for overpopulation and how can overpopulation be controlled?</title><content type='html'>&lt;p style="font-family: verdana;font-family:verdana;" class="MsoNormal" &gt;&lt;span style="font-size:100%;"&gt;For last few decades’ policy makers from the third world agreed with few points as global threat and overpopulation is one of the most important one without any doubt.&lt;/span&gt;&lt;/p&gt;    &lt;p style="font-family: verdana;font-family:verdana;" class="MsoNormal" &gt;&lt;span style="font-size:100%;"&gt;&lt;span style=""&gt;&lt;/span&gt;Among many reasons we can easily distinguish few and public awareness will be the top one. In our country general people don’t have enough knowledge what badly comes with making family large; taking more child decreased their life style and it becomes difficult to bear family expanses and taking care about everything pleasingly. Illiteracy comes after the previous one, illiterate people have lack of understanding that why they should keep their family smaller. Poverty is another reason and as poverty stands itself as a big one it has few side effects like illiteracy and early marriage which causing overpopulation. Since poor people cannot effort their family expanses unaccompanied, they need more working hands and that produce overpopulation. And also poor people want to change their fate and want security when they got older, so they want boy child and which significantly causing overpopulation. Superstition is another cause which makes people to think, birth control system is unfair and God will taking care of their child as God gives their child. Early marriage is a further one; when people get married earlier they have long time to take babies and as a result usually they have more child than others. Another reason is a bit more abstract, in our society we have an advantage that we need not to think about how to taking care of our child; usually we have senior members to look after them. Add to this as most of our families are joint-family, mothers have an advantage to become an earning member even with a very young child, because normally more family members are there who can watch over during working hours. &lt;/span&gt;&lt;/p&gt;    &lt;p style="font-family: verdana;font-family:verdana;" class="MsoNormal" &gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;To prevent this problem I think first step should be to build public awareness; when our people will know the bad effects then they will start to think about this and it may decrease overpopulation. Our government should also take policies to influence our public to keep their family smaller; such as who keeps their family small may get some extra facilities like ration, free medical facility etc. In addition they can be awarded and that can stands as example which can makes people to think again before taking more children. Even government can also make law which prevents people to take more than one or two child. But behind all we need to make our people educated to teach them the real problem; and educated people must have this sense how many good thinks they will lost if they make their family larger. &lt;/span&gt;&lt;/p&gt;    &lt;p style="font-family: verdana;font-family:verdana;" class="MsoNormal" &gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;But we should also think how this large population could help our nation besides thinking about the prevention policies. For example we can see in &lt;st1:country-region st="on"&gt;&lt;st1:place st="on"&gt;China&lt;/st1:place&gt;&lt;/st1:country-region&gt;; they have produce their over population into manpower and got tremendous success. In every sector they have the most productive manpower and which makes the world moving to &lt;st1:country-region st="on"&gt;&lt;st1:place st="on"&gt;China&lt;/st1:place&gt;&lt;/st1:country-region&gt; to build industries which makes china as one of the strongest country over the world.&lt;/span&gt;&lt;/p&gt;  &lt;p style="font-family: verdana;font-family:verdana;" class="MsoNormal" &gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;So, we should try hard to prevent this problem and beside this we should work to use this population in productive way to build our economy strong.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/539697305589608654-2917695100601525343?l=zakirul-quayum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zakirul-quayum.blogspot.com/feeds/2917695100601525343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=539697305589608654&amp;postID=2917695100601525343' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/2917695100601525343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/539697305589608654/posts/default/2917695100601525343'/><link rel='alternate' type='text/html' href='http://zakirul-quayum.blogspot.com/2007/12/overpopulation-is-twentieth-century.html' title='Overpopulation is a twentieth century concern. What are the reasons for overpopulation and how can overpopulation be controlled?'/><author><name>Zakirul Quayum</name><uri>http://www.blogger.com/profile/08621333404610655822</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
