Tuesday 30 December 2014

10 Things to Know Before Outsourcing Your Dream Project


Image courtesy-blog.triphp.com

Outsourcing has become extremely popular with the IT function of larger businesses, due to the high acquisition costs of computer hardware and software, coupled with the high management costs of employing support staff.

IT services outsourcing are reinforced by a long-term service level agreement (SLA), which defines every aspect of service delivery, including call to fix response times, hardware infrastructure provided and supported, asset utilization and responsibilities of the client. 10 ways to choose your best outsourcing partner are-

1. Communication, Everything is in Communication

Cultural differences apart, the strength and effectiveness of communication channels employed by a company speaks for itself while you take stock on the expectations Vs delivered. It would be a good idea to see what kind of systems the company has employed to enable efficient communication with their customers.

Things to look for would be online communication and collaboration systems. Some examples would be basecamp, online conferencing solutions, centralized project commit space and a smooth execution of the same while interaction with you as a customer. Look for openness in communication.

The amount of transparency seen at the communication channels also shows a strong process oriented service delivery as well as it shows the strength of communication abilities of the team members. This results in better understanding of the project and gives more time to do the right things.

Also, when dealing with an outsourcing company, the language of choice must be addressed upfront. It is crucial to effectively and clearly communicate the scope and direction of the task/project to a contractor, and this is especially true if you are working with someone for whom your language is not his or her native tongue.

Communicating using several channels is advised. This way you can determine ability to communicate both verbally and in writing. Additionally, I recommend requesting an email or phone conversation in which they repeat back to you what you conveyed to them about the project/task to make sure nothing was lost in the translation and they grasp the assignment.

2. Exposure to country specific work/business culture

I strongly feel that as business continues to expand globally across communities, cultures and countries and brings different people closer, it is absolutely necessary for people to understand, appreciate and respect the religious and cultural differences existing between the two business communities.

Understanding the business culture of the country and then learning the skills of proper etiquette, manners and inter cultural communication is a must for industries functioning internationally. Years of exposure with international customers and face to face interaction are very important for both the businesses to sustain the work and deliver with utmost satisfaction to both business parties.

Many vendors put employees through tough training schedule. In addition, cultural differences include religions, modes of dress, social activities, and even the way a question is answered. Most offshore companies have cultural education programs, but executives should not assume that cultural alignment will be insignificant or trivial. Because, such kind of training helps to maintain good relationship with clients.

3. Taking Ownership of the projects and past   experience

When I speak about Ownership, I am basically talking about a company’s ability to convert a problem into a solution. To get a trusted partner who you can outsource your IT requirements is a humongous task, and, knowing about the company’s background and the level of ownership that they put into each and every project they handle can be an important criteria of judging their capability.  Read More...

Source: CodeWebber

Software Testing World


Introduction
 
Software testing is a critical element of software quality assurance and represents the ultimate process to ensure the correctness of the product. The quality product always enhances the customer confidence in using the product thereby increases the business economics. In other words, a good quality product means zero defects, which is derived from a better quality process in testing.

Software is an integrated set of Program codes, designed logically to implement a particular function or to automate a particular process. To develop a software product or project, user needs and constraints must be determined and explicitly stated. The development process is broadly classified into two.

1. Product development
2. Project development

Product development is done assuming a wide range of customers and their needs. This type of development involves customers from all domains and collecting requirements from many different environments.
Project Development is done by focusing a particular customer’s need, gathering data from his environment and bringing out a valid set of information that will help as a pillar to development process.
Software Testing World
Testing is a necessary stage in the software life cycle: it gives the programmer and user some sense of correctness, though never “proof of correctness. With effective testing techniques, software is more easily debugged, less likely to “break,” more “correct”, and, in summary, better.

Most Software Development processes in the IT industry always seem to follow a tight schedule. Often, these schedules adversely affect the testing process, resulting in step motherly treatment meted out to the testing process. As a result, defects accumulate in the application and are overlooked so as to meet deadlines. The developers convince themselves that the overlooked errors can be rectified in subsequent releases.

The definition of testing is not well understood. People use a totally incorrect definition of the word testing, and that this is the primary cause for poor program testing.  Read More...

Source: CodeWebber

Friday 26 December 2014

All About PCI Compliance

The Payment Card Industry Data Security Standard (PCI DSS) is a widely accepted set of policies and procedures intended to optimize the security of credit, debit and cash card transactions and protect cardholders against misuse of their personal information. The PCI DSS was created jointly in 2004 by four major credit-card companies: Visa, MasterCard, Discover and American Express.

Credit card issuers are aggressively enforcing the PCI DSS to safeguard cardholder information and prevent losses; non-compliance with the standard can result in significant fines or losing their ability to process credit cards. In addition companies are required to validate their PCI DSS compliance annually.

The core principles of the PCI DSS framework consist of twelve requirements categorized into six Control Objectives or Functional Areas. Organizations must comply with all the requirements to meet the overall objective of PCI DSS.

Organizations that are required to be compliant under the scheme must adhere to 12 PCI compliance requirements within 6 control objectives. 
These are:

1. Build and Maintain a Secure Network

Requirement 1: Install and maintain a firewall configuration to protect cardholder data.
Requirement 2: Do not use vendor-supplied defaults for system passwords and other security parameters.

2. Protect Cardholder Data

Requirement 3: Protect stored cardholder data.
Requirement 4: Encrypt transmission of cardholder data across open, public networks.

3. Maintain a Vulnerability Management Program

Requirement 5: Use and regularly update anti-virus software.
Requirement 6: Develop and maintain secure systems and applications.

4. Implement Strong Access Control Measures

Requirement 7: Restrict access to cardholder data by business need-to-know.
Requirement 8: Assign a unique ID to each person with computer access.
Requirement 9: Restrict physical access to cardholder data.

5. Regularly Monitor and Test Networks

Requirement 10: Track and monitor all access to network resources and cardholder data.
Requirement 11: Regularly test security systems and processes.

6. Maintain an Information Security Policy

Requirement 12: Maintain a policy that addresses information security.
It is a strict standard that applies to the cloud as well as in-store, providing security no matter where the information is held. In June of 2011 the PCI Security Standard Council stated that “any device that stores or transmits cardholder data is overseen by PCI DSS”. This includes all hardware and software programs in the cloud.

If your business or organization processes debit card or credit card information, and is considering moving to the cloud, make sure that you select a PCI compliant cloud company. This will keep your information and those of your customers in a secure environment.

Source: CodeWebber

Why the Latest PHP 5.5 is Impressive on Ecommerce Stores?

LAMP (Linux/Apache/MySQL/PHP) platform is a successful alternative to commercial software for building and operating dynamic and high performance web systems. PHP has become one of the major player on the web development market in the last few years. For all Linux hosting packages, PHP 5.5 has recently become the standard version.

The upgraded PHP version 5.5 comes with lots of changes and value additions. Most of the changes are beneficiary for the e-commerce stores running on php.


Here’s a Brief description of what PHP version 5.5 has to offer your e-commerce store

1. Addition of keywords
In php version 5.5, the provided refinery keyword facility will allow a developer to define block code, cache block for better keyword search. It improves the result of the search based on keywords. Keyword search is very much helpful in the e-commerce online stores.

2. Availability of Generators

Availability of generators provides a way for iteration through the data. Because of which the function keyword will give the more appropriate results. In e-commerce online stores, it is important to get appropriate results for a particular search for keyword. Availability of generators in php version 5.5 provides this facility.

3. Class name resolution update

Updated class name resolution in the php version 5.5 provides easy and fast filtering through the class names. More options for the class name resolution and filtration in the updated php version. For e-commerce online stores more class name filtration gives better results.

4. Empty functions acceptability

Empty functions are used to determine the false or equal value false commands. Sometimes these empty functions won’t work properly and take the search result back to the original place. In php version 5.5, the acceptability of the empty function is improved. It won’t take the search result at initial position. In advanced version, the false value recognition is improved. It helps e-commerce online stores to get uninterrupted process of product selling after the false command entries. It helps the e-commerce online stores to gain more customers.

5. Security

Apart from core technical impact, the main impact of php version 5.5 is on security. This version makes the e-commerce online stores become more secure. For example, as Microsoft have decided to cut-off the support system of windows XP and other older versions, it is easy to crack the systems working with earlier. But it will not be an issue in php based systems as php 5.5 version does not function on the windows XP or older versions. So the firewall provided by the windows and security system of php will keep your e-commerce store intact.
For more information refer php.net

At CodeWebber, we offer comprehensive e-commerce development services to various SMEs and large scale businesses across the globe which help them offer their products and services vividly on the internet and outshine in the digital marketplace.

Source: CodeWebber


Saturday 20 December 2014

Ruby on Rails 3.1 and Sprockets – A closer look

Ruby on Rails 3.1 uses a new technology called Sprockets to speed JavaScript execution. Sprockets compiles all the features that a Web application uses into a single file, that simplifies work for the developer and quickens the response time of the application. New features to look out for


Asset Pipeline

Asset Pipeline is the principal feature of the release (Ruby on Rails 3.1) . In simple terms it allows proper organization of CSS and JavaScript files. The asset pipeline helps to make it simple to organize and serve your assets.

Combining the pipeline with a well-tuned web and application server means that web sites being blazing fast! Also, browsers will load pages quicker than ever before, specially when used with the asset pipeline, because it’s just one file used throughout the app. Ideally, while the user is navigating through your website, his browser wouldn’t need to load the assets again since it’s cached; so loading time is only experienced at the first visit.

HTTP Streaming

HTTP streaming (Ruby on Rails 3.1 update) helps the server by sending data to the client in chunks. Rather then sending it only when the page has been fully rendered, it sends rendered content as soon as it’s produced.

jQuery is now default

The default JavaScript library for Ruby on Rails has been switched to jQuery. Users can easily change from the previous default library, Prototype, through a single command. Developers shouldn’t notice any difference, and going forward, Ruby on Rails will be able to harness the work being done on this popular library.

These are just some of the new features available to you with Rails 3.1. There’s a lot of other good stuff you can explore. Tell us which of the features listed here would most suite your needs. Happy coding!

Source: CodeWebber

Thursday 18 December 2014

All About Scrum

Scrum is an iterative, incremental process for developing any product or managing any work. Scrum concentrates on how the team members should function in order to produce the system flexibility in a constantly changing environment. At the end of every iteration it produces a potential set of functionality.

The term ‘Scrum originated from a strategy in the game of rugby where it denotes “getting an out-of-play ball back into the game” with teamwork. Scrum does not require or provide any specific software development methods/practices to be used. Instead, it requires certain management practices and tools in different phases of Scrum to avoid the chaos by unpredictability and complexity

Key Scrum practices are discussed below

Product Backlog – This is the prioritized list of all features and changes that have yet to be made to the system desired by multiple actors, such as customers, marketing and sales and project team.

Sprints – Sprints are 30-days in length, it is the procedure of adapting to the changing environmental variables (requirements, time, resources, knowledge, technology etc) and must result in a potentially shippable increment of software.

Sprint Planning meeting – Sprint planning meeting is first attended by the customers, users, management, Product owner and Scrum Team where a set of goals and functionality are decided on.

Sprint Backlog – It is the list of features that is currently assigned to a particular Sprint. When all the features are completed a new iteration of the system is delivered.

Daily Scrum – It is a daily meeting for approximately 15 minutes, which are organized to keep track of the progress of the Scrum Team and address any obstacles faced by the team.

Source: CodeWebber

Top Open Source ERP Applications

Here I will be mentioning the top ERP open source applications.

1) OpenBravo

Openbravo, the agile ERP, is a modular, ready to use, 100% web-based open source and free business management system written in Java, that automates all of the core business processes for small and mid-sized companies. This makes an appealing alternative to SMEs. Openbravo is built on proven MVC & MDD framework that facilitate customization & maintenance of code. Openbravo already enjoys a growing customer clientele.

1.1) Features

a) Application Dictionary: Use the Application Dictionary Module to customize, modify, and adapt the application to your needs.

b) General Setup: Use General Setup Module to edit basic settings such as languages, currencies, menus, workflows, alerts, clients, roles, users, organizations, banks, and importing data.

c) Master Data Management: Use Master Data Management Module to define and edit information related to business partners, prices, and products.

d) Procurement Management: Use Procurement Management Module to manage requisitions, purchases, goods receipts, invoices, and analyze related reports.

e) Warehouse Management: Use Warehouse Management Module to create and edit warehouses, and manage inventory.

f) Production Management: Use production Management Module to create and edit your production processes, production control, and analyze related data.

g) Materials Requirement Planning (MRP): Use the Materials Requirement Planning Module to edit your production planning, inventory control, and purchasing activities.

h) Sales Management: Use Sales Management Module to create and edit sales orders, goods shipments, invoices, commissions, and analyze related reports.

i) Project & Service Management: Use Project & Service Management Module to create and edit services, projects, analyze related reports, and add employee expenses.

j) Financial Management: Use Financial Management Module to create and edit accounting, assets, and receivables and payables.

1.2) Pros & Cons.

Pros:

a. It includes necessary functionality for complex retail management process,

b. It allows for integration with Point of Sale equipment (barcode system, touch screens, fiscal printers, card readers etc.), which improves sale process,

c. Dynamic development – your software will always follow the current business trends due to free access to the latest updates,

d. Simple, intuitive and aesthetic graphic interface – you and your employees will not have any difficulties in getting familiar and using the software during your daily tasks,

e. Compatibility with Windows and free operation system Linux,

f. Detailed documentation – it allows for extending the system by any programmer, who is familiar with Java technologies,

j. Scalability – the system does not lose efficiency, even when its complexity grows.

Cons:

a. The support system and documentation are inadequate.

b. Some users complain that the system crashes a lot.

c. Limited customization possible.
2) Dolibarr

When it comes to open source ERP software built on PHP, Dolibarr is a competitive and modern product with an active community of users. Dolibarr is completely free, and it can be used as a standalone program from any computer or server, or it can be used online through a dedicated or virtual private server.
Documentation for the software can be found on a wiki website that is frequently updated by both developers and veteran users. Although the base program is free, many users opt to purchase additional modules and plugins from the Dolibarr store. Some of the most popular plugins are for project management, digital documentation, pricing tables and telephone management.

2.1) Features

a) Products and services catalog

b) Stock management

c) Bank accounts management

d) Customers, Suppliers or Prospects directory

e) Contacts directory

f) Commercial actions management

g) Orders management with PDF generator

h) Commercial proposals management with PDF generator

i) Contracts management

j) Invoices management with PDF generator

k) Payments management

l) Standing orders management

m) Shipping management

n) Foundations members management

o) Bookmarks management

p) Emailingq) Agenda

r) Point of Sale

s) Donations management

t) Reporting

u) Data export tools

v) LDAP connectivity

 2.2) Pros & Cons

Pros

A very capable software with features capable of running a medium company. Well designed so that the basic user is able to install and use it

Cons

To make maximum use of it’s potential you must know a bit of server configurations

3) WebERP

Although webERP is a powerful enterprise system, the developers admit that it is best suited for manufacturers, distributors and wholesalers. Retail businesses looking for a complete system have to combine webERP with third-party POS software.

Small and medium-sized organizations will find webERP to be surprisingly simple yet very effective, but it is not powerful enough to handle the needs of large businesses. A demo is offered for a quick overview of the system, and full downloads are available through Sourceforge.

3.1) Features

a)General
  • Entirely web-based
  • Runs on any web-server that can accommodate PHP – can use an ISP instead of having/maintaining own server
  • Minimal use of javascript for maximum compatibility with all web-browsers and web enabled devices. Some small amounts used to improve error-trapping and user interactivity.
  • Produces reports to Portable Document Format – PDF for accurate positioning of text
  • All reports and scripts easily modifiable PHP text
  • All processing on the server and no installation required on client machines
b) Security
  • Users can be defined with access to only certain options using a role based model
  • Options applicable to certain roles can be graphically configured and users defined as fulfilling a given role.
  • Incorrect entry of password (more than 3 times) blocks the account until reset by the System Administrator. This prevents password crackers from breaking the security.
  • Pages can be encrypted using SSL and webERP can be configured to only display pages using SSL to ensure that all information passing over the internet is encrypted.
  • Users can be defined to see only certain modules on the main menu – so menu options that they will not have access to are not even displayed on screen.
  • HTTP security can be configured over the top of the inbuilt security to provide two levels of security – the first to access the web-server at all and the second to actually get into webERP
  • An audit trail of which users did what is retained and is automatically maintained based on how long the information is required to be kept
  • All inputs are sanitized to prevent SQL injections and cross site scripting.
c) Sales and Orders

Quotations can be entered and printed as quotations then
  • changed to an order if the customer accepts without re-entering
  • Customer orders can be entered and maintained and referenced back to the customers order number.
  • The cumulative quantity on order for a stock item shows as a demand in stock status inquiries.
  • The cumulative quantity on order for assembly items shows the demand against its components in the stock status inquiries.
  • The quantity of the order left to invoice is maintained and updated for invoices and credit notes raised against the order.
  • The orders entered can be invoiced directly with little or no additional input.
  • Multiple dispatches are possible from a single order. Order retains references to each dispatch.
  • Differences from the order are logged when dispatches are not the same as the ordered quantities for reporting delivery in full on time.
  • Pricing automatically returned based on the customer sales type, branch and currency.
  • Pricing can be set to be effective from specific dates and to finish on a final date
  • Pricing is by currency
  • Any number of price lists can be maintained. Customers are defined to get their pricing from a specific price list. However, special prices can be defined as an exception for a given customer or even a particular branch of a customer
  • Quantity break discounts across a range of products are automatically calculated based on a discount matrix.
  • Packing slips printable on laser or pre-printed stationery.
  • User selectable inventory location to pick from.
  • Automatic freight calculations based on shipping method and delivery address. Orders calculate weight and cubic based on item unit weight and cubic.
  • Free form entry of delivery addresses defaulting to the customer branch physical address.
  • Automatically recurring orders can be entered and if the orders are for “service items” the order can also be automatically invoiced.
  • Daily sales reports and ad-hoc sales graphs
  • Delivery In Full On Time reporting
d) Taxes
  • Tax rates dependent on the type of product – using tax categories
  • Tax rates dependent on the location of the warehouse dispatched from
  • Tax rates dependent on the location of the customer
  • Multiple taxes payable to different tax authorities
  • Each tax posted to different user-definable general ledger accounts – if linked to AR/AP
e) Accounts Receivable
  • Overdue inquiry that takes into account delivery days to the customer’s branch and the actual (user definable) payment terms applicable to the customer, supported by detailed inquiry of actual invoices overdue.
  • Full on-screen inquiry on a customer’s account, complete with invoice details and narrative which appeared on the invoice. Drill down to source document  invoice or credit note.
  • Invoice can be emailed to customers together with pdf attachments dependent on items invoices eg. warranty, datasheets, instructions, manuals etc.
  • Inquiries on payments received will show how a payment was allocated to invoices and the difference on exchange attributable to each invoice.
  • Full integration with stock records and general ledger – a full trail o
  • f journals for each transaction is maintained a drill down to the general ledger transactions for each transaction on a customers account is available from the customer inquiry page.
  • Flexible general ledger postings for sales and if required as well cost of sales based on sales area and product category. General ledger integration is optional.
  • Open item – full analysis of the outstanding balance is maintained and printed on statements for maximum information to the customer.
  • Statements can show transactions settled this month or only outstanding transactions as at the date of printing.
  • Flexible user definable sales analysis reports to pdf or spreadsheet (csv comma separated values). Report definitions can be saved for re-running or automating email delivery from a scheduled job.
  • Retrospective de-allocation and re-allocation of receipts or credit notes agains charges with re-calculation of differences on exchange and corresponding general ledger journals.
  • Any number of branch delivery addresses can be added serviced by different sales people with different tax authorities and different areas for sales analysis purposes.
  • Unlimited accounts and unlimited number of branches (ship to addresses) for each account.
  • Shipping method updated by branch.
  • Customer accounts can be in any currency. Individual rate for each invoice, default to currency table rate.
  • Currency table can be set to be automatically updated daily from European central bank published rates.
  • Invoices and credit notes created in pdf.
  • Email of invoices and credit notes.
  • Credit notes can be produced from one click taking the details of a selected invoice for subsequent modification.
  • Transaction inquiries show sequence of invoices, credit notes and receipts entered.
  • Option to produce integrated google maps of customer locations (and suppliers)
Read More ...

Source: CodeWebber


Wednesday 17 December 2014

CodeWebber Services Primer

CodeWebber offers services that are carefully crafted for the requirements of various customer segments starting from Small Businesses to enterprises, spanning multiple vertical industries. There are services specifically stacked along the development cycle too from Business Analysis all the way to Deployment, all optimized for maximum efficiency. This article offers a glimpse into services offered by CodeWebber so as to ease out the selection process and increase ROI for our customers.

At CodeWebber we take pride in offering an end-to-end enterprise class service delivery model backed by one of the best in class service delivery management application, Visioncarma.

The Team

CodeWebber has more than 100 software developers working in a 24 hours 365 days model.
The Process

The Agile methodology we follow helps us create apps in record time while, allowing us to maintain superior quality and usability.

Quality
The application developed by us are high on quality and are user friendly. The intensive testing methodology makes us capable of delivering the perfect app.

Facility
CodeWebber is housed in a 8000 sq ft office space with air conditioned working spaces and separate training and meeting rooms.

Industry Expertise
We have 10 years experience in delivering quality services around the globe.

Technology
We use the latest technology for developing applications for example RoR, CakePHP, PHP, .NET development.

Projects Handled
Numerous projects handled in a decade long pursuit of excellence.

Engagement Models
Numerous Engagement models ranging from resource based billing to turnkey application development.

Performance Based Contracts
Innumerable options  for clients to test our level of commitment. From demo projects to contracts based on performance. We do it all!
Customer Orientation
Driven by customers. For customers. This is our motto of project handling, as all projects we handle are based on the customer requirements.

Communication Systems
We utilize many communication systems such as video conferencing, voip local access numbers, Basecamp, Pivotal Tracker and other project management tools, Bug trackers, Versioning systems,etc.

Code Version Control
The version control helps our developers to track any change they made and redo it if there were issues in the working of the application.

Copyright
All our projects are carried out with complete client privacy in mind and the application we develop are compliant to HIPPA standards.

Open source Development
We develop opensource software in record time and have engineers specifically for such kind of development requirements.

Location of Operations
We have our offshore development center in Bangalore, India and our sales office is in US.

Events & Training
Constant training and support is provided to all the developers in terms of catching up to the latest technology trends and updates.
Climb.Edu

Our training wing Climb.Edu provides specific training to developers with respect to improving their language knowledge.

Source: CodeWebber


Tuesday 16 December 2014

PHP Vs RoR- A Comparitive Study

PHP was built primarily as a server-side scripting language for web development and dynamic content and, it has been around since 1994. PHP code was originally embedded within the HTML code so that the content could change according to the needs of the coder. This too changed with the arrival of frameworks into the development world.

Ruby was first launched as a scripting language that was more powerful than Perl and more object-oriented than Python. Ruby was born in 1993, and its first public release came up in 1995. Although Ruby was older than PHP, only after having ties to Rails in 2005, did it really start gaining popularity.

PHP is a stand-alone language, whereas, Ruby on Rails is a language combined with a framework, therefore we can only analyze some of the general differences which are


 

Scaling

They are both equally easy or difficult to scale in different levels. The first level of scaling is just about adding more memory/cpu/server instances. Once this is done, they are both equally hard demanding all of the same methods as scaling any other web application on the internet.

Web hostin

PHP applications do have support from most of the web hosting companies, whereas Ruby on Rails is supported only by unix based server. On hosting front, PHP is an obvious winner. But with introduction of Heroku, ROR applications can be hosted easier.

Application performance:

  • Add New
There is no hiding the fact that PHP codes run faster than that of Ruby on Rails code. On the other hand, we can achieve tasks in RoR with few lines of code when put next to that of PHP coding. So, achieving tasks faster with few lines of code is the clear winner for me.

Frameworks:

On the framework front, there is no clear winner as both PHP and Ruby have good MVC architectural framework. PHP has more compatible frameworks like CakePHP, codeigniter and Zend. But, in Ruby too, apart from rails there are many good frameworks like Sinatra, vintage etc. So it is a tie when the comparison is about frameworks.

Testing:

Testing code and modules is a difficult affair in PHP. However, in Ruby on Rails with introduction of R-spec testing rails code is an easy cake for developers. Ruby on Rails development will be helpful in creating bug-free application. In CakePHP too you can do those testing, but, with certain code changes.

Code Structure:

RoR has a clear code structure when compared to that of PHP.

Memory:

PHP utilizes less memory space because by default they don’t have the overhead of a web framework. whereas Ruby on Rails would use more space. Hence, application based on Ruby on rails would be slower compared to that of PHP.

Syntax:

Both have syntax that is clear and simple. However, Ruby without ending syntax was not acceptable to many programmers. So the final conclusion is, if a client project already has existing PHP code and we’re developing for that, that is, integrating at the software level, we stay with PHP. Whereas, if a client needs a brand new application then we have a slight inclination towards using RoR. I am not saying that PHP is bad. Come on, you have already gone through the comparative study! Last but not the least, when CodeWebber builds a new app for our own needs, we use either PHP or Ruby on Rails. Happy PHPians?
At CodeWebber, we value your business.  Our team of experts are waiting for your query. CONTACT US!

Source: CodeWebber



Sunday 14 December 2014

The Vendor company selection guide to outsourcing

Millions of dollars are spent on vendor company outsourcing. Most organizations are outsourcing activities that are either not cost efficient if done in-house or not core to their businesses. Vendor company selection is one of the most important steps in outsourcing and it is a strategic decision.

When you’re reviewing proposals from service providers, don’t be afraid to ask questions. Checking references and asking for client feedback is another important thing to keep in mind. Also, all your concerns regarding a vendor’s specific capabilities needs to be addressed in a proper manner.

The stability of a vendor company in unstable environments is very important. You want to be sure you’re dealing with a company that can continue to support you for years ahead. Some of the questions that need brain storming and research are-

Evaluate your own requirements 1st

Before even looking for a vendor, you need to go through a thorough analysis of your own requirement. Believe me, this business analysis data will be your main weapon to choose a vendor by outlining their services and tallying it up to your requirement.

Venture Capital supported Vendor Company- A big NO NO!

You can’t afford to do business with a company that can be shut any time, can you? This is a possible scenario with all Venture Capital invested companies. As they simply stop funding the company when they feel that there investment has no ROI.

Strong roots

A good direction, deep commitment and strong roots in the IT industry. That’s what you are looking for. Is your vendor company’s future goals determined by anonymous investor, or, has it been built from the ground level by a group of partners? It is sensible to go with the second option if you do not want your outsourced project be a mess!

Price slashing- A warning sign

Does your objections make the vendor slash prices? Willing to offer a bargain is a warning sign that a vendor can’t meet all your needs. If such is the case, then stay away from the company!

Visible Growth

The rate of growth can be found out by checking the financial. If growth is turbulent or inconsistent, it could be a point of worry. A consistent or at least sustained growth is good and you can be one step ahead in selecting the best vendor company for your business.

In some extreme cases it is possible that even after taking care of all these factors, some vendor companies might just surprise you at the last moment. Don’t worry, there is a solution for this too. Run a demo project and judge their capability of understanding your project requirements.
At CodeWebber, we value your business.  Our team of experts are waiting for your query. CONTACT US!

Source: CodeWebber

Looking for Ruby on Rails Freelancers? Pros & Cons…

Ruby on Rails has gained outstanding reputation as one of the fastest programming languages known today. Ruby on Rails freelancers use Ruby, with all of its frameworks and libraries  for a web development career because of its focus on clean code, object-oriented syntax, efficient development practices and strong community.

So you may think that you should get on the freelance mode and find a good RoR developer. But, freelancing is not at all an easy task! Not for you, and definitely not for the developer.

It can become a big problem if you are not able to balance the work responsibility you have assigned to the Ruby on Rails freelancers with a clear and precise documentation of the project completed in a stage by stage manner.
At CodeWebber, we hire the best Ruby on Rails developers who are directed by dedicated team leaders and PM’s to make project delivery stage a hassle free transaction. Here are some of the pros and cons of working with a freelance developer

Everything is about time and money!

The biggest and the most obvious advantage of hiring Ruby on Rails freelancers is that, you can save both time and money. There is no hassle of communicating with different people to get your project up and running.
Also, Ruby on Rails freelancers charge much less than a software company. For highly competitive pricing model and best in class quality, try CodeWebber!

Quality of work

While quality is of utmost importance to a Web and Application Development company like CodeWebber, the same cannot be said about Ruby on Rails freelancers, as there is no assurance of quality of work and also there may be problems that may arise due to improper communication at various levels of project cycle.

24/7 availability

Most Ruby on Rails freelancers work at erratic times and according to their whims and fancies. CodeWebber has fixed work hours and all our developers are present during the working hours. All communication channels are carefully streamlined to meet our client’s requirement.

Staffing flexibility

Working with Ruby on Rails freelancers allow employers greater leeway in hiring and letting go of workers, which can be especially advantageous for employers with fluctuating workloads. CodeWebber provides customers the freedom to choose from a multitude of engagement models that are tailor-made according to their needs.

All said, Ruby on Rails freelancers do provide a level of freedom to the client but, selecting and dealing with them requires utmost diligence. With CodeWebber’s agile application development model, developing enterprise apps becomes much more easier and cost efficient for you.

At CodeWebber, we value your business.  Our team of experts are waiting for your query. CONTACT US!

Source: CodeWebber

 


Saturday 13 December 2014

Bad CakePHP Habits & How to Rectify Them!

As a programmer we are always learning, so it is important to follow the best practices and adjust to them.

CakePHP Conventions
There are actually CakePHP coding conventions which should be followed. I will highlight a few things,

1) Control Structures.  So often you see programmers get this wrong, and in even some cases bring practices for other coding languages.  CakePHP expects the following syntax:

if ((expr_1) || (expr_2)) {
// action_1;
} elseif (!(expr_3) && (expr_4)) {
// action_2;
} else {
// default_action;
}

In the control structures there should be 1 (one) space before the first parenthesis and 1 (one) space between the last parenthesis and the opening bracket.  So this means that the following is incorrect:

if ($foo) {
$bar = true;
if ($action) {
$to = false;
}

The indentation needs to line up correctly.

I often hear programmers say “but I am too busy to make the code neat….” My response is – “trust me, neat code will stand the test of time”.  Writing code which isn’t readable will be a nightmare to come back to if you need to make a change in a few months.

Fat Models, Skinny Controllers

Good CakePHP code will have the logic in the model files. This takes a bit to get used to, but once mastered there is no looking back!  A controller file should be used for what it is intended for in the MVC pattern – controlling!  So use your controller file to handle user actions, while let the code logic go in the model file.



The default add function is as follows:

public function add() {
if ($this->request->is(‘post’)) {
$this->Post->create();
if ($this->Post->save($this->request->data)) {
$this->Session->setFlash(__(‘Your post has been saved.’));
return $this->redirect(array(‘action’ => ‘index’));
}
$this->Session->setFlash(__(‘Unable to add your post.’));
}
}

This controller action is fine for a simple add, but what would happen if you wanted to do things such as send an email to the admin when a post was added, or update another model association when a post was added.  This is additional logic, but this logic shouldn’t go into our controller file.

Instead we would write a function for this in our App.php model, perhaps something like this:

public function addPost($data = array(), $emailAdmin = true) {
$this->create();
$this->save($data);
// update any other tables
// send the email to the admin user
if ($emailAdmin) {
}
// if all is successful
return true;
}

This would then result in a small change to the controller action as follows:

public function add() {
if ($this->request->is(‘post’)) {
if ($this->Post->addPost($this->request->data)) {
$this->Session->setFlash(__(‘Your post has been saved.’));
return $this->redirect(array(‘action’ => ‘index’));
}
$this->Session->setFlash(__(‘Unable to add your post.’));
}
}

As you can see, the new action is actually one less line, because the $this->Post->create() has been moved to the model file.
This is a perfect, everyday example of where moving logic to the model file is a good idea – and it certainly makes for a much cleaner code base!

Source: CodeWebber

Magento: How to Display a Single Product Instead of a Category on Home Page

Method 1:-

1.In admin panel,Go to CMS > Pages > Home page

2.Choose it and there will be 4 tabs on the left. Page Information, Content, Design and Meta Data. Choose “Content”
3.Now paste this code snippet to show products labeled as “new” on your front page:

{{block type=”catalog/product_new” name=”home.catalog.product.new” alias=”product_homepage” template=”catalog/product/new.phtml”}}

Method 2:-

1.In admin panel,Go to CMS > Pages > Home page

2.Choose it and there will be 4 tabs on the left. Page Information, Content, Design and Meta Data. Choose “Design”

3.Now paste it in Layout update XML

<reference name=”content”>
<block type=”catalog/product_new” name=”home.catalog.product.new” alias=”product_homepage” template=”catalog/product/new.phtml”>
<action method=”setProductsCount”><count>8</count></action>
<action method=”addPriceBlockType”>
<type>bundle</type>
<block>bundle/catalog_product_price</block>
<template>bundle/catalog/product/price.phtml</template>
</action>
</block>
</reference>


4.Click Save page at the top right.

(Note that you must have some new products in your catalog for anything to show when you do this. This doesn’t mean that you’ve recently added them; only products explicitly marked as new using “Set Product as New from Date” and “Set Product as New to Date” options in the “General” product information page in the admin tool will be shown.)

Now,Go to Catalog > Manage Products and choose the product which you want to show as a new product in front end.

=>In the General Tab on the right there will be 2 options at the bottom “Set Product as New from Date” & “Set Product as New to Date
=>Put in the desired timeline when your products are new(In Magento- 1 week if you update frequently and 1 month if you update rarely).

Note:Make sure that in your theme the “new.phtml” file is there.

Source: Codewebber

Thursday 11 December 2014

The Guide to Choosing a Web Development Company

It is essential to take some standard factors into consideration when scouting for an web development company for expert help in your online business development.The main attributes of their services as well as solutions should convey reliability, dependability, and that the website must match your business image and processing.


The clients should consider taking these major considerations before selecting a good web development company :

Reliability 

Selecting a Website Development firm which is reliable and dependable is critical . To make sure that the web development company you select is reliable , you ought to check references and also check if they feature testimonials on their website.

Additionally, try using a search engine, like Google, to lookup the web development company’s name to understand what type of information you can find. Seeking out an established web development company is very important.

Services Offered 

The higher number of services the web development company offers, the more advantageous it is for your company. When you hire a company that can potentially manage all of your web development needs, for example web design, web 2 .0 development, search engine optimization, website hosting, social media marketing etc. Then you definitely won’t need to concern yourself about seeking separate web companies for each and can actually concentrate on maintaining your own company.
Knowledge 

A Web Development company’s understanding of this ever changing industry is in addition an important aspect when trying to choose which website development company to hire . You need to be certain that the web development firm which you choose provides the newest as well as state-of-the-art products and solutions to help companies function successfully on the internet.

Reviewing their web design portfolio is a speedy and simple approach to take a look at some of the latest websites they have developed. Looking through a list of web solutions they provide is furthermore a terrific way to get a feel for just how much the web development company understands and how much they are able to do for your company.


Understanding whether or not the web development company provides custom website development must be among your main concerns , as well. Your main goal is to make your company’s website to stand out among the rest , not merge with the competition , therefore working with a web development firm that can potentially manage everything from the website design , development , hosting , and integration of an SEO friendly CMS ( content management system ) is truly beneficial.

Source: CodeWebber

Cloud Application Architecture-The Building Block of Cloud

Cloud computing system can be split into two sections, that is, the front end and the back end. The internet (network) connects the two together.


The front end is the side the computer user, or client, sees. The back end is the “cloud” section of the system.

Infrastructure cloud services offer efficient capabilities to use infrastructure resources in a very dynamic model.

These functionalities allow an application to be dynamic enough to be able to adjust the infrastructure usage to the current requirement. But, there is a catch attached as, having this kind of power makes it prudent for the application to be compliant to some cloud application architecture concept.

The concepts that we are going to discuss here are fundamental to ensure that the application can fully profit from the pay-per-use pricing models of clouds. In addition to this, it also ensures that economies of scale can be efficiently exploited.
  

It is based on two main aspects- state management and scalability. Let’s dwell into these two aspects a little further-

State Management- Stateful vs. Stateless:

A significant amount of information about the current state of the application is stored in the memory or the cache that cannot be recovered when the system is being restarted in Stateful systems. But, in case of Stateless systems, very little data is stored within a recoverable repository.

The Stateless system has all the data in an ongoing mode so that it is instantly available. In Stateless systems the recovery processes are much easier thereby, lending it an upper edge.

If the system is developed in a very clean manner then recovery process step is also not needed as, such a situation won’t arise. This is possible because, the operation will start without an initial state and thus takes the input values from the data repository. Therefore stateless systems have less rigid requirements for the underlying infrastructure.

Scalability- Vertical vs. Horizontal

Scalability also plays a key role while determining application design. An application can be either scaling up or scaling out. While scaling up means a significant increase in the performance of a single operating system to support the higher demands of the application, Scaling out is about adding in extra operating system and application instances. An example of scale out architecture is webserver clusters that support one website.

Cloud-based applications provide many advantages, including getting the app market ready and making scaling an easier affair. In addition to this, the initial cost is lower, and well-architected cloud-based solutions by and large offer substantially better disaster recovery capabilities.

Nevertheless, to take benefit of cloud-based deployments, the architecture must be consistent to that of the cloud. A scale out architecture is the best option for cloud application architecture.

Source : CodeWebber


Learn About MySQL Stored Procedures

MySql 5 introduced the concept of stored procedure functionality. If you have already worked on other DBMS (Database management System) or Mysql,  you might be familiar with the concept of stored procedure. We will learn more about it in detail here.

What is mysql stored procedure?

Stored procedure is a set of SQL codes stored in a database server which can be invoked by a program, trigger or stored procedure itself.
Stored procedure is a way to execute tasks/business logic directly on your database server. Generic tasks can be performed  which are dependent on database table data.
So rather to go multiple time on database to fetch data into your program and perform your business logic stored procedure give some generic way of coding for your business logic and take data return or you can save your processed data into your database.

Let us take an example

A loan officer wants to change the floating interest levied for a customer’s loan account.
What is your normal course of action? (using your program?) From the database you will fetch capital, rate of interest, duration and calculate interest.  You will go back to the database and save data. In this case we enter the database twice. But, if we use a stored procedure we just need to write this operation within our stored procedure and call it through the program one time. You can fetch capital, rate of interest and duration from the database and save data after processing.  We interrupt the database server only one time. Thanks to the stored procedure, conservation of server resources – check!

Advantages of Mysql Stored Procedure:

Multiple applications running in different environments sharing a database.
Business logic which is independent of programming language.

When security is a main concern use of stored procedure is vital. By doing your operation through the database you can log all performed actions.
Stored procedure does not give direct table access which is one more way to secure data and transactions.

Stored procedure increases performance of your application. When a stored procedure is created and compiled, it never goes to parser, directly fetch the record and execute. Whereas normal SQL query fired on database server get parsed every time so using stored procedure you can save parsing time.

If your application is big or your database server is on a remote system,  using stored procedure can decrease traffic between your database server and application server.

Since stored procedure is written in your database server and application calls it separately, the degree of reusability increase because despite going in much detail you can call stored procedure to perform your action.

Disadvantages of using stored procedure :

Following are the situations where in we should avoid using mysql store procedure.
Sometimes use of stored procedure is a bit risky. Stored procedure follow “define one use many time” philosophy. Doing change in stored procedure directly affect your data so it should always be used very carefully. Stored procedure is a set of sql commands that forms a logic. This makes it very hard to debug.

Managing stored procedure is a little difficult because it does not have any object oriented paradigm.

Since stored procedure has its own advantages and disadvantages, before choosing the option of using stored procedure we should be very careful and decide whether we should use stored procedure or not.

Example

As we have discussed earlier mysql stored procedures are simple SQL statements like normal query but  difference is that query never saved and when you will run stored procedure it will be saved in your RDBMS system.

Let us create a simple stored procedure which will select one string.

mysql > create procedure helloworld() Select ‘hello test';

Query OK, 0 rows affected (0.00 sec)

To call this procedure you need to run the following mysql query

mysql > CALL helloworld();

Now this query will run select ‘hello test’.

This is simple. 

Let us experiment with something more complex.

Mysql stored procedure never return value directly. Either you need to specify output parameter in your stored procedure or you have to put select statement inside the procedure which will fill data in your resource.

Writing a mysql procedure involves 3 steps
  1. Definition of the procedure – Create procedure syntax with the name
  2. Definition of the input parameter – There are three types of parameters you can define. ‘in’ parameter, ‘out’ parameter and ‘inout’ parameter.
Using ‘in’ parameter you can define inputs of the stored procedure,
‘out’ parameter specifies the output parameter. ‘inout’  defines shared parameter, it can also be used either as input parameter or output parameter.
  1. Body of the procedure:- Normally we write within the BEGIN and END tag.
Let us create a simple stored procedure:

DELIMITER $$
CREATE
PROCEDURE `test`(IN capital DOUBLE , IN rate INT , IN duration INT , OUT interest DOUBLE)
BEGIN
SET interest = (capital * rate * duration)/100;
INSERT INTO `administrators`(`interest`) VALUES(interest);
END$$
DELIMITER ;
The procedure called  test  which takes inputs as capital , rate, duration and calculates interest and returns interest in output variable and interest into database.

Let us run this procedure.

mysql > call test(100 , 7 , 3 , @primary_interest);

mysql > select @primary_interest;
Now @primary_interest will give you the interest calculated by the stored procedure.
You can use input parameter input in query written within stored procedure.

For example:

DELIMITER $$
CREATE
PROCEDURE `restaurant`.`another_test`(IN restaurant_name VARCHAR(255))
BEGIN
SELECT * FROM `restaurants` WHERE `restaurants`.`name` = restaurant_name;
END$$
DELIMITER ;

As we discussed earlier, in mysql you can put all your database based business operations. Writing a mysql stored procedure is almost similar to writing any high level program in any language.  All you have to learn is variable declaration, conditional operators and Mysql Cursor to write a mysql stored procedure program.
Variable Declaration and operation on variable in stored procedure:
Like other languages in mysql stored procedure you can declare variables too. You should declare the variable at the beginning of the code/program. Which means right after the BEGIN tag.

You can declare variable in mysql programming like this:

DECLARE i INT(3)
DECLARE j INT(9) DEFAULT 6;
In mysql we use DECLARE tag to declare the variable. You have to specify the datatype of the variable to declare the variable. I recommend to specify size of the variable if it is required like int(4), For some of the variables you can not declare the variable without size like varchar.
Scope of the variable in mysql is limited to END tag. If you have declared the variable in stored procedure then after END tag variable will be lost. You can initialize thevariable after declaration like this:-
DECLARE i INT(3);
SET i = 10;
In mysql you can take value in the variable from the query also from the help of INTO keyword. Example:
DECLARE student_name VARCHAR(23);
SELECT student.name INTO student_name FROM student_table.

Condition statement in Mysql programming:

Condition statement will give you power to execute code on the basis of the same value.  Similar to any high level programming language, you can add conditional statements in mysql stored procedure.

Example:

DECLARE count_student INT(5) default 0;
SELECT count(*) INTO count_student FROM student_table;
IF count_student > 5 THEN
SELECT * FROM student_table;
ELSE
SELECT ‘Very less student';
END IF;
For every IF statement in Mysql you have to specify END IF statement. In mysql you can also use ELSEIF for recursive statements. You can also use switch case based conditional statement in mysql, style of writing switch is a little different.

Example:
CASE
WHEN i >2 THEN
SELECT ‘it is two';
WHEN i  < 2 THEN
Select ‘it is less then 2′;
ELSE
SELECT ‘no eyse';
END CASE;
Every CASE will be closed with END CASE, Like a any program we have default tag with name ELSE.
Iteration control(Loop control) in mysql: In mysql you can use loop also as you do in your programming language. Here you can implement loop using WHILE , REPEAT and LOOP Tag.

Source: CodeWebber