Monday 17 November 2014

For Jodie

Saturday 31 March 2012

Bulla Ki Jana - Rabbi Shergil



Bulla ki jaana main kaun
[Bulla! I know not who I am]
Bulla ki jaana main kaun
[Bulla! I know not who I am]
Na main moman vich maseetan
[Nor am I the believer in mosque]
Na main vich kufar dian reetan
[Nor am I in the rituals of the infidel]
Na main pakan vich paleetan
[Nor am I the pure in the impure]
Na main andar bed kitaban
[Nor am I inherent in the Vedas]
Na main rehnda phaang sharaban
[Nor am I present in intoxicants]
Na main rehnda mast kharaban
[Nor am I lost nor the corrupt]
Na main shadi na ghamnaki
[Nor am I union nor grief]
Na main vich paleetan pakeen
[Nor am I intrinsic in the pure/impure]
Na main aaabi na main khaki
[Nor am I of the water nor of the land]
Na main aatish na main paun
[Nor am I fire nor air]
Bulla ki jaana main kaun
[Bulla! I know not what I am]
Na main arabi na lahori
[Nor am I Arabic nor from Lahore]
Na main hindi shehar Nagaori
[Nor am I the Indian City of Nagaur]
Na hindu na turk pashauri
[Nor a Hindu nor a Peshawri turk]
Na main bhet mazhab de paya
[Nor did I create the difference of faith]
Na main aadam hawwa jaya
[Nor did I create adam-eve]
Na koi apna naam dharaya
[Nor did I name myself]
Avval aakhar aap nu jana
[Beginning or end I know just the self]
Na koi dooja hor pacchana
[Do not acknowledge duality]
Mai ton na koi hor syana
[There’s none wiser than I]
Bulle shah kharha hai kaun
[Who is this Bulla Shah]
Bulla ki jaana main kaun
[Bulla! I know not who I am]
Bulla ki jaana main kaun
[Bulla! I know not who I am]
Na main moosa na pharoah
[Nor am I Moses nor Pharoah]
Na main aatish na main paun
[Nor am I fire nor wind]
Na main rahnda vich Nadaun
[I do not stay in Nadaun (city of innocents)]
Bulle shah kharha hai kaun
[Bullashah, who is this man standing?]
Bulla ki jaana main kaun
[Bulla! I know not who I am]
Bulla ki jaana main kaun
[Bulla! I know not who I am]

Thursday 24 February 2011

Windows VISTA code

Really amused me



Wednesday 23 February 2011

Cabaret musical at the music hall

A different topic :)


Thursday 10 February 2011

Integrating Google test results with cruisecontrol.net

As all the projects that in my cruisecontrol.net configuration are written under c++ including the tests, there was a need to display the test results on the webdashboard.

First I started off with NUnit, why? I am lazy and all the stylesheets were already available, so all I was left was to write unit tests, did I enjoy it? NO! It felt clumsy to test unmanaged code.

Then I stumbled upon Google's gTest. Did I enjoy it? Yes! It's simple and straight forward. But displaying the test results just like NUnit was a problem, so modified the available nunit stylesheet.

Here are the screen shoots:



 

Then the detailed view:



That's it.

Friday 21 November 2008

test


< cruisecontrol>
< project name = "test" >

</project>
</cruisecontrol>

Wednesday 19 November 2008

Getting started with Cruisecontrol.net

After installing CC.net, a configuration file needs to be created (ccnet.config), all project settings are located in it.

  1. Ccnet.config

In order to get CC.net server up and running, its configuration file needs to be edited, Basic structure of the config file is:

<?xml version="1.0" encoding="utf-8" ?>

<cruisecontrol>

    <!-- myproject project -->

    <project name = "myproject1">

        <!--project URL-->

        <webURL>http://localhost/ccnet</webURL>        

        <!--Project directories-->

     <workingDirectory>C:\projects\myproject1</workingDirectory>

     <artifactDirectory>\\computername\Continious Integration\project1\Artifacts</artifactDirectory>        

        <!-- Current Build date for build identification purposes-->

        <labeller type="dateLabeller"/>


 

        <!-- Interval when the build process will be triggred-->

        <triggers> <!-- Check every 1,5 hours for modifications-->

            <intervalTrigger seconds="5400" buildCondition="IfModificationExists"    />

        </triggers>        

        <!-- Source Control in use and our project location-->

        <sourcecontrol type="vss">

            <project>$/VSSSOURCE/myproject1</project>

            <username>myusername</username>

            <password>password</password>

            <ssdir>\\VSSSOURCE</ssdir>

        </sourcecontrol>        

        <tasks>            

         <!--USE MSDev enviroment for building project-->

         <devenv>

             <solutionfile>C:\projects\myproject1\project1.sln</solutionfile>

             <configuration>debug</configuration>

         </devenv>

            <!--NANT is used for build and test purposes-->

         <nant>

             <executable>C:\nant\bin\nant.exe</executable>

             <buildFile>C:\Continious Integration\build files\project1.build</buildFile>

                <logger>NAnt.Core.XmlLogger</logger>

                <buildArgs>fxcop coverage coverage.explr simian</buildArgs>                

         </nant>

            <!-- NUnit to Run the tests-->

            <nunit>

                <path>C:\Program Files\NUnit 2.4.8\bin\nunit-console.exe</path>

                <assemblies>

                    <assembly>C:\projects\myproject1\myproject_UNITTEST.dll</assembly>                    

                </assemblies>

            </nunit>            

        </tasks>        

        <publishers>

            <!-- merge xml -->

            <merge>

                <files>

                    <file>C:\results\CoverageReport.xml</file>    <!-- NCover code coverage Results -->

                    <file>C:\results\fxcop.xml</file> <!-- FxCop -->

                    <file>C:\results\simian.xml</file> <!-- Similarity analyser SIMIAN report -->

                </files>

            </merge>        

            <!--Email notification and logs begin here-->

         <!--email notification to groups depending on build and test results -->

         <email from="buildautomation@mail.box" mailhost="mail.mail.box" includeDetails ="TRUE">

         <!--USERS-->

             <users>

                    <user name="user1" group="TestQA" address="user1@mail.box" />                

                </users>

         <!-- Groups in which users are classified -->        

             <groups>

                 <group name="TestQA" notification="always"/>

                 <group name="developers" notification="always"/>

             </groups>

                
 

         </email>                        

         <statistics/>

         <xmllogger/>                    

     </publishers>        

    </project>    

</cruisecontrol> 


If there are no errors then the server will look like this


 

Wednesday 29 October 2008

Cruisecontrol.net

Cruisecontrol.net has a webinterface. Something like this:



But how does it work?
1. The CruiseControl.NET Server is started, and a project is started according to a Project Configuration Block in the Server's Configuration
2. CCNet checks the source code repository for modifications that have occurred since the last build attempt.
3. When modifications are detected
a. CCNet labels the project with CCNETUNVERIFIEDxxx (xxx = date/time) (Visual Source Safe only, optionally)

b. CCNet gets the latest version of the source from the source control repository

c. CCNet starts the build by executing the tasks in the section of the ccnet.config file. In this example, the build will execute the task to run the NAnt build file.

4. NAnt processes the build script specified by the element . The following steps make up one possible scenario.
a. NAnt runs VS.NET using either the task or the task. The task provides better reporting capability for later steps.

b. NAnt runs NUnit using the task or the task

c.NAnt runs FxCop using the task

5. CCNet receives the outcome of the NAnt execution (Success/Failed)
a. If the build was successful, CCNet replaces the CCNETUNVERIFIEDxxx label with the next sequential build number. (VSS only)

b. The XML output files are gathered from each step using the File Merge Task and output as an xml file in the log directory specified in the element.

6. CCNet sends out email based on the elements in ccnet.config (Optional).
a. If is set, then the individuals will only receive email if the status of the build changes (Success -> Fail, or Fail -> Success)

b. If is set, then the individuals will receive email for every build.

7. CCTray displays current status of the build in the client system tray. The user can use the "Launch web page" menu item to browse to the build status website.
8. Project Dashboard enables multiple continuous integration projects to be viewed.

In short the process is like:

Where do we begin?

The first question that came in mind is "Where do I begin?". My tasks were:

1. Set up a build automation system.
2. Run builds when changes were made to the project.
3. Send notification to developers about build status.
4. Run tests.

What to choose?
My priority was to use opensource build automation system. But I evaluated comercial ones too. Why opensource, when I can use any comercial program? Well, the freedom to make changes and contribute to the community give satisfaction at the end of the day, firstly I have ability to fine tune the code to my specification and secondly I can share my views with other users and make it better. I came across CruiseControl.net by thoughtworks. ".net" because it supports net.framework.
The software I was to test is written in Microsoft's C++.
"...talking about C++, I have had many problems with it. It's like a monster, but does the job prefectly..."


What do I need?
1. Cruisecontrol.net - The mother
2. NAnt - for creating the build file

Software testing

Software testing is an empirical investigation conducted to provide stakeholders with information about the quality of the product or service under test, with respect to the context in which it is intended to operate. This includes, but is not limited to, the process of executing a program or application with the intent of finding software bugs.