Biomass Fuel Notes

© Moreniche

Biomass

Biomass fuel comes from three sources, wood, waste, and alcohol. The alcohol portion is about converting corn into ethanol for use in the transportation sector. The waste portion is mostly from municipal solid waste or methane from landfills. It’s also involved with the wood portion. The wood portion is from sawdust, excess wood left over from logging and papermaking. Also, the use of “black liquor”, the stuff that is made during the process of papermaking, is also used for biomass fuel.

Wind

Winds are created by uneven heating of the atmosphere by the sun, irregularities of the Earth's surface, and the rotation of the Earth. As a result, winds are strongly influenced and modified by local terrain, bodies of water, weather patterns, vegetative cover, and other factors. The wind flow, or motion of energy when harvested by wind turbines, can be used to generate electricity. Wind-based electricity generating capacity has increased markedly in the United States since 1970, although it remains a small fraction of total electric capacity.

Solar

Solar thermal devices use direct heat from the sun, concentrating it in some manner to produce heat at useful temperatures. The modern solar industry began with the oil embargo of 1973-1974 and was strengthened with the second embargo in 1979. The growth of the solar industry during this period of fuel shortages and high prices (1974-1984) soared from 45 solar collector manufacturing firms to 225 firms. The solar market was helped during this period by government assistance, both Federal and State. Currently, solar thermal devices do everything from heating swimming pools to creating steam for electricity generation.

Photovoltaic devices use semiconducting materials to convert sunlight directly into electricity. Solar radiation, which is nearly constant outside the Earth's atmosphere, varies with changing atmospheric conditions (clouds and dust) and the changing position of the Earth relative to the sun. Nevertheless, almost all U.S. regions have useful solar resources that can be accessed.

Solid Waste

The municipal solid waste industry has four components: recycling, composting, landfilling, and waste-to-energy via incineration. Municipal solid waste is total waste excluding industrial waste, agricultural waste, and sewage sludge. As defined by the U.S. Environmental Protection Agency, it includes durable goods, non-durable goods, containers and packaging, food wastes, yard wastes, and miscellaneous inorganic wastes from residential, commercial, institutional, and industrial sources. Examples from these categories include: appliances, newspapers, clothing, food scrapes, boxes, disposable tableware, office and classroom paper, wood pallets, rubber tires, and cafeteria wastes. Waste-to-energy combustion and landfill gas are byproducts of municipal solid waste.

Municipal solid waste contains significant portions of organic materials that produce a variety of gaseous products when dumped, compacted, and covered in landfills. Anaerobic bacteria thrive in the oxygen-free environment, resulting in the decomposition of the organic materials and the production of primarily carbon dioxide and methane. Carbon dioxide is likely to leach out of the landfill because it is soluble in water. Methane, on the other hand, which is less soluble in water and lighter than air, is likely to migrate out of the landfill. Landfill gas energy facilities capture the methane (the principal component of natural gas) and combust it for energy.

Ocean Thermal Gradients

OTEC, or ocean thermal energy conversion, is an energy technology that converts solar radiation to electric power. OTEC systems use the ocean's natural thermal gradient—the fact that the ocean's layers of water have different temperatures—to drive a power-producing cycle. As long as the temperature between the warm surface water and the cold deep water differs by about 20°C (36°F), an OTEC system can produce a significant amount of power. The oceans are thus a vast renewable resource, with the potential to help us produce billions of watts of electric power. This potential is estimated to be about 1013 watts of baseload power generation, according to some experts. The cold, deep seawater used in the OTEC process is also rich in nutrients, and it can be used to culture both marine organisms and plant life near the shore or on land.

Energy Information Administration. (2007, July). Renewable and Alternative Fuels. Energy Information Administration. Retrieved January 17, 2008, from
http://www.eia.doe.gov/fuelrenewable.html

Tips for technical documentation( Technical Writer)

Writers Tips: Essays on a variety of topics from 24 writers

Introduction
As a developer you can, and most likely will from time to time, be forced to create customer documentation. It doesn’t matter if it will be in electronic or paper form. In creating specific applications for concrete customers you will have do all the text writing up until the final print. Developing general products for thousands of customers will probably prepare a base that will be given to graphic professionals. In both cases it can’t be bad to know the minimum about typing and documentation rules. Some points may be too simple but there are people who do not know about them.

The Editor
The first problem you must solve is choosing the software for writing your documentation. If you have no serious reasons to, then please do not use Developer Studio or similar. Our editor software has to be able to work with paragraphs over multiple lines. In a programmer’s editor you will end every line with a special end-of-line character. Removing them makes everyone who will follow after you nervous and they will need reformat it. (The possible exception to this rule can be internal source documentation generated directly from sources, maybe driven by special comment marks inside them.)
The editor has to know how to work with, or export to, common formats, such as RTF or HTML for electronic help files. For Visual C++ you can look at the Scribble tutorial Help. The program resource ID defines are in RTF stored in footnotes marked by # characters. Maybe you will use more sophisticated help creation software, possibly with its own file format - maybe HTML. It seems HTML based help, mostly in compressed form, is slowly replacing classic .hlp files. You can find some good articles in the codeproject.com or codeguru.com help sections. Through the use of appropriate file formats it is possible to present more than simple text information, but do not expect the that after importing the text from your office editor to your documentation software that the format will look exactly as you originally intended (and rarely does anyone actually want this). Because of this there is no sense in playing with formatting details. Of course it is possible to create usable documentation fully in an office editor only.
When you create help files your software has to know how to work with hyperlinks. If you want use the same document for hardcopy manual creation do not forget to remove or hide the hyperlink underlines before printing. One simple method (if you don’t have complicated documents) is to make a copy, then Select All, set No Underline and Black Text, and then print. Generally the printed manual will be something a little bit different to online help. Let’s look a little closer to this:

Starting
What we will talk about are recommended rules for readable document creation. We will not speak about contents but form. This form, with platform limitations, can be used for electronic help files too. All rules are not set in stone but are guidelines to help your readers. Most of rules are tried and true, some of them have been modified over time.
Today everyone can easily and quickly write and print what he or she wants. Many people think all that a publishing program can do is right and proper, and so they use all possibilities and formatting that is available. Because of this some documents are simply a list of installed fonts and several pieces of graphics, forcing the reader to spend time to find the usable information buried under all this.

Main rule: Follow your grammar
Here I can’t specify details: it’s something that differs by nation or region (and you already know that from school). As an example here is an English sentence:
“It is 1,234.5”, he said.
Transformed to, say, German typing rules this becomes:
„It is 1 234,5,“ said he. (See comment).
See http://www.fontsite.com/Pages/RulesOfType/ROT1097.html for rules on using quotation marks.

Space
Use one space between two words. You will often get two spaces when you import or paste from the clipboard. When you have simple text in one line (i.e. alphabetical characters) all simple spaces between words have to look to be the same width. Many editors know of so called solid (non-breaking) space used to keep words together (in one line) but some of them use it not as spaces but characters (fixed width). In combination with justified paragraph alignment (see the next section) it looks a little strange. (Btw. really were times when was wanted all characters changed their width, not spaces only.) There are more space types - especially in width. You, as a technician, can simply ignore them (if your grammar does not define them strictly). If you want to play with than use predefined width or thin space type and not combination of more than one. Some spacing problems were fixed by font authors. Take for example the ellipsis character (…) which today replaces three dots (originally dots with thin spaces between them). Putting spaces before and after special characters like ‘%’ or ‘…’ and words is language, and in many cases, content dependent. For a long time some (especially non-english) grammar and spelling checkers would underline them.
Do not start a paragraph with spaces - there are more correct ways (setting the indent through margins or style sheets) to indent its first line.

Paragraph
As we already seen a paragraph has to be written as floating - with one end of paragraph character at its end. You can leave line breaking to the editor, especially when making a base for others to work on after you. We recognize four base paragraph types by alignment: left, right (not common, though Middle East readers may protest), justified (to both sides) and centered (for us, if it is used at all, mostly in titles). The first line of each paragraph is usually indented in order to visually separate paragraphs. A classic (central Europe experience here) form is that when a paragraph uses 10 point text size, to have a 10 point indent (square) or a multiple (15, 20 or 30 pts in our case). When I look at style templates for most common office applications they ignore this and use 36. It’s not wrong, just different. As we said - our rules are not law and can differ locally.
The next old rule talks about choosing the indent for basic text. It’s good to use the same indent in the entire document, and not have it depend on the current text size. If you have notes with smaller font sizes use the same indent as your basic text. In the good old days the (left aligned) title and first paragraph directly under the title were not indented. For hand written documents it was a natural left alignment. For classic books the (fully) justified text gave the ideal of an equal-gray page. When I look at today’s computer literature it’s usually zero indent with an empty line (or extra spacing) between (left aligned) paragraphs. A similar situation, because of limitations, is found in HTML and email. Today the most forgotten rule is about the last paragraph’s line: it must not be shorter than then alignment and if it is longer than line-length minus the indent it must be justified. Following rules like this now needs manual work (or a script to be run) in most editors today. When you look at another available paragraph formatting options you can see options such as: “keep with next”, “page break before”, “keep lines together”, “don’t hyphenate” etc. All very good for titles, as it is not nice to have a title at the bottom of a page or divided to two pages. The same can be said about (word) hyphenation in titles.
With widow/orphan control the convention is, when possible, to not start a page with the last (unjustified) paragraph’s line - the orphan. A little less unfortunate is to end pages with the first paragraph’s line - the widow. Many languages commonly limit the number of hyphenations (word-dividings) at line ends, often differently in simple and column layout. In some of them the divide can be not be a simple regular endofline-/startofline (for theoretical endoflinestartofline example word). There is the classic german “sugar cutting” example: zucker -> zuk-/ker.

Font
For the final output you have to select fonts. Using less fonts and their variants (italic, semibold, bold; uppercase or capitals) makes the text more readable. With too many highlights the reader loses orientation. Where possible use true fonts, not software to-bold or to-italic emulation (and degeneration). Eliminating comic, old style caligraphic and symbol fonts means we can divide usable fonts into serif and not serif (sans serif) groups (sorry to those professionals reading this!). Classic members of the first group are Times, and the second group Helvetica. Most of us use their Microsoft variants Times New Roman and Arial. Non-english users especially know their sub-optimal quality and strange kerning pairs. In most cases a Times variant is used for base text and Helvetica, in a different size (possibly semi-bold), for titles. When you create documentation for an aggressive environment like industrial machine handbooks you may use (more rounded) Helvetica as the base text too. In one document do not combine similar (from the same group) fonts like Times and Times Roman, it doesn’t look good.
Common paper book color is black on white. Who wants read green text? In electronic documents try look at possible settings. Not everyone must have (or will enjoy looking at) your color schema.
Conventional basic text size is about 9-12 points. For children, old people or people with disabilities you can choose a bigger size. The same for an industrial environment. If you will combine letters and numbers try to find a font where the small L and number 1 (one) look different. Titles have to be with a bigger font, maybe in bold, but keep inch high titles for newspapers only. Again - twenty title levels with different styles are not efficient.
In paper form do not use underlined text. There are another traditional and more effective effects for selection. Leave the reader and their pencil do any underlining necessary. To highlight sections of text you can use a different text spacing (be careful - it has to make sense in the text flow to do this, especially do not attack normal space width), italic or semi-bold. If possible do not combine semi-bold and bold, since the reader needs to stop and think what is what. If you create a table of contents it can be in the same font like the base text, or possibly a little bit smaller. Page numbers in our case can be in the base font or little smaller. Placing them into book break leave for poetry, in technical literature they are for searching. If you are displaying source code use non-proportional (fixed width) fonts, since it should look like what you see in your programmer’s editor. If you place source code directly into a paragraph then keep a proportional font but with a readable marking (e.g. italic). In technical documents do not use special effects like ligatures or drop caps. If someone will read from begin till this he will surprise me.

Summary
I mentioned some basic and I hope general rules. Keeping them simple will help you think about what you wrote and not how it is written. These and many other rules can be found in many publishing-software options. Some of the terms are parameters for text-API in OSs or publishing systems.
There are many, many other rules that can be looked at, but there is a point where an introductory article must stop and make way for a more comprehensive article.
If you plan own solutions (but ask yourself: why?) try to look at it more generally before you start. Solving rule conflicts by not breaking other rules, especially when working with aesthetical priorities, is still hard work. You can leave them to editor. It’s not expected that you will know everything that you must do, but do ensure that you follow the most important rules. They can at the start look strange but most of the time come from long years of practical experience. You can get more of a feel for this from bigger and more comprehensive books and articles and it can also be good to consult professionals. You still can find some of these that know more than how to simply import and print files.

Frequently Asked Questions (and Answers) about Reverse Engineering

Question: What is reverse engineering?
Answer: Reverse engineering is the general process of analyzing a technology specifically to ascertain how it was designed or how it operates. This kind of inquiry engages individuals in a constructive learning process about the operation of systems and products. Reverse engineering as a method is not confined to any particular purpose, but is often an important part of the scientific method and technological development. The process of taking something apart and revealing the way in which it works is often an effective way to learn how to build a technology or make improvements to it.
Through reverse engineering, a researcher gathers the technical data necessary for the documentation of the operation of a technology or component of a system. In "black box" reverse engineering, systems are observed without examining internal structure, while in "white box" reverse engineering the inner workings of the system are inspected.
When reverse engineering software, researchers are able to examine the strength of systems and identify their weaknesses in terms of performance, security, and interoperability. The reverse engineering process allows researchers to understand both how a program works and also what aspects of the program contribute to its not working. Independent manufacturers can participate in a competitive market that rewards the improvements made on dominant products. For example, security audits, which allow users of software to
better protect their systems and networks by revealing security flaws, require reverse engineering. The creation of better designs and the interoperability of existing products often begin with reverse engineering.
>>top
Question: How does reverse engineering differ from other types of engineering?
Answer: The most traditional method of the development of a technology is referred to as "forward engineering." In the construction of a technology, manufacturers develop a product by implementing engineering concepts and abstractions. By contrast, reverse engineering begins with final product, and works backward to recreate the engineering concepts by analyzing the design of the system and the interrelationships of its components.
Value engineering refers to the creation of an improved system or product to the one originally analyzed. While there is often overlap between the methods of value engineering and reverse engineering, the goal of reverse engineering itself is the improved documentation of how the original product works by uncovering the underlying design. The working product that results from a reverse engineering effort is more like a duplicate of the original system, without necessarily adding modifications or improvements to the original design.
>>top
Question: What stages are involved in the reverse engineering process?
Answer: Since the reverse engineering process can be time-consuming and expensive, reverse engineers generally consider whether the financial risk of such an endeavor is preferable to purchasing or licensing the information from the original manufacturer, if possible.
In order to reverse engineer a product or component of a system, engineers and researchers generally follow the following four-stage process:
• Identifying the product or component which will be reverse engineered
• Observing or disassembling the information documenting how the original product works
• Implementing the technical data generated by reverse engineering in a replica or modified version of the original
• Creating a new product (and, perhaps, introducing it into the market)
In the first stage in the process, sometimes called "prescreening," reverse engineers determine the candidate product for their project. Potential candidates for such a project include singular items, parts, components, units, subassemblies, some of which may contain many smaller parts sold as a single entity.
The second stage, disassembly or decompilation of the original product, is the most time-consuming aspect of the project. In this stage, reverse engineers attempt to construct a characterization of the system by accumulating all of the technical data and instructions of how the product works.
In the third stage of reverse engineering, reverse engineers try to verify that the data generated by disassembly or decompilation is an accurate reconstruction the original system. Engineers verify the accuracy and validity of their designs by testing the system, creating prototypes, and experimenting with the results.
The final stage of the reverse engineering process is the introduction of a new product into the marketplace. These new products are often innovations of the original product with competitive designs, features, or capabilities. These products may also be adaptations of the original product for use with other integrated systems, such as different platforms of computer operating systems.
Often different groups of engineers perform each step separately, using only documents to exchange the information learned at each step. This is to prevent duplication of the original technology, which may violate copyright. By contrast, reverse engineering creates a different implementation with the same functionality.
>>top
Question: What is disassembly or decompilation of a computer software program?
Answer: In the development of software, the source code in which programmers originally write is translated into object (binary) code. The translation is done with a computer program called an "assembler" or "compiler," depending on the source code's language, such as Java, C++, or assembly. A great deal of the original programmer's instructions, including commentary, notations, and specifications, are not included in the translation from source to object code (the assembly or compilation).
Disassembly or decompilation reverses this process by reading the object code of the program and translating them into source code. By presenting the information in a computer language that a software programmer can understand,
the reverse engineer can analyze the structure of the program and identify how it operates.
The data generated in the disassembly of a typical computer program is one to many files with thousands of lines of computer code. Because much of the original programmer's commentary, notations, and specifications are not retained in the object code, the reverse engineered code constitutes only a part of the program information included in the original source code. Engineers must interpret the resulting source code using knowledge and expertise to recreate the data structures of the original program and understand the overall design rationale of the system.
Not all reverse engineering efforts require "decompilation" of software. Some "black box" reverse engineering is done by characterizing software through observation of its interaction with system components, other software, and other (external) systems through networks.
>>top
Question: What is the difference between source code and object code?
Answer: Source code is the category of computer language instructions that is most frequently written and read by software programmers. A computer cannot generally run a program in source code form though. The source code is translated, with the use of an assembler or compiler, into a language form that contains instructions to the computer known as object code. Object code consists of numeric codes specifying each of the computer instructions that must be executed, as well as the locations in memory of the data on which the instructions are to operate.
While source code and object code are commonly referred to as different classes of computer language, these terms actually describe the series of transformations a program goes through when being converted from a higher level language more easily comprehensible to humans to the lower level language of computer operations.
>>top
Question: What is interoperability?
Answer: Generally, interoperability allows technologies to work together when they use the same inputs and create the same outputs. For computers,
interoperability is the abililty of programs and systems running on various kinds of software and hardware to communicate with each other.
Standards foster interoperability by ensuring that all groups implementing the standard interpret it the same way, so that the technology produces consistent performance regardless of the individual brand or model. By contrast, a lack of standards means that parties must reverse engineer the technology to achieve interoperability. Moreover, owners of proprietary, non-standardized technologies retain control over upgrades and developments to those technologies, and may change them at will, disrupting the interoperability with other technologies.
>>top
Question: What are the different uses of reverse engineering?
Answer: A common misperception regarding reverse engineering is that it is used for the sake of stealing or copying someone else's work. Reverse engineering is not only used to figure out how something works, but also the ways in which it does not work.
Some examples of the different uses of reverse engineering include:
• Understanding how a product works more comprehensively than by merely observing it
• Investigating and correcting errors and limitations in existing programs
• Studying the design principles of a product as part of an education in engineering
• Making products and systems compatible so they can work together or share data
• Evaluating one's own product to understand its limitations
• Determining whether someone else has literally copied elements of one's own technology
• Creating documentation for the operation of a product whose manufacturer is unresponsive to customer service requests
• Transforming obsolete products into useful ones by adapting them to new systems and platforms
>>top
Question: Is reverse engineering legal?
Answer: Reverse engineering has long been held a legitimate form of discovery in both legislation and court opinions. The Supreme Court has confronted the
issue of reverse engineering in mechanical technologies several times, upholding it under the principles that it is an important method of the dissemination of ideas and that it encourages innovation in the marketplace. The Supreme Court addressed the first principle in Kewanee Oil v. Bicron, a case involving trade secret protection over synthetic crystals manufacturing by defining reverse engineering as "a fair and honest means of starting with the known product and working backwards to divine the process which aided in its development or manufacture." [416 U.S. 470, 476 (1974)] The principle that reverse engineering encourages innovation was articulated in Bonito Boats. v. Thunder Craft, a case involving laws forbidding the reverse engineering of the molding process of boat hulls, when the Supreme Court said that "the competitive reality of reverse engineering may act as a spur to the inventor, creating an incentive to develop inventions that meet the rigorous requirements of patentability." [489 U.S. 141 160 (1989)]
Congress has also passed legislation in a number of different technological areas specifically permitting reverse engineering. The Semiconductor Chip Protection Act (SCPA) explicitly includes a reverse engineering privilege allowing semiconductor chip designers to study the layout of circuits and incorporate that knowledge into the design of new chips. The Competition of Contracting Act of 1984 allows the defense industry to inspect and analyze the spare parts it purchases in order to facilitate competition in government contracts.
The law regarding reverse engineering in the computer software and hardware context is less clear, but has been described by many courts as an important part of software development. The reverse engineering of software faces considerable legal challenges due to the enforcement of anti reverse engineering licensing provisions and the prohibition on the circumvention of technologies embedded within protection measures. By enforcing these legal mechanisms, courts are not required to examine the reverse engineering restrictions under federal intellectual property law. In circumstances involving anti reverse engineering licensing provisions, courts must first determine whether the enforcement of these provisions within contracts are preempted by federal intellectual property law considerations. Under DMCA claims involving the circumvention of technological protection systems, courts analyze whether or not the reverse engineering in question qualifies under any of the exemptions contained within the law.
>>top
Question: What "copying" of computer programs is permitted under copyright law?
Answer: Copyright law protects any work, including computer software, that is "fixed in a tangible medium of expression" and which contains a "modicum of
originality." While making a copy of an orginal work generally constitutes copyright infringement, the very nature of computer software requires the making of a copy of original elements every time a program runs. In order to solve this problem, Congress included specific exemptions within copyright law outlining the permitted uses of a computer program.
Section 117 of the Copyright Act provides that:
[I]t is not an infringement for the owner of a copy of a computer program to make or authorize the making of another copy or adaptation of that computer program provided:
1. that such a new copy or adaptation is created as an essential step in the utilization of the computer program in conjunction with a machine and that it used in no other manner, or
2. that such new copy or adaptation is for archival purposes only and that all archival copies are destroyed in the event that continued possession of the computer program should cease to be rightful.
>>top
Question: Is the making of an intermediate copy in the reverse engineering process copyright infringement?
Answer: There have been many attempts by companies over the past two decades to bring claims against software developers for their reverse engineering efforts. Since reverse engineers must make intermediate copies of the original work through the disassembly or decompilation process, the copyright owners of the initial software program have claimed that such a procedure is not covered by Section 117. They have argued that reverse engineering should be considered copyright infringement since some of the retrieved technical data used in the development process includes copyrightable expression.
In Sega v. Accolade, the case most often referred to discussing reverse engineering of computer software, the appellate court determined that reverse engineering is a fair use when "no alternative means of gaining an understanding
of those ideas and functional concepts exists." The court considered Accolade's intermediate copying of parts of Sega's video game console during the reverse engineering process in order to make compatible games of minimal significance to the rights in Sega's copyrighted computer code. The court held that forbidding reverse engineering in this context would defeat "the fundamental purpose of the Copyright Act--to encourage the production of original works by protecting the expressive elements of those works while leaving the ideas, facts, and functional concepts in the public domain for others to build on."
>>top
Question: What elements of a computer program are copyrightable?
Answer: Section 102(b) of the Copyright Act provides that:
"in no case does copyright protection for an original work of authorship extend to any idea, procedure, process, system, method of operation, concept, principle, or discovery, regardless of the form in which it is described, explained, illustrated, or embodied in such work."
This principle that copyright protects the expression of an idea but not the idea itself is fundamental to copyright law. Commonly referred to as the "idea/expression dichotomy," this distinction is particularly complicated in the context of computer programs. A software program must include many elements of computer code that are external to its particular use in order to function properly, including the specifications of the of the operating system, the computer on which the program runs, compatibility with other programs, and other widely accepted standards. These functional elements of a software program as well as those aspects of the software code that are in the public domain are considered ideas not protected by copyright law.
>>top
Question: How does a court determine the difference between the ideas and expressions in a computer program?
Answer: In order to separate out those elements of a computer program that should be considered original expression from the unprotectable ideas and processes, courts utilize the Abstraction, Filtration, and Comparison test described in the case of Computer Associates v. Altai. [982 F.2d 693 (2d Cir. 1992)] Under this test, the court is required to go through the following steps to determine whether copyright infringement occurred:
• Retrace the designer's steps in the reverse order of its creation into manageable components in order to identify the unprotected ideas at each level of abstraction.
• Filter out the non-protectable elements, including those dictated by efficiency (the most efficient implementation of any given task) , merger (when there is only one way to express an idea), external factors (necessity of matching standards), and elements taken from the public domain (expressions not protected by intellectual property).
• Compare the allegedly infringing work and the initial work to determine whether a sufficient similarity exists in the protectable elements of the initial work.
>>top
Question: Are the functional elements of a software program protected by copyright?
Answer: In applying the distinction between ideas and expressions, courts have analyzed particular features of software programs over the years in order to determine whether or not they should be protected. While court decisions have varied according to the facts, copyright protection does not extend over the elements of a program's software code that relate to its basic function. For example, in Lotus v. Borland [49 F.3d 807 (1st Cir. 1995)], the court held that the menu command hierarchy and macros of a software program was not protectable since it embodied the basic structure and functionality of that type of program as a "method of operation." Similarly, courts have considered whether certain program outputs such as portions of screen displays or graphical user interfaces (GUI) are protected by copyright. For example, the court in Apple v. Microsoft [35 F.3d 1435 (9th Cir. 1994)] held that Microsoft Windows did not infringe on the Macintosh OS because utilitarian aspects of the user interface such as the use of windows, icons, and menus were considered basic ideas to the "desktop" metaphor in the GUI of an operating system. The fact that such aspects of a program become industry standards is considered in the determination of whether they are functional elements not protected by copyright.
>>top
Question: Is reverse engineering affected by patent law?
Answer: Though software programs had generally not been granted patents in the past, more recently the U.S. Patent Office has granted patents for those programs that meet the patent requirements of usefulness (it must work and have an actual use), novelty (it must not have been previously known), and non-
obviousness (it must not be an obvious invention to an ordinary person in that field). Due to the additional requirement that the specifications of the invention must be disclosede in the published version of a patent, reverse engineering is generally not necessary to discover the method or process necessary to the independent creation of that invention. However, many integrated systems contain many components, some of which may be patentable, which may implicate a reverse engineer in a patent infringement lawsuit. Since electronic products often contain many constituent parts, made by a number of different manufacturers, it would not be possible to figure out how the whole product works without having to replicate some of its parts. Despite the first sale doctrine in patent law, which allows a purchaser of a product on the open market to use it and even take it apart, some courts have upheld contracts that specifically prohibit the reverse engineering of that product. The lack of a fair use exemption in patent law may threaten reverse engineering efforts when they involve software, but the question has not yet been addressed by courts.
>>top
Question: Does trade secret protection of information contained within a product restrict reverse engineering?
Answer: Increasingly, manufacturers protect the know-how behind their software and electronics through the use of trade secret protection. This form of protection is attractive since the kinds of information that trade secrets is very broad and can include "any formula, pattern, device or compilation of information which is used in one's business, and which gives him an opportunity to obtain an advantage over competitors who do not know or use it." [Restatement of Torts, §757] Among other factors, the status of a trade secret depends on the efforts undertaken by the owner to maintain the secrecy of the information. Since there is no time limitation on its enforceability, trade secrets can potentially provide eternal protection for software. Trade secrets terminate and become public domain information if they are publicly disclosed for any reason, however, including the widespread publication of the information on the Internet. Reverse engineering and independent discovery of the technical information within a product s are considered legally viable means of ending another's trade secret, provided that the product is obtained lawfully. Trade secret misappropriation is found when the trade secret is used or disclosed through "improper means," which includes illegal conduct or conduct that violates a generally accepted standard of commercial morality. The explicit prohibition on reverse engineering is therefore not the only licensing provision one must consider in determining whether reverse engineering will be considered legitimate. For example, a common cause of action in a trade secret case involving an anti reverse engineering contract provision is the duty of confidentiality. Depending on the facts of the case, the court must determine whether the confidentiality required in regards to the information was established by marking those specific parts as
proprietary or as restricted technical information and informing employees working with such information of their duty to preserve its confidentiality. The disclosure of such information to a third party may be considered trade secret misappropriation and may create liability for both the party which disclosed the information and the party who received it.
>>top
Question: Should a reverse engineer worry about the original product manufacturer's trademarks?
Answer: Software developers are generally not affected by a company's trademark when reverse engineering software. Trademark law protects words, names, symbols, or devices that identify the source of goods and services. While trademarks should not be a big concern for a reverse engineer , Sega v. Accolade was one case in which a manufacturer used trademarks to prevent the creation of programs compatible to its system. Sega developed a trademark security system (TMSS) embedded in an initialization code on its games so that other companies could not develop games for the Sega Genesis console without infringing on Sega's trademark. The court did not find infringement because the SEGA trademark was used as an essential element of the functional device that regulates access. Furthermore, the court held that this type of security system discouraged competition by excluding independently developed games from its video game market.
>>top
Question: What kind of proof is necessary to show the copying of a computer program?
Answer: Courts determine whether or not copying occurred, rather that the independent creation of a program, by comparing the two programs for evidence of copyright infringement. The determination of copyright infringement is done through an analysis of whether there exists a "substantial similarity" between the initial work and the product of the reverse engineering effort. Making such a determination can be quite complicated in the software context since different parts of the computer code may be similar due to the industry standards of the overall structure and user interface of programs as well as their compatibility requirements. In order to prove a claim of copyright infringement, the burden is on the initial work's owner to show that the defendant had access to the original code.
>>top
Question: What is UCITA?
Answer: The Uniform Computer Information Transactions Act (UCITA) is a proposed state law that would enforce the licensing provisions in click-wrap,shrink-wrap, and browse-wrap agreements. These types of agreements are the most common types of transactions that occur in agreements over uses of computer information. There is a great deal of controversy over the inclusion of UCITA in contract law due to the effect it may have on the notice individuals have of the licensing provisions included and the ability of individuals to negotiate the terms of the contract. Whether or not an individual is sufficiently aware of the license terms to which they have agreed and the opportunity to bargain over these terms are important considerations in establishing a valid contract. Currently, UCITA is only in effect in two states - Maryland and Virginia. Several other states, though, have pending legislation that considers adopting UCITA as law. On the other hand, states such as Iowa have passed "bomb shelter" legislation in order to protect its citizens from being governed by UCITA.
>>top
Question: What is the difference between a license and a sale of a product?
Answer: As opposed to the transfer of ownership of property when a consumer buys a product, a licensee enters into a relationship with the manufacturer where the permitted uses of the product are defined in a contract and the manufacturer still retains ownership. The software industry generally makes end-user license agreements, which define these permitted uses in the form of a shrink-wrap, click-wrap, or browse-wrap agreement.
Even though copyright law includes explicit exemptions on the use of computer programs under section 117 of the Copyright Act, some controversy exists over whether those exemptions apply in the case of a license that prohibits reverse engineering. Under section 117, an top
Question: What are shrink-wrap, click-wrap, and browse-wrap licenses?
Answer: In the context of computer software and the Internet, written agreements that indicate the formation of a contract between the user and the manufacturer have been replaced by shrink-wrap, click-wrap, and browse-wrap agreements.
Shrink-wrap licenses refer to the cellophane wrapping that seals boxes of mass marketed software are commonly called "shrink-wraps." Software manufacturers generally attach license agreements inside the packaging of their products, which bind the consumer to the terms of the agreement upon removal of the shrink-wrap.
Some courts have held that shrink-wrap licenses are unenforceable as contracts of adhesion, while other courts have considered them valid. An adhesion contract is a bargain drafted unilaterally by a dominant party, and presented as a final offer to a party with very little bargaining power. The terms are generally presented as a preprinted form to the weaker party, who lacks any realistic ability to negotiate the terms. If an individual chooses to return the product, however, they are no longer bound by the terms of the contract.
Click-wrap licenses are another form of creating an electronic agreement, except that the license is included on the computer screen before installation rather than on the box. By clicking on a button that says "I agree" or "I accept," the licensee agrees to the terms of use of the contract. An important difference between click-wrap agreements and shrink-wrap agreements is the fact that the user actually has an opportunity to read the contract before using or installing the program.
Browse-wrap agreements are contracts in which the terms of use are listed on a web site page. In such contracts, manufacturers presume to bind the user to the license terms merely by their visit to the web site or downloading software from that site. Courts are generally reluctant to hold such contracts enforceable because of the lack of assent, or explicit agreement, on the part of the user.
>>top
Question: Are licensing provisions prohibiting reverse engineering enforceable?
Answer: While the validity of licensing prohibitions of reverse engineering has not yet been decided by courts, the conflict between state laws that would enforce these provisions and federal intellectual property law has been addressed. When considering cases where breach of contract or trade secret misappropriation is claimed (both state law claims), courts must first determine whether or not intellectual property law preempts those contracts enforced by the individual state. Preemption occurs when courts determine that federal intellectual property law must be considered in order to address the issues involved in the particular provisions.
Section 301 of the Copyright Act provides that a state law claim is preempted if:
1. (1) the work to be protected comes within the subject matter of copyright; and
2. (2) the state-created right forming the basis of the state law claim is equivalent to any of the exclusive rights within the general scope of copyright."
In order for the claim to be preempted it must first pass this equivalency test, which determines whether the state-created rights in upholding the contract are merely alternative articulations of the exclusive rights of copyright law. If the court determines that the contract provisions contain an "extra element" that require analysis of the contract to be preempted by copyright law, the courts generally proceed to an analysis of the possible infringement or exemption under fair use of the activities of the reverse engineer.
>>top
Question: Is the reverse engineering of a technological protection measure illegal under the DMCA?
Answer: The Digital Millennium Copyright Act (DMCA) made an effort to recognize the value of interoperability to competition and innovation and included an exemption expressly allowing reverse engineering in order to preserve a healthy market in the information technology industry. Section 1201(f) of the DMCA allows software developers to circumvent technological protection measures of a lawfully obtained computer program in order "the elements necessary to achieve interoperability of an independently created computer program with other programs." A person may reverse engineer the lawfully acquired computer program only where the elements necessary to achieve interoperability are not otherwise readily available and reverse engineering is otherwise permitted under the copyright law. The reverse engineer is required to ask permission first, however. The prohibition on the dissemination of circumvention devices also applies to reverse engineering. Under the "trafficking ban", a person may only develop and employ technological means to circumvent and make the circumvention information or tool available to others solely for the purpose of achieving interoperability. Reverse engineers are not exempt from the "trafficking ban" only if they permit the device to be made available to other persons for the purpose of gaining access to protected works for infringing purposes.
>>top
Question: What are the limitations of the interoperability criteria for the DMCA's reverse engineering exemption?
Answer: Section 1201(f) allows software developers to circumvent technological protection measures of a computer program that was lawfully obtained in order to identify the elements necessary to achieve the interoperability of an independently created computer program to achieve program to program interoperability. This means that reverse engineering a product to achieve interoperability between data and program is not permitted, nor is reverse engineering for any other purpose. In Universal v. Corley, the district court in New York held that this limitation on the interoperability criterion of the exemption therefore did not apply to the circumvention of the access control mechanism protecting digitally formatted works, such as music, movies, or video games. In order to be viewed on a computer, motion pictures on DVD require software systems that enable the Content Scrambling System to be decrypted in addition to the hardware requirement of a DVD drive. From the perspective of the consumer, the inability to view their DVDs on computer players that do not decrypt CSS may seem to be a problem of software interoperability.
The issue of whether or not the use of a technological protection measure can allow a copyright owner to control the hardware products on which the protected content can be used has not yet been fully addressed by the courts. By limiting the reverse engineering exemption to interoperability between programs, the DMCA may have effectively granted copyright owners some control over the hardware products used to operate digitally protected content in addition to the content itself. Without consideration of the effect of technological protection measures, courts have held that copyright holders cannot use copyright to exercise control over products which are outside the scope of the owner's rights under copyright. For example, in the recent case of Sony v. Connectix (which did not include a DMCA claim), the Ninth Circuit held that a product allowing Sony games to be played on computers and not only on the Sony PlayStation was a creation of a new product. The court considered the reverse engineering work engaged in during the creation of the product a "transformative" use of the initial copyrighted work, making it permissible according to copyright law.
>>top
Question: How are software development projects conducted over the Internet affected by the DMCA?
Answer: While the reverse engineering exemption permits software programmers to develop and distribute circumvention tools as part of their projects, there are significant limitations over who can do so and in what manner they can do it. Section 1201(f)(3) provides that only the person who performs the reverse engineering can provide the information necessary to achieve interoperability to others. Collaborative project environments conducted over the Internet, such as those used by many open source software developers may be considered illegal under a strict interpretation of the exemption. Even if the
sharing of information regarding circumvention is done for the purpose of developing an interoperable product, its placement on the Internet may be interpreted as "trafficking" under the circumvention device ban.
>>top
Question: How is reverse engineering different from circumvention?
Answer: Circumvention, according to Section 1201(a)(3)(A), means "to descramble a scrambled work, to decrypt an encrypted work, or otherwise to avoid, bypass, remove, deactivate, or impair a technological measure, without the authority of the copyright owner." Reverse engineering, on the other hand, is the scientific method of taking something apart in order to figure out how it works. While not all acts of circumvention require the use of reverse engineering, the reverse engineering of works protected by technological mechanisms requires circumvention. The placement of digital protection systems on copyrighted works essentially fences in the information a reverse engineer seeks to discover about the way the product works.
>>top
Question: Someone has alleged that, by putting the process for running their equipment on a web page, I have infringed their copyrights. Are they right?
Answer: No. Copyright does not cover ideas, processes, procedures, systems, or methods of operation. See Sec. 102(b)

Blood Pressure

While blood pressure is a very common problem for people as they age this is not to say that it is something that we should accept as normal.

Often referred to as the silent killer, hypertension (high blood pressure) is the reason why a good deal of the population don't reach the age that they should expect.

High blood pressure is caused by constriction of the arteries which makes it harder for the heart to pump blood through the body.
When the blood isn't flowing freely to all areas of the body the result of this lack of oxygen to the tissues is increased aging.

In addition to this accelerated aging there are the other factors of heart and kidney disease and strokes that can result in early death.

With high blood pressure, due to the fact that the heart has to work harder to pump the blood around the body, this increased pressure causes more hardening of the arteries which makes it all the harder on the heart to maintain the blood supply.

By avoiding the danger foods that can cause high blood pressure such as salt, caffeine, sugar and refined grains you will be helping to reduce the chance of getting high blood pressure and in doing so increase your chances of living longer.

Reducing the stress in your life will also help as will getting enough sleep regularly.

Essential fats will help you maintain better health and garlic has been shown to reduce blood pressure.

Exercise will help to lower blood pressure and you will also get all the other benefits that exercise brings with it such as improved muscle tone, lower body fat, and usually a more positive outlook on life that will also lower stress levels.

If your blood pressure is high then you will need medication to get it to more acceptable levels but you should still make the necessary lifestyle changes that can eventually help you to get off the medication and lead a healthy and long life.
CONSULATE GENERAL OF FRANCE
DATTA PRASAD BUILDING, 2ND FLOOR,
10 NOWROJI GAMADIA CROSS ROAD,
MUMBAI - 400 026
TEL:2495 0918/ 1870/ 4952
FAX:2495 0312
TIMINGS - MON TO FRI
OFF: 0900 TO 1700 HRS
VISA: 0900 TO 1100 HRS (GENERAL PUBLIC & INDIVIDUAL)
0900 TO 1030 HRS (TRAVEL AGENTS)


FRANCE

Business Requirement's

Valid Passport(Original + one photocopy of the first and last page of the passport)
One Visa Application form Duly filled in Capital's and Signed as per Passport
Two recent passport-size photographs, 3.5 X 4.5 cm (80 % of the face should be visible) without border and taken against light background with matt or semi matt finish
Covering Letter from Indian Company Stating Applicant's Name, Designation, Purpose & Duration of Visit
Invitation from France Stating Applicant's Name, Designation, Purpose & Duration of Visit to come Directly to the Embassy by FAX along with Accomodation Arrangement
Return Confirmed Air Ticket's for Stay Duration(photocopy of ticket also)
Foreign Exchange Duly Endorsed / Valid International Credit Card Copy
Last Three year's Income Tax Returns Copie's
Latest three Month's Saving's Bank Statement
Brief Indian Company Profile
Overseas mediclaim insurance
Salary Certificate & Appointment Letter from Indian Compay

Time Taken: 02 to 03 Working Days


WORK PERMIT: INDIAN NATIONALS SEEKING VISA FOR A WORK PERMIT MUST HAVE
APPROVAL FROM THE INTERNATIONAL IMMIGRATION OFFICE IN FRANCE. WHEN
APPROVAL IS RECEIVED THE EMBASSY WILL ADVISE APPLICANT. LONG TERM VISA
WILL BE GRANTED.

DDTEFP document provided by the French Company for people going on Training for more than 3 weeks.
Visa validity can be from 1 to 5 years with total stay of 180 days allowed in a year. This can be covered by multiple visits, but each visit must not exceed 90 day

Visa Procedure - France

CONSULATE GENERAL OF FRANCE
DATTA PRASAD BUILDING, 2ND FLOOR,
10 NOWROJI GAMADIA CROSS ROAD,
MUMBAI - 400 026
TEL:2495 0918/ 1870/ 4952
FAX:2495 0312
TIMINGS - MON TO FRI
OFF: 0900 TO 1700 HRS
VISA: 0900 TO 1100 HRS (GENERAL PUBLIC & INDIVIDUAL)
0900 TO 1030 HRS (TRAVEL AGENTS)


FRANCE

Business Requirement's

Valid Passport(Original + one photocopy of the first and last page of the passport)
One Visa Application form Duly filled in Capital's and Signed as per Passport
Two recent passport-size photographs, 3.5 X 4.5 cm (80 % of the face should be visible) without border and taken against light background with matt or semi matt finish
Covering Letter from Indian Company Stating Applicant's Name, Designation, Purpose & Duration of Visit
Invitation from France Stating Applicant's Name, Designation, Purpose & Duration of Visit to come Directly to the Embassy by FAX along with Accomodation Arrangement
Return Confirmed Air Ticket's for Stay Duration(photocopy of ticket also)
Foreign Exchange Duly Endorsed / Valid International Credit Card Copy
Last Three year's Income Tax Returns Copie's
Latest three Month's Saving's Bank Statement
Brief Indian Company Profile
Overseas mediclaim insurance
Salary Certificate & Appointment Letter from Indian Compay

Time Taken: 02 to 03 Working Days


WORK PERMIT: INDIAN NATIONALS SEEKING VISA FOR A WORK PERMIT MUST HAVE
APPROVAL FROM THE INTERNATIONAL IMMIGRATION OFFICE IN FRANCE. WHEN
APPROVAL IS RECEIVED THE EMBASSY WILL ADVISE APPLICANT. LONG TERM VISA
WILL BE GRANTED.

DDTEFP document provided by the French Company for people going on Training for more than 3 weeks.
Visa validity can be from 1 to 5 years with total stay of 180 days allowed in a year. This can be covered by multiple visits, but each visit must not exceed 90 day

Visa Procedure - USA H1

CONSULATE GENERAL OF THE UNITED STATES OF AMERICA
220, MOUNT ROAD,
CHENNAI - 600 006
TEL: 827 3040/ 7835
FAX: 825 0240
TIMINGS - MON TO FRI
VISA: 0815 TO 1100 HRS


H1

Completed Application Form DS-156, DS-157, DS-158
Passport valid for at least six months beyond the applicant's intended period of stay.
One photograph.The photograph should measure 2 inches square (roughly 50 mm square) with the head centered in the frame but must have only a plain white background.
BEP/Covering letter from company in India indicating the purpose and length of the trip as well as the firm's intent to defray the costs of the trip.
Original Petitions
Copy of appointment letter with the company
All Educational and Experience certificates
Salary Slips for the last three months
Bank statement for last six months
IT Returns for last three years
Previous work experience certificates

Personal Presence is a must
Applicants must bring two demand drafts with them to the interview: one draft for the application fee and second draft for the issuance fee.

Fee for visa application are as follows:

Application Fee: Rs. 4400 Non Refundable
Visa Issuance fee: INR 2200
Courier Pass back System Fee Rs. 441

H4 (dependant)
Visa Applications
Original Passports
Covering letter from the company
Copy of Marriage Certificate + Original
Marriage Ceremony photos (10 nos)
2 photos ( 50” x 50” white background)
Copy of Petition of Principle applicant
Original birth certificate of child along with a copy
Copies of all the pages of the passport of the principle applicant, if he/she is already travelled

Personal Presence is a must
Applicants must bring two demand drafts with them to the interview: one draft for the application fee and second draft for the issuance fee.

Fee for visa application are as follows:

Application Fee: Rs. 4400 Non Refundable
Visa Issuance fee: INR 2200
Courier Pass back System Fee Rs. 441

Visa Procedure - USA L1 Blanket

CONSULATE GENERAL OF THE UNITED STATES OF AMERICA
220, MOUNT ROAD,
CHENNAI - 600 006
TEL: 827 3040/ 7835
FAX: 825 0240
TIMINGS - MON TO FRI
VISA: 0815 TO 1100 HRS

L1 Blanket

Completed Application Form DS-156, DS-157, DS-158
Passport valid for at least six months beyond the applicant's intended period of stay.
One photograph.The photograph should measure 2 inches square (roughly 50 mm square) with the head centered in the frame but must have only a plain white background.
BEP/Covering letter from company in India indicating the purpose and length of the trip as well as the firm's intent to defray the costs of the trip.
Original Petitions
Copy of appointment letter with the company
All Educational and Experience certificates
Salary Slips for the last three months
Bank statement for last six months
IT Returns for last three years
Previous work experience certificates

Personal Presence is a must
Applicants must bring two demand drafts with them to the interview: one draft for the application fee and second draft for the issuance fee.

Fee for visa application are as follows:

Application Fee: Rs. 4400 Non Refundable
Visa Issuance fee: INR 2200
Courier Pass back System Fee Rs. 441

L 2 (dependant)
Visa Applications
Original Passports
Covering letter from the company
Copy of Marriage Certificate + Original
Marriage Ceremony photos (10 nos)
2 photos ( 50” x 50” white background)
Copy of Petition of Principle applicant
Original birth certificate of child along with a copy
Copies of all the pages of the passport of the principle applicant, if he/she is already travelled

Personal Presence is a must
Applicants must bring two demand drafts with them to the interview: one draft for the application fee and second draft for the issuance fee.

Fee for visa application are as follows:

Application Fee: Rs. 4400 Non Refundable
Visa Issuance fee: INR 2200
Courier Pass back System Fee Rs. 441

Visa Procedure - USA B1

CONSULATE GENERAL OF THE UNITED STATES OF AMERICA
220, MOUNT ROAD,
CHENNAI - 600 006
TEL: 827 3040/ 7835
FAX: 825 0240
TIMINGS - MON TO FRI
VISA: 0815 TO 1100 HRS


USA- B1



Completed Application Form DS-156 and DS-157
Passport valid for at least six months beyond the applicant's intended period of stay.
One photograph.The photograph should measure 2 inches square (roughly 50 mm square) with the head centered in the frame but must have only a plain white background.
BEP/Covering letter from company in India indicating the purpose and length of the trip as well as the firm's intent to defray the costs of the trip.
Letters of invitation from USA.
Copy of appointment letter with the company
All Educational and Experience certificates
Salary Slips for the last three months
Bank statement for last six months
IT Returns for last three years


Personal Presence is a must
Applicants must bring two demand drafts with them to the interview: one draft for the application fee and second draft for the issuance fee.

Fee for visa application are as follows:

Application Fee: Rs. 4400 Non Refundable
Visa Issuance fee: INR 2200
Courier Pass back System Fee Rs. 441

Visa Interview

Hello friends…

VI is just a 5 mins(mostly 2-3 mins) game!!! Just play it safe……rest all is in GOD Hands…..think positively and cake will be urs!!!


Mine interview was on 2nd of July…Delhi consultant…10.15 am………waiting line was not very long….

Every one has 2 thoughts in mind either feel bad by thinking rejection or very excited and happy by thinking acceptance... ….Lets move directly to Interview it will be more beneficial for all of u…!!!!

TIME 10.20 am…..there were lot of different thoughts going on in mind..then just Vo officer called me….

VO was a lady officer which I didn’t want….I always feel its difficult to handle Girls….but now some how have to manage ….

Me- Gudmorning mam(with fake smile)
VO- why US?(looks hard)
Me - For Study (befuddle to see her face)
VO- from where u completed UG
Me- Kurukshetra univ
VO- checked on comp.after that sd ok…
Me- B.tech Biotechnology(added in between)
VO- when passed out?
Me- 2006
Vo- whats doing since then…
Me- working with uttam laboratories…(not very true, had proof of work ex)
VO- worked for how long..
ME - told…(work ex chapter closed here)
VO- whats was ur % in UG
ME- 72.25 with distinction(added to impress her)
VO- what do u mean by distinction?
Me- (confused) told means university awarded honors degree ..
VO- sd good….(looking at I-20) so ur father is funding u?
Me – yes mam(pick up my file to pretend as ready to show financial docs…)
Vo- what ur father do.
ME- senior bank manager, in karnal
Vo- mother also working?
Me- yes..she is self employed. do trade in stock market and take coaching classes at home..(told lie to her)
Vo- what type of coaching classes?
Me- Teaches upto 8th standard. (Financial file was waste to bring…finances over)
Vo- ur Toefl score?
Me - 83 (knew her next question)
Vo- why so low score?
Me- (really don’t know what to say…one more lie)..There was some technical problem…
Vo- what type of technical problem?
Me- (true)my exam was on 7th January and due to ETS server problem my exam was postponed on 14 of jauary and(now its fake) the same problem was also on 14 jan..so was not able to perform well….(on 14th it was actually working very fine)
Vo- kept quite(was thinking something)
At this time I felt if she enquired then I will be gone…or if she believes then I can took ride of her..
Vo- ok..do ur GRE score is enough good to support ur toefl score.
ME- yes mam(bad score)…quant score is 750 and verbal score is 380..total 1130..
Vo- fine
End of this difficult phase…now she moved on to schools..
VO- how many schools u applied?
Me- 5
Vo- admissions?
Me- 3 aceptance and 2 rejections
Vo- rejections from where?
ME- UB and RIT
VO- why UTA?
ME- (have already crammed)so bakdiya
Vo- how u selected this univ.
Me- by checking course work and ranking at usnews.com and also this univ have collaboration with SWMC ,texas dallas..and its ranking is very good..
Vo- what univ ranking and whats SWMC ranking?
Me- univ around 90 and swmc around 20.
Vo- again thinking after few sec sd good…
VO- any school?
Me- no..
Vo- from any other university?
Me- no,but at Nebraska lincon I got admit in Ph.D program and(now its fake) they assured me to give school when I will join program…
VO- which program?
Me- told,,,(and added) but I am going to UTA because have interest in biomedical specially in artificial organs!!!
Vo- that’s good
Vo- asked for my all acceptance and rejections letter…
Me- given(was just relaxing)
Vo-(while checking letters).what about ur brother..
Me-ya..younger brother and sisiter..
Vo- again asked , no I am asking ur brother is elder or younger…..
Me- younger…
Vo—again checked my offer letters..
Type some thing on pc…..I was not thinking any thing..just relaxing to give her more fake answers….
Then she sd….ok ur VISA is approved..and will be couriered in next 3 days…and returned my letters…

I was still not believing her words…was extremely happy and forgot to thanx her…..

Me-ok mam.
Just collected my all 3 files Now its time to party!!!!!! Ran outside to meet my parents who were waiting outside eagerly!!!

They were more happy then me…..it was really a memorable moment ……after that was the time to call friends..

May GOD bless all of us…

UK - Visa Procedure

Business Visa
Valid Passport for six months
One visa form
Three Photos- white background 50 x 50
Covering Letter
Invitation from UK
Income Tax papers from company and passenger for last 3 years (Originals)
Bank Statement from company and Passenger for last 3 months (Originals)
Salary Certificate
Appointment Order
Company profile and Balance Sheet

U K consulate needs all the original documents to be submitted with a set of duplicate copies .This is mandatory . The originals will be sent to the U K consulate chennai and then will be delivered back .
only the invitation will be accepted as a copy
Documents like bank statements,salary slips ,covering letter ,i t returns and all others to be submitted in originals

Workpermit
Visa application form
Two recent passport size photographs
Visa application fee : Demand drafts (per passport) in foavour of British Deputy High Commission, Chennai
Covering Letter to the UK Deputy High Commission
Original Work Permit letter from DFEE (Dept for Education and Employment)
Appointment Letter of Employee
Salary Certificate
Bank Statement / Income Tax Returns

If consulate recomends for Medical Test

Documents needed for Medical Test
Medical Examination Form
Your Valid Passport
5 recent passport size photographs of yourself (recent within 6 months)
1 Negative of your passport size photograph
Cost of X-ray, Medical tests and Clinical Examination
The Full examination comprises of Chest X - ray, Clinical examination and other tests. At X -ray room,you will be required to produce your passport, passport size photo together with negative for incoporating in x-ray film. (children under 14 and Pregant
Bangalore Hospital, 202,R V Road, 560004 Tel 6561933 - For X-ray and other tests
X-ray and other tests are to be carried out first. You must take an appointment for your clinical examination at any of the following hospitals, after completing X-ray formailities and other medical tests
Consulate decides which hospital , and reports are directly send to the consulate

Recommended Hospitals for Clinical Examinations
Dr. B M Agadi, Agadi Hospital , No 35, H Siddaiah Raod, Wilson Garden, Bangalore 560027, Tel 2222925
Dr. Jaya M Bhat, 90/100, Prestiage Towers, Richmond Road, 5600025, Tel 2235336
Passport valid for atleast 6 months

Sole representative Visa
Valid Passport for six months
One visa form
Three Photos- white background 50 x 50
Covering Letter
Original Notarised statement on company letter head addressed to entry clearance officer of British High Commission Chennai
Original Passenger's notarised statement stating for the above mentioned visa and the date of joining the company with his present designation.
Letter from the company stating his date of joining and designation
Letter from the UK company stating his requirement addressed to British Deputy High Commission Chennai.Photo copy can be sent.
Transfer of Employment letter from the Indian Company-ORIGINAL
03 Months salary slips
03 years IT original papers.
03 months company bank statement-Photocopies

If the spouse and the children are accompanying
Valid Passport for six months
One visa form
Three Photos- white background 50 x 50
03 wedding photographs
Wedding Invitation card-Original
Marriage certificate or the affidavit has to be done.
Birth certificates of children-Original

Canada - Visa Procedures

Business Requirement's

Valid Passport
Three Recent Passport Size Photograph's Colour With White Back Ground Developed From Negative. Please provide three identical copies of a recent photograph of yourself. Please take following precautions while submitting the photographs.The photographs should be - 1. In Colour 2. Full Face (Without sunglasses and normally without a hat or other head covering, unless the applicant wears such items because of their religious belief or ethnic background) 3. Taken against a light (white or light blue) background so that the features are distinguishable and contrasted against the background. 4. Clear and of good quality.5. Printed on normal photographic paper. 6. Unmounted. 7. 2 inches x 1.5 to 2 inches in size.8. Write Name and Date of Birth on the back of photographs.9. Scanned and Digital Photographs are NOT accepted.
One Visa Application form Duly filled along with Family Information Sheet in Capital's and Signed as per Passport Photograph Specifications
Covering Letter from Indian Company Stating Applicant's Name, Designation, Purpose & Duration of Visit
Invitation from Canadian Associate Stating Applicant's Name, Designation, Purpose & Duration of Visit
Foreign Exchange Duly Endorsed / Valid International Credit Card Copy
Return Confirmed Air Ticket's for Stay Duration / Itinerary Print Out
Last Three year's Income Tax Returns Copie's
Latest Six Month's Saving's Bank Statement
Brief Indian Company Profile
Salary Certificate & Appointment Letter from Indian Compay
Medical Insurance For Stay Duration may be asked



Time Taken: 03 Working Days & Consulate Closed On Every Friday


Note: Applicant Qualify for Agent's Drop Box, Only if the applicant has travelled to one or more countries for UK/U.S.A/CANADA/AUSTRALIA/NEW ZEALAND
in the Last Two Years or is Holding Valid visa for U.S.A / UK / Australia / New Zealand or of Age Sixty Years and Over. If Not Applicant Has to Come in Person.
Cases Which are accepted by Drop Box can be called for Interview. Interviews are Conducted On Monday to Thursday bewteen 0730 Hrs to 1030Hrs.


Workpermit.

Passport valid for a duration of more than 6 months than the duration of workpermit.
Workpermit application form duly filled and signed.Family info and Canadian Salary is mandatory.
Three Recent Passport Size Photograph's Colour With White Back Ground Developed From Negative
Covering letter from Indian Employeer explaing the reason for deputation and duration.
Work Permit approval/HRDC letter from Canada to be enclosed.
Last Three year's Income Tax Returns Copies
Brief Indian Company Profile
Salary Certificate & Appointment Letter from Indian Compay

Note: Applicant to under go medical test if applying for more than 6 months.

Time Taken:- Three working days.

CANADIAN HIGH COMMISSION
7/ 8 SHANTIPATH, CHANAKYAPURI
NEW DELHI - 110 021
TEL:5178 2000 / 2688 8318
FAX:5178 2020 / 2687 6579 / 2688 6736 (IMMIGRATION)

Visa Procedure - AFGHANISTAN

Valid Passport
Two Visa Application form Duly filled in Capital's and Signed as per Passport(Photocopy allowed)
Two Recent Colour Passport Size Photograph's
Covering Letter from Indian Company Stating Applicant's Name, Designation, Purpose & Duration of Visit
Invitation from Afghanistan Associate Stating Applicant's Name, Designation, Purpose & Duration of Visit
Return Confirmed Air Ticket's for Stay Duration
Foreign Exchange Duly Endorsed / Valid International Credit Card Copy
A letter of recommendation from the Indian Chamber of Commerce and business correspondence/ letter of invitation from the Afghani business associates are required. The validity of the visa is for 90 days with a 15 days (maximum) stay allowed.

The visa may be issued for maximum stay of 15 days with single entry.
The validity of the visa is for 90 days from the date of issue.
Processing time is 24 hrs after visa approval is received.
Visa is Gratis (free of charge)
All visa applications are referred to Ministry of Foreign Affairs and can take 7 to 10 days for approval.
Extension of visa is possible from the Ministry of Foreign Affairs in Afghanistan
Time Taken: 02-03 Weeks


EMBASSY OF THE ISLAMIC STATE OF AFGHANISTAN
5/50-F,SHANTIPATH,CHANAKYAPURI,
NEW DELHI - 110021
TEL:2410 0412/ 2688 3601/3632
FAX: 2687 5439
TIMINGS - MON TO FRI

STUDENT VISA PROCEDURES FOR DIFFERENT COUNTRIES

Counselling the students before they apply for their visa is extremely very important. Extreme care should be taken and emphasis should be laid on the current visa procedures and guidelines before the preparation of all the documents.
Irrespective of the country to which the student is applying for visa, there are certain factors, which influence the issuance of visa.
 The student's higher educational objectives
 The financial capabilities of the sponsor to support the student.
 The students bonding with the country, to come back after completing his education abroad.
USA STUDENT VISA PROCEDURE
After getting an I-20 from USA Universities / Colleges, the student should book an appointment date for VISA Interview through TTS Website i.e., http://www.vfs-usa.co.in and the printout of the appointment date has to be taken for the interview.
Following List of Documents to be carried for the Interview
 Web appointment receipt
 SEVIS fee receipt, which is obtained by paying US $ 100 and filling up I-901 form on www.fmjfee.com. Preferable mode of payment of this US $ 100 is through International credit card as you can get instant confirmation of receipt of payment .
 Original Passport (should be valid at least for 6 months)
 Original I-20 duly signed
 Application forms duly filled and signed (DS-156, DS-157 & DS-158 for male candidates & DS-156 & DS-158 for female candidates)
 Original Score Report of TOEFL / GRE / SAT / GMAT
 All original academic documents (From X onwards)
 2 passport size photographs 50 mm X 50 mm (Colour photos with white or light background)
 Visa application fee. A demand draft of Rs.4,600/- from any nationalized bank favouring AMERICAN CONSULATE GENERAL, CHENNAI (Depends upon the Web Appointment taken)
 An amount of Rs.441/- by cash has to be paid to the TT services.
 Original bank statement (Twelve months transactions are recommended)
 Chartered Accountant Certificate. (It is the net-worth Certificate, which contains immovable assets, liquid assets and income of the sponsor. In other words it contains the total summary of the financial background of the student.
o Immovable Assets: The fixed assets or properties possessed by the family reflect the financial stability of the student and the ability of the family to fund their child's education. Ex: Houses / buildings, lands / plots, agricultural lands, etc. (Valuation report of the immovable assets should be taken from a Chartered Engineer or Government approved valuator or Government approved Civil Engineer and a copy of valuation report should be attached to CA certificate.
o Movable Properties: Bank balances, fixed deposits, provident fund, UTI, LIC, NSC certificates, jewellery, vehicles, etc. (All the supporting documents of movable properties in original should be carried along with CA certificate. Government approved Jeweler valuation report of the jewellery should also be taken).
o Liquid Funds: The liquid funds readily available in the banks should be at least 1 ½ times the expenses reflected in the I-20 depending upon the duration of the course.
o Proof of Income: Income can be from different sources but it should be supported with relevant documents. The annual income should be calculated only on the tuition fee i.e., 1 ½ times of the amount and it can be derived from the following sources of Parents / Sponsors income.
 Salaries: salary certificate, Pay slip, Form-16 & IT returns
 Business Income: IT returns, Business registrations, Business license, Computation of Income & Profit & Loss account and Balance Sheet.
 Agricultural income: MRO Certificate, Agricultural receipts, Pass Book
 Interest from FDR's shares: Original Certificate
 Rental Income: Rental agreement, Declaration of the tenant, Counterfoil of rental receipts
 AFFIDAVIT OF SUPPORT from sponsors (on Rs.20/- Non-judicial stamp paper) duly signed. In case of Company sponsorship - Sponsorship agreement, C.A.Certificate of the company, Current Bank Statement, P & L A/c, Memorandum of Understanding, No objection letter from the remaining partners / directors, Registration papers and IT returns of the company.
 All Supporting Documents :
o MRO Certificate, Agricultural receipts (for agricultural income)
o Pass Book (for Bank statement)
o Income Tax Papers (of sponsors)
o Property Documents (Original as well as Xerox copies)
o Salary Certificate, Proof of Annual Income.
After preparing all the above documents with supporting documents, the student should be ready to face the personal interview.
Frequently asked questions are : -
 Why you have chosen USA? Why not India?
 Why this particular University?
 Which program you have enrolled? What do you know about this program? How this program will help you?
 How many Universities you have applied?
 How many I-20s you have received?
 What are your future plans?
 How can you convince me that you are not a prospective immigrant?
 Who are your sponsors?
 What is their Occupation and Gross Annual Income?
 Why your Passbook is reflecting the recent transactions?
 Do you have any relatives or friends in USA?
 Why your scores are low?
If visa office is satisfied with the answers they will collect the passport and stamp the visa and the same will be delivered to the residence of the student with in a week.

Note :A student can apply for F-1 visa to the Embassy, any day within 90 days of the date of reporting. The student is not permitted to enter the USA beyond 30 days in advance of the reporting date.
USA CONSULATES ADDRESSES IN INDIA
NEW DELHI MUMBAI CALCUTTA CHENNAI
Address: US Embassy, Shantipath, Chanakyapuri New Delhi. The U.S. Consulate General Lincoln House 78 Bhulabhai Desai Road Mumbai 400026. The U.S. Consulate General 5/1Ho Chi Minh Sarani Calcutta 700071. The U.S. Consulate General Mount Road Chennai 600006.
Phone/Fax: P.NO:(11)2419-0106 Fax:(11)2419-0017 P.No:(22)2363-3611 Fax:(22)2363-0350 P.No:(33)2282-3611 Fax: (33)2282-2335 Phone: (44)2811 2000 Fax: (44)2811 2050
Nonimmigrant Office Timings: 8:30 AM. to 5:30PM (Mon to Fri). 8:30 AM to 5:00 PM. (Mon to Fri). 8 AM - 5:00 PM. (Mon, Tue, Thu, Fri). **(Closed on Wed). 8:15 AM--5:00PM. (Mon to Fri).
States covered: Jammu & Kashmir, Himachal Pradesh, Haryana, Punjab, Rajasthan and Uttar Pradesh. Gujarat, Madhya Pradesh, Chattisgarh, Maharashtra and Goa. Assam, Manipur, Meghalaya, Nagaland, Tripura, Bihar, Orissa and West Bengal Andhra Pradesh, Kerala, Karnataka and Tamil Nadu
NOTE : To download applications forms(DS-156,DS-157,DS-158) visit http://www.vfs-usa.co.in.

Basic ClearCase FAQs

1.1 UNIX-ish and admin questions
1.1.1 How to remove (specify) a file with a name beginning in "-"?
Say "./-filename".
1.1.2 setview in scripts doesn't work
Running "setview" without the "-exec" flag starts a new shell.
Generally, using "setview -exec" is a deprecated way of doing things. It will not work on NT, and it will not work in snapshot views. Instead, one should use view extended path names.
When writing scripts, it is a good idea to normalize path names to the view root, which can be obtained by running "cleartool pwv -root". Note that this returns an empty string when run in a setview context. Therefore, you can safely append an absolute pathname beginning wiht the vob tag to the value returned by "cleartool pwv -root".
1.1.3 Get "Event not found." error when running the cleartool find command. (Frederick Sena )
For example:
% ct find . -version "!version(/main/0)" -print
This is a csh'ism. The "!" is interpreted as an event reference, and this is done prior to resolving the quotes. Use "\!" as in:
% ct find . -version "\!version(/main/0)" -print
1.1.4 When I try to unmount a vob, I get a "Device busy" error and the vob does not unmount. (Frederick Sena )
Make sure no process has its working directory set to a path beginning with the vob's vob tag. One can use fuser(1) to determine which processes are using that file system.
More specifically, go to /view (view root of the ClearCase Unix Server) and type 'fuser -cu'. If there are entries, try 'fuser -ck' (as root).
It has been observed that this isn't enough in some cases. In extreme cases, only a reboot will clear out the locks. A classic one is when /data (where you find 'clearcase/vobstore') is a link to a remote file system. If that file system is removed (typically, during DRP - Disaster Recovery Plan -) whereas ClearCase server is still up... you can only reboot (the mvfs module will deny any attempt to unmount itself: device busy)
1.1.5 In which order should I upgrade my servers and clients?
Servers first, clients later. Always refer to the release notes for details on any particular upgrade.
1.1.6 When shutting down Clearcase, I get "device busy"...
See 1.1.4.
1.1.7 How can I support more users with my limited set of licenses?
First, start by monitoring your license usage over the day. There are some nice packages that allow you to do this, For example Ed Finch's ClGraph.
The next thing is to reduce the license timeout to the minimum allowed: 30 minutes. Do this by adding a line saying: -timeout 30 into your /var/adm/atria/license.db file. You may also want to give a list of priority users by adding lines saying: -user userid.
If you still run out of licenses (and you can't afford to buy more), you can ask people to say clearlicense -release, but keep in mind you can only do this a limited number of times per day (approx. twice the number of licenses).
Touching the /var/adm/atria/license.db file releases all licenses at once, but again this can only be done 12 times per day. I use a crontab script similar to the one below, touching the file at a frequency that roughly matches my usage pattern:
5 9,10,11,1,2,3,4,5,6 * * * /bin/touch /var/adm/atria/license.db
Yet another way to reduce license usage is to encourage developers to use snapshot views and ensure that your change process knows how to deal with snapshot views, as there are a couple of pitfalls. Developers usually need little encouragement, as they will gladly sacrifice dynamic views for faster build performance, especially on NT systems.
1.2 Elements
1.2.1 How to undo a mkelem if rmelem is disabled?
Most sites disable the rmelem command, therefore you cannot undo a mkelem directly. Instead, you should use the rmname (rm for short) command.
Suppose, for example, you accidentally created the subdir element as a file element instead of a directory element. Use this procedure to correct the problem:
% ct mkelem subdir <== error!
Created element "subdir" (type "compressed_file").
Checked out "subdir" from version "/main/0".

% ct ci -identical -nc subdir
Checked in "subdir".

% ct rm subdir
cleartool: Warning: Object "subdir" no longer referenced.
cleartool: Warning: Moving object to vob lost+found directory as "subdir.9e881d0d390711d5b3ee000180a933fe".
Removed "subdir".

% ct mkdir subdir
Created directory element "subdir".
Checked out "subdir" from version "/main/0".

%

The checkin is mainly for cosmetic reasons and to avoid confusion if this procedure is used in a snapshot view. In the end, the element isn't removed but just relocated into the trash bin. The ClearCase administrator will empty out the trash once in a while.
This procedure will not work as described if you don't notice the error immediatly and check in the containing directory. If you later check out the directory and remove the element, you will notice that it doesn't get relocated into lost+found, since the previous version of the directory still has a reference to that element. If you then attempt to create a directory element with the same name, the evil twin trigger will get in your way. You can fool the trigger, though, by first creating a directory element with a different name and then renaming it using the ct mv command.
1.2.2 How to undo an rmname?
The important thing to remember is that renames, additions and removals of elements from a directory are all harmless and recoverable, so don't panic!
It helps to visualize additions, removals and renames as editing the containing directory. It's very much like adding, removing or changing lines in a file, and the recovery procedures are similar.
The easiest thing to do is to simply cancel the checkout of the directory. This will restore the previous version of the directory, and the removed elements will reappear, as if by magic:
% ct co -nc .
Checked out "." from version "/main/234".

% ct rm file <=== OOOPS!!
Removed "file".

% ct unco .
Checkout cancelled for ".".

% ls file
file

%
If you don't notice the error immediately and have already checked in your directory, you can take advantage of the evil twin trigger and allow it to help you. Simply attempt to re-mkelem the deleted element and follow the instructions:
% ct co -nc .
Checked out "." from version "/main/234".

% ct mkelem file
ERROR: An element named "file" already exists in
in some other version of ".":

Instead of creating a new element, you probably want to
create a hard link to the existing element, like so:

cleartool ln .@@/main/LATEST/file .

% ct ln .@@/main/LATEST/file .
Link created: "./file".

%
In general, directories don't contain elements but contain named links to elements. Removing an element doesn't destroy the element, it just removes the link. It is therefore almost trivial to resurrect a removed element.
One consequence is that removing directories and removing files are really the same operation, and the recovery procedure is identical. In particular, if you accidentally removed a whole tree, you only need to recreate the link to the topmost directory of that tree.
1.2.3 I do a findmerge or a checkout and see: "Not a VOB object", but I know that the file is a VOB object.
You are probably dealing with an eclipsed file. Run "cleartool ls" on the file, and if you see "[eclipsed]", simply rename the file out of the way using a plain ordinary "mv" and retry the operation.
The most common way this happens is when developers copy files from other views. Don't do that. Merge the containing directories instead.
1.2.4 How can I locate Hard Links?
A more precise formulation would be: "How do I locate elements that are linked into two or more different directory elements?". There is no really good method to do this except by exhaustive search, for example by using this technique:
Run this command:
% find . -print | record_inodes
where record_inodes is this little perl script:
#!/bin/perl

%links = (); # hash indexed by inodes containing an array of
# directory locations

%twice = (); # hash indexed by those inodes referenced by two
# or more directories
while (<>) {
chomp;
next if $_ eq '.'; # skip top level
next if -l $_; # skip over symlinks

($dir = $_) =~ s,/[^/]*$,,; # determine directory of element

# get inode of version 0, if it exists. If not, use
# just stat the file itself. This way, this script can
# be used outside of clearcase too.
$zero_version = $_.'@@/main/0';
($dev, $inode) = (-e $zero_version
? stat($zero_version)
: stat($_));

if (exists($links{$inode})) {
# register new location and register inode as "interesting"
push(@{$links{$inode}}, $_);
$twice{$inode}++;
} else {
# initialize array of locations
$links{$inode} = [ $_ ];
}
}

if (%twice) {
print "------------------------------------------------------------\n";
for $inode (keys(%twice)) {
print(map(" $_\n", @{$links{$inode}}));
print "------------------------------------------------------------\n";
}
} else {
print "No element linked to multiple directories found.\n";
}
1.2.5 RCS Keyword expansion?
This is probably the single most often asked question. The simple answer is that ClearCase doesn't support RCS keyword expansion, mainly for one reason: it would break merges.
Since two different versions would always have a different RCS keyword expansion at the same location within the file, any merge between those two versions would invariably cause a conflict that couldn't be resolved automatically.
In general, "inband info" (i.e. storing information about an object within an object) is a bad idea, since care must be taken not to confuse any random string with the actual metadata. A vivid demonstration of the danger can be found when attempting to check into RCS files that explain how RCS keywords work.
Instead of storing metadata within the data, one should take advantage of ClearCase's extensive metadata types (attributes, hyperlinks, comments etc...).
The obvious follow-up question then is: "How do I access the metadata when I can't connect to ClearCase?" There are really two cases here:
 Version info on the production system;
 Version info in an offline development source tree, for example a disconnected snapshot view.
The correct solution to the first case is to insert the RCS keywords at build or packaging time. There are tools to insert keywords into binaries, for example the contributed package T0039 (ccwhat).
The second case is the best argument for implementing RCS keywords, and if it's truely important to your environment, read on...
There are ways to make RCS keywords work within ClearCase, but they are by no means trivial. The best method so far is to use the contributed package T0027, which contains both a trigger and a type manager. The trigger does the actual work of substituting RCS keywords, and the type manager avoids the merge conflicts by interposing itself between the file and the real type manager, removing all RCS keywords.
Note that even with this solution, your branching strategy should be set up to deal with the case described in the diagram on the right. Assume that the blue developer delivers a change (1) of some file into the red delivery branch. He then never touches that file again. The green developer then makes another change and delivers it (2). The blue developer, having done changes in some other files wants to sync up and executes a findmerge from the red branch, which will cause green's change to be merged over as a copy merge (3). Now, the blue developer wants to deliver his other changes, but since the merge in (3) caused the RCS keywords to change, findmerge will think that blue modified the file even though he didn't and cause (4) to happen, which is somewhat bewildering.
The reason this happens is because the findmerge algorithm has a case where the actual file content is compared. Unfortunately, findmerge does not use the type manager's compare function, but something hard coded and will think the files are different even though the only difference is in the keywords.
There are two possible workarounds:
 delete or rename the development branches after delivery. This is a good thing to do in general, since it will keep the version tree looking clean, especially if the development branch name is to be re-used for the next change;
 have the RCS keywords pre-checkin trigger look for a merge hyperlink, test if the merge was a copy merge and if yes, don't modify the keywords.
1.2.6 How to perform mass checkouts?
On UNIX:
% cleartool find path -print | awk '{print "co -nc \""$0"\""}' | cleartool
Most often, this is done in the context of upgrading third party software or doing some other form of mass checkin. Recently, Rational came up with clearfsimport, a tool that will apparently do the right thing. Stay tuned...
1.2.7 How to perform mass checkins?
On Unix:
% cleartool lsco -s -cview -me -avobs -fmt 'ci -nc "%n"\n' | cleartool
The commands above will fail if no changes have been made. You can either insert the -identical flag or re-run the above once more, this time canclling the checkouts with unco -rm.
Most often, this is done in the context of upgrading third party software or doing some other form of mass checkin. Recently, Rational came up with clearfsimport, a tool that will apparently do the right thing. Stay tuned...
1.2.8 what is an evil twin?
An evil twin is two links with the same name, each pointing to a different element, in two different versions of the same directory element.
The reason they are evil is because they create the appearance of a directory containing the same file on two different branches, when in fact they contain two different files with the same name. If this situation isn't detected, then one can very well end up with two change histories of something that everybody thought of being the same file, only to get a rude surprise at merge time. There is essentially no good way to merge the two change histories.
Evil twins get created when two developers concurrently add the same file to source control without coordination, or if one developer copies files from another developer's view and puts those files under source control.
Copying files around should be discouraged, but the best way to avoid evil twins is to create a pre-mkelem trigger that will search through some or all versions of the directory containing the new element, verifying that no link with the same name exists.
The following perl code implements this trigger and prints out a warning together with the suggested link command that will link the existing element into the version of the directory where the newly created element would have ended uup.
The trigger will also do a sanity check on the file name itself, catching most unintentional element creation attempts.
The trigger relies on the excellent ClearCase::ClearPrompt and ClearCase::Argv modules, available at a CPAN site near you.
#!/bin/perl

use ClearCase::ClearPrompt qw(:all);
use ClearCase::Argv qw(ctsystem ctexec ctqx);

# Deal with the possibility of no display on Unix.
BEGIN { $ENV{ATRIA_FORCE_GUI} = $^O =~ /win32/i ? 1 : $ENV{DISPLAY} }

#--------------------------------------------------------------------
# Debugging aid. Overloading the semantics of the standard
# CLEARCASE_TRACE_TRIGGERS EV: if it's set to -2 we dump
# the runtime environment into a file in the current dir.
#--------------------------------------------------------------------
if (int($ENV{CLEARCASE_TRACE_TRIGGERS}) < 0 &&
$ENV{CLEARCASE_TRACE_TRIGGERS} & 0x2) {
open (EV, ">chk_dup_elems_env.txt");
print EV "$x=$y\n" while (($x,$y) = each %ENV);
close EV;
}

#--------------------------------------------------------------------
# See if the user wants to suppress this trigger's actions:
#--------------------------------------------------------------------
exit 0 if $ENV{CCASE_NO_CHK_DUP_ELEMS};

#--------------------------------------------------------------------
# Figure out the null device.
#--------------------------------------------------------------------
$null = $^O =~ /win32/i ? 'NUL' : '/dev/null';

#--------------------------------------------------------------------
# Catch some really bad pathnames - we can't catch everything, but
# let's try to be good.
#--------------------------------------------------------------------

$elname = $ENV{CLEARCASE_PN};
$elname =~ s,\\,/,g if $ENV{OS} eq 'Windows_NT';
$elname =~ s,/*$,,;

if ($elname =~ /[\"\(\)\{\}\[\]\\\'\^~\!\#]/ || # illegal characters;
$elname =~ /\s+\// || # leading or trailing
$elname =~ /\/\s+/ || # spaces at slashes,
$elname =~ /^\s+/ || # or at the beginning
$elname =~ /\s+$/ || # or at the end;
$elname =~ /\.$/) # trailing dot.
{
# substitute offenders with X
$elname =~ s/[\"\(\)\{\}\[\]\\\'\^~\!\#]/X/g;
$elname =~ s/\s+\//X\// ||
$elname =~ s/\/\s+/\/X/ ||
$elname =~ s/^\s+/X/;
$elname =~ s/\s+$/X/;

$prompt = <
ERROR: The new element name contains characters
that will cause problems in many scripts.

Please do not use quoting characters within filenames.
Also, please do not end a filename with a dot, as NT
cannot deal with this. Finally, do not use leading
or trailing spaces. Your name was (X = illegal):

$elname

EOT
if ($ENV{CCASE_NO_CLEARPROMPT}) {
print STDERR $prompt;
} else {
clearprompt(qw(proceed -type error -default abort -mask abort -promt),
$prompt);
}
exit 1;
}

$dirname = $elname;
$elname =~ s,.*/,,;
$dirname =~ s,[^/]*$,.,;

@vlist = grep(!m,/\d+$,, ctqx(qw(lsvtree -short), $dirname));

# OK, now look in each branch of this directory for the file element to
# be created; display info on error.

$found = '';
%seen = ();
unless (-d $dirname.$ENV{CLEARCASE_XN_SFX}.'/main') {
# snapshot view
SNAP_VERSION:
foreach (@vlist) {
chomp;
if (m,/CHECKEDOUT$,) {
# Multiple (unreserved) checkouts appear multiple times
next SNAP_VERSION if $seen{$_};
$seen{$_}++;
($xpn = $_) =~ s,CHECKEDOUT$,,;
# unreserved checkouts - there can be several...
foreach (grep(m,/CHECKEDOUT\.\d+$, , ctqx(qw(ls -short), $xpn))) {
chomp;
unless (ctsystem({stdout => 0, stderr => 0}, qw(ls -d), "$_/$elname")) {
$found = "$_/$elname";
last SNAP_VERSION;
}
}
} else {
# only check the LATEST in a non-checkout branch
unless (ctsystem({stdout => 0, stderr => 0}, qw(ls -d), "$_/LATEST/$elname")) {
$found = "$_/LATEST/$elname";
last SNAP_VERSION;
}
}
}
} else {
# dynamic view
DYN_VERSION:
foreach (@vlist) {
chomp;
if (m,/CHECKEDOUT$,) {
# Multiple (unreserved) checkouts appear multiple times
next DYN_VERSION if $seen{$_};
$seen{$_}++;
($xpn = $_) =~ s,CHECKEDOUT$,,;
# unreserved checkouts - there can be several...
foreach (grep(m,/CHECKEDOUT\.\d+$, , ctqx(qw(ls -short), $xpn))) {
chomp;
if (-d "$_/$elname") {
$found = "$_/$elname";
last DYN_VERSION;
}
}
} else {
# only check the LATEST in a non-checkout branch
if (-d "$_/LATEST/$elname") {
$found = "$_/LATEST/$elname";
last DYN_VERSION;
}
}
}
}

# Nothing; go ahead.
#
exit 0 unless $found;

$prompt = <
ERROR: An element named "$elname" already exists in
in some other version of "$dirname":

Instead of creating a new element, you probably want to
create a hard link to the existing element, like so:

% cleartool ln $found .

EOT

if ($ENV{CCASE_NO_CLEARPROMPT}) {
print STDERR $prompt;
} else {
clearprompt(qw(proceed -type error -default abort -mask abort -prompt),
$prompt);
}
exit 1;
1.2.9 How can I see who changed what parts of a file and when?
Look up the "cleartool annotate" command.
1.2.10 Uncheckout leaves a zero version on branch; is this bad?
I consider it a nuisance. One common development strategy is for every developer to create their own development branch by using a view with a config spec similar to this one:
element * CHECKEDOUT
element * .../mybranch/LATEST
element * BASELINE -mkbranch mybranch
element * /main/0 -mkbranch mybranch
Note that whenever a developer starts working on some file he hasn't touched, a branch gets created at that point. As work progresses, more and more elements will have a "mybranch" branch.
Once in a while, the BASELINE label gets moved to the newest approved base line, and developers are encouraged to rebase via a merge. The merge will do something for every element that has a "mybranch" branch and for which the version that BASELINE selects changed since the branch was made.
If one leaves zero versions on the "mybranch" branch behind, then this will cause copy merges, which won't affect the logical concistency of your view of the source tree, but will affect performance. Besides, zero versions just look sloppy.
Most sites add a post-rmbranch and post-unco trigger to remove the dangeling branch with only a zero version. The following code implements this trigger. Paul D. Smith wrote this trigger, and I added some code to deal with snapshot view weirdness:
#!/bin/perl

#--------------------------------------------------------------------
# Nothing special needed Perl-wise - allow Rational Perl to be used
#--------------------------------------------------------------------
require 5.001;

#--------------------------------------------------------------------
# Debugging aid. Overloading the semantics of the standard
# CLEARCASE_TRACE_TRIGGERS EV: if it's set to -2 we dump
# the runtime environment into a file in the current dir.
#--------------------------------------------------------------------
if (int($ENV{CLEARCASE_TRACE_TRIGGERS}) < 0 &&
$ENV{CLEARCASE_TRACE_TRIGGERS} & 0x2) {
open (EV, ">rm_empty_branch.txt");
print EV "$x=$y\n" while (($x,$y) = each %ENV);
close EV;
}

#--------------------------------------------------------------------
# See if the user wants to suppress this trigger's actions:
#--------------------------------------------------------------------
exit 0 if $ENV{CCASE_NO_RM_EMPTY_BRANCH};

#--------------------------------------------------------------------
# Use safest quoting possible - java creates files with $ in
# them, so I can't just universally use "
#--------------------------------------------------------------------
$q = ($ENV{OS} eq "Windows_NT" ? '"' : "'");

# Remove empty branches: if a branch has no elements (except 0 of
# course) after an uncheckout or rmver, or the parent of a
# just-rmbranched branch is now empty, remove it.
#
# If the branch in question is /main, don't do anything (another option
# would be to rmelem the entire element, but that seems like a very bad
# idea to me).
#
# Install like this:
#
# ct mktrtype -element -global -postop uncheckout,rmver,rmbranch # -c "Remove empty branches after uncheckout, rmver, or rmbranch." # -exec /TRIGGERS/rm_empty_branch RM_EMPTY_BRANCH
#
# CAVEATS:
# - Ignores attributes!
# - Won't remove branches where the 0th element is labeled.
# - Will fail if any branch names contain spaces.
# - May fail if any branch or label is named ".*" or "*" exactly.
#
# CREATED BY:
# Paul D. Smith
#

$xname = $ENV{CLEARCASE_XPN};
$xname =~ s,\\,/,g if $ENV{OS} eq 'Windows_NT';

# For uncheckout commands, if the version isn't 0 we can punt early
#
exit 0 if ($ENV{CLEARCASE_OP_KIND} eq 'uncheckout' &&
$xname !~ m,/0$,);

# Don't try to remove the /main branch
#
($branch = $xname) =~ s,/[^/]*$,,;
exit 0 if $branch =~ m,\@\@/main$,;

# Check if there are other versions, other branches, labels, or checked
# out versions on this branch: if so, don't do anything.
#
if (opendir(D, $branch)) {
# this opendir succeeds only in a dynamic view
@other_stuff = readdir(D);
closedir(D);

# in an empty branch, there are four thingies:
# ".", "..", "0" and "LATEST". If there are more, then
# it isn't an empty branch.
exit 0 if (scalar(@other_stuff) != 4);
} else {
# version extended name space not available implies
# we're in a snapshot view, and we will have to work
# a little harder here...
($pname, $brpath) = split($ENV{CLEARCASE_XN_SFX}, $branch);
# an rmbranch will not reload the element...
system("cleartool update -log /dev/null $q$pname$q")
if ($ENV{CLEARCASE_OP_KIND} eq 'rmbranch');
@vtree = `cleartool lsvtree -branch $brpath $q$pname$q`;
chomp($latest = pop(@vtree));
$latest =~ tr,\\,/, if $ENV{OS} eq 'Windows_NT';
exit 0 unless $latest =~ m,$brpath/0$,;
}

# Remove it!
system("cleartool rmbranch -force -nc $q$branch$q");

exit 0;
1.2.11 I can see a file on one branch, but I can't see it on another branch for the same directory. How can I get the file to appear on the other branch? (Frederick Sena )
You use the cleartool ln command. See 1.2.14 for figuring out how to specify the invisible file as an argument to that command.
1.2.12 When I do cleartool ls, it says "[eclipsed]". What does "eclipsed" mean? (Frederick Sena )
1.2.13 How to check in a file that hasn't change (or is empty) (Bygland, Brian )
Consider simply cancelling the checkout, but be aware that if the checkout was the result of a merge, cancelling the checkout will result in the merge arrow disappearing, forcing you to redo the merge next time. In this case, using the -identical flag of the checkin command may be preferable.
Answered by cg@miaow.com
1.2.14 How to see a file that your view / config spec can't see (Bygland, Brian )
The reason why you're not seeing the file is that the version of the directory selected by your view doesn't have a link to that file. Therefore the solution is to figure out which version of that directory element has the link.
The easiest way to access such a file is to use a different view, namely, one that selects the appropriate version of the directory. Even if you are set to some view that doesn't, you can use the so-called view extended path to refer to the other view. On UNIX, this is done be prepending /view/viewtag to the full pathname.
In some situations, it may not be convenient or safe to use view extended paths. One problem is that while you are using a view extended path, someone else may be changing the config spec of that view. For logging purposes in particular, you are better off storing the object id of the element and letting ClearCase tell you a patnname that is valid in your view. In other words, first take a view that selects your invisible file and run this:
% cleartool setview otherview

% cleartool describe -fmt '%On\n' path/to/invisible/file@@
03fcf938.39c011d5.b891.00:01:80:ab:ed:ac
Note that the final @@ at the end of the path tells ClearCase that you are interested in the element's object id. Omitting the final @@ would give you the version's object id, whih may or may not be what you need. Now to retrieve a pathname valid in your view, do this:
% cleartool setview myview

% cleartool describe -fmt '%p\n' oid:03fcf938.39c011d5.b891.00:01:80:ab:ed:ac
/vob/somevobtag/path@@/main/2/to/main/1/invisible/main/3/file@@
Note how we enter version extended name space (or history mode on NT) very early in the path. This is natural, since our premise is that the file isn't visible in our current view. These paths can become quite long, easily exploding NT's stupid limit on path name length or command line length if you every try to use that pathname for some command.
Note that this technique is very useful for tracking down relocations. If in the example above the file was relocated to some unknown but visibile location, Clearcase would have shown that location instead. ClearCase is amazingly smart in figuring out the shortest possible pathname to a specific element.
Answered by cg@miaow.com
1.2.15 What's the difference between %u and %[owner]p ?
%u designates the user who created the object or event, and %[owner]p is the actual owner. This can be confusing when you change ownerships of elements and expect %u to return the owner.
1.3 Queries
1.3.1 How to see what changed between two labels?
Assuming that you always label all visible elements, and assuming that LABEL1 is applied prior to LABEL2, the following will do:
1. In a view selecting LABEL1, run this to obtain those elements which have been unlinked in LABEL2
2. % ct find someplace -element 'lbtype_sub(LABEL1) && !lbtype_sub(LABEL2)'\
3. -print
4. In a view selecting LABEL2, run this to obtain those elements which have been added since LABEL1:
5. % ct find vobtag> -element 'lbtype_sub(LABEL2) && !lbtype_sub(LABEL1)'\
6. -print
7. In the same view, locate those versions that have changed since LABEL1. Note that this will include elements found in (2).
8. % ct find vobtag -version 'lbtype(LABEL2) && !lbtype(LABEL1)'
1.3.1a How to see what changed between two timestamps?
Use the created_since query construct, like so:
% ct find vobtag -version 'created_since(early) && !created_since(later)'
Note that this will exclude versions created exactly at timestamp later, so it's not an excact equivalent of the label based queries described in 1.3.1.
1.3.2 how to determine the vob of an element?
% ct lsvob pathname
1.3.3 findmerge takes forever on a single element
In order to set up a merge, findmerge needs to find the common ancestor of two versions. In complicated version trees, there can be many common ancestors, and finding the best one requires a non-trivial graph traversal algorithm.
The main problem is that while findmerge is looking for a common ancestor, it is holding a lock on the vob DB, preventing others from writing to the DB. In order to prevent an inordinately long amount of time in the lock, findmerge will interrupt its search, release and reacquire the lock and restart it at ever increasing intervals. There are two environment variables that can be used to tweak this behaviour, which may improve performance for specific elements:
CLEARCASE_FM_TRANS_THRESHOLD(default: 128)
This is the base value for how many versions are examined prior to a restart. This value is doubled, tripled etc as needed after every restart. Increasing this value will avoid a restart in those cases where it was "almost there", but may increase the risk that other developers will experience vob DB timeouts.
CLEARCASE_FM_MAX_LEVEL(default: 65536)
This sets the maximum number of calls that will be made in the quest for the best common ancestor. This value is set very high by default. Setting this to a low value will definitely acceletate findmerge, but may cause it to choose a very old common ancestor, forcing the merge to step through many many old changes.
Check out tech note 747 for more details.
1.3.4 findmerge takes forever over a vob
There are two good techniques to speed up findmerge, often by orders of magnitude:
 Use -fver instead of -ftag. Unless you have a very unusual situation, -fver should be good enough.
 Add -element queries to restrict the number of elements tested. If, for example, you use the common development branch/delivery branch technique, and want to merge the latest from the delivery branch into your development branch, you really only need to consider those elements that have a development branch. So, using the following command instead of a straight findmerge can result in huge performance improvements:
 % ct findmerge someplace\
 -element 'brtype(dev_branch)'\
 -fver .../del_branch/LATEST -merge
Using -avobs instead of recursive descent can also improve performance, but is a more risky techniques if directory merges are involved. Since you don't control the order of merges when using -avobs, you could conceivably merge a directory element which isn't visible yet because the parent directory element hasn't been merged yet. Using -avobs -visible will avoid error messages, but may cause you to miss some merges entirely.
1.4 Views & Config Specs
1.4.1 Why do people put /main/0 at the end of a config spec?
This is a good interview question... A typical development config spec looks like this:
element * CHECKEDOUT
element * .../mybranch/LATEST
element * BASELINE -mkbranch mybranch
element * /main/0 -mkbranch mybranch
or like this:
element * CHECKEDOUT
element * .../mybranch/LATEST
element * .../deliverybranch/LATEST -time sometime -mkbranch mybranch
element * /main/0 -mkbranch mybranch
They all contain the /main/0 rule at end because otherwise, you couldn't create new elements. When you create a new element, it will only have a /main/0 version. It wouldn't have a "mybranch" branch, nor a BASELINE label (in the first config spec) and wouldn't have a "deliverybranch" either. Therefore, right after the element was borne, it would disappear from your view since no valid version is selected and the -mkbranch operation couldn't take place. Adding the /main/0 rule ensures that you can always see a newly created element.
The typical follow-up interview question then is: "if everybody uses /main/0, how come I can't see somebody else's new element?". This is a consequence of directory versioning. In fact, two conditions must be satisfied if you are to see a specific element in your view:
 Your config spec must select a valid version
 Your config spec must select a version of the containing directory that has a link to that element.
It is easy to see that the second condition is not satisfied for other users who use their own development branches.
Well, why not use /main/LATEST instead of /main/0?
Using /main/LATEST may hide labeling errors. Suppose, for example, that there are elements that are missing the BASELINE label for some reason, and you are using a config spec like the first one above. If you use /main/0, you will get empty files and empty directories for such elements, which have a good chance of at least causing some visible warning or error at build time. If you use /main/LATEST, you may end up using the wrong version and not notice it.
There is yet another case where /main/0 is required, and is only indirectly related to creating new elements: intentionally empty directories or files.
When one creates an empty directory or file and later merges it onto a new branch, the findmerge algorithm will notice that the base contributor (/main/0) and the target contributor (also /main/0) are identical, and since the source contributor is empty it will skip the copy merge, leaving you with nothing. Therefore, you need to select /main/0 even in a config spec where no new elements are created, such as:
element * .../deliverybranch/LATEST -nocheckout
element * /main/0 -nocheckout
Oh, and how come Rational's documentation uses /main/LATEST all over the place? My guess it that it's a holdover from old documents, where more complex config specs were derived from the default config spec. It is a non-obvious step to replace main/LATEST with main/0, and even to this day, many people think that there is some kind of obligation to merge back into main...
1.4.2 I see checkouts to a view that no longer exists; how do I get rid of them?
First figure out the UUID of the view by running:
% cleartool describe -long vob:vobtag
versioned object base "vobtag"
created 31-Dec-00.16:23:00 by ClearCase VOB admin account (vobadm.staff)
VOB family feature level: 2
VOB storage host:pathname "someplace"
VOB storage global pathname "someplace"
database schema version: 53
VOB ownership:
owner someone
group some group
Additional groups:
...
VOB holds objects from the following views:
? [uuid c00c3821.f94411d4.ba94.00:01:80:a9:33:fe]
...
You then can remove all the references to the non-existing view by running:
% cleartool rmview -force -avobs -uuid c00c3821.f94411d4.ba94.00:01:80:a9:33:fe
Removing references ...
1.4.3 How do I rename a view?
First end the view server processes by entering:
% cleartool endview -server oldtag
If the view is used on multiple clients, you may have to go from client to client to terminate the view, otherwise you may later get "stale NFS file handle" error messages and possible hangups.
You then remove the view tag using the rmtag command:
% cleartool rmtag -view oldtag
If you also want to rename or relocate the storage directory, unregister the current location, rename and register the new location:
% cleartool unregister -view old-location

% mv old-location new-location

% cleartool register -view new-location
Now you can create a new tag using mktag:
% cleartool mktag -view -tag newtag new-location
You may need to specify more arguments (triple path) depending on the type of the view. You essentially need to replicate most of the arguments you used when creating the view.
1.4.4 How can I keep people from changing their config specs? (Evelyn Leeper )
You can experiment with setting various access permissions in the view stoirage directory, but this isn't really recommended. Instead, you should figure out why developers are changing the config specs and why this would be a problem.
My prefered method for dealing with this is to encourage the use of view maintenance wrapper script that include config spec generators. These scripts should fit in flawlessly with your process and simplify it. Your measure of success will be whether the developers prefer the scripts to hacking their own config specs.
1.4.5 How can I keep people from creating views? (Evelyn Leeper )
You can't and shouldn't, at least for those people who need access to the code. Obviously, you need to keep unauthorized people away, but this can be accomplished by properly setting access permissions to vobs. In other words, you can't prevent people from creating views but you can prevent them from seeing anything with them.
Views really are light weight and ephermal. Creating views shouldn't be a big deal. Your change process should encourage people to check in their work often and essentially treat views as temporary storage areas.
1.4.6 The message says: see view_log on server server-name. Where are the logfiles stored? (Frederick Sena )
They are located on the machine that serves the view. You can determine this machine by running:
% cleartool lsview -long viewtag
% ct lsview -l lt
Tag: viewtag
Global path: someplace
Server host: view-server
Region: this-region
Active: YES
View tag uuid:48b5b6f8.752b11d4.a259.00:01:80:a9:33:fe
View export ID (registry): 18
...
1.4.7 How to I cleanup view private files from my view? (Frederick Sena )
1.4.8 How do I recover stranded view private files?
1.4.9 How to I remove a view owned by some else, e.g: someone who left the company? (Frederick Sena )
1.4.10 Why do I get "Checked-out version is not selected by view." when I try to check out a file? (Frederick Sena )
This can happen if you a) check out a version in the version tree or b) if a mkbranch rule has been added to your config spec which creates a new branch that is not selected in your view.
Under Windows, open the version tree and look for the icon that resembles an "eye", it indicates which version is currently selected in your view. Now look for the checked out version (a circle with no version number in it), in most cases the branch is different! Examine your config spec to find out what has happened.
In Unix enter cleartool ls {element name} to find out which rule ClearCase uses to select the version, enter cleartool lsco {element name} to see which version has been checked out.
1.4.11 Why do I get "permission denied" when I try to checkout a file in someone else's view? (Frederick Sena )
1.4.12 How to list all of the files in my view that have never been checked-in to the VOB (Bygland, Brian )
1.4.13 Why deal with the "linked storage area"?
The "linked storage area" is the physical storage location of view private files. This storage location can be on external devices, for example filers, whereas the view database storage needs to be on a local disk.
Recent versions of ClearCase have relaxed this condition somehwat, and if you're using filer hardware recommended by Rational, you can put the whole view storage directory on the filer. In other words, linked storage areas are somewhat obsolescent and designed to work around a problem that is disappearing.
1.5 Vobs
1.5.1 what is the recommended vob size?
1.5.2 How (and why) do I split vobs?
1.5.3 Why do I have to lock vobs prior to backing them up?
You must lock vobs to keep the database consistent with the storage containers where all the data (element versions) is stored. Write operations which occur during the backup break the consistency, the keys in the database are not fully correct and you may have trouble accessing certain elements. You can use cleartool checkvob -pool -source to check for errors.
Remember, inconsistencies in the database are hard to notice without the cleartool checkvob command. You might think that everything is okay but months later you will run into problems.
1.5.4 Why deal with storage pools?
1.5.5 I see a hyperlink described as "? -> ?". How do I get rid of it?
Use the checkvob command to repair broken hyperlinks:
cleartool checkvob -hlinks [-force]
1.5.6 How do I rename a vob?
Every Vob has a tag in each region. The easiest way to rename your vob is to remove the tag and create a new one:
cleartool lsvob -l
cleartool rmtag -vob
cleartool mktag -vob -tag
Make sure that you use the correct host and access path for your new tag and add -public if necessary. Also, you must have access to the vob storage path or you won't be able to create the tag.
1.5.7 What are adminvobs? (Sakib Bhola )
As you know, metadata types like branches, labels, attributes etc. are stored per vob. Before you can create instances of them (e.g. mklabel) you have to create the object itself (e.g. mklbtype). If you have a project where different vobs belong together you usually want to make the types available in all vobs but of course you don't want to create them n times for n vobs. Admin vobs are made for this situation, you only create the types once in your admin vob and they are available in all other vobs which are linked to the admin vob.
In UCM, the project vob becomes automatically the admin vob and stores all necessary information.
1.5.8 What is in lost+found? ()
In lost+found ClearCase puts all elements which are not referenced anymore. Imagine you remove a directory with rmname or rmelem. ClearCase won't recursively remove the elements in this directory but they cannot be accessed neither. Instead, they will be moved to lost+found.
1.5.9 The VOB is Empty! Where did it go? How to Mount a VOB
1.6 Clearmake, DO's and Winkins
1.6.1 How to list all of the Derived Objects stored within a ClearCase VOB in the current view? Bygland, Brian
1.6.2 How to remove derived objects? Bygland, Brian
1.7 Process, Policies etc
1.7.1 Commonly used triggers?
1.7.2 How can I visualize the branching policy used at a site?
The following script will take as input the output of any set of "lsvtree -short" commands, for example the output produced by:
% cleartool find . -print | xargs cleartool lsvtree -s
It will then produce an indented list of branch/sub-branch relationships and also detect cycles (for example if you have both /main/x/y and /main/y/x).
#!/bin/perl

while (<>) {
next unless m,\@\@/(main/[^\@]*)$,;
$branches = $1;
@branches = split('/', $branches);
pop(@branches); # remove version
$parent = shift; # parent is first entry (main)
for $branch (@branches) {
$ancestor_of{$branch}{$parent} = 1;
$offspring_of{$parent}{$branch} = 1;
$parent = $branch;
}
}

make_node('main', 0);

sub make_node {
my ($parent, $indent) = @_;

print(' 'x$indent.$parent."\n");
my $children = 0;
my @offspring = sort(keys(%{$offspring_of{$parent}}));
for my $child (@offspring) {
if (scalar(keys(%{$ancestor_of{$child}})) == 1) {
# a "real" child is one that has only one ancestor: $parent
$children = 1;
make_node($child, $indent+2);
}
}
if (@offspring && !$children) {
print(' 'x$indent.' Cycle detected: '.join(' ',@offspring)."\n");
}
}