Pages

Saturday, February 18, 2012

Software Configuration Management






Software Configuration Management

Google Code University

(http://code.google.com/edu/tools101/scm.html#0.1_CM)

Audience and Pre-Requisites

This tutorial covers a tool commonly found in industry to support the software development process. 




The pre-requisites are significant programming experience with a language such as C++ or Java, and familiarity with Linux or Unix.

Configuration Management Situation

Configuration Management (CM) is a tool that is used to manage change. 




Let's say Bob and Susan are both tech writers and both are working on updates to a technical manual. During a meeting, their manager assigns them each a section of the same document to update.




The technical manual is stored on a computer that both Bob and Susan can access. Without any CM tool or process in place, a number of problems could arise. One possible scenario is the computer storing the document might be set up so that Bob and Susan can not both work on the manual at the same time. This would slow them down considerably.

Configuration Management Situation

A more dangerous situation arises when the storage computer does allow the document to be opened by both Bob and Susan at the same time. 




Here is what could happen:

Bob opens the document on his computer and works on his section.

Susan opens the document on her computer and works on her section.

Bob completes his changes and saves the document on the storage computer.

Susan completes her changes and saves the document on the storage computer.

Configuration Management Situation

This illustration shows the problem that can occur if there are no controls on the single copy of the technical manual. When Susan saves her changes, she overwrites those made by Bob.

Configuration Management Situation

This is exactly the type of situation that a CM system can control. 




With a CM system, both Bob and Susan "check out" their own copy of the technical manual and work on them. 




When Bob checks his changes back in, the system knows that Susan has her own copy checked out. 




When Susan checks in her copy, the system analyzes the changes that both Bob and Susan made and creates a new version that merges the two sets of changes together.

CM features

CM systems have a number of features beyond managing concurrent changes as described above. 




Many systems store archives of all versions of a document, from the first time it was created. 




In the case of a technical manual, this can be very helpful when a user has an old version of the manual and is asking a tech writer questions. 




A CM system would allow the tech writer to access the old version and be able to see what the user is seeing.

SCM system is critical

CM systems are especially useful in controlling changes made to software. 




Such systems are called Software Configuration Management (SCM) systems. 




If you consider the huge number of individual source code files in a large software engineering organization and the huge number of engineers who must make changes to them, it's clear that an SCM system is critical.

Software Configuration Management

SCM systems are based on a simple idea: the definitive copies of your files are kept in a central repository. People check out copies of files from the repository, work on those copies, and then check them back in when they are finished. 




SCM systems manage and track revisions by multiple people against a single master set.




All SCM systems provide the following essential features:

Concurrency Management

Versioning

Synchronization




Let's look at each of these features in more detail.

Concurrency Management

Concurrency refers to the simultaneous editing of a file by more than one person. With a large repository, we want people to be able to do this, but it can lead to some problems.




Consider a simple example in the engineering domain: Suppose we allow engineers to modify the same file simultaneously in a central repository of source code. 




Client1 and Client2 both need to make changes to a file at the same time:

Client1 opens bar.cpp.

Client2 opens bar.cpp.

Client1 changes the file and saves it.

Client2 changes the file and saves it overwriting Client1's changes.

Concurrency Management

Obviously, we don't want this to happen. Even if we controlled the situation by having the two engineers work on separate copies instead of directly on a master set (as in the illustration below), the copies must somehow be reconciled. 




Most SCM systems deal with this problem by allowing multiple engineers to check a file out ("sync" or "update") and make changes as needed. The SCM system then runs algorithms to merge the changes as files are checked back in ("submit" or "commit") to the repository.




Concurrency Management

 

Concurrency Management

 

These algorithms can be simple (ask the engineers to resolve conflicting changes) or not-so-simple (determine how to merge the conflicting changes intelligently and only ask an engineer if the system really gets stuck).

Versioning

Versioning refers to keeping track of file revisions which makes it possible to re-create (or roll back to) a previous version of the file. This is done either by making an archive copy of every file when it is checked into the repository, or by saving every change made to a file. At any time, we can use the archives or change information to create a previous version. Versioning systems can also create log reports of who checked in changes, when they were checked in, and what the changes were.

Synchronization

With some SCM systems, individual files are checked in and out of the repository. More powerful systems allow you to check out more than one file at a time. Engineers check out their own, complete, copy of the repository (or part thereof) and work on files as needed. They then commit their changes back to the master repository periodically, and update their own personal copies to stay up-to-date with changes other people have made. This process is called syncing or updating.

Subversion

Subversion (SVN) is an open-source version control system. It has all of the features described above.




SVN adopts a simple methodology when conflicts occur. A conflict is when two or more engineers make different changes to the same area of the code base and then both submit their changes. SVN only alerts the engineers that there is a conflict - it's up to the engineers to resolve it.

The first step is to install SVN on your system. Click here for instructions. Find your operating system and download the appropriate binary.

Some SVN Terminology

Revision: A change in a file or set of files. A revision is one "snapshot" in a constantly changing project.

Repository: The master copy where SVN stores a project's full revision history. Each project has one repository.

Working Copy: The copy in which an engineer make changes to a project. There can be many working copies of a given project each owned by an individual engineer.

Check Out: To request a working copy from the repository. A working copy equals the state of the project when it was checked out.

Commit: To send changes from your working copy into the central repository. Also known as check-in or submit.

Some SVN Terminology

Update: To bring others' changes from the repository into your working copy, or to indicate if your working copy has any uncommitted changes. This is the same as a sync, as described above. So, update/sync brings your working copy up-to-date with the repository copy.

Conflict: The situation when two engineers try to commit changes to the same area of a file. SVN indicates conflicts, but the engineers must resolve them.

Log message: A comment you attach to a revision when you commit it, which describes your changes. The log provides a summary of what's been going on in a project. 

Subversion Overview

https://docs.google.com/present/edit?id=0ATob-EjxU_d1ZGdjZmNxaGhfMjM1aGhyZnN3ZDM

Managing Source Code With Subversion

http://luv.asn.au/overheads/20050503-Subversion-slides.pdf 

Wednesday, February 15, 2012

C++ Programming & Data Structure 201202

  • What is Programming?
  • What is Programming Language?
  • What is High Level Programming Language?
  • What is Procedural Programming Language?
  • What is Programming Paradigm?
  • What is Object Oriented Programming?
  • Explain Program Development Life Cycle.
  • What is Program Variable?
  • What is Program Data Type? Describe typical Program Data Types that you know.
  • What is Program Control Structure? Describe typical Program Control Structure that you know.
  • Explain Sequential Control Structure. Draw a sample of its corresponding Flow Chart.
  • Explain Selection Control Structure. Draw a sample of its corresponding Flow Chart.
  • Explain Loop Control Structure. Draw a sample of its corresponding Flow Chart.
  • What is Program Function? Explain the basic function that must exist in typical C++ Program.
  • What is Program Design?
  • What is Input-Process-Output box? What are the benefits of this kind of program design?
  • What is Flow Chart? What are the benefits of this kind of program design?
  • What is UML Class Structure Diagram? What is the benefit of this kind of program design?
  • What is UML Class Behavior? What is the benefit of this kind of program design?

Saturday, February 11, 2012

BTJunkie voluntarily shuts down after FBI raid on Megaupload as fear spreads among file-sharing sites Read more: http://www.dailymail.co.uk/sciencet

BTJunkie voluntarily shuts down after FBI raid on Megaupload as fear spreads among file-sharing sites

By TED THORNHILL

Last updated at 4:11 PM on 7th February 2012

File-sharing website BTJunkie has voluntarily shut down as a result of legal pressures that followed the seizure of Megaupload.

The site, which had over four million active torrents – or files available to download – explained on its homepage that it was 'time to move on'.

Its digital suicide follows the seizure of the Megaupload domain by U.S authorities and the arrest of its founder, Kim Dotcom, along with three of his colleagues, who’ve been charged with racketeering, copyright infringement and money laundering.

Shutdown: BTJunkie has voluntarily closed reportedly over indirect legal pressure from the Megaupload case

Shutdown: BTJunkie has voluntarily closed reportedly over indirect legal pressure from the Megaupload case

Other file-sharing sites have also been spooked by this legal action, with QuickSilverScreen also voluntarily shutting down and Filesonic and Fileserve users now being restricted to downloading files they’ve uploaded themselves.

A message on the BTJunkie website, which linked to copyright-protected films, songs and TV shows for cost-free download, reads: ‘This is the end of the line my friends. The decision does not come easy, but we’ve decided to voluntarily shut down. We’ve been fighting for years for your right to communicate, but it’s time to move on. It’s been an experience of a lifetime, we wish you all the best!’

It’s been reported that the decision to shut down BTJunkie did not come from any direct legal threat, but worry over what might happen in the future, as U.S authorities had it in their crosshairs, according to internet sources.

Mr Dotcom, meanwhile, has been complaining that women inmates are giving him unwanted attention.

In a New Zealand courtroom to appeal a decision denying him bail, Kim Dotcom said he has received unwanted letters from female prisoners and a phone call from a man posing as a prosecutor.

Megaupload: The site has been seized by U.S authorities

Megaupload: The site has been seized by U.S authorities, a move that's spooking other file-sharing sites

Accused: Kim Dotcom at his bail hearing on January 25. The judge denied him bail, saying Dotcom's vast wealth meant he could flee the country if released from custody

Accused: Kim Dotcom at his bail hearing on January 25. The judge denied him bail, saying Dotcom's vast wealth meant he could flee the country if released from custody

A government lawyer said during the hearing that a known forger tried to visit Dotcom.

The convicted hacker is currently in jail in New Zealand after being accused of masterminding a scheme that made more than $175million in a few short years by copying and distributing music, movies and other copyrighted content without authorisation.

Dotcom was denied bail last month when Prosecutor Anne Toohey argued at the bail hearing that Dotcom, also known as Kim Schmitz, was a flight risk 'at the extreme end of the scale' because it was believed he had access to funds, had multiple identities and had a history of fleeing criminal charges.

In an appeal hearing recently Dotcom told the Auckland court he would not flee New Zealand and wants to fight to get back his money, some of which authorities seized last month.

He told the court that with his assets frozen and business shut down he had no intention of trying to flee to his native Germany, where he would be safe from extradition.

Flying high: Kim Dotcom enjoyed a super-lavish lifestyle before he was taken into custody

Flying high: Kim Dotcom enjoyed a super-lavish lifestyle before he was taken into custody

'I will not run away. I want to fight these allegations on a level playing field. I have three little children. My wife is pregnant with twins. I just want to be with them,' he said in court.

At his bail hearing last month, his defence lawyer said the former hacker, who is reportedly 6ft 6in tall and weighs more than 20 stone (285lbs), was hardly likely to escape detection by New Zealand immigration.

'He is not the sort of person who will pass unnoticed through our customs and immigration lines and controls,' said lawyer, Paul Davison.

Kim Dotcom - nicknamed 'Dr Evil' - a German national, was renowned for his flamboyant lifestyle.

He owned a £3million collection of 25 cars which was confiscated at the time of his arrest – mainly top-of-the range Mercedes with number plates such as ‘STONED’, ‘HACKER’ and ‘GUILTY’ but also including Maseratis, a vintage pink Cadillac and Dotcom’s runabout, a £300,000 Rolls-Royce Phantom with the number plate ‘GOD’.

Although music stars such as Kanye West and Alicia Keys have supported MegaUpload, film and record companies say the seven-year-old file-sharing site is making a fortune off their work without paying them a penny.



Read more: http://www.dailymail.co.uk/sciencetech/article-2097738/BTJunkie-voluntarily-shuts-Megaupload-domino-effect-file-sharing-sites-gathers-pace.html#ixzz1m8Qq8e2c

Giant Torrent Index BTJunkie Shuts Down

Btjunkie-closed.JPG

Giant Torrent Index BTJunkie Shuts Down

The giant Torrent indexing search engine BTjunkie has shut down, scared shitless because of the Megaupload bust, no doubt. Unlike some file sharing services, they are shutting down for good, not just for the United States:

This is the end of the line my friends. The decision does not come easy, but we've decided to voluntarily shut down. We've been fighting for years for your right to communicate, but it's time to move on. It's been an experience of a lifetime, we wish you all the best!

The curious thing is that BTjunkie doesn't store any file. It's just an index of torrent files that point to files that are stored elsewhere. So, in theory, they would pretty safe. But that's the theory. At this point, it seems that nobody is safe from getting their door busted by special forces.

Stats