Siddesh BG's Build Release Config mgmt Blog

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Tuesday, 1 November 2011

Solution to Project Euler Problem 3 - Finding prime numbers till trillion and largest prime factors for a large number (over 6 billion)

Posted on 05:52 by Unknown

http://projecteuler.net/problem=3

I wrote the most processing power consuming script of my life. It's running from last 7 hours, till not completed !!! 
What you will know in this script? 
A optimized (to best of my knowledge) perl function to generate prime numbers.
Perl module to find square root.
How to find prime factors for a given number.
How to screw up your CPU :)

Question:
The prime factors of 13195 are 5, 7, 13 and 29.
What is the largest prime factor of the number 600851475143 ?

Solution:

#!/usr/bin/perl -w
use strict;
use Math::Complex;
my (@primes,$ulimit);
$ulimit=600851475143;
generate_prime();
prime_factors($ulimit);


sub prime_factors {
        my ($num)=@_;
        my (@prime_factors,@sorted);
        print "Prime factors of $num are \n";
        foreach(@primes) {
                if ( $_ > $num ) {
                        last;
                } else {
                        if ( ($num%$_) == 0 ) {
                                push(@prime_factors,$_);
                        }
                }
        }
        @sorted = sort { $a <=> $b } @prime_factors;
        print "@sorted \n";
        print "The largest prime factor of $num is: $sorted[$#sorted] \n";
}


sub generate_prime {
        my ($i,$j,$prime,$squareroot);
        @primes=(2,3,5,7);  # Initializing known prime numbers
        #We know only 2 is the even prime numbers, hence skip all even numbers
        for ($i=9;$i<=$ulimit; $i+=2) {
                $prime=0;
                #Divide the number by all the prime numbers less than the square root
                $squareroot=sqrt($i);
                foreach $j (@primes) {
                        if ( $j > $squareroot ) {
                                last;
                        }
                        print "$i: $i%$j\n";
                        if (($i%$j) == 0) {
                                $prime=1;
                                last;
                        }
                }
                if ($prime == 0 ) {
                        print "$i \n";
                        push(@primes,$i);
                }
        }
        print "@primes \n";
        open (FH, ">prime-numbers.txt") || die "Cant create prime-numbers.txt $!";
        print FH "@primes\n";
        my $len=@primes;
        print "Total number of prime numbers from 1 to $ulimit= $len \n";
}




Read More
Posted in Perl | No comments

Monday, 31 October 2011

Solution to ProjectEuler Problem2 - Fibonacci Series till 4 million and sum of even numbers

Posted on 21:10 by Unknown
projecteuler.net problem 2

Problem 2: Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.

Answer: 4613732

Solution:

#!/usr/bin/perl -w
use strict;
my ($sum, $first, $second, $evensum);
$first=1;
$second=2;
$evensum=2;
print "Fibonacci sequence \n";
print "$first $second";
fib($first,$second);


sub fib
{
        my ($num1, $num2)=@_;
        #Limiting fibonacce sequence to 4000000
        if ($num2 <= 3500000 )
        {
                $sum=$num1+$num2;
                print " $sum";
                if ( ($sum%2) == 0 ) {
                        $evensum+=$sum;
                }
                fib($num2, $sum);
        }else {
                print "\nEven Sum = $evensum \n";
                exit (0);
        }
}


Output:
Fibonacci sequence till 4000000
1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578
Even Sum = 4613732
Read More
Posted in Perl | No comments

Solution to Project Euler Problem1 - sum of all the multiples of 3 or 5 below 1000

Posted on 06:06 by Unknown
Just now I got to know about the site projecteuler.net, which post lots of mathematical problems, that needs computer programming to solve it. As soon I read 2 or 3 problems, I got tempted solve it.
I thought it's giving life back to my dying perl programming skills.

Here is the first problem (they have put easier one to  attract average minds like mine)


If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.
Find the sum of all the multiples of 3 or 5 below 1000.

Answer:   233168

Solution in Perl: 

#!/usr/bin/perl -w
use strict;

my ($i, $div3, $div5, $sum);
$sum=0;
for ($i = 1; $i<1000; $i++)
{
        $div3= $i%3;
        $div5= $i%5;
        if ( ($div3 == 0) || ($div5 == 0) ) {
                $sum+=$i;
                print "$i \n";
        }
}

print "Sum= $sum \n";

Output: 

Multiples of 3 and 5 below 1000 are
 3 5 6 9 10 12 15 18 20 21 24 25 27 30 33 35 36 39 40 42 45 48 50 51 54 55 57 60 63 65 66 69 70 72 75 78 80 81 84 85 87 90 93 95 96 99 100 102 105 108 110 111 114 115 117 120 123 125 126 129 130 132 135 138 140 141 144 145 147 150 153 155 156 159 160 162 165 168 170 171 174 175 177 180 183 185 186 189 190 192 195 198 200 201 204 205 207 210 213 215 216 219 220 222 225 228 230 231 234 235 237 240 243 245 246 249 250 252 255 258 260 261 264 265 267 270 273 275 276 279 280 282 285 288 290 291 294 295 297 300 303 305 306 309 310 312 315 318 320 321 324 325 327 330 333 335 336 339 340 342 345 348 350 351 354 355 357 360 363 365 366 369 370 372 375 378 380 381 384 385 387 390 393 395 396 399 400 402 405 408 410 411 414 415 417 420 423 425 426 429 430 432 435 438 440 441 444 445 447 450 453 455 456 459 460 462 465 468 470 471 474 475 477 480 483 485 486 489 490 492 495 498 500 501 504 505 507 510 513 515 516 519 520 522 525 528 530 531 534 535 537 540 543 545 546 549 550 552 555 558 560 561 564 565 567 570 573 575 576 579 580 582 585 588 590 591 594 595 597 600 603 605 606 609 610 612 615 618 620 621 624 625 627 630 633 635 636 639 640 642 645 648 650 651 654 655 657 660 663 665 666 669 670 672 675 678 680 681 684 685 687 690 693 695 696 699 700 702 705 708 710 711 714 715 717 720 723 725 726 729 730 732 735 738 740 741 744 745 747 750 753 755 756 759 760 762 765 768 770 771 774 775 777 780 783 785 786 789 790 792 795 798 800 801 804 805 807 810 813 815 816 819 820 822 825 828 830 831 834 835 837 840 843 845 846 849 850 852 855 858 860 861 864 865 867 870 873 875 876 879 880 882 885 888 890 891 894 895 897 900 903 905 906 909 910 912 915 918 920 921 924 925 927 930 933 935 936 939 940 942 945 948 950 951 954 955 957 960 963 965 966 969 970 972 975 978 980 981 984 985 987 990 993 995 996 999
Sum= 233168
Read More
Posted in Perl | No comments

Wednesday, 19 October 2011

Learning the use of "p4 duplicate" command

Posted on 22:26 by Unknown
Another way is to deep rename it:

p4 duplicate //depot/bad_branch_name/... //depot/correct_branch_name/...

Now at that point take a look at the revision graph of some of the files. You'll see that even the integration history is duplicated. This is a command that effectively changes the past.
then:

p4 obliterate (-y) //depot/bad_branch_name/...

However, depending on where the librarian files actually are (check using p4 fstat -Oc //depot/bad_branch_name/... and look for the lbrFile value) you may want to relocate them to the renamed branch before obliterating if they are not lazy copies. Using p4 snap, so for example p4 snap //depot/bad_branch_name/... //depot/correct_branch_name/...
Read More
Posted in Perforce | No comments

How to create perforce user non-interactively

Posted on 22:23 by Unknown
I was trying to create perforce user account using “p4 user -i” option. I wanted to bulk rename perforce login-ID's due to change in our organization policy.

Here is the command.
p4 user -i -f < tempfile.txt

Where typically a tempfile.txt will be of the form
----------------------------------------------------------------------------------------------
# cat user-template.txt
# A Perforce User Specification.
#
#  User:        The user's user name.
#  Type:        Either 'service' or 'standard'. Default: 'standard'. Read only.
#  Email:       The user's email address; for email review.
#  Update:      The date this specification was last modified.
#  Access:      The date this user was last active.  Read only.
#  FullName:    The user's real name.
#  JobView:     Selects jobs for inclusion during changelist creation.
#  Password:    If set, user must have matching $P4PASSWD on client.
#  Reviews:     Listing of depot files to be reviewed by user.

User:   guruss1

Email:  siddesh.gurusiddappa@emc.com

Update: 2011/10/18 05:04:00

Access: 2011/10/18 06:17:32

FullName:       siddesh

----------------------------------------------------------------------------------------------



In context of the perl script:
open (WRITE, ">", "tempfile.txt") or die "Can't open temp file for writing.\n";
print WRITE "User: $uName\n\n";
print WRITE "Email: $email\n\n";
print WRITE "Update: $date\n\n";
print WRITE "FullName: $fName $lName - $prefix\n\n";
close WRITE;
system( "p4 user -i -f < tempfile.txt");
Read More
Posted in Perforce | No comments

Friday, 9 September 2011

Calculating LOC(Line of changes) between releases on Perforce

Posted on 05:25 by Unknown

Read More
Posted in Perforce | No comments

Tuesday, 14 June 2011

JIRA FAQ's

Posted on 09:21 by Unknown
How to know the issues assigned to me?
Click your user name at the top-right of the page. Your 'User Profile' will be displayed.
From here click 'View Your Profile' in the left column.
Click the links under 'User Filters' in the right column to view your 'Assigned' issues, 'In Progress' issues and 'Reported' issues
Click the links under 'Assigned Open Issues per project' in the right column to view the unresolved issues (if any) that are assigned to you for each project.

How to see the list of all issues that you have created, which have not yet been resolved?
Go to the Dashboard and click the 'My Unresolved Reported Issues' link

How to change my Jira password?
Click your user name at the top-right of the page. Your 'User Profile' will be displayed.
Click 'Change Password' in the left column to change your JIRA password.
Unless you are not using Active Directory or LDAP username to login to JIRA


To view your watch-list
Click your user name at the top-right of the page. Your 'User Profile' will be displayed.
Click 'Your Watches' in the left column to view the list of issues that you are watching.


To change 'Number of Issues displayed per Issue Navigator page', 'Outgoing email format'
Click your user name at the top-right of the page. Your 'User Profile' will be displayed.
Click 'View Preferences'/'Edit Preferences' in the left column


How to attach a screenshot to an issue?
Open the JIRA issue. Click the 'Attach screenshot to this issue' link in the 'Operations' menu.
The 'Attach Screenshot' page will open in a new browser window.
Ensure that you have captured an image to your operating system's clipboard and click the 'Paste' button to paste the image.
Enter a file name and comment for the screenshot.
Click the 'Attach' button.

How to attach an image inline into a Description field? (editing rich text fields)

To include an image in the field, you would first attach the image to the issue, then type the following into the field: 
inline attachments !screenshot-1.jpg|thumbnail!


How to log work on an issue?
If time-tracking has been enabled, three coloured bars will be displayed for each issue, representing the following amounts of time: Original Estimate (blue), Remaining Estimate (orange), Time Spent (green).
Specifying an original time estimate
Navigate to the issue and edit it. Provide value to 'Original Estimation either in weeks/days/hours/minutes like 3d, 2h, 4w, etc
Logging work on an issue 
Navigate to the issue and select 'Log work done' from the 'Operations' menu on the left-hand side of the screen. 
In the 'Time Spent' field, enter the amount of time to be logged. 
In the 'Start Date' field, select the date/time when you started work. 
The 'Adjust Estimate' field affects the value of the issue's 'Remaining Estimate'.

In the 'Work Description' field, type a description about the work you have done.
Click the 'Log' button.
Editing a work log entry
Navigate to the issue and select the 'Work Log' tab (below the 'Description' field).
Click the 'Edit' link, located at the right of the work log entry. Edit the fields and Click the 'Log' button.
Deleting a work log entry
Navigate to the issue and select the 'Work Log' tab (below the 'Description' field).
Click the 'Delete' link, located at the right of the work log entry.


How to do a search for issues that are due seven days from now?
Choose "Find Issues" in the title bar to bring up the Issues Navigator.
Enter 7d into the "Due Date To" text field of the Issue Navigator.
To find all issues that are due after 1st June 2011, enter 1-6-2011 into the "Due After" field.

How to create a subtask?
Navigate to the issue and select 'Create sub-task' from the 'Operations' menu.
Choose the project and issue type. Enter the details of the issue
Click the 'Create' button

The parent issue's summary and issue key are displayed above the sub-task's summary.
Working with sub-tasks
If an issue has sub-tasks, then the issue screen will show a list of all the issue's sub-tasks.
You can reorder sub-tasks by using the up and down arrows.

You can perform actions on the sub-tasks by clicking the links in the right-most column, e.g. 'Resolve Issue', 'Close Issue', 'Reopen Issue'.
If time-tracking is enabled, colored bars will be displayed showing the aggregate 'Original Estimate', 'Remaining Estimate' and 'Time Spent' for all of the issue's sub-tasks.
Searching for sub-tasks
When sub-tasks are enabled, two extra entries will appear in the 'Issue Type' drop-down list in the
Issue Navigator's search form. These entries are: 'Standard Issue Types' and 'Sub-Task Issue Types'.
Converting a standard issue to a sub-task
Navigate to the issue and select 'Convert to sub-task' from the 'Operations' menu
Select Parent Issue and Sub-Task Type
Update Fields and click the 'Finish' button
The issue will be displayed. You will see that it is now a sub-task, that is, its parent's issue number is now displayed at the top of the screen

Converting a sub-task to a standard issue
Navigate to the sub-task issue and select 'Convert to issue' from the 'Operations' menu.
Select New Status and Update Fields. 
Click the 'Finish' button. The issue will be displayed. You will see that it is no longer a sub-task, that is, there is no longer a parent issue number displayed at the top of the screen.


How to create Voter and Watcher Lists?
JIRA allows a user to cast a vote for a particular issue - "voicing" their preference for that issue to be resolved or completed. JIRA also allows a user to watch a particular issue, signing up for notifications of any updates relating to that issue.
Watcher list
Navigate to issue -> More Actions -> Watchers -> Add users to Watch list -> Add.
Stop watching.
Navigate to issue -> More Actions -> Stop Watching.


How to create a link between issues?
Issue linking allows you to create an association between issues. For example: an issue may duplicate another or an issue may depend on another
Navigate to issue and click the word 'Link' under the Operations menu or "More Actions" (in newer version).

The 'Link Issue' form will be displayed. Select the type of link to be created, and the issue(s) to be linked to.
To delete a link
Inside a linked issue, click on the 'Manage Links' link (*  button in newer version).

In the following screen, click on the small trashcan icon in the bottom-right corner.

How to clone an issue?

Clone Issue allows a user to create a duplicate of an issue within the same project.
The clone issue is a replica of the original issue - containing the same information stored in the original issue - e.g.summary, affects versions, components, etc.

A clone issue is a separate entity from the original issue. Operations on the original issue have no affect on the clone issue and vice versa.

Navigate to issue and click the word 'clone' under the Operations menu or "More Actions" menu (in newer version).
Clone Issue Linking
The clone issue can be linked to the original issue when creating the clone issue.
Cloning and Sub-Tasks
Sub-Tasks can be cloned in the same manner. If the original issue has associated sub-tasks, clone sub-tasks will also be created for the clone issue.

How to move an issue from one project to another?

As there may be significant differences in the configuration of your original project and target project, the 'Move Issue' wizard allows you to change certain attributes of the issue. These include: Issue Type (if any custom type defined), Issue Status, Custom Fields.


Navigate to issue and click the word 'move' under the Operations menu or "More Actions" menu (in newer version).

The first page 'Move Issue' wizard will display. Select the project that you wish to move your issue to, and if required, change the issue type. Click 'Next'.
If you are required to change the status of your issue the 'Select Status' page will display. Select the new status for your issue and click 'Next'.
If you are required to specify the values for any required custom fields the 'Update Fields' page will display. Specify the desired values for each field, and click 'Next'.
The 'Confirmation' page will display with all of your changes.
click 'Move'


How to perform bulk operations?

From the Issue Navigator, perform a search with the required filters to produce an issue result set.
The Bulk Change option in the Issue Navigator menu provides access to the bulk operations. The Bulk Change link is only available to users who have been granted the global Bulk Change permission.
The next screen allows the selection of the issues that the bulk operation is to be performed on.

The next screen allows the bulk operation to be selected - Workflow Transition, Delete, Move or Edit. Select the operations and follow corresponding actions to complete the bulk operation.
It is possible to disable mail notification for a particular bulk operation by de-selecting the "Send Notification" checkbox in the bulk operation wizard.



Read More
Posted in Jira | No comments
Newer Posts Older Posts Home
Subscribe to: Posts (Atom)

Popular Posts

  • Solution to Project Euler Problem 10 - Find the sum of all the primes below two million
    http://projecteuler.net/problem=10 Problem The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17. Find the sum of all the primes below two mi...
  • Installing and configuring Fortify on Linux and Windows machines
    Installing Fortify on Linux (RHEL 5 32 bit) Download Fortify archive Fortify-360-2.6.5-Analyzers_and_Apps-Linux-x86.tar.gz and extract it to...
  • FeatureBranch v/s FeatureToggle v/s BranchByAbstraction patterns
    This blog is excerpts from Martin Fowler blog and Continuous Delivery book (Jez Humble, David Farley). It explains about the concepts of 1) ...
  • How to know architecture of a AIX machine?
    We can easily know the architecture type in Linux or Solaris systems with the help of "uname" command. But uname command in AIX do...
  • AIX: make: 1254-055 Dependency line needs colon or double
    We get this compilation issue "make: 1254-055 Dependency line needs colon or double" while compiling C/C++ code in AIX machines. I...
  • 0509-036 Cannot load program p4 because of the following errors
    Here is the full description of error ............ bash-3.00# p4 info exec(): 0509-036 Cannot load program p4 because of the following error...
  • How to know a Unix/Linux system is a 32/64 bit architecture?
    To know whether given Unix/Linux machine is of type 32/64 bit architecure, use the command getconf LONG_BIT It outputs correspondingly 32 or...
  • Posting a JIRA bug using Perl Mechanize
    Perl provides modules which can be used as command line browser to automate tasks dependent on web pages. Among them LWP and mechanize are i...
  • fortifyclient uploadFPR An internal error has occurred
    When you try to upload a .fpr file to Fortify 360 server and you get the below mentioned error. Then, this blog provides one of the route ca...
  • 0509-036 Cannot load program ssh because of the following errors: Dependent module /usr/local/ssl/lib/libcrypto.a(libcrypto.so) could not be loaded.
    I installed openssh without any problem, but when I invoked either ssh/sshd, it started giving error .. > ssh exec(): 0509-036 Cannot loa...

Categories

  • AIX
  • AIX ssh
  • ANT
  • apache
  • appliance
  • awk
  • branching
  • build-failures
  • cgi-perl
  • code-signing
  • commands
  • continuous Integration
  • cvs
  • cygwin
  • DNS
  • Drupal
  • EPM
  • euler
  • Fortify
  • hadoop
  • hpux
  • html
  • InstallShield
  • iptables
  • iso
  • jenkins-hudson
  • Jira
  • kiwi
  • linux
  • Makefile
  • maven
  • Miscellaneous
  • mysql
  • nexus
  • NFS
  • package
  • Perforce
  • Perl
  • php
  • rbuilder
  • rpath
  • rpm
  • rsync
  • Solaris
  • ssh
  • SuseStudio
  • tinderbox
  • unix
  • Visual studio 2008
  • vmware
  • war
  • webserver
  • wget
  • windows
  • xterm

Blog Archive

  • ▼  2013 (12)
    • ▼  December (1)
      • How to restart windows from command line ?
    • ►  July (2)
    • ►  April (2)
    • ►  March (2)
    • ►  February (3)
    • ►  January (2)
  • ►  2012 (43)
    • ►  December (2)
    • ►  November (1)
    • ►  October (4)
    • ►  September (7)
    • ►  August (5)
    • ►  July (4)
    • ►  June (2)
    • ►  May (3)
    • ►  April (4)
    • ►  March (3)
    • ►  February (1)
    • ►  January (7)
  • ►  2011 (23)
    • ►  December (4)
    • ►  November (9)
    • ►  October (4)
    • ►  September (1)
    • ►  June (2)
    • ►  May (1)
    • ►  April (1)
    • ►  March (1)
  • ►  2010 (15)
    • ►  December (2)
    • ►  November (1)
    • ►  September (3)
    • ►  April (1)
    • ►  February (6)
    • ►  January (2)
  • ►  2009 (28)
    • ►  November (5)
    • ►  October (3)
    • ►  September (2)
    • ►  August (1)
    • ►  July (1)
    • ►  June (5)
    • ►  May (3)
    • ►  April (1)
    • ►  February (2)
    • ►  January (5)
  • ►  2008 (20)
    • ►  December (6)
    • ►  November (3)
    • ►  October (1)
    • ►  September (1)
    • ►  July (8)
    • ►  June (1)
Powered by Blogger.

About Me

Unknown
View my complete profile