Sunday, March 30, 2008

Outsourcing Software Development- Boost Up the Economic Scale

Many people have the view that outsourcing software development services is waste of time, money, and strength. People who assume this view are layman! I’m not authoring this on a biased or irrational though. Once they come to realize the enormous benefits associated with outsourcing software development, many who oppose it are themselves going to advocate its use in many areas.

Outsourcing a software development project, boost up the economic scale of the vendor. Economical considerations being the centric point for manufacturing divisions, the company can actually reap benefits by outsourcing. Setting aside the business jargon, one cannot turn away from the fact that India has emerged as one of the cheapest source of developing outsourced software development.

Outsourcing software development projects to offshore companies facilitate the maximum utilization of resources. Be it human resource or IT service, offshore companies provide their best of services. Outsourcing projects can actually help to compensate lacunae of individual firms. They can gainfully use the potential of multiple companies, specialized in certain area to make their dreams come true. This will make them free to concentrate on their fields.

Another substantial factor to advocate outsource software development projects is - time. It is easily noticeable that production time is greatly reduced once software project is outsourced. The vendor if sees a non-functional component in his project and expresses it to his outsourced partner, he is sure to get it rectified the next working day. This is only possible as the time difference in destination of client and vender comes as a positive mileage.

Now, one might think that outsourcing is hiring a company that is not native to one’s land. It actually means the same, but with certain hidden points. Outsourcing a project does not only mean employing a company, but it also involves the trust, quality, and the performance to a greater extent. The mutual trust and relationship forms a huge factor for smooth and gainful development of software development, which is outsourced. A person should outsource to a company that has adequate experience and the expertise to carry out the intricacies of the software development to the minutest accuracy.

Offshore companies that work with the motive of providing “consumer satisfaction” can be relied on to develop fruitful services. Strategically outsourcing software development will save the clients their money and help to improve the products and services. It is surely gon’na streamline the business processes.

Tuesday, March 25, 2008

Is Systems Development an Art or a Science?

This is an important question which is ultimately at the heart of a lot of the problems in systems and software development. There is one camp that believes development to be an art form requiring free-spirited creative types of people, and another camp believing it to be a science requiring people that are more disciplined and organized.

The difference between an art and a science is subtle but significant. An art form is based on the intuitiveness of the person performing the work, something that is difficult, if not impossible, to pass on to another human being. For example, apprentices serving under an artist may try for years to emulate the master, but may never attain his level of skill and creativity. In contrast, a science is based on a governing body of concepts and principles and, as such, can be easily taught to others. From this perspective, programming can certainly be viewed as a science as it has certainly been taught and passed on to others for many years; further, it involves certain governing principles in terms of language syntax, approaches to defining program logic and construction. Some might argue the physical design of a report or screen requires creativity, and there is a certain element of truth to this as some look better than others. But even the design of reports and screens can be governed by certain principles in terms of layout, navigation, color schemes, etc.

On the systems side, there are governing principles as well which can easily be taught to others. It too requires a certain element of creativity for such things as analyzing and solving business problems and designing work flows. I guess what I'm driving at is that science is certainly not devoid of creativity. For example, consider the sciences of architecture and engineering, all of which are based on governing principles, yet offers channels of creativity in design. Music is another excellent example of a science involving creativity. In other words, art does not hold a monopoly on creativity.

In any form of development you can either build things one at a time or in volume. Artists are excellent for building unique works of art, but it is hardly an effective approach for corporations to take who tend to build things with many people. Consequently, they are more inclined to adopt a development approach based on science as opposed to an art form. Further, maintaining a product derived from a science is easier than one based on art as you can more readily reproduce the object according to specifications.

Not long ago I wrote an article on why it is necessary to record your time during the day, specifically as it applies for project management purposes. During the article, I mentioned there is often resistance to reporting time by those people who perceive themselves as free-spirited creative types who do not like to be encumbered by such discipline. Pursuant to the article, I received some interesting responses who felt it wasn't necessary to impose too many management controls and discipline on such creative spirits, particularly programmers, that it would be viewed as a bureaucracy and nuisance as opposed to helping with their assignments. They also commented on their disdain for micromanagement; that they would prefer more freedom as it pertains to their work. Personally, I do not have a problem with this as I have always advocated worker empowerment (managing from the bottom-up). In other words, they want more decision making authority in the planning process of their assignments. This means they should also be participating in the preparation of estimates for their assignments and should be able to report back to management on the progress of their assignments. To do so, there should be something more substantial than vague generalities as to where they stand on an assignment, e.g.; "I'm 50% complete." Because of the many people participating in today's development projects, management can ill-afford to operate with vague generalities and instead needs to know early on if the worker is in trouble or will be delivering his work product early or late. This can be simply performed by recording time spent and estimating the amount of effort remaining on an assignment. This is particularly needed, if their assignment affects the schedules of others. If the worker is going to be given more freedom to layout and estimate his work, it seems perfectly reasonable to apply a little discipline and accountability regardless of the creative spirits involved, especially if other people are involved.

So, is systems and software development a science or an art? I contend that it is a science for the reasons already mentioned. As such, it can be taught and implemented in essentially the same manner as other sciences, such as architecture and engineering, who are basically in the same business as systems and software personnel except designing other types of products. True, we still have issues of creativity and managing complexity, but this is no different than the other disciplines as well. It also means imposing the same types of discipline, organization and accountability as found in the other disciplines. The problem though is this conflicts with today's relaxed office mores. One has to question if we have become perhaps too lax in our corporate cultures to the point it is having an adverse effect on productivity; that maybe some discipline and accountability might produce positive results.

Younger developers might contend that I am out of touch with how systems and software is developed these days, that they need free reign to do what they want. I contend there will always be a place for management, otherwise we will end up with the "1000 Monkey Phenomenon" whereby people are permitted to do whatever they so desire and maybe, just maybe, something worthwhile will be produced. Companies can certainly not afford to operate in this manner and, because of this, we will always need management to orchestrate development efforts in a concerted manner.

One last note, an area that greatly concerns me is the lack of standards in this industry, particularly in the area of systems. Sure we have plenty of theories of what systems are, but no definitive body of knowledge that can be applied uniformly. This is one obstacle prohibiting us from becoming a legitimate science. As long as there are multiple interpretations of the same thing, we will never realize any consistency and management will continue to perceive developers as free spirited artists as opposed to disciplined professionals.

Sunday, March 23, 2008

10 Electrifying Ways to Explode Your Orders

1. Persuade visitors to link to your web site. Give them a freebie in exchange for them linking to your web site. It could be content, software, etc.

2. Link to web sites that provide useful information or services for your visitors. If you have many useful links on your site, they may make it their start page.

3. Spice-up your web site's wording using plenty of adjectives. It gives your visitors a clearer vision of what you’re explaining or describing to them.

4. Don't make your banner ads look like ads. Most people ignore banner ads. Design them to look like content and have them click to read the rest.

5. Join affiliate programs that go with the theme of your web site. You'll just be wasting valuable space and time if your visitors aren't interested in them.

6. Market your web site as a free club instead of a web site. This'll increase your repeat visitors and sales because people enjoy belonging to groups.

7. Interact with your online customers on a regular basis. This'll show them you care about them. You could use a chat room, forum or message system.

8. Check your web site links regularly. After people click on one link, and it doesn't work, they usually won't risk wasting their time clicking on another one.

9. Give visitors a positive experience when they're at your web site. Provide them with original content and free stuff. They'll tell all of their friends about it.

10. Share customers with other businesses that have the same target audience. Offer their product to your customers if, in exchange they do the same for you. Dynamic Data Websites

New ASP.NET Dynamic Data Support

The ASP.NET 3.5 Extensions CTP contains a bunch of great new features.

One of the cool new features is something called "ASP.NET Dynamic Data Support". In a nutshell this enables you to really quickly build data driven web-sites that work against a LINQ to SQL (and in the future LINQ to Entities) object model - and optionally allows you to-do this without having to build any pages manually.

The best way to see this in action is to watch David Ebbo's awesome 17 minute screen-cast:

You can also follow the steps below to easily get started and use the dynamic data support:

Step 1: Create a ASP.NET Dynamic Data Site:

Once you have the ASP.NET 3.5 Extensions CTP release installed, you can use VS 2008 or the free Visual Web Developer 2008 Express to create a new Web Site or Web Application Project that has the ASP.NET dynamic data support enabled:

This will create a new web-site you can use that has some default template files in them, along with CSS style-sheets you can use to customize the look and feel of them:

Step 2: Add a LINQ to SQL Data Model to Your Site

LINQ to SQL is an O/RM (object relational mapper) that ships in .NET 3.5, and which allows you to model a relational database using .NET classes. You can then query the database using LINQ, as well as update/insert/delete data from it. LINQ to SQL fully supports transactions, views, and stored procedures. It also provides an easy way to integrate data validation and business logic rules into your data model.

The easiest way to get started with an ASP.NET Dynamic Data site is to add a new LINQ to SQL data model to your project (right-click->add new item->LINQ to SQL Classes item). This will bring up the LINQ to SQL class designer. Drag database tables from your server explorer to define a set of classes (with relationships) for your database schema:

Step 3: Enable Dynamic Templates in Your Project:

By default ASP.NET Dynamic Data projects provide built-in support for creating automatic "scaffolding" views of your LINQ to SQL and LINQ to Entities data models. Dynamic Data projects include template pages and user controls that can automatically create built-in data browsing/editing/selection/deleting UI that is dynamically constructed at runtime based on the LINQ to SQL or LINQ to Entities data model you've added to your project.

To enable this auto-scaffolding support, open the web.config file of your project, search for the "dynamicData" section within it, and set the "enableTemplates" attribute to "true":

Note: this auto-scaffolding feature is currently turned off by default for security reasons (we want you to be explicit about turning it on).

Note: as you can see above, the ASP.NET dynamic data section provides optional URL mapping support that allows you to customize the URLs for your dynamic scaffold pages to be in whatever URL format you want.

Step 4: Run Your Site

Hit F5 to run your project. You'll by default be taken to a default.aspx page that lists all of the table objects in your data model:

Note: the default.aspx home-page is in the project - if you don't like how it looks just open it up and edit it however you want.

Clicking on any of the table names in the list above will take you to a dynamic data page that lists the data within it:

The default data view pages automatically create functional data navigation UI that includes built-in data paging and editing support (and are ASP.NET AJAX enabled):

The data view pages automatically infer relationships between your related objects and provide automatic filtering support:

The data view pages also automatically show relationships between your objects and allow users to easily navigate amongst them. For example, notice how the Category column for products allows me to navigate to the category details for a specific product:

The data view pages also enable automatic selection, editing and delete support. Notice below how when in inline edit mode they automatically infer friendly foreign key names (allowing you to edit the "Category" and pick a name from a dropdownlist instead of having to specify a "CategoryID" integer):

All of this works without having to create a single custom .aspx page or write any custom code. All of the web UI is created dynamically off of your LINQ to SQL or LINQ to Entities data model.

Step 5: Customizing the Site Further

Having all of the above functionality work out of the box against your ORM data model is great for quickly getting your site up and running. Once you get the basic site experience working, you can optionally go in and fully customize it - both at the data validation/business logic level as well as at the UI layer.

You can add standard LINQ to SQL data model and business validation rules to your data model in order to enforce constraints. The dynamic data pages will automatically work off of this logic, and provide appropriate error messages and validation UI based on them.

You can also optionally go in and customize the UI of any of the data pages you want. Dynamic data projects allow you to customize the default look and feel of all data pages on the site, as well as customize the default look and feel of all column types used on the site. You can customize both of these via the default template files added under the "/App_Shared" folder when you create a new dynamic data project:

Symbyo Technologies is a leading .Net Development Company with extensive experience building custom software solutions for Fortune 500 clients.

Simply edit any of the files above to customize the default data page views and/or default data column appearances.

You can also then optionally override the UI of specific data view pages by explicitly adding a .aspx page that maps to it in your project. For example, I could override the default ListDetails behavior for Products by adding a \Products\ListDetails.aspx page to my project:

You can then add any standard ASP.NET data control to the page. You can also use the new dynamic data aware ASP.NET data controls that ship in the ASP.NET 3.5 Extensions CTP to the page. These allow you to completely customize the look and feel of the UI - while still using the new dynamic meta-data provider to infer relationships and meta-data about your data model classes for default behavior.

Learning More

The above walk-through only touches on a few of the scenarios and capabilities you can enable with ASP.NET Dynamic Data Projects. To learn more:

  1. Watch David's webcast
  2. Check out the ASP.NET Dynamic Data QuickStarts
  3. Subscribe to David Ebbo's, Scott Hunter's, and Marcin Dobosz's blogs
  4. Visit the ASP.NET Dynamic Data Forum to ask questions

Symbyo Centers of Excellence offers Outsourcing Services through our Global Delivery model. For more information about symbyo Technologies please contact us.

The Business Benefits of Web Standards for Business Web Sites

Web standards are standardized specifications for internet markup languages such as HTML, CSS, and XML. "What the heck does that mean," you ask? Every web site must be coded with some form of internet markup language to make it readable by an internet browser, such as Internet Explorer or Mozilla Firefox. These standards were formulated by the W3 Organization so web designers all over the world can create web sites with one goal in mind: make the internet a better place.

Why should you care? There are plenty of web sites that do not conform to web standards, so why should you? If you're a business owner and you have a web site, there are actually many benefits to having a web standards compliant web site. In the competitive world of internet marketing, every little advantage you have helps.

How Web Standard Compliant Web Sites Help Your Business
Site Wide Look and Feel Consistency

When a web site is designed to web standards, there will be 2 parts to a web page. One part will be the actual structure and content of the web site, while the other part is the presentation. Because the presentation is separate, you can guarantee that all of the pages of your web site will look the same.
Less Bandwidth, Faster Loading

Once again, by keeping the presentation (found in the CSS file) separate from the web site content, pages will load faster because the CSS file only needs to be loaded once. In the days of yore, all of the text formatting had to be included within the web page, so it meant more data had to be loaded with every page view.
Better Search Engine Optimization

Search engine spiders crawl the web to index all of the web pages they come across. Compared to human beings, there are very significant differences in how search engines see a web site. Dynamic effects such as those created by JavaScript are not taken into account. Text rendered with graphics cannot be read and parsed either. Separating presentation from content increases the information/markup ratio, making CSS-based documents more pertinent with regard to the search terms, which gives them the opportunity to rank higher in search results. Because the web site loads faster, a search engine is also less likely to "time out" on a web site and leave.
Less Use of Javascript

Javascript is a coding language for web design that can severely harm a web site's traffic and search rankings. Because Javascript has been used by hackers in the past, some people disable it all together from their browser. So if you have navigation on your web site that is powered by Javascript, it could be difficult or impossible for a visitor to get around.

In addition, Javascript can be clunky and it won't always display the same in every browser. Many of the reasons web sites use Javascript are for cool text and hovering effects that can be replicated with CSS code. That allows your web site to attract more visitors with a lot less web site code that has to be loaded.

As newer internet browsers are developed, they will all be web standards compliant. This includes browsers on cell phones. Because a web standards compliant web site has presentation separate from content, the presentation files can be modified to suit web pages for print, on-sreen, and mobile viewing.

Technology today allows people with disabilities to browse the internet. If a web site is not compliant with web standards, the software a disabled person uses may be unable to render a web site. Being accessible is mandatory in many countries for government agencies.
Reducing dependency on any one developer

If a web site is developed with undocumented coding features, poor coding or coding hacks, then it could be near impossible for any one else overtaking the web site to work with it. Following standards-compliance in requirements documents is a very effective way to ensure measurable quality of the final product, the W3C being an impartial judge.

Because standards are very well documented, another person taking over some standard-compliant code can begin right away and will not need to become familiar with the previous developer's coding practices.

Saturday, March 22, 2008

Rich Internet Applications (ria)

Adobe Flex is comparable to OpenLaszlo, Ajax, XUL, JavaFX and Silverlight. It uses MXML to lay out user interfaces for browser applications. Interaction is achieved through ActionScript, the core language of Flash Player. The Flex SDK provides interface components such as buttons, list boxes, trees, data grids, text controls, and layout containers. It is however a fully fledged development environment for a programmer and thus not as easy to use as for example OpenLaszlo. In principle you do need to get into programming to do anything pratical in FLEX.

We did something very different with our Papyrus EYE user interface. We defined a powerful graphics component set that is stored in the Papyrus WebRepository as models and implemented them in a QT-based library for PC applications, with native Flash Actionscript. We plan to implement it in AJAX too eventually. Because of WebRepository GUI deployment is fully version controlled and just-in-time with any other changes. The execution of Papyrus EYE calls a series of special PQL (Papyrus Query Language) commands from the Flash Player that dynamically present GUI information into the Flash player. All GUI components are dynamically loaded at runtime and no preloading of a compiled functionality (like i.e. in OpenLaszlo) is necessary.

Papyrus EYE makes the development of completely dynamic user frontends in the browser much easier than Flex. More importantly, ISIS has extended the full application life-cycle management to the user interface!

The Papyrus WebRepository manages all aspects of consolidated service applications across ECM, BPM, CRM, and ERP. IT enables business professionals to define and maintain powerful applications without programming that link into back end business applications with SOA or other message based interfaces. An application consists of metadata definitions that control the data federation from the service interfaces, business rules, the EYE user frontend, inbound and outbound business content, business rules, as well as trained business processes.

Friday, March 21, 2008

Symbyo Technologies

Symbyo Technologies, Inc is a premier IT Consulting and Software Outsourcing company. Committed to delivering innovation, Symbyo Collaborate with its clients to provide high quality solutions at very competitive price. with deep industry and business process expertise, broad global resources, Centers of Excellence and proven Global Delivery Model. Symbyo can mobilize the right people, skills and technologies to help clients achieve real business outcome.

How to Hire an Offshore Developer ?

Buyers hiring their first remote providers might feel as though they're going in blind. You find someone with a good rating, a profile listing the skills you need, and perhaps some encouraging scores on oDesk's performance tests. But even after a chat or two, you're still hiring someone half a planet away and entrusting him or her with tasks essential to your business. It's an unnerving risk, a roll of the dice. But there's no reason not to stack the odds in your favor.

When you buy a car, you test drive several before settling on the one for you. You don't buy a house until you've had a good walkthrough - perhaps several. You don't hire a new staff member without reading her resume, chatting on the phone, holding an in-person interview or two, and checking references. And you probably do it for several people before you settle on the right hire. It's the same process with remote workers - only the strategies change. Instead of face-face communication, you use Web conferencing and Skype. Instead of seeing the person at work in the next office, you have the Work Diary. And instead of a three-step interview process that includes a technical test, you hire a few providers for a literal test drive. Contact a handful of likely candidates and give each a small trial before putting a long and vital project in anyone's hands.

If you need a PHP programmer for a project that will take more than 1000 hours, you can't afford to find out at hour 48 that you've hired the wrong person. Instead, contact three likely candidates and tell them you're in the process of settling on the right provider. Hire each to do a simple project, something with a time limit of a few hours. It can be discrete pieces of your greater project or just a sample task. Ask for a Web page that will take input of name and gender and output "Hello, Mr. Smith." Throw in a time-of-day element to get "Good evening, Ms. Jones."

Make the test investment commensurate with the project's scope. For a smaller project, use a simpler test. Hire your candidates to assess your site and suggest specific improvements. Give them, say, an hour or two to report how they'd make your site more useful to your customers, or more attractive, specifying how they'd carry out the effort, with cost/hour estimates. Their ability to grasp your objectives, communicate viable solutions, and demonstrate their level of detail and creativity may be as telling as their ability to provide clean, effective code.

Know what you're looking for when you judge their introductory efforts:

  • Is their work product clean, attractive, effective?
  • Does it match your instructions?
  • Was it timely? How did they compare with the estimates they gave or limitations you set?
  • How was their communication during the project?
  • Did they use the work diary well? How does their Work Diary look?
The process of hiring a remote a Software Outsourcing provider requires you to refine the strategies you use to recruit an in-house employee, but there's no reason to be any less careful and selective.

Symbyo provide offshore Developers for many many US companies. If you are considering hiring an offshore Development Team please contact us for more information.

Tuesday, March 18, 2008

How is Ms Access Database Useful?

It’s a computer world and data is saved electronically in the form of files to avoid heaps of papers and files. File system is a method for storing and organizing computer files and data they contain to make it easy to search and access them. File system provides access to data which is saved on a data storage device like hard disk where it maintains physical location of the file for easy accessibility.

For example, if you want to store the wedding anniversaries and birthdates of your relatives and friends, you can store them in file and this file will be saved at some location of your hard drive so that you can easily retrieve the information stored in this file. But when data becomes more to handle and it creates problems in accessing those files, the file system saving process also becomes poor in terms of accessibility and retrieval. In such cases traditional file system is in-efficient and in-convenient to use.

To store huge amount of data, businesses, corporate, organizations are now using Data Base Management Systems (DBMS). It contains information about a particular enterprise. It is a collection of interrelated data, set of programs to access data , and an environment that is both convenient and efficient to use. Today, DBMS are used in each and every field like banking, airlines, sales, human resources, on-line retailing, and manufacturing.

Previously, database application were built directly on top of file systems but data storage using file system resulted in to certain drawbacks, like

• Data redundancy and inconsistency

• Multiple file formats, duplication of information in different file formats.

• Difficulty in accessing data.

• Need to write a new program to carry out each new task.

• Integrity problems

• Atomicity of updates

• Concurrent access by multiple users

• Security problems

Database systems offer solutions to all the above problems. There are number of databases available in the market like MS Access, DB2, My SQL, FileMaker Pro, SQL Server, Oracle and many more. . Amongst all, Microsoft Access is the widely used database to store and retrieve information in organizations. Microsoft Access provides users with one of the simplest and most flexible RDBMS solutions in the market today. Database solutions for MS Access has been designed to help & assist Microsoft Access 97, 2000, 2002 (XP), 2003 and 2007 database users and developers of database applications to find answers of some frequently asked questions. It includes facilities to add, modify or delete data from the database, ask questions (or queries) about data stored in the database and produce reports summarizing selected contents. For example, organizations, corporates maintain database of their employees such as emp_id, emp_name, designation, salary, address, date_of_joining, highest qualification using MS Access database. Information like what’s the name of an employee and designation whose emp_id is 56 can be easily retrieved from MS Access database.

MS Access database is widely used in every field whether banking, human resources, manufacturing, payroll systems, airlines etc. When a Microsoft Access database shows an error while trying to open it then it might be possible that that particular database file is corrupt. Access database gets corrupted due to bad sectors in storage device, hardware malfunction, improper system shutdown, virus attacks etc. If a database gets corrupted then business can go down forever. There should be some access recovery software or tool which can repair the corrupt .mdb files. One such access database repair softwareavailable over internet is on the site, the Kernel Recovery for Access software listed repairs corrupt access database file of MS Access 95, 97, 2000, XP and 2003. As the access repair software is available for free download to repair access file and recover data from them.

Monday, March 17, 2008

Business Ideas You Can Start Your Internet Business With Now

Do you want to have an internet business but have no idea what you want to do? There are many people that have this problem. Finding business ideas online is not hard to do at all if you know where to look for them.

The best way to find them is to use the search engines. Today search engines provide very accurate results for their searchers.

If you don't want to take the time to look for business ideas then you can use the ideas below to start your internet business.

One: Start a freelance writing business. There are many people online that are looking for content for their websites, blogs and advertising needs. You will definitely be able to use your skills to start making money with your internet business if you know how to write. You can find people that want you to write articles, reports, press releases, eBooks and many other things.

Two: Do you build good, quality websites? Then you can always start a web design business. This is just like the writing business idea. There are so many people online looking for websites but they don't know how to build them, don't have time or just don't want to do it themselves. So they are always willing to pay someone else to do it for them.

Three: Set up your own store online selling different products. Believe it or not you can actually do this without having to store any of the products yourself and is not that complicated. There are companies online that will let you sign up with them using a dropship account. This means that you sell their products from your website and then send them the order for it. They will deliver it to your customer and handle everything else for you. All you need to do is to advertise your website, order the product from the dropship company and collect your money. Plus, this is one of the business ideas that you can start for free.

These are just a few of the many business ideas that are available online. You just need to be willing to take the time to look for it in order to find the right idea for you.

One thing that you want to remember when you are looking for the right business is that if you find an internet business that you are passionate about, you will have a much higher chance at making it successful.

Sunday, March 16, 2008

To Create Dynamic Pages Choose an Advance Programming Language Like Php

PHP is an open sourced server side scripting language and almost used in foremost operating systems like Linux, UNIX and also in Windows. PHP follows object oriented programming (OOPs), practical programming rules and nearly a combination of them. It uses command line interface, desktop applications thus it is know as the best traditional server side scripting language.

PHP programming supports most of the reputed database connections like Oracle, SQL, My SQL, and ODBC thus it is an easy choice for freelance programmers to build their dynamic pages with the help of PHP development. The latest version is also popular because it can be embedded HTML coding directly and can be carried by nearly all of the web servers.

PHP is a popular language because of its numerous features infused specifically to design websites or you can say to develop dynamic pages. PHP engine and the PHP coding can be used in every platform that increases flexibility of PHP language. Basically PHP is profitable for both programmers and designers, programmers who realizing its flexibility and tempo and web designers who worth its handiness and user-friendliness.

PHP language can develop giant business services like CRM solutions, community sites, chatting forums and E-Commerce shopping cart as well. Several pools of qualified web programmers are using PHP development for organizing their goal, resource planning and fulfilling their client requirements.

Here are some few things which you can perform with PHP:

• Design HTML web forms.
• Superb Database usability to store records.
• Calculate visitors by sessions and cookies.
• You can use arrays as well.
• Play with files through file management system.
• Creating XML for large number of product list on E-Commerce


Serialization is not needed for all kind of databases. In some particular databases like ODBC, MS SQL etc when you wish to pass a value without mentioning its type, it gets dumb. This problem is solved properly in the latest version of PHP. This is also an added advantage of PHP over all king of scripting languages.

Using PHP to Improve Design your website

PHP has many capabilities features designed specifically for use in Web sites, including the following:

1. Securing Your Website: PHP is designed to allow user level access to the file system, it's entirely possible to write a PHP script that will allow you to read system files such as password, modify your Ethernet connections, etc. thus this can provide a customer with an exclusive membership in the business.

2. Working with Web Forms: HTML form can be displayed by PHP and it is the best way to know more about the requirements of your customers and to gather note about their detailed benefits.

3. Communicate with Your Databases: When a persistent connection is requested, PHP checks if there's already an identical persistent connection and if it exists, it uses it. If it does not exist, it creates the link.

4. Customer Loyalty Functions: PHP allows content and applications to be generated and run server-side. This is highly advantageous to web users as they do not have to rely on their own system resources to generate or run content on their own systems. This allows for faster delivery of applications to the user and reduces errors and problems due to browser incompatibilities.

Thursday, March 13, 2008

Web Development and Maintenance Services

In today’s competitive world, the importance of web development is just cannot ignored. Every organization has realized the usability and need for professional web site development in order to earn the trusts and confidence of valuable clients throughout the world. You can approach any technical expert to develop a customized webpage and complex database driven websites to invite more clients and generate more profits by availing the services. In addition, you can meet out the client's satisfaction level resulting in repeat business from them.

Web Maintenance Services
Web site maintenance refers to services meant to keep a website updated with latest development and designing technologies. The scope of website maintenance is very wide and vast enough to add something everyday. Maintenance services also include aspects of web designing and website development services along with the browser’s compatibility.

Updating of website is really essential in keeping the inflow of the business. It is most likely that people that are once linked to your web site, may have disappeared, thus you need to re-establish them and make them healthy and trustworthy. In order to make a website really useful and fresh for visitors, you need to check its status constantly and check for broken links on the site at least once a month. Constant improvements will help you to make a website useful and eliminate the element of stagnancy and losing visitors.

Major changes include content replacement, addition of a new page to the site or a complete overhaul of the site. By spending a little, you would be able to maintain the usefulness and impact of the website for a longer period of time.

A website must not be a static thing. It should be growing, forward looking, changing and adapting to its visitors. Find out suitable service providers to get amicable solutions for maintaining your website.

Wednesday, March 12, 2008

Egypt’s Smart Village is a Software Outsourcing Success Model

President of the French Sophia Antipolis Foundation Senator Pierre Laffitte expressed his sincere admiration of Egypt’s Smart Village describing it as a success model to other technology parks during his recent visit to the park on February 25th, 2008.

Egypt has already reached a notable milestone in the Information and Communications Technology (ICT) field, noted Laffitte. "I think there will be very good opportunities for the Egyptian ICT to get now to the second step," he added.

Senator Laffitte called on the concerned parties to give a special emphasis to technology and other related departments at Egyptian universities. According to him, they can play an effective role in the innovation process.

He further stressed on the importance of establishing cooperation ties between ICT companies and universities as to research and development, not only in the technology fields, but also in related specialties like applied mathematics and physics. He added that this will help steer the innovation process in Egypt.

Senator Laffitte further added that Egypt now has the manpower and talents to open new SMEs that should be supported by bigger companies and universities.

The Sophia Antipolis Foundation President opined Egypt's technology park the Smart Village has been fast moving in the right direction, describing it as faster in development than any other similar project in the world.

He added that the Smart Village is now required to adopt a more challenging strategy to develop its engineering systems and help add new technologies to the Egyptian education systems.
Senator Laffitte suggested a few steps to upgrade the Smart Village like bringing research and higher education to the park, building underground metro lines linking it to Cairo and allocating spaces inside the village to European SMEs not just giant companies.

The key to be like Sophia Antipolis, the Smart Village, according to Senator Laffitte, is giving more emphasis to research and development (R&D), education, innovation and linking it to ICT companies and the business community, which is the new approach adopted by universities worldwide.

Last December, Egypt had officially joined the International Smart Villages Network affiliated to the Sophia Antipolis Park, France's landmark technology park and the world’s oldest, following an agreement signing between the Information Technology Industry Development Agency (ITIDA) and the park during the Egyptian official mission to Paris led by Minister of Communications and Information Technology Dr. Tarek Kamel. The agreement aimed at sharing the foundation's know-how in terms of interface, opening up communication channels between Sophipolitan and Egyptian players as well as establishing innovative training schemes. Founded in 1969, Sophia Antipolis Foundation is the oldest technology park in the world, now hosting about 1276 companies specialized in computing, electronics, pharmacology and biotechnology.
Smart Village is an example of Egypt’s high tech infrastructure, economic incentive packages and commitment to the future. The 450 - acres project provides a high tech environment and world-class professional convenience for IT and Telecom companies including 24/7 broadband fiber optic connectivity and uninterrupted power supply within the most ideal office space for conducting business activities.

Symbyo Technologies is a Global Offshore software Development Outsourcing Company operate Serveral Offshore Development Centers in Cairo Egypt Serving its US Based Clients using its proven Global Delivery Model

3 Easy Steps to Online Business Success

Marketing experts would say to you that there is a limit on how you can advertise and SEO your website. When you are tapped into these marketing success steps, you will be generating riches on the internet. By doing this you will be making a residual income from home instead of working a job. These days, only 3% of the people online marketing will succeed.

These steps have been provided from the seniors marketers and have proven to be true. It has also worked for me and my page rank has been on the top 10. Are you willing to take a risk by investing some money on the internet to have your own home business that will generate income for you? By the way, you would not reach to the top within one day, you need time. You wouldn’t earn a lot of money over night. It might take you 1 to 2 years of your time to succeed.

Do you think the steps I am going to tell you work or not? Yes it does. You just have to follow it and do it none stop. It does take a lot of time and energy. When your hard work is put in it, later on you will get a pretty good outcome. You will love what you have done and feel that you have succeeded.

The first thing you have to do is to get your own domain name with a web host. Sign up for a 3-5 year domain with hosting space. By doing this, you will get a pretty well discount. I have, this is where I host my website at. Godaddy is the cheapest hosting out of all the others. When you register, put your business name as your domain.

The second thing is to do is to optimize your key words for search engine optimization. By doing this, you will be pulled up to the search engine rank by the keyword that is used on your webpage. Keywords on your webpage is not good to have more than what you need. If you have more than what the search engine likes, it become a spam webpage for them. They will penalize you for doing that, you might as well be booted off their search engine. There are many web pages out there that will help you calculate the percentage of keywords you have. The percentage you need is 2.7 or lower. No need to go above into the 7% even though there are search engines out there won’t penalize you for it. You want your website to be on the top search engines, not the lower ones. Even if the lower search engines bring you traffic, top 4 search engines bring you more. So keep out from being penalized.

The third thing is one way links. You should have one way links all the time because search engines are starting to penalize people for exchanging links. Meaning if you are on the top rank of the search engine and you have plenty of lower links on your site. Your rank may be pulled down from doing that. If you exchange links, be sure the link exchange partner and you have the same topic on your webpage.

Tuesday, March 11, 2008

Web site Design Pricing & Web Design Cost

For many businesses, your website is the main line of communication between your customers and your company Website needs to be custom-designed and tailored to your specific needs and target customer so that it can bring the expected results. Depending on the website design package you choose You can include sub-pages, photos, mouseovers, and even flash on your page. you can check web site design pricing and web design cost to determine which package will meet your budget and find out how much web site design cost.

Monday, March 10, 2008

Database Backup ~ Taken From Mambo

As well all know Joomla 1.0 was originally derived from Mambo. Although it has now advanced to the ever famous Joomla 1.5, however Mambo cannot be denied as not being the back bone of Joomla. Joomla got its earlier features from mambo. The database functionality still reflects the original Mambo database component.

A nice tip I would like to share here with you regarding the database functionality of Joomla is connected to its database. I used to apply this method when I was learning Mambo. One day while using Joomla 1.5 I decided to give it put a try and to my surprise it worked very well.

In order to execute queries we always need to access the admin panel and enter our queries there. However you may not need any PHP MyAdmin panel if you are a pro at SQL queries. You can write down your own query and get the desired results in no time. This used to be the method in Mambo. But however this step of writing your queries has been masked behind the admin panel in Joomla as to reduce code complexity. The backup functionality was also removed from the code completely. The only reason behind doing so was to secure the content without going through the trouble to install anything.

The Joomla people probably were concerned for new web developers. As new people may get confused at times and that would screw up the entire website. It is being largely commented that the database functionality actually belonged to some other person. Here are comments from a blogger pointing out what I just said:

“I can tell you that the reason we lost the Database functionality from Mambo is that this functionality was essentially an external `library` created by another author (who I believe was formerly part of the team that created Mambo) asked for it to be removed from Mambo “


Whatever the reason, this functionality is said to be removed for good. And a bunch of new functionalities have been added which I guess should be enough to compensate for the loss.

Sunday, March 9, 2008

Smart client Applications

Smart client isn't a technology, and it isn't any specific architecture. It is a concept and a style of applications that combines the best of both windows applications and web applications.

They combine the windows applications capabilities of providing rich user experience that are not complex to develop, and that can use local resources which allow it to be responsive, interact with connected devices, and other things that web applications just can't do.

They also combine the best features of web applications which are there ability to be centrally deployed and managed.

Smart client is a pretty broad concept, and it means different things to different people. And it has evolved and been refined, so it's meant slightly different things at different times. However here are the four characteristics that define a Smart Client application:

Offline Capable: Smart clients give users the ability to access critical business information regardless of the availability or quality of a user’s network connection. By caching relevant data locally, smart clients provide users with continuous access to their business information, enabling them to make the right decisions at the right time and in the right place.

Rich User Experience–Smart clients allow people to move beyond viewing static information in a browser. Smart clients provide an interactive and highly responsive user interface, offering users immediate access to critical data. By moving processing and data to the local device or computer, smart clients eliminate the need to contact the server every time a button is clicked. This way, users don’t waste time waiting for screens to refresh or networks to become available.

Central Deployed and Managed: Smart client applications can be centrally deployed and managed, reducing overhead and strain on IT resources. By relying on a local processor, smart client applications can reduce the number of servers required to support an application. Also, bandwidth requirements within the business can be reduced by limiting the transmission between smart client and server to only required data.

Access local resources: Smart clients can make use of local computer resources (such as graphics acceleration cards), attached devices (such as scanners), and local storage. This makes it possible for software developers to create user experiences that are not possible within the Web browser. These new applications enable enterprises to differentiate their software and solutions and to compete more effectively in the marketplace.

For more infomration about Smart Client Application Outsourcing please contact symbyo Technologies consultants to discuss this further.

Thursday, March 6, 2008

Would Anyone Prefer To Have Their Business Slow And Dumb??

What do we call a person who buries all his money in the sand? Would "a fool" be the right term? If you will agree then you will also agree that the same name can be applied to someone who starts a business with a huge investment without bothering to succeed in it. Starting a new business every weekend might be a hobby for some but definitely not for many. Everyone begins a new business with a thousand dreams flashing before their eyes.

An entrepreneur makes a great study of everything that might be useful for their new business. They analyse, check, cross check every little matter before implementing it in his/her business. After all this, imagine how disappointing and frustrating it would be if you do not see any result out of it. It is not the stars that are to be blamed as the fault lies on the other end; to have their website dumb and lifeless.

Adding audio can be effectively used in such a situation. Having audio on your website not only makes it active and interactive but also it has innumerable hidden benefits that will definitely help you in laying a strong foundation for your online business. By adding audio in your emails and other promotional articles, would certainly create a great impression not only about your efficiency but also about your business thereby generating more traffic to your website.

The quality and the classy features available in audio software can project yourself and your business as more committed and promising. The audio tools creates a high-end output that makes your website visitors and readers of your articles trust you and your products/ services. The toughest part in any business is the process of gaining the customers confidence. Audio makes this much simpler for your business. Once the customers confidence is won, stopping your business from reaching peaks is impossible. Audio plays its magic on your customers and makes sure that they click the "Order Now" button.

Every business in some way or the other, tries to offer a variety of products/ services to its customers. This is as well made simple for you by using Audio Flash Software. This kind of audio tool helps you in updating your products list in a much simpler and efficient way than using any other tool.

Recording the products audio descriptions and reports rather than typing it and using the conventional method means that you can add your products both in your website and in your sales letters and news letters much simply and effectively. The new approach makes your customers say "WOW" when they see your website luring them to place orders for your products.

Having any business online will not make any difference; it makes sense only when your online business is successful with more sign ups and sales. This might be the ultimate dream of all the entrepreneurs that no one can deny.

There are all kind of audio software available in the market to help you achieve this dream of yours. The main requirement that any online business requires to be successful is the reputation. Once the website becomes popular and known to the net users, the business develops automatically demanding very little effort. Adding audio guarantees that it will help you in achieving this position and has been proved to be successful in many websites.

Wednesday, March 5, 2008

Offshore Outsourcing Methodologies for Today’s Competitive Era

Like any other outsourcing enterprises, you would be concerned about producing and generating the offshore business value for your customers. Usually, the value of offshore software development companies lowers down with the time or since their time of inception. Therefore, it is better to monitor, observe, analyze, and implement the changes so that business value can be maintained and measured to a great extent.

If as service buyers, you are really concerned about retaining the outsourcing business value, you better need to check the value of your outcome and understand the intricacies of changes applicable in it. You can learn your offshore market value as implemented and completed by a United States based business valuation firm. So, start measuring your offshore business value right now to see if you are going in the right direction or not.

Locate Your Offshore Business Value
In order to determine the offshore business value, you can put your own efforts. If that is not sufficient, you can contact you a really good business valuation expert and hand over your situations in the hands of a professional. He is the person who can help you to formulate strategies when working around the difficulties. Therefore, it is essential that you find a quality company to assist you.

Offshore Outsourcing Methodology:

Analysis: In this phase, proper research and analysis of the customer's requirements and readiness for outsourcing is considered or taken in care.

Strategy: In this second phase, a company usually determines the best overall outsourcing strategy for the customer's business.

Transition: In this phase, selection of vendor, costing, contract negotiation and initiation of the project begins.

Implementation: In fourth phase, works related to project management, review and monitoring takes place. In this stage, proper applicability of the project is also ensured before handing over of control to the customer.

Outsourcing Resources: In this final stage, constant monitoring by way of frequent auditing is taken place.

Tuesday, March 4, 2008

Internationalization Tips

There are two kinds of software internationalization you can refer to - built in to the product from the start, and performed on existing code. The kind of internationalization (i18n) this article invokes isn’t the sort that’s designed into a product right from conception. That is less common, though the pull of global markets is changing that tide. Few application development teams have historically had the opportunity to incorporate world market foresight. They had to produce a product to market for the most immediate business requirements. So then most internationalization happens on existing code because someone sells something, a global company buys another company, or a strategic initiative has taken form. Suddenly there is a new requirement for software to work in any number of new languages and locales. Business requirements drive technical schedules first, rather than involving a creative path of inventing new cool functionality or products from the ground up.

I’m tempted to just write Don’t Panic, carry a towel and avoid Vogon poetry - and while you’re at it, Unicode’s pretty good stuff. I’m being flippant because internationalization efforts tend to each have their own unique challenges when you get into the details. I’ll instead provide this article as a series of i18n process tips that apply across the board. In general Internationalization (i18n) is messy, full of exceptions, and generally not considered optimally from a development perspective. Maybe that should be tip one.

Tip One: Internationalization is ugly. Expect that from the start. You are reverse engineering basic logic of how your software inputs, stores, retrieves, transforms and displays data. You are adding user interaction functionality that your product wasn’t originally designed to do. It’s rarely just about embedded strings. There are a lot of things that can go wrong. It’s a lot of work. In some cases you can run into weird stuff from areas such as compilers, middleware, database connectivity, and even low level operating system issues.

Tip Two: Get the big picture questions handled quickly. That is, what are the high level requirements, how much time do you have, how much time do you need and how much budget can you get? Be prepared to ask for what you need in the CFO’s or CEO’s language.

Tip Three: Remember what’s driving this - Revenue. Internationalizing a complex application is a big new requirement. Don’t underestimate. Being late will cause delays in revenue, stall marketing and sales investments and make you very unpopular. Do it poorly and rushed, and your product will be shabby for the very new customers you seek.

Tip Four: Do some good research or get help identifying requirements. For instance, consider language only as one aspect of a locale. English is a language. Yet England is a different locale, with different expected behavior than the States. Consider numerical formats, dates, times, postal addresses, phone numbers, paper size, currencies and more. Then add the specifics that your application may need, like any possible customizations of workflow, locale selection and more. Consider what the optimal character encoding implementation strategy is for your computer platforms, application tiers, programming languages, database requirements, etc.

Tip Five: Get some good code intelligence. Tools like our Globalyzer software let you comb through your source and identify all kinds of internationalization issues right up front. It’s way better to get a good inventory of what you need to inspect and change, rather than hunting through your myriad lines of code trying to anticipate all kinds of variable conditions using grep, and then trial and error your way through the boatloads of issues you’ll miss.

We are just adding a new capability to Globalyzer called Diagnostics. It will give you summary information internationalization readiness and issues found in your code. It’s fully functional even with just a trial Globalyzer license. No excuses, it’s free to use all you want.

Tip Six: Prepare for nests of difficulties depending upon your programming language(s), database and third party products. Programming languages rate differently in terms of difficulty to internationalize. For instance C and C++ are harder, with many hundreds of potential issues, compared to Java and C#, which have quite a bit of internationalization baked in. But Java and C# don’t internationalize themselves. You have to use their frameworks, which are very capable. The good thing is that when a programming language has well designed internationalization capability, the work goes faster.

Tip Seven: Third party products can cause some challenges. They are not always built for your new internationalization needs. For instance, a couple of years ago we worked on a product that used a third party product for displaying animations in a kid’s game. At first glance, you wouldn’t think it would be an issue, as there was no text being processed or displayed. But when we looked at things more closely, user name and file path info was being passed into the animation tool, which in this case could very well involve wide characters (e.g. Chinese). But the particular version of the animation product, could not support this and so it would always crash. The fix took time and some inventiveness.

Another example involved a third party product that generated a spreadsheet view. While data within the cells was handling Kanji just fine, tabs were corrupting. The third party product provider had declared their product Unicode compliant, but in practice it wasn’t done all the way through. The choice became to find a better third party product to replace this one, or get the spreadsheet provider to fix their product -which they may or may not want to do on your schedule.

Tip Eight: Remember your i18n fundamentals. Don’t embed strings or concatenate them. Watch out for sorting. A and Z are not the beginning and end of all alphabets - some languages don’t use the concept of alphabets. Don’t hardcode fonts. Remember your interface Geometry will need to expand. Use functions, methods or classes that adapt to locale needs. Use Locale adapting sorting (i.e. java.text.Collator class in Java) or let your database perform sorting for you whenever possible.

You can automate aspects of repetitive like string externalization using Globalyzer. It makes that tedious job go much faster.

Tip Nine: Account for merging code with parallel feature developments. This can be tricky, as your new feature development cycles could be quite different from your internationalization milestones. In most cases, be prepared to branch the code for internationalization efforts.

Tip Ten: Use Pseudo Localization (PseudoJudo in Globalyzer) to perform many internationalization functional tests before your localize. That means you add pad characters from target locales to the beginning and end of strings, and stretch the whole string based on target requirements. You’ll then be able to see how those strings behave in your display and moving through application tiers, without your engineers needing to understand the target language.

Bonus Tip Eleven: Plan for QA to take longer than it did when your app was just monolingual. Remember, you have internationalization functional testing and bug fixing, with new testing cases, and then, should you be localizing, you have linguistic testing.

Monday, March 3, 2008

Automate Routine Database Synchronization With Database Restyle – Application!

Usually, it takes much time to generate scripts, compare and synchronize database structures. Moreover, manual synchronization doesn’t exclude errors. With Database Restyle – Application you will just need a couple of minutes to compare and generate scripts to keep database structures in sync. Unlike other synchronization software, Database Restyle – Application works in the wizard mode. All operations are executed automatically and step by step: you just need to follow instructions of the wizard. This tool performs reliable and error-free synchronization of database structures. Furthermore, all scripts for database synchronization are typified and generated very quickly.

No manual coding and writing scripts any longer!

Database Restyle – Application can save database structure to XML file instead of the binary format. It allows you to read or modify file structure by yourself. The same file can be used to manage database versions history or distribute database structure among members of your developer group.

This easy-to-use tool also works in command line mode: developer specifies parameters of database synchronization and executes one-click synchronization without running wizard.
Developers and DBAs can also control any stage of database synchronization by setting the synchronization options and selecting objects that should be added or removed: schemas, tables, views, functions and stored procedures, triggers, assemblies, user-defined types and CLR types, indexes and XML indexes and a lot more. Meanwhile if you don’t synchronize principals, all changes are executed within one and the same transaction: database will be safe in any conditions.

New Database Restyle – Application is a good deal due to beneficial licensing policy in respect to both independent developers and corporate clients.

That is why Database Restyle – Application is a fully functional tool for database synchronization and vital solution for the developers and DBAs who develop database management software.

Sunday, March 2, 2008 Control: Properties

Properties encapsulate the state of a component and are the essence of rapid application development (RAD). They allow users to customize components in a design-time environment. The property construct has been supported in Visual Basic for several editions but is not offered by object-oriented programming languages such as C++ and Java. (Properties in JavaBeans are supported indirectly by adherence to a naming convention for accessor methods.) The .NET Framework brings the ease of RAD programming to the object-oriented world by supporting properties as a first-class object-oriented programming construct.

We'll look at the property construct first. Then we'll look at naming guidelines for properties and the advantages of exposing properties.

The Property Construct
Properties are like smart fields that are accessed using fieldlike syntax but implemented using accessor methods. The following example illustrates a simple property construct that defines a Name public property in the Person class:
public class Person {
// The private field below is not part of the property
// construct but contains data that holds the value of
// the Name property.
private string _name;
public string Name {
get {
return _name;
set {
_name = value;

The boldface elements—get, set, and value—are keywords in the C# property syntax. The compiler transforms the code in the get and set blocks into methods that are called property accessors. The get accessor—also called the getter—retrieves the value of the property, while the set accessor—also called the setter—assigns a value to the property. The value identifier denotes the implicit parameter that is passed into the setter.

C# does not have a keyword named property. However, Visual Basic .NET does use the Property keyword as shown in the following example, which shows the keywords in Visual Basic .NET property syntax in boldface:
Private String _name
Public Property Name() As String
Return _name
End Get
Set (ByVal value As String)
_name = value
End Set
End Property

In contrast with C#, value in Visual Basic .NET is not a keyword in property syntax.

Although the get and set accessors are equivalent to methods, they cannot be invoked as methods in C# and Visual Basic .NET but are indirectly accessed by code that assigns or retrieves a property.

The syntax for setting a property is the same as that for setting a field. When you are setting a property, the assigned value must match the declared type of the property:

Person aPerson = new Person();
aPerson.Name = "John"; //Type of Name is string.

The property construct allows you to abstract the storage and implementation of a property from the clients of your component. In our example, a private field holds the data for the Name property. While the backing data for a property is often a private field, the data could reside elsewhere—for example, on disk or in a database—or it could be generated dynamically, as in a property that returns the system time.

A property can define both the get and set accessors or just a single accessor. A property with only a get accessor is a read-only property, while a property with only a set accessor is a write-only property. Although the CLR allows write-only properties, the design guidelines for the .NET Framework discourage them. If your component needs a write-only property, you should implement a method instead of a property to provide the equivalent functionality.

A property can have any access level allowed by the runtime, including public, private, protected, or internal. In C# and Visual Basic .NET, the access level of a property applies to both accessors; it is not possible to have a different access level for each accessor.

Although the get and set accessors are not directly accessible as methods, they are semantically equivalent to methods. Furthermore, they can perform any program logic, be overridden, and throw exceptions. In the next two sections, we'll show you how to override a property and perform value checking in a property accessor.