Thursday, May 10, 2012

10 Mistakes That Start-Up Entrepreneurs Make


Going it alone. It's difficult to build a scalable business if you're the only person involved. True, a solo public relations, web design or consulting firm may require little capital to start, and the price of hiring even one administrative assistant, sales representative or entry-level employee can eat up a big chunk of your profits. The solution: Make sure there's enough margin in your pricing to enable you to bring in other people. Clients generally don't mind outsourcing as long as they can still get face time with you, the skilled professional who's managing the project.

Asking too many people for advice.It's always good to get input from experts, especially experienced entrepreneurs who've built and sold successful companies in your industry. But getting too many people's opinions can delay your decision so long that your company never gets out of the starting gate. The answer: Assemble a solid advisory board that you can tap on a regular basis but run the day-to-day yourself. Says Elyissia Wassung, chief executive of 2 Chicks With Chocolate Inc., a Matawan, N.J., chocolate company, "Pull in your [advisory] team for bi-weekly or, at the very least, monthly conference calls. You'll wish you did it sooner!"

Spending too much time on product development, not enough on sales.While it's hard to build a great company without a great product, entrepreneurs who spend too much time tinkering may lose customers to a competitor with a stronger sales organization. "I call [this misstep] the 'Field of Dreams' of entrepreneurship. If you build it, they will buy it," says Sanjyot Dunung, CEO of Atma Global, Inc., a New York software publisher, who has made this mistake in her own business. "If you don't keep one eye firmly focused on sales, you'll likely run out of money and energy before you can successfully get your product to market."

Targeting too small a market. It's tempting to try to corner a niche, but your company's growth will quickly hit a wall if the market you're targeting is too tiny. Think about all the high school basketball stars who dream of playing in the NBA. Because there are only 30 teams and each team employs only a handful of players, the chances that your son will become the next Michael Jordan are pretty slim. The solution: Pick a bigger market that gives you the chance to grab a slice of the pie even if your company remains a smaller player.

Entering a market with no distribution partner. It's easier to break into a market if there's already a network of agents, brokers, manufacturers' reps and other third-party resellers ready, willing and able to sell your product into existing distribution channels. Fashion, food, media and other major industries work this way; others are not so lucky. That's why service businesses like public relations firms, yoga studios and pet-grooming companies often struggle to survive, alternating between feast and famine. The solution: Make a list of potential referral sources before you start your business and ask them if they'd be willing to send business your way.

Overpaying for customers.Spending big on advertising may bring in lots of customers, but it's a money-losing strategy if your company can't turn those dollars into life-time customer value. A magazine or web site that spends $500 worth of advertising to acquire a customer who pays $20 a month and cancels his or her subscription at the end of the year is simply pouring money down the drain. The solution: Test, measure, then test again. Once you've done enough testing to figure out how to make more money selling products and services to your customers than you spend acquiring those customers in the first place, roll out a major marketing campaign.


Raising too little capital. Many start-ups assume that all they need is enough money to rent space, buy equipment, stock inventory and drive customers through the door. What they often forget is that they also need capital to pay for salaries, utilities, insurance and other overhead expenses until their company starts turning a profit. Unless you're running the kind of business where everybody's working for sweat equity and deferring compensation, you'll need to raise enough money to tide you over until your revenues can cover your expenses and generate positive cash flow.

Raising too much capital. Believe it or not, raising too much money can be a problem, too. Over-funded companies tend to get big and bloated, hiring too many people too soon and wasting valuable resources on trade show booths, parties, image ads and other frills. When the money runs out and investors lose patience (which is what happened 10 years ago when the dot-com market melted down), start-ups that frittered away their cash will have to close their doors. No matter how much money you raise at the outset, remember to bank some for a rainy day.


Not having a business plan. While not every company needs a formal business plan, a start-up that requires significant capital to grow and more than a year to turn a profit should map out how much time and money it's going to take to get to its destination. This means thinking through the key metrics that make your business tick and building a model to spin off three years of sales, profits and cash-flow projections. "I wasted 10 years [fooling around] thinking like an artist and not a business person," says Louis Piscione, president of Avanti Media Group, a New Jersey company that produces videos for corporate and private events. "I learned that you have to put some of your creative genius toward a business plan that forecasts and sets goals for growth and success

Over-thinking your business plan. While many entrepreneurs I've met engage in seat-of-the-pants decision-making and fail to do their homework, other entrepreneurs are afraid to pull the trigger until they're 100% certain that their plan will succeed. One lawyer I worked with several years ago was so skittish about leaving his six-figure job to launch his business that he never met with a single bank or investor who might have funded his company. The truth is that a business plan is not a crystal ball that can predict the future. At a certain point, you have to close your eyes and take the leap of faith.
Despite the many books and articles that have been written about entrepreneurship, it's just not possible to start a company without making a few mistakes along the way. Just try to avoid making any mistake so large that your company can't get back on its feet to fight another day.



Wednesday, May 9, 2012

Data Warehouse


What is Data Warehouse:
A data warehouse is a relational database that is designed for query and analysis rather than for transaction processing. It usually contains historical data derived from transaction data, but it can include data from other sources. It separates analysis workload from transaction workload and enables an organization to consolidate data from several sources.
In addition to a relational database, a data warehouse environment includes an extraction, transportation, transformation, and loading (ETL) solution, an online analytical processing (OLAP) engine, client analysis tools, and other applications that manage the process of gathering data and delivering it to business users.

Abbreviated DW, a collection of data designed to support management decision making. Data warehouses contain a wide variety of data that present a coherent picture of business conditions at a single point in time.
Development of a data warehouse includes development of systems to extract data from operating systems plus installation of a warehousedatabase system that provides managers flexible access to the data.
The term data warehousing generally refers to the combination of many different databases across an entire enterprise

Data Warehouse is collection of data from different operational systems in to one place.we can read,write,modfy the data as per requirement similar like the database.but main difference between database and datawarehouse is that we use data warehouse for decision support and analysis purpose.


Types of Software Testing


Software Testing Types:
Black box testing – Internal system design is not considered in this type of testing. Tests are based on requirements and functionality.
White box testing – This testing is based on knowledge of the internal logic of an application’s code. Also known as Glass box Testing. Internal software and code working should be known for this type of testing. Tests are based on coverage of code statements, branches, paths, conditions.
Unit testing – Testing of individual software components or modules. Typically done by the programmer and not by testers, as it requires detailed knowledge of the internal program design and code. may require developing test driver modules or test harnesses.
Incremental integration testing – Bottom up approach for testing i.e continuous testing of an application as new functionality is added; Application functionality and modules should be independent enough to test separately. done by programmers or by testers.
Integration testing – Testing of integrated modules to verify combined functionality after integration. Modules are typically code modules, individual applications, client and server applications on a network, etc. This type of testing is especially relevant to client/server and distributed systems.
Functional testing – This type of testing ignores the internal parts and focus on the output is as per requirement or not. Black-box type testing geared to functional requirements of an application.
System testing – Entire system is tested as per the requirements. Black-box type testing that is based on overall requirements specifications, covers all combined parts of a system.
End-to-end testing – Similar to system testing, involves testing of a complete application environment in a situation that mimics real-world use, such as interacting with a database, using network communications, or interacting with other hardware, applications, or systems if appropriate.
Sanity testing - Testing to determine if a new software version is performing well enough to accept it for a major testing effort. If application is crashing for initial use then system is not stable enough for further testing and build or application is assigned to fix.
Regression testing – Testing the application as a whole for the modification in any module or functionality. Difficult to cover all the system in regression testing so typically automation tools are used for these testing types.
Acceptance testing -Normally this type of testing is done to verify if system meets the customer specified requirements. User or customer do this testing to determine whether to accept application.
Load testing – Its a performance testing to check system behavior under load. Testing an application under heavy loads, such as testing of a web site under a range of loads to determine at what point the system’s response time degrades or fails.
Stress testing – System is stressed beyond its specifications to check how and when it fails. Performed under heavy load like putting large number beyond storage capacity, complex database queries, continuous input to system or database load.
Performance testing – Term often used interchangeably with ‘stress’ and ‘load’ testing. To check whether system meets performance requirements. Used different performance and load tools to do this.
Usability testing – User-friendliness check. Application flow is tested, Can new user understand the application easily, Proper help documented whenever user stuck at any point. Basically system navigation is checked in this testing.
Install/uninstall testing - Tested for full, partial, or upgrade install/uninstall processes on different operating systems under different hardware, software environment.
Recovery testing – Testing how well a system recovers from crashes, hardware failures, or other catastrophic problems.
Security testing – Can system be penetrated by any hacking way. Testing how well the system protects against unauthorized internal or external access. Checked if system, database is safe from external attacks.
Compatibility testing – Testing how well software performs in a particular hardware/software/operating system/network environment and different combination s of above.
Comparison testing – Comparison of product strengths and weaknesses with previous versions or other similar products.
Alpha testing – In house virtual user environment can be created for this type of testing. Testing is done at the end of development. Still minor design changes may be made as a result of such testing.
Beta testing – Testing typically done by end-users or others. Final testing before releasing application for commercial purpose.

Embedded System


A specialized computer system that is part of a larger system or machine. Typically, an embedded system is housed on a single microprocessor boardwith the programs stored in ROM. Virtually all appliances that have a digital interface -- watches, microwaves, VCRs, cars -- utilize embedded systems. Some embedded systems include an operating system, but many are so specialized that the entire logic can be implemented as a single program
An embedded system is some combination of computer hardware and software, either fixed in capability or programmable, that is specifically designed for a particular function. Industrial machines, automobiles, medical equipment, cameras, household appliances, airplanes, vending machines and toys (as well as the more obvious cellular phone and PDA) are among the myriad possible hosts of an embedded system. Embedded systems that are programmable are provided with programming interfaces, and embedded systems programming is a specialized occupation.
Certain operating systems or language platforms are tailored for the embedded market, such as EmbeddedJava and Windows XP Embedded. However, some low-end consumer products use very inexpensive microprocessors and limited storage, with the application and operating system both part of a single program. The program is written permanently into the system's memory in this case, rather than being loaded into RAM (random access memory) like programs on a personal computer.


Items such as smart phones and iPods contain embedded systems. Telephone and communication devices were some the earliest innovators of embedded systems.



10 Reasons Why dotNET Is Better Than Java



This post is prompted by a post by africanboy when he said something like "Java Is Dead" and some people were like attacking him for expressing his view.

I've been a fan of the Java technology for quite some time now. I remember literally copying a Java book when I didn't have the money to buy it.

But one thing I discovered with technology is that it's not always about love but it's more about power. 
The bitter truth is when I compare java technology with CLI (popularly known as .NET), I see that Java is less powerfull in many areas.

I'll be using the words CLI and .NET interchangeably refferring to any implementation of the CLI (.NET, Mono or dotGnu)
This are some of my points.

1- In .NET you have a choice of languages to code with (C#,VB.NET, Java,Boo,Python e.t.c), producing the same type of compiled code but in Java one is limited to the java language. One may argue that jython is an alternative, but even the creator of jython who later created it's .NET version called IronPython admitted that .NET is a more powerful technology.

2, NET prgrams run at native speed while java is interpreted which makes java slower.Although java has Just In Time compilation but it stills run slower. With .NET you are not limited to JIT but have the option AOT or ahead of time compilation if you want to eliminate startup delays.

3. Calling native code in java is not a very clean process. You need to generate some stub files which makes the whole process cumbersome and dirty. In .NET you just declare that you are calling a native function from a specified library and just start calling it.

4. .NET languages are richer than Java. They have object oriented feature that are absent in java e.g properties,delegates,generics.

5. Java GUI programs look alien on the host operating system. Even if you use the OS's theme you still notice that the java widgets look out of place.

6. .NET in the form of Mono has brought a whole revolution on the linux desktop in form of great applications like beagle, tomboy, diva, iFolder, banshee e.t.c. This is something that java has failed to do despite the fact that it's been there long 
before .NET

7. Many programs that would have been difficult to develop with java have been developed with .NET things like compilers (Mono's C# and VB.NET) 3D game engines (unity game engine) e.t.c

8. The CLI is an open standard maintained by an independent standards organization (E.C.M.A) while java is still governed by SUN microsystems.Even though java has recently been open-sourced, it's future will still be highly influenced by SUN.

9. You can code on the .NET platform using Java but you cannot code on Java platform using any of the .NET languages.

10. Using Mono's IKVM to call java code from .NET or convert java classes to .NET assemblies. This is so efficient that large java programs like the eclipse I.D.E have been runned on .NET.

This is not an exhaustive list but I believe 10 points are enough to send the message.

One more thing, feel free to criticize my views or even flame me.

Product and Service based companies


Product based company is one which develops the its own products like hardware monitors , keyboard etc . Product based company uses there own idea to introduce theire product and they work on them from scratch to product.
whereas Project based companies provides services to those products or to projects which were developed by other companies.

Product based Software companies:
1. Google 
2. Amazon 

3. AOL 

4. Sun 
5. Oracle 
6. McAfee 
7. EMC-square 
8. Microsoft 
9. Yahoo! 

10. Goldman Sachs 
11. E&Y 
12. NetApp 
13. IBM (ISL) 
14. HP 
15. SAP 
16.Huawei 
17.Mportal 
18.TeleDNA 
19.vmware 
20.onmobile 
21.NDS
22.Omniture

IT Software products

Adobe reader, VLC media player, format factory And Avast