Friday, August 12, 2011

Software Design Pattern

Design patterns can speed up the development process by providing tested, proven development paradigms. Effective software design requires considering issues that may not become visible until later in the implementation. Reusing design patterns helps to prevent subtle issues that can cause major problems and improves code readability for coders and architects familiar with the patterns.


There are two types of design pattern
1)Creational design pattern
it is further devided as
a)Abstract factory
b)Builder
c)factory method
c)Object pool
d)Prototype
e)Singleton


and
2)Structural design pattern
a)Adopter
b)Bridge
c)Composite
d)Facade
e)Flyweight
F)Proxy
g)Decorator
h)Private class data

Monday, August 8, 2011

Difference between Usercontrol and Custom control

User Control
1.Web user controls are easy to make, but they can be less convenient to use.
2.Web user controls are compiled dynamically at run time they cannot be added to the Toolbox.
3.the only way to share the user control between applications is to put a separate copy in each application, which takes more maintenance if you make changes to the control.
4. If your control has a lot of static layout, a user control might make sense.
Custom Control
1.Web custom controls are compiled code, which makes them easier to use but more difficult to create.
2.Once you have created the control, however, you can add it to the Toolbox and display it in a visual designer with full Properties window support and all the other design-time features of ASP.NET server controls. In addition, you can install a single copy of the Web custom control in the global assembly cache and share it between applications, which makes maintenance easier.

Monday, May 23, 2011

RGB color model

To form a color with RGB, three colored light beams (one red, one green, and one blue) must be superimposed (for example by emission from a black screen, or by reflection from a white screen). Each of the three beams is called a component of that color, and each of them can have an arbitrary intensity, from fully off to fully on, in the mixture.

The RGB color model is additive in the sense that the three light beams are added together, and their light spectra add, wavelength for wavelength, to make the final color's spectrum.

Zero intensity for each component gives the darkest color (no light, considered the black), and full intensity of each gives a white; the quality of this white depends on the nature of the primary light sources, but if they are properly balanced, the result is a neutral white matching the system's white point. When the intensities for all the components are the same, the result is a shade of gray, darker or lighter depending on the intensity. When the intensities are different, the result is a colorized hue, more or less saturated depending on the difference of the strongest and weakest of the intensities of the primary colors employed.

When one of the components has the strongest intensity, the color is a hue near this primary color (reddish, greenish, or bluish), and when two components have the same strongest intensity, then the color is a hue of a secondary color (a shade of cyan, magenta or yellow). A secondary color is formed by the sum of two primary colors of equal intensity: cyan is green+blue, magenta is red+blue, and yellow is red+green. Every secondary color is the complement of one primary color; when a primary and its complementary secondary color are added together, the result is white: cyan complements red, magenta complements green, and yellow complements blue.

The RGB color model itself does not define what is meant by red, green, and blue colorimetrically, and so the results of mixing them are not specified as absolute, but relative to the primary colors. When the exact chromaticities of the red, green, and blue primaries are defined, the color model then becomes an absolute color space, such as sRGB or Adobe RGB; see RGB color spaces for more details.

Saturday, May 14, 2011

Ubuntu Desktop 8.04 LTS reaches end of life




The desktop version of Ubuntu 8.04 LTS has now officially reached its end of life as previously reported. From 12 May 2011 , no new updates, including security updates and critical fixes, will be available. The server edition of Ubuntu 8.04 LTS will continue to be supported until May 2013. Code named "Hardy Heron", version 8.04 of the Debian-derived Linux distribution was released on 24 April 2008. Hardy Heron users are advised to upgrade to a later release to continue receiving updates.

The latest stable release is Ubuntu 11.04 "Natty Narwhal, while the current Long Term Support (LTS) version is Ubuntu 10.04.2 LTS "Lucid Lynx". The developers note that users wanting to upgrade to 11.04 from 8.04 will have to upgrade to 10.04 LTS first. Standard releases of Ubuntu are supported for 18 months of updates for both the desktop and server versions, while Long Term Support (LTS) versions of Ubuntu are supported for three years for the desktop releases and five years for server releases.

Saturday, May 7, 2011

IBM is poised to drive its services in India

IBM is poised to drive its services in India towards banking, infrastructure and public sectors, sources revealed. Besides this, the IT giant will also focus on the key telecom sector in India.

IBM reported more than expected first-quarter profit and revenue, in which India plays a key role. One of leading technology services firm has stronghold in India's telecommunications sector with clients including Bharti Airtel and Idea Cellular. Now, the company is seeking foothold in other industries like banking and public sector and in the infrastructure space, chiefly in the airports and energy utility area, insiders disclosed.

In a bid to expand its reach, IBM has already attained contracts from State Bank of India the Indian Railways, the Delhi and Hyderabad international airports among others, sources added.

With this new outlook, IBM is set to target smaller cities in the country, where it sees potential growth.

IBM's operations in India include providing hardware, middleware and technology services, back-office services, consulting and research and development.

Please fillup my slam book



Tuesday, April 26, 2011

3rd internal syllabus for marketing management

  1. Bases and methods of segmenting consumer and industrial markets.
  2. Forecasting tools.
  3. Product life cycle.
  4. New product development process.

Tuesday, March 22, 2011

spatial filtering

"Spatial filtering" is a term used to describe the methods that are used to compute spatial density estimates for events that have been observed at individual locations.
The term describes a set of tools for displaying functions estimated from these data points that are distributed in two-dimensional space.
Spatial filtering is a form of data smoothing designed to give us a clearer view of the general, unencumbered by details which do not answer our questions of interest.
Spatial filtering is a non-parametric analysis method which belongs within the field of exploratory spatial analysis which relies, to a large degree, on graphical methods of analysis.




Image enhancement methods


SPATIAL DOMAIN METHODS:
The term spatial domain refers to the aggregate of pixels composing an image, and spatial domain methods are procedure that operates directly in this pixel
Image processing function in the spatial domain may be expressed as
  g(x,y) =T[f(x,y)]
Where f(x,y) is the input image and g(x,y) is the processed image, and T is an operator on f, defined over some neighborhood about(x,y
FREQUENCY DOMAIN METHODS:
The foundation of frequency domain technique is the convolution theorem .Let g(,y) be an image formed by the convolution of an image f(x,y)and a linear position, position invariant operator h(x,y) that is, g(x,y) = h(x,y) * f(x,y)
  Then from the convolution theorem, the following frequency domain relation holds:
  G( u,v) = H (u , v)F(u , v)
Where G,F &H are the Fourier transforms of g,h &h respectively.
 

spatial domain method of image registration

Spatial domain methods

The value of a pixel with coordinates (x,y) in the enhanced image $\hat{F}$ is the result of performing some operation on the pixels in the neighbourhood of (x,y) in the input image, F.
Neighbourhoods can be any shape, but usually they are rectangular.

Grey scale manipulation

The simplest form of operation is when the operator T only acts on a $1 \times 1$ pixel neighbourhood in the input image, that is $\hat{F}(x,y)$ only depends on the value of F at (x,y). This is a grey scale transformation or mapping.
The simplest case is thresholding where the intensity profile is replaced by a step function, active at a chosen threshold value. In this case any pixel with a grey level below the threshold in the input image gets mapped to 0 in the output image. Other pixels are mapped to 255.
Other grey scale transformations are outlined in figure 1 below.

 
Figure 1: Tone-scale adjustments.
\begin{figure}
\par
\centerline{
\psfig {figure=figure51.ps,width=12cm}
}
\par\end{figure}

Histogram Equalization

Histogram equalization is a common technique for enhancing the appearance of images. Suppose we have an image which is predominantly dark. Then its histogram would be skewed towards the lower end of the grey scale and all the image detail is compressed into the dark end of the histogram. If we could `stretch out' the grey levels at the dark end to produce a more uniformly distributed histogram then the image would become much clearer.

 
Figure 2: The original image and its histogram, and the equalized versions. Both images are quantized to 64 grey levels.
\begin{figure}
\par
\centerline{
\psfig {figure=figure52.ps,width=12cm}
}
\par\end{figure}
Histogram equalization involves finding a grey scale transformation function that creates an output image with a uniform histogram (or nearly so). How do we determine this grey scale transformation function? Assume our grey levels are continuous and have been normalized to lie between 0 and 1.
We must find a transformation T that maps grey values r in the input image F to grey values s = T(r) in the transformed image $\hat{F}$.
It is assumed that
  • T is single valued and monotonically increasing, and
  • $0 \leq T(r) \leq 1$ for $ 0 \leq r \leq 1$.
The inverse transformation from s to r is given by
r = T-1(s).
If one takes the histogram for the input image and normalizes it so that the area under the histogram is 1, we have a probability distribution for grey levels in the input image Pr(r).
If we transform the input image to get s = T(r) what is the probability distribution Ps(s) ?
From probability theory it turns out that
\begin{displaymath}
P_{s}(s) = P_{r}(r)\frac{dr}{ds}, \end{displaymath}
where r = T-1(s). Consider the transformation
\begin{displaymath}
s = T(r) = \int_{0}^{r}P_{r}(w)dw. \end{displaymath}
This is the cumulative distribution function of r. Using this definition of T we see that the derivative of s with respect to r is
\begin{displaymath}
\frac{ds}{dr} = P_{r}(r). \end{displaymath}
Substituting this back into the expression for Ps, we get
\begin{displaymath}
P_{s}(s) = P_{r}(r) \frac{1}{P_{r}(r)} = 1 \end{displaymath}
for all $s,
where 0 \leq s \leq 1$.Thus, Ps(s) is now a uniform distribution function, which is what we want.

Discrete Formulation

We first need to determine the probability distribution of grey levels in the input image. Now
\begin{displaymath}
P_{r}(r) = \frac{n_{k}}{N} \end{displaymath}
where nk is the number of pixels having grey level k, and N is the total number of pixels in the image. The transformation now becomes

Note that $0 \leq r_{k} \leq 1$, the index $ k = 0,1,2,\ldots ,255$,and $0 \leq s_{k} \leq 1$.
The values of sk will have to be scaled up by 255 and rounded to the nearest integer so that the output values of this transformation will range from 0 to 255. Thus the discretization and rounding of sk to the nearest integer will mean that the transformed image will not have a perfectly uniform histogram.

Image Smoothing

The aim of image smoothing is to diminish the effects of camera noise, spurious pixel values, missing pixel values etc. There are many different techniques for image smoothing; we will consider neighbourhood averaging and edge-preserving smoothing.

Neighbourhood Averaging

Each point in the smoothed image, $\hat{F}(x,y)$ is obtained from the average pixel value in a neighbourhood of (x,y) in the input image.
For example, if we use a $3 \times 3$ neighbourhood around each pixel we would use the mask
 
1/9 1/9 1/9
1/9 1/9 1/9
1/9 1/9 1/9
Each pixel value is multiplied by $\frac{1}{9}$, summed, and then the result placed in the output image. This mask is successively moved across the image until every pixel has been covered. That is, the image is convolved with this smoothing mask (also known as a spatial filter or kernel).
However, one usually expects the value of a pixel to be more closely related to the values of pixels close to it than to those further away. This is because most points in an image are spatially coherent with their neighbours; indeed it is generally only at edge or feature points where this hypothesis is not valid. Accordingly it is usual to weight the pixels near the centre of the mask more strongly than those at the edge.
Some common weighting functions include the rectangular weighting function above (which just takes the average over the window), a triangular weighting function, or a Gaussian.
In practice one doesn't notice much difference between different weighting functions, although Gaussian smoothing is the most commonly used. Gaussian smoothing has the attribute that the frequency components of the image are modified in a smooth manner.
Smoothing reduces or attenuates the higher frequencies in the image. Mask shapes other than the Gaussian can do odd things to the frequency spectrum, but as far as the appearance of the image is concerned we usually don't notice much.

Edge preserving smoothing

Neighbourhood averaging or Gaussian smoothing will tend to blur edges because the high frequencies in the image are attenuated. An alternative approach is to use median filtering. Here we set the grey level to be the median of the pixel values in the neighbourhood of that pixel.
The median m of a set of values is such that half the values in the set are less than m and half are greater. For example, suppose the pixel values in a $3 \times 3$ neighbourhood are (10, 20, 20, 15, 20, 20, 20, 25, 100). If we sort the values we get (10, 15, 20, 20, |20|, 20, 20, 25, 100) and the median here is 20.
The outcome of median filtering is that pixels with outlying values are forced to become more like their neighbours, but at the same time edges are preserved. Of course, median filters are non-linear.
Median filtering is in fact a morphological operation. When we erode an image, pixel values are replaced with the smallest value in the neighbourhood. Dilating an image corresponds to replacing pixel values with the largest value in the neighbourhood. Median filtering replaces pixels with the median value in the neighbourhood. It is the rank of the value of the pixel used in the neighbourhood that determines the type of morphological operation.

 
Figure 3: Image of Genevieve; with salt and pepper noise; the result of averaging; and the result of median filtering.
\begin{figure}
\par
\centerline{
\psfig {figure=figure53.ps,width=5in}
}
\par\end{figure}

Image sharpening

The main aim in image sharpening is to highlight fine detail in the image, or to enhance detail that has been blurred (perhaps due to noise or other effects, such as motion). With image sharpening, we want to enhance the high-frequency components; this implies a spatial filter shape that has a high positive component at the centre (see figure 4 below).

 
Figure 4: Frequency domain filters (top) and their corresponding spatial domain counterparts (bottom).
\begin{figure}
\par
\centerline{
\psfig {figure=figure53a.ps,width=5in}
}
\par\end{figure}
A simple spatial filter that achieves image sharpening is given by
 
-1/9 -1/9 -1/9
-1/9 8/9 -1/9
-1/9 -1/9 -1/9
Since the sum of all the weights is zero, the resulting signal will have a zero DC value (that is, the average signal value, or the coefficient of the zero frequency term in the Fourier expansion). For display purposes, we might want to add an offset to keep the result in the $0 \ldots 255$ range.

High boost filtering

We can think of high pass filtering in terms of subtracting a low pass image from the original image, that is,
High pass = Original - Low pass.
However, in many cases where a high pass image is required, we also want to retain some of the low frequency components to aid in the interpretation of the image. Thus, if we multiply the original image by an amplification factor A before subtracting the low pass image, we will get a high boost or high frequency emphasis filter. Thus,
Now, if A = 1 we have a simple high pass filter. When A > 1 part of the original image is retained in the output.
A simple filter for high boost filtering is given by

-1/9 -1/9 -1/9
-1/9 $\omega$/9 -1/9
-1/9 -1/9 -1/9
where $\omega = 9A - 1$.

Monday, March 21, 2011

2nd Internal portion to come on 22.03.11

Marketing management:-
Enviroment scanning tools and techniques.,
module-ii

Market research and Information System,
Consumer behaviour

E-commerce
Convergence,

Collaborative computing,
Content Management,
Call center,
Suply chain management

2nd Internal schedule



 
date 9:30am-10:30am 11:30 am-12:30pm
22.03.2011 Marketing management E-commerce
23.03.2011 Image Processing Mobile computing
24.03.2011 Computer security  
if  anybody have the portion to come in exam please post here.....

 

Wednesday, March 9, 2011

Agile Programming


What Is Agile Programming?

Agile programming is an approach to project management, typically used in software development. It helps teams react to the instability of building software through incremental, iterative work cycles, known as sprints. But before turning our discussion to the details of agile programming, it’s best to start at the beginning with the project management paradigm that preceded it: waterfall, or traditional sequential development.

What are the Origins of Agile Programming?

The roots of agile programming can be traced back to 1970, when Dr. Winston Royce delivered a presentation called “Managing the Development of Large Software Systems.” This paper introduced his thoughts on waterfall. Basically, Royce asserted that building software was akin to assembling an automobile. Put another way, each piece can be added in isolated, sequential phases. This process demands that every phase of the project must be completed before the next phase can begin. Thus, developers collect requirements first, work on architecture and design second, and so on. Very little communication occurs during the hand-offs between the specialized groups responsible for each phase of development.
You can probably begin to think of ways in which this approach to software development is flawed. For example, it assumes the customer can identify every single requirement of the project prior to any coding taking place. In other words, waterfall imagines that a customer knows exactly what he or she wants at the outset and that he or she can deliver an airtight and inclusive plan for achieving that vision. If you’re a developer, then you know that it’s infinitely easier for a customer to describe his or her vision when there is functional software to interact with and respond to. It’s a lesson that many software developers have discovered through failing. Moreover, many times, when a waterfall project wraps, a team that built software based on customer specifications finds out that it’s not actually what the customer wanted or another project has rendered all that heads-down programming irrelevant. In the latter scenario, an organization has spent time and money to create a product that no one wants.

Why Agile Programming?

Agile programming gives teams repeated opportunities to assess the direction of a project throughout the entire development lifecycle. These chances for evaluation are built into the natural workflow of agile programming through regular cadences of work, known as sprints or iterations. At the end of every sprint, the team presents a functioning piece of software to the Product Owner for review. This emphasis on a shippable product ensures that the team doesn’t get bogged down with gathering requirements. Because sprints repeat and the product continually adds increments of functionality, agile programming is described as “iterative” and “incremental.” In waterfall, development teams have a single shot at getting each part of a project right. Not so in agile programming, in which every aspect of development is revisited throughout the lifecycle. There’s virtually no chance that a project will follow the wrong direction for very long. Because the team reassesses the direction of a project regularly, there’s always time to change course.
Perhaps the effects of this “inspect-and-adapt” strategy are obvious: Namely, they significantly reduce both development costs and time to market. Because teams can gather requirements while coding, exhaustive requirements gathering can’t prevent a team from making progress. And because agile teams develop within the short, repeatable work cycles, stakeholders have ongoing opportunities to ensure that the product being created matches the customers’ vision. In essence, it could be said that agile programming helps companies build products their customers want. Instead of committing to market a piece of unwritten, sub-optimized software, agile programming empowers teams to build the best software possible. In the end, agile programming protects a product’s market relevance and prevents a team’s work from winding up on a shelf, unreleased, which is an option that makes both stakeholders and developers happy.

Saturday, March 5, 2011

facebook mail


Facebook is used by millions of people around the globe. Here is a sneak preview of the mail service which will be introduced by them. Email by Facebook would in our view, a great feature and would help the users get more connected to their social network.

The picture below shows how you may check your Facebook emails in your inbox. However, this might just be a test run but still its something to get excited about.

Digital Signature

A digital signature is a mathematical scheme for demonstrating the authenticity of a digital message or document. A valid digital signature gives a recipient reason to believe that the message was created by a known sender, and that it was not altered in transit. Digital signatures are commonly used for software distribution, financial transactions, and in other cases where it is important to detect forgery or tampering.

Digital signatures are often used to implement electronic signatures, a broader term that refers to any electronic data that carries the intent of a signature,[1] but not all electronic signatures use digital signatures.[2][3][4] In some countries, including the United States, India, and members of the European Union, electronic signatures have legal significance. However, laws concerning electronic signatures do not always make clear whether they are digital cryptographic signatures in the sense used here, leaving the legal definition, and so their importance, somewhat confused.

Digital signatures employ a type of asymmetric cryptography. For messages sent through a nonsecure channel, a properly implemented digital signature gives the receiver reason to believe the message was sent by the claimed sender. Digital signatures are equivalent to traditional handwritten signatures in many respects; properly implemented digital signatures are more difficult to forge than the handwritten type. Digital signature schemes in the sense used here are cryptographically based, and must be implemented properly to be effective. Digital signatures can also provide non-repudiation, meaning that the signer cannot successfully claim they did not sign a message, while also claiming their private key remains secret; further, some non-repudiation schemes offer a time stamp for the digital signature, so that even if the private key is exposed, the signature is valid nonetheless. Digitally signed messages may be anything representable as a bitstring: examples include electronic mail, contracts, or a message sent via some other cryptographic protocol.