Software Performance Engineering
Posted on January 19, 2012

Performance—responsiveness and scalability—is a make-or-break quality for software. Software Performance Engineering companies (SPE) provides a systematic, quantitative approach to constructing software systems that meets the ultimate performance objectives. It prescribes ways to build performance into new systems rather than trying to fix them later.

Software Performance Engineering is a software-oriented approach; it focuses on architecture, design, and implementation choices. Performance Engineering companies uses model predictions to evaluate trade-offs in software functions, hardware size, quality of results, and resource requirements. The models assist developers in controlling resource requirements by enabling them to select architecture and design alternatives with acceptable performance characteristics. The models aid in tracking performance throughout the development process and prevent problems from surfacing late in the life cycle (typically during final testing).

Performance Engineering Objectives:

  • Increase business revenue by ensuring the system can process transactions within the stipulated timeframe
  • Eliminate system failure requiring scrapping and writing off the system development effort due to performance objective failure
  • Eliminate late system deployment due to performance issues
  • Eliminate avoidable system rework due to performance issues
  • Eliminate avoidable system tuning efforts
  • Avoid additional and unnecessary hardware acquisition costs
  • Reduce increased software maintenance costs due to performance problems in production
  • Reduce increased software maintenance costs due to software impacted by ad hoc performance fixes
  • Reduce additional operational overhead for handling system issues due to performance problems

What Does It Cost?

The cost of using SPE to proactively manage software performance depends on the size and complexity of the system under development, the level of performance risk, and the expertise and experience of the development team, as well as other factors. If not meeting your performance goals would endanger the success of your project, you have a performance risk. Factors that increase performance risk include: the use of new technologies, lack of experience in the application area, schedule, market factors, and others.

Conclusion

Performance failures occur when a software product is unable to meet its overall objectives due to inadequate performance. Performance failures negatively impact your bottom line by increasing costs, decreasing revenue or both.

The primary cause of performance failures is a reactive approach to performance during the development process. Cost and schedule pressures encourage project managers to adopt a “fix-it later” approach in which performance is ignored until there is a problem. When a problem is discovered, developers must try to “tune” the software to meet performance objectives if, indeed, they can be met.

The key to preventing performance failures and the resulting project crises is to adopt a proactive approach to performance management that anticipates potential performance problems and includes techniques for identifying and responding to those problems early in the process. With a proactive approach, you avoid the project crises brought about by discovering performance problems late and produce software that meets performance objectives and is delivered on time and within budget.

SCORM, today’s e-learning standard, is a collection of specifications adapted from multiple sources to provide a comprehensive suite of e-learning capabilities that enable interoperability, accessibility, and reusability of Web-based learning content. Organizations adopt SCORM to create efficiencies, lower costs, reduce risk, and increase overall learning effectiveness and return on investment.

SCORM is probably the most important and widely emerging e-learning standard today, whose ultimate goal is ensuring ubiquitous access to the highest quality education and training, tailored to individual needs, and delivered cost-effectively anywhere in the world at anytime.

It is a set of technical standards for e-learning software products. SCORM tells programmers how to write their code so that it can “play well” with other e-learning software. Specifically, SCORM governs how online learning content and Learning Management System (LMS) communicate with each other.

The major benefits of SCORM in E-Learning platform are outlined below:

  • Reusability of content for faster development: Developing content once, then reusing it for multiple audiences and contexts reduces development time.
  • Content sharing between systems: Moving to SCORM makes integration easier between existing and future systems, which protects the infrastructure investments and lowers the cost of ownership.
  • Reduces cost of content maintenance: By enabling the organization to maintain in-house content using any tool regardless of system or content vendor, SCORM lowers the overall cost of content maintenance.
  • Maximum return over technology investments: SCORM content can be launched, operated, and tracked by any SCORM-compliant content delivery system, whether content was developed in-house or by a third party, enabling to get the most mileage from the technology investments.
  • Avoid proprietary authoring tools: The same tools that the development team is using to create Web content can be used to develop SCORM-compliant content, eliminating the need to use or develop proprietary tools.
  • Leverage best practices: Take advantage of the collective knowledge and expertise of the growing SCORM community that is continually evolving and enhancing SCORM functionality, tools, methodologies, and best practices with proven results.
  • Reduced Risk: By design, SCORM reduces business and development risks because it enables content portability, durability and interoperability.
  • Future-proof courseware investments: A key advantage of SCORM-conformant courseware is that no matter who developed it, when they developed it, or for what learning platform, it can be “played” seamlessly on any existing or future SCORM-based delivery system.
  • Improved learner experience: SCORM content and delivery systems enable organizations to create more compelling and effective learning experiences through dynamic sequencing, rich metadata, object-oriented design, and more.
  • Reduce switching cost risk: Investing in standards today helps, in ensuring that any costs associated with switching the e-learning initiatives from one platform to another in future will be minimized.
  • Lower obsolescence risk: Embracing standards also reduce the risk that the tools you are using, the content you are creating and deploying, and the knowledge and skills your people are acquiring will become obsolete. Standards help protect these investments, keeping reengineering, retooling, and retraining costs to a minimum.

 

The internet standards have changed considerably over the last decade. Technology has shifted from Web 1.0 to Web 2.0 and now towards Web 3.0.

While Web 1.0 was very basic in its approach, Web 2.0 worked on a concept called Folksonomy. Today, Web 3.0 works on Me-onomy, meaning relating to the individual or the organization.

Points of Difference Web 2.0 Web 3.0

Meaning

Web 2.0 is wildly read-write web

Web 3.0 is portable personal web

Focus

Focused on communities

Focused on individuals

Applications

Blogs

Lifestream

Content

Sharing content

Consolidating Dynamic content

Formats

XML, RSS

The Semantic Web

Features

Web Applications

Widgets, Drag & Drop Mashups

Concept

Tagging (Folksonomy)

User Behavior (Me-onomy)

Example

Google

NetVibes

Costing

Cost per click

User Engagement

Media

Rich Media, Viral

Advertisement

Attributes

Web 2.0 have attributes such as information sharing, interoperability, user-centered design and collaboration

Web 3.0 have attributes like Deductive Reasoning, Contextual Search, Evolution of 3D web, Personalized search and Tailor made search

Usability

Web 2.0 app may use online knowledge community, which involves people tagging of content and its categorization

Web 3.0 app uses content management systems along with artificial intelligence. These systems are capable of answering your questions because it can think on its own and find the most probable answer to the query. This signifies that web 3.0 can also be termed as “machine to user” standard

Final Thoughts
No matter what the terms or how things are explained, one thing is certain: the future of the Internet and technology is extremely exciting! Things will only continue to evolve into more collaborative and personal ways which is great for everyone on a personal and professional level.

1. Go to /etc directory.

2. Open bashrc file.

3. Add following parameters at the end of the file:

a. export JAVA_HOME=/usr/java/jdk1.6.0_17/

b. export PATH=$JAVA_HOME/bin:$PATH

c. export CLASSPATH=.:$JAVA_HOME/lib/classes.zip

4. Save the changes.

5. Execute command - # bash

6. Execute # echo $JAVA_HOME to verify JAVA_HOME variable is set properly

Key evaluation parameters for outsourcing IT jobs to small/mid size companies worldwide:-

In evaluating small and medium companies offering outsourcing or consulting services, organisations need to evaluate companies before hiring. Finding the right one is often challenging and difficult because of the wrong information provided by marketing teams. Sometimes, the marketing team is smarter than the development team and is often able to sell a non-existing capability.

The areas which need to be evaluated, are listed below:

  • The management’s credibility and accomplishments.
  • Proposed team - Often companies focus on vendor credentials, with this, team credential is a necessary aspect to be looked at in the services industry.
  • Top 3 customers who are served by the company and 1-2 served by the proposed team.
  • Customer retention and relationships.
  • Company culture and work ethics.
  • Employee retention and commitment towards the company.
  • Cost and geographical location
  • Return on investment
Google Search syntax dissected (Info)
Posted on December 19, 2008

Basic Boolean

Whenever you search for more than one keyword at a time, Google will search for all of them. If you search for

XML Java “web Services”
Google will search for all the words. If you want to specify that either word is acceptable, you put an OR between each item

XML OR Java OR “Web Services”
If you want to have definitely one term and one of two or more other terms, you group them with parentheses, like this

XML (Java OR “Web Services”)
This query searches for the word “Java” or phrase “Web Services” along with the word “XML.” A stand-in for OR borrowed from the computer programming realm is the | (pipe) character, as in

XML (Java | “Web Services”)
If you want to specify that a query item must not appear in your results, use a -.(minus sign or dash).

XML Java -”Web Services”
This will search for pages that contain both the words “XML” and “Java” but not the phrase “Web Services.”

Operators

In addition to the basic AND, OR, and quoted strings, Google offers some rather extensive special syntaxes for honing your searches. Google being a full-text search engine, it indexes entire web pages instead of just titles and descriptions. Additional commands, called special syntaxes, let Google users search specific parts of web pages or specific types of information. Specifying that your query words must appear only in the title or URL of a returned web page is a great way to have your results get very specific without making your keywords themselves too specific.

Here are some of the common keywords that you can add to your query in Google

intitle, allintitle

Restricts your search to the titles of web pages. The variation, allintitle: finds pages wherein all the words specified make up the title of the web page. It’s probably best to avoid the allintitle: variation, because it doesn’t mix well with some of the other syntaxes.

Eg: intitle:”george bush”
allintitle:”money supply” economics

inurl, allinurl

Restricts your search to the URLs of web pages. This syntax tends to work well for finding search and help pages, because they tend to be rather regular in composition. An allinurl: variation finds all the words listed in a URL but doesn’t mix well with some other special syntaxes.

Eg: inurl:help
allinurl:search help

intext, allintext

Searches only body text (i.e., ignores link text, URLs, and titles). There’s an allintext: variation, but again, this doesn’t play well with others. While its uses are limited, it’s perfect for finding query words that might be too common in URLs or link titles.

Eg: intext:”yahoo.com”
allintext:html

inanchor

Searches for text in a page’s link anchors. A link anchor is the descriptive text of a link. For example, the link anchor in the HTML code O’Reilly and Associates is “O’Reilly and Associates.”

Eg: inanchor:”tom peters”

site

Allows you to narrow your search by either a site or a top-level domain. AltaVista, for example, has two syntaxes for this function (host: and domain:), but Google has only the one.

Eg: site:loc.gov
site:thomas.loc.gov
site:edu
site:nc.us
You can also use site: operator to exclude certain domains from a search

Eg: google -site:google.com
This is particularly useful for ego searches. You can find out all those sites which mention your name expect your site.

Eg: bill gates -site:microsoft.com -site:wikipedia.org

link

Returns a list of pages linking to the specified URL. Enter link:www.google.com and you’ll be returned a list of pages that link to Google. Don’t worry about including the http:// bit; you don’t need it, and, indeed, Google appears to ignore it even if you do put it in. link: works just as well with “deep” URLs-http://www.raelity.org/apps/blosxom/ for instance-as with top-level URLs such as raelity.org.

Eg: link:www.google.com

cache

Finds a copy of the page that Google indexed even if that page is no longer available at its original URL or has since changed its content completely. This is particularly useful for pages that change often. If Google returns a result that appears to have little to do with your query, you’re almost sure to find what you’re looking for in the latest cached version of the page at Google.

Eg: cache:www.yahoo.com

filetype

Searches the suffixes or filename extensions. These are usually, but not necessarily, different file types. I like to make this distinction, because searching for filetype:htm and filetype:html will give you different result counts, even though they’re the same file type. You can even search for different page generators, such as ASP, PHP, CGI, and so forth-presuming the site isn’t hiding them behind redirection and proxying. Google indexes several different Microsoft formats, including: PowerPoint (PPT), Excel (XLS), and Word (DOC).

Eg: homeschooling filetype:pdf
“leading economic indicators” filetype:ppt

related

Finds pages that are related to the specified page. Not all pages are related to other pages. This is a good way to find categories of pages; a search for related:google.com would return a variety of search engines, including HotBot, Yahoo!, and Northern Light.

Eg: related:www.yahoo.com
related:www.cnn.com

info

Provides a page of links to more information about a specified URL. Information includes a link to the URL’s cache, a list of pages that link to that URL, pages that are related to that URL, and pages that contain that URL. Note that this information is dependent on whether Google has indexed that URL or not. If Google hasn’t indexed that URL, information will obviously be more limited.

Eg: info:www.oreilly.com
info:www.nytimes.com/technology

define

Will get the definition of the term that you have entered. This syntax can be used to get the definitions of words, phrases, and acronyms

Eg: define:dreaming
This query will get you the definition of the word dreaming

numrange

If you want to search for a range of numbers then you can use two dots (without spaces) to represent a range of numbers

Eg: inventions 1850..1899
This query will get you all the inventions between 1850 and 1899

safesearch

If you include safesearch: in your query, Google will exclude adult-content.

Eg: safesearch:breasts
This will search for information on breasts without returning adult or pornographic sites.

stocks

If you start your query with stocks:, Google will interpret the rest of the query terms as NYSE, NASDAQ, AMEX, or mutual fund stock ticker symbols, and will open a page showing stock information for the symbols you specify.

Eg: stocks:goog
This will show information about Google’s stock. Specify ticker symbols not company names. If you enter an invalid ticker symbol, you’ll be told so and given a link to a page where you can look up a valid ticker symbol.

The Special Syntaxes

Currency Conversion

Google makes it easy to calculate money conversions from one form of currency to another.

Eg: $5 in yenThe above query will let you know that five dollars is worth about 566.599846 yen.

If you’re not sure of the name of a currency, use nationality instead.

Eg: 25 Australian money in Italian money
This may sound awkward but it does the job.

Eg: $5 in indian money
This will let you know that 5 US dollars is worth about 224.477976 Indian rupees

You can even convert units in this fashion.

Eg: $2.85 per gallon in British money per literThis query will tell you that it is about 42 pence per liter and provides an international basis for discussing gas prices at the pump.

Check Airfares

When you google for the names of two major cities, Google automatically offers to search for flights.

Eg: Denver Fort Lauderdale
In the form labeled “Flights from Denver, CO to Fort Lauderdale, FL”, enter a departure and return date and choose whether to search using Expedia, Hotwire or Orbitz. Do not use quotation marks in your initial search. Denver “Fort Lauderdale” will not bring up the flight search form.

Find Song Lyrics

If you are looking for the title or lyrics of a song then you can use Google search phrases and wildcards to find them.

Eg: “Friday I am in love” lyrics
Or use the wildcard operator to get lyrics with certain words in them, like this

“Friday * love” lyrics

Get the current time for any city using Google

In addition to fetching fresh results and following cricket scores, you can also now also get the current time for any city by just searching in Google.

All you have to do is just type time followed by the city name

Eg: time Chennai

Fetch only Fresh results

In order to use this you have to add a new parameter as_qdr at the end of the url like below
http://www.google.com/search?q=ipod&as_qdr=d

The as_qdr parameter can take the following possible values.

· d[number] - past number of days (e.g.: d5)

· w[number] - past number of weeks (e.g: w5)

· y[number] - past number of years (e.g: y5)

Cricket

Being born in India, circket is there in my blood and the same for Sadeesh Duraisamy who works in Google. Thanks to him and now we can keep an eye on the latest circket scores

ECC-(Elliptic Curve Cryptography)
Posted on December 11, 2008

In all asymmetric Cryptographic scheme the property that one key is used for encryption and another is for decryption. Decryption key can not be formed from the encryption key and, is derived from the mathematical function whose inverse is extremely difficult to calculate.

In Asymmetric cryptography, Key pair is a pair of numbers which have some relationships associated with .A mathematical function which is easy to compute in one direction but whose inverse is in Particular term is Intractable.

Why Ecc???

1)It offers considerable greater security for a given key size.
2)The smaller key size makes much more compact implementation for a given level of security which means faster cryptographic operation running on smaller chips or more compact software.
Due to this less heat Production and less Power consumption.

Ecc is demanding because they give most security per bit.
NIST Guidelines for Public key sizes For AES:

Ecc Key size    RSA Key Size    Key Size Ratio
163              1024            1:16
256              3072            1:12
384              7680            1:20
512              15360           1:30

Ecc is an Evolved form of Diffie Hellman .He used a Problem called Logarithmic Problem as its central asymmetric operation. It is concerned with finding a Logarithmic of a number within a finite field arithmetic system.

Prime Fields are Fields whose sets are Prime-That is they have Prime number of members .They are of particular interest in asymmetric cryptography because over prime field operation expansion turns out to be relatively easy operation while its inverse is extremely difficult.

To generate a key pair:

Y=(gx)modp
P=large prime number-The field size x and g are smaller than p .
Y-Public key.
X-used as Private key.

Encryption using Public key is Exponentiation while Decryption require inverse operation.
For large enough value of p its always going to difficult to find Y from g,x and p.

DL relies on difficulty of finding Discrete Logarithmic Problem.
Ecc uses a Group and logarithmic too which offers a difference in method in which group is defined .How Elements of group are defined and how operations are performed.

Elliptic curves

Defined in two dimensions X,Y Cartesian Coordinate system by an equation of Form.
Y^2=(X^3+a*x+b)
Here Elliptic curves are used to define set over which group is calculated.
The Basic operation That Elliptic curve used are Point Addition and all other operations are only done through these Curves.

Browser Compatibility
Posted on December 11, 2008

As a web developer, we spent our more than half the time in altering the user interface.  Issues are always that things seen on different browsers are way different from each other. The way a browser renders any web document is its own.

A web document consists of 3 parts:

1.    Structural layer (HTML or XHTML or XML)
2.    Design Layer (CSS)
3.    Behavior layer (JavaScript)

Here we are concerned with only the first layer.
This layer tells a web browser or user agent, a way to present the structure.

Try to use doctype in <>

!DOCTYPE html PUBLIC “-//W3C//Dtd XHTML 1.0 Strict//EN” “http://www.w3.org/tr/xhtml1/Dtd/xhtml1-strict.dtd”

html xmlns=”http://www.w3.org/1999/xhtml” lang=”en” xml:lang=”en”

Above line tells any browser, that document is of XHTML 1.0, hence it even tells the browser that how to behave or render upon the CSS layer. As XHTML is a form of XML language. It has some strict rules to follow upon.

1.    It is case-sensitive.
2.    Every open tag must be closed.
3.    Please view W3C website for specifications on XHTML.

ALL *

We should follow * rule.
All browsers have different settings for different HTML tags. Like “P” may behave different in Firefox and Internet Explorer.

Example:

*{
Margin:0px;
Padding:0px;
}
<!–more–><!–more–><!–more–><!–more–>

Multiple Main Method
Posted on December 11, 2008

One Of the Classes must have Main method as a member. This is what we normally expect.

But C# includes a feature that enables us to define more than one class with Main method.

As all of we know that Main is the entry point for program execution, but in C# we can have now more than one entry points .In fact there should be only one.

The very problem can be resolved by specifying which main is to be used to the Compiler at the time of compilation.

csc filename.cs/main: classname

Filename- Name of file where code is stored.
Classname- Name of class containing main which we would like to be entry point for our execution.
To explain it further
Application with multiple main method

Using system;
Class class A
{
Public static void main()
{
Console.writeline(“class A”);
}
}

Class class B
{
Public static Void main()
{
Console.writeLine(“Class B”);

}
}
During compilation we can decide which main method we have to use or we want to use by switching as.

/main:classA or /main:class B

Cron
Posted on November 25, 2008

In UNIX OS we have time based scheduling, means you can configure your system to do cleaning or repairing job, when you are away.
cron is driven by a crontab, a configuration file that specifies shell commands to run periodically on a given schedule.
Fields

# +—————- minute (0 - 59)
# |  +————- hour (0 - 23)
# |  |  +———- day of month (1 - 31)
# |  |  |  +——- month (1 - 12)
# |  |  |  |  +—- day of week (0 - 6) (Sunday=0 or 7)
# |  |  |  |  |
*  *  *  *  *  command to be executed

Different domain control panel have different interface, but all does the same task.
Any shell command can be used to run on specific time with certain interval.

Sample: php /path/to/script.php