How to Write a Letter With OpenOffice Or NeoOffice Letter Wizard

[ad_1]

In case you do not know, OpenOffice is an amazingly powerful office suite, at least as good as the MS Office suite. It's also free. Search for "OpenOffice" on Google to download it from the OpenOffice site. (Note: if you own a Mac , try NeoOffice. It runs much better on a Mac but basically it's the same suite.)

Select the Text Document option from the OpenOffice menu to display the OO word processor.

This word processor will not write your letters for you automatically but it's got a built-in Letter Wizard to help you get the basic structural elements right.

Select File> Wizards> Letter from the menu to display the Letter Wizard. (Note the Fax, Agenda, Presentation, and Web Page wizards as well!)

Select from one of the following Letter Type options: Business Letter, Formal Personal Letter, Personal Letter.

The first two letters come with three Page Design options: Elegant, Modern, Office.

The Personal Letter comes with the following Page Design options: Bottle, Mail, Marine, Red Line.

Once you select your Letter Type and Page Design Style, you click Next to display the …

Printed Items screen allows you to include ( or exclude) the following letter elements: Logo, Return address in envelope window, Subject Line, Salutation, Fold Marks, Complimentary Close, and Footer.

Click Next and you get the …

Recipient and Sender screen allows you to enter the Sender's Address and the Recipient's Address.

Click Next to the …

The Footer screen allows you to type in any footer text you like, with two additional options: you can include page numbers and / or include the footer only on the second and following pages but not on the first page.

Click Next …

The Name and Location screen allows you to attach a name to your template and save it in any file you like on your computer so that you can easily load it up and use it for other letters in the future.

And lastly, after you finish making the right choices for your template, the Letter Wizard asks you how to proceed.

You can then go ahead and create a letter from the template you've just created or make manual changes to the template. You can for example replace all the icons and images in the template with your own custom-designed logos and images, etc.

A perfect letter wizard from a fully-equipped office suite that costs you zilch, zero, nada.

Note: You can open all MS your WORD documents inside OpenOffice without a hitch and when you're done reading or editing them, re-save them as MS Office documents.

I've been using OpenOffice (on Windows and Linux machines) and NeoOffice (on a MacBook) for the last 3 years without any problems whatsoever. (This very article, for example, is written with the NeoOffice word processor.)

Go ahead. Make your day! It might be a very bright one that costs you nothing.

[ad_2]

Source by Ugur Akinci

Operational Reporting Versus Informational Reporting

[ad_1]

The majority of organizations face the same problem when it comes to accessing corporate information. It is a somewhat old problem and the organizations are long aware of it. The most suitable solution for this problem is represented by a new software technology, known as data warehouses. This new solution was met with a lot of enthusiasm mostly because it was thought that reporting was going to be handled by those data warehouses. However, this is not always possible because some types of reports need to be provided by an unique type of data warehouse.

Basically, operational reporting can be defined as a way of providing updated information and detail reporting on a constant basis. Both front-line operations and the reporting system are being handled by responsible personnel. Detailed decisions can be made easier with the help of operational reports. Opposite to these reports there are informational reports. This type of reports is used by different organizations. Because it serves the analytical community, informational reporting is seen by most as a more strategic option. Based on informational reports and the summarized data presented within them, the organizations are capable of making suitable long-time decisions. There are several differences between informational and operational reporting, the most important one being the fact that any data warehouse should be capable of handling informational reporting even if it can not handle the operational one.

For a clearer picture, operational reporting is used mostly at the transaction level. In other words, through operational reporting all daily activities are being supported. In order to achieve this, operational data reporting is based on details rather than summaries. Here is a list of some of the most relevant examples of operational reporting: production records, bank records, flight logs, transaction reports, various daily adjustments etc. The common factor of these reports, and also their most important aspect is the amount of comprised essential details. These details have a great deal of influence when it comes to important manager decisions.

Operational applications treat individual transaction data using a granular type of level storage. Because of this, it is important that any operational system has built-in report generation, in order to undertake a directly approach towards the operational reporting.

On the other hand, informational reports are being used as a mean to summarize strategical information. This way, the organizations are capable of making long-term decisions based on well documented and thorough reports. Here is a list of informational reporting examples: shipping costs, sales, revenue, employees etc.

[ad_2]

Source by Tudor V Bran

Advantages and Disadvantages Of Installing a Custom Rom On Your Android Phone

[ad_1]

WHAT IS A ROM?

ROM stands for Read Only Memory. ROM is an operating system which runs your droid and is stored in the read only memory of your phone.

To classify there are two types of ROMs:

STOCK ROM:

Stock ROM is pre-loaded into a device by the manufacturer and is optimized according to the device configuration. It has a lot of restrictions for the user.

CUSTOM ROM:

Android is open source, so developers can take the code and customize it to their taste, add features to it and build a new operating system.It is a customized android operating system normally stored on the read-only memory of your mobile phone and replaces the manufacturer operating system.

BEFORE INSTALLING A CUSTOM ROM:

Before installing a custom ROM a device needs to be rooted. Rooting an android devices means lifting off restrictions enforced by the manufacturer. Rooting enables tons of customisations for your device.Rooting changes your privilege from guest user to a super user. It is considered as a protective measure but some people do not like them as it restricts them from some customization they want on their device. But keep in mind, rooting your device voids your warranty but some custom ROMs are worth it.

Installing a custom ROM has both advantages and disadvantages.

ADVANTAGES OF INSTALLING A CUSTOM ROM:

LATEST ANDROID VERSION:

One of the most common reason to install it is the updated android version. Users are able to install the latest version of android on their phone which makes their old phones look new. It does not only make them look new but also it provides the user with better performance as the newer version is more stable than the old.

PERSONALIZATION:

Another reason people choose to install it on their android phone is the tons of customisations available in them. Sexy and stunning themes can bring a new look to their devices. It enables the users to customize the UI (User Interface) to their taste.

OVERCLOCKING AND UNDERCLOCKING:

This is not really an advantage of installing a custom ROM, but instead it is associated with the custom kernel (a system file which is like a driver for the operating system) installed with that ROM. Well anyway, it allows a user to overclock or underclock their device. Overclock means to run the CPU processor or GPU of the device at higher speed than the one intended by the manufacturer. This provides you with higher performance but, I will not recommend it as it can cause damage to the device. Underclocking is the opposite. It is the modification of the system to run at a lower speed then intended. It does provides you with longer battery life but, in exchange for some performance. You can also install custom kernels.

REMOVAL OF BLOATWARE:

While rooting does enable the user to remove bloatware apps installed by the manufacturer but, still the user has to choose which app they want to use and which they do not and manually uninstall every single one that they do not want to use. While custom ROM developers remove these apps while they create these ROMs, they do not include them in their operating system, thus the user only has to install it and now his / her device is bloatware free.

CUSTOM MODS:

Tons of custom mods available for a custom ROM attract the users to install a it on their device. These custom mods vary from being really simple like increasing volume beyond the manufacturer limit to huge modification of the custom ROM like the multi-window mod or the pie controls mod.

PORTED USER-INTERFACE:

It enables a user to experience a wide range of UI and choose the one that suits them best. Like the Sense UI for the HTC phones which has been ported to many different phones enabling the users to experience a HTC phone without even buying a HTC phone. User can also choose to install the stock android on their phone which is faster than the customized one installed on phones like Samsung or HTC.

DISADVANTAGES OF INSTALLING A CUSTOM ROM:

BRICKING:

Another cause of user being hesitant of installing a custom ROM on their device is the fear of bricking which makes the device unusable and nothing more than block of brick. It is mostly feared because there is no way to recover a device from that state.

BATTERY LIFE PROBLEM:

These ROMs may not be fully optimized for your device which results in the battery life issues causing it to drain more, not charging properly or even damaging the battery.

HARDWARE ISSUES:

These ROMs may not support all the hardware on your device which may result in the non-fuctioning hardware or other issues, like the camera not working or taking picture at a lower quality.

BUGS:

These ROMs are not tested like the one pre-loaded by the manufacturer so this produces some bugs which produce instability, like applications force closing (which can be really annoying) or random reboots of the phone or the phone being stuck in a bootloop (really terrifying for a newbie).

CONCLUSION:

Well here are the pros and cons of installing a custom ROM, but you do not fully know whats going on until you try it out. I, myself use a custom ROM on my phone and I am happy with it. But, everyone has their choice so you may make your and also keep in mind that neither I am responsible nor the ROM developer for what happens to your device.

——————————– HAPPY FLASHING —————- —————–

[ad_2]

Source by Wahaj Hussain

Rob Sheffield PS3 Lights Fix Review

[ad_1]

Having PlayStation games at house is a real paradise for children and teens. PS games are turning out to be a favorite hobby among teens nowadays. Though playing these PS games are truly overwhelming; they are inclined to several bugs, which are quite recognizable to the gaming society. These errors are well-known as "Yellow light of death", "Red Screen", "Flashing Red Light" and so forth. Well, it is pretty daunting to manage these bugs and the only way out of this seems to be transferring the unit back to the company. Sadly, they insist more bucks to repair them and take quite a lot of weeks to send the unit back to you. Another bothersome fact is they use refurbished version to put back your unit, which seem to be in a worse condition. Even worse than that scenario, they empty the hard drives completely, so your data is vanished.

All these stuffs can be a real frustration for anyone using PS3 at home. Well, do not have anymore worries when you have PS3 Lights Fix in hand. Rob Sheffield, a proficient technician is a professional whose only work is to correct PS3s. Rob Sheffield wants to share with you the knowledge he earned from fixing PS3s that would undoubtedly end your annoyance. You can save tons of dollars by fixing your PS3 rather easily at home now. Well, PS3 Light Fix would offer you the complete knowledge perfect for fixing known PS3 bugs without any hassle. Besides few errors like the yellow light of death, this fix as well with more than 100 error codes like Blu-ray drive, errors while reading a disk and so on. Rob Sheffield has devised a special course including all the instructions Sony uses to repair its products.

PS3 Light Fix is ​​available both as eBook as well as video format, which allows you master the methods quite easily. All that you require is an internet connection; toothpaste, screwdrivers and that's it, you are set. Rob Sheffield has come up with this guide in such a way that even newbie's can fix the bugs without having to hire a professional for doing the same. Together with the PS3 Light Fix, you can avail two extra applications, that includes how to take away a disc stuck inside you PS3 and the means to set up Linux on to PS3, which allows you use it just like your PC.

[ad_2]

Source by Eugene Ag

10 Ways to Spot a Failing Hard Drive

[ad_1]

1. BSOD 0X00ED

Blue Screen Of Death. The affectionate term for the STOP error message that can happen with computers. If you see one with a code of 0X000000ED UNMOUNTABLE_BOOT_VOLUME then you have a problem. More times than not this means that your hard drive (HDD) has physical errors on it and will need replaced. Data recovery in most cases is possible, although is dependent on the condition of the drive.

2. BSOD 0X0024

Blue Screen Of Death. The affectionate term for the STOP error message that can happen with computers. If you see one with a code of 0X00000024 NTFS_FILE_SYSTEM then you may have a problem. This error means that the file system your computer uses to arrange all the information on your HDD has become corrupt. This can indicate that your hard drive is about to fail. Do not fret, although this needs immediate attention in around 60% of cases all that's required is to repair your hard drive. In most cases data recovery is possible.

3. Non Valid System Disk

This error regularly occurs when a floppy disk (remember them?) Or USB stick is left in the computer. If however you have not left any of these items in the computer and you still get this error, then you have a problem. In most cases this means the hard drive has failed. Data recovery is generally not possible unless sent to specialised centers.

4. No hard drive detected

Some computers will give this message. Very clear, very concise. Check your BIOS settings and even try reseating your HDD. If this does not work, then your hard drive has failed. Data recovery in this scenario is generally not possible unless sent to specialised centers.

5. Wrong size reported

If your computer starts up but you notice the size of the drive being reported is wrong – Say you have a 500Gb hard drive – but your only seeing 100Gb. Then you have a problem. The mechanics of the drive are failing and are not able to address the whole drive area. This requires immediate attention. Generally data recovery is only possible on the area that can be read by the drive. Specialised centers can gain access to the rest of the drive if the data is very important.

6. SMART error

Self Monitoring Analysis Report Tool – The computer users friend. Most HDDs support it, although I've seen many that have it turned off (Check your BIOS to see how to turn it on). If you receive a SMART error then your drive is imminently going to fail. You normally have plenty of time to recover data before the drive goes but do not take this warning lightly. Also, getting a SMART error is generally a rarity. Drives fail in many ways and if you get fore-warning with a SMART error you are one of the lucky ones.

7. 'The following file is missing or corrupt'

This error is fairly common on Windows XP machines. It relates to the registry files being missing or corrupt (as the message says). This is fixable, but in many cases it occurs again within a short space of time, say a day, in this situation it can be a good indication that your hard drive is about to fail. Data recovery should be possible but depends on the state of the drive.

8. Slow system, like ultra slow.

The typical hard drive is a mechanical device with moving parts. This wonder device is susceptible to the same things other mechanical devices are. In the same way that an engine can start to seize up and deliver drastically reduced power. The hard drive can seize up and deliver drastically reduced data transfer rates. If your machine starts up but just seems to take a day to do anything then you could have a hard drive that's on its way out. Early spotting of this symptom can lead to full data recovery. If left then the drive will fail and typical data recovery will not be possible.

9. System sticks during POST

A failed component within the computer can cause the system to stick at POST It could be anything, a DVD drive, a card reader or your hard drive. With data being so important if this symptom occurs it's totally worth while having your hard drive checked. In around half the cases we are able to extract some or all of the data from the drive.

10. Click … Click … Click …

The first time you hear this, you wonder what it is. But it's a sound you'll never forget. This is the death knell of the hard drive. The drives mechanics can fail at any time and this is the sound of a properly rooted drive. Data recovery is not possible unless you take it to a specialised centre, which is very expensive.

[ad_2]

Source by Oliver C Ellice

Forex Education – Platform And Brokers

[ad_1]

Trading platform, also known as electronic trading platform, is a computer application on which traders observe currency price movements in the form of a chart. However, it is more than that. Traders can also place various indicators on their charts to help them decipher where the price of the currency pair they are observing could be headed next.

The most common trading platform is called the MT4 which is currently being replaced with MT5. The MT stands for MetaTrader and the software is written in MQL which has been developed by the MetaQuotes Software company.

The MT4 platform is robust and flexible for currency trading. It can show price movements in three chart formats, the most common of which is the candlestick. Candlestick patterns just on their own can give useful information on price direction to the trader. The other two chart formats are the line and the bar charts.

In currency trading, predicting the future price movement of a currency pair is how traders make money and also avoid losing money. There are hundreds of indicators available on the MT4 platform designed to give an indication of where price could be headed next. Depending on their trading style, traders normally combine indicators on their charts. If one or more of their indicators line up, for instance tells them to buy the currency pair, then they would go 'long'. The opposite of going long is of course going 'short' which is to sell.

Brokers are financial institutions that manage trades between the trader (their client) and the bank. There are two types of brokers, those with Dealing Desk (DD) and those with Non-Dealing Desk (NDD). There is plausible argument of a conflict of interest when you trade with a DD broker; they could be actively trading against you in which case they have the potential to manipulate your trades.

On the other hand, NDD brokers, also known as Electronic Communication Network (ECN) broker, passes your trades straight through to the bank and therefore the market. This broker does not 'handle' your trades like the DD broker can.

The appearance of an ECN broker has revolutionised Forex trading and is one of the reasons why retail Forex trading, also known as Over The Counter (OTC) trading, is so popular and is gaining more ground every day. Some brokers customise their MT4 platforms and include extras such as real-time news feeds. Currency price movements are influenced by economic news releases so keeping track of these as they are released is vital when trading.

Some traders prefer to automate their trading using so called robot also known as Expert Advisor (EA). There are two types of EAs, fully automated and semi-automated. It is up to the trader to choose which one fits in with his or her trading style.The EAs are programmed specifically to run on MT4 platform.

To get the most out of EAs on MT4, you need to run the MT4 on a server which runs continuously ie 24/7. A good robot 'learns' over time how the price changes in a currency pair and it would then then place a trade based on this and other criteria it has been programmed with.

Some brokers provide such servers free of charge as part of their service under certain conditions. These servers are known as Virtual Private Servers (VPS) and are normally maintained to the highest standards in terms of software and security.

MT4 platforms are available for the three main operating systems: Windows, Apple OS and Linux. They are also able to run on smartphones. With an MT4 platform you can trade Forex from anywhere as long as your device has internet access and an MT4 application.

Forex trading provides an excellent opportunity for anyone to make passive or full time income from the forex market. As long as you have the right knowledge gained from reading the right material, you can make it a profitable and even possibly a life changing endeavour.

[ad_2]

Source by Hanif Somani

A Quick Introduction to Managed Servers

[ad_1]

Customers are increasingly aware of the need to back up their sites with a well managed server. Typically, the managed option often only extends to managing the operating system (and possibly hardware) of the server in question, ie updating the operating system with the latest security patches (something that an "intelligent" control panel, such as cPanel, can handle itself, mostly), latest package upgrades, and generally making sure the server works as intended.

In most cases, managed does not, however, cover application issues. This, however, is a crucial point: You as the customer need to be sure that the server administration side of your enterprise speaks the same language as the application development side. Nothing is worse than an eager sysadmin updating a software package without consulting the developers who, incidentally, depend on the older version for the entire site to run smoothly. With nowadays globalisation, this can cause you additional grief – often your developers are from a different company than your ISP, and often they (as is natural) will defend themselves in taking the blame. It will leave you and your enterprise crippled or hindered.

What do we advise?

  1. Do not save money on a sysadmin.
  2. Make sure your sysadmin talks to your developers and understands what they need.
  3. Make sure your sysadmin has a basic understanding of your application in case of emergencies.
  4. Make sure your staff: your sysadmin and developers coordinate updates and upgrades.
  5. Make sure you have a working test environment where you can run the updates and upgrades in a sandbox to see if afterwards things still work the way they are expected to run.
  6. Have a teamleader coordinate your sysadmin (s) and developer (s), or take this role upon yourself.

How much is it going to cost you ?

Fully managed packages vary in cost – the normal sysadmin packages that deal with the operating system only will up your budget by anything between GBP 20 to GBP 200 per month, if you want the sysadmin to be an integral part of your team and support your application as well (in terms of coordinated server management), then the price will be more to the higher end of that range, but might possibly also include some support for the application as well already.

Who to hire?

Get someone with experience. There are sysadmins out there who have decades of experience and know the do's and dont's, and there are sysadmins who consider themselves divine just because they have been "into linux for 2 years". A sysadmin is not someone who jumps at the first sight of an available package upgrade and yum installs 200 dependencies to claim he has a system up to date. A sysadmin is someone who understands the implications of a) upgrading and b) not upgrading. A sysadmin will weigh these pros and cons and explain them to you before making suggestions as to what to do. A sysadmin is someone you trust to even take this decision off your shoulder so you can run your business instead of having to worry whether the next admin cowboy is going to blow up your server. A sysadmin is someone who knows not only how to keep a system alive, but also how to bring a failed system back to life.

[ad_2]

Source by Bernhard Lorenz

What is Trust Model in Public Key Infrastructure

[ad_1]

A trust Model is collection of rules that informs application on how to decide the legitimacy of a Digital Certificate. There are two types of trust models widely used.

– 1. HIERARCHICAL
– 2. WEB-OF TRUST

1. HIERARCHICAL

Hierarchical also called as CA model is the foundation for most of the certification systems. It is also considered as traditional model in use by giant certification authority. In this model certificate users hand over their trust element to CA instead of trying themselves to prove the authenticity of digital certificate. Once you are assured that CA you are dealing with is trust worthy indirectly you are agreeing to trust every other certificate the CA guarantees for.

In Hierarchical trust model CA is at the top level and trust flows from top to bottom way down to the end user. This feature of hierarchical trust model do not burdens end user to prove their authenticity. One important thing to note that CA you trust is cross-certifying another CA's PKI. Hence your system will automatically accept certificates of that CA as well. In practical situation it is advisable to have knowledge of CA`s practices as it will prevent you from accepting certificates from strangers.

2. WEB-OF TRUST

In web-of -trust there is no centralized organization making the decisions. The users themselves decide whom to trust on their personal experiences and knowledge or on suggestions and opinion of other individuals they trust. Web-of-trust are well know for its implementation in PGP.

If someone you already know provides you their public key then it's safe to tell your application that the key is trustworthy. This achieved by signing the key. When other user receives your public key they determine the keys you have signed. Now if they decide to trust you and sign you key, they are in turn tryst you and other entities you trust. This is the way WEB-OF TRUST expands.

The entire process is handled by PGP servers which holds database of keys and the signatures that have been added regularly. Web-of-trust works great for small organizations. Only disadvantage of web-of-trust model is when one user signs bad keys whole group is affected.

[ad_2]

Source by Animesh K

Is Selenium a Real Threat to UFT?

[ad_1]

Nowadays most organizations automate their testing efforts to save both time and cost. While automating its software testing efforts, each business has option to choose from a variety of testing tools available in the market. Some of these tools are open source and free, whereas others are licensed. Likewise, the features and functionality of individual test automation tools also differ. That is why; it becomes essential for businesses to pick the right testing tools based on major criteria like testing needs, budget, availability of skilled resources, and test management.

Both HP Unified Functional Testing (UFT) and Selenium are hugely popular test automation tools. But the testing tools differ completely from each other in terms of features, performance and popularity. As highlighted by a number of recent reports, the popularity of UFT is declining gradually, whereas Selenium has emerged as the pioneer in the software testing space. The data clearly indicate the rapidly growing popularity of Selenium among QA professionals and independent software testing service providers across the globe. There are a number of reasons why Selenium is considered as a real threat to HP UFT.

Why Selenium is affecting the Market Share of HP UFT?

Open Source

Each organization wants to develop and test its software applications without spending a lot of money. That is why; a gradual decline is being noted in the popularity of licensed software testing tools. UFT is currently available as a commercial and licensed test automation tool from the HP Software Division. But Selenium is available as an open source and free software. So users can take advantage of the portable software testing framework without increasing project overheads. At the same time, the QA professional can also avail the support of an extremely active community to resolve all issues and queries related to Selenium.

Web Browser Support

The choice of web browser differs from one user to another. To make the web application popular, the maker needs to ensure that it is running on major web browsers without any flaw or defect. So he opts for a testing tool that supports different web browsers. Despite being a commercial product, HP UFT does not support different types and versions of web browsers. Thus, it becomes difficult for QA professionals to assess the application's look, feel and performance across many web browsers. Unlike UFT, Selenium supports all major web browsers including Firefox, Chrome, Internet Explorer, Opera and Safari. That is why, most web developers nowadays opt for Selenium to test their websites thoroughly and efficiently.

Platform Support

The operating systems supported by these two software testing frameworks also differ. HP UFT is designed to test software applications only in Windows environment. So it supports only a single operating system, ie, Microsoft Windows. On the other hand, Selenium supports major operating systems like Windows, Mac OS X and Linux. Cross- the sms_root_directory The feature makes it Easier for QA professionals to use Selenium to test web applications in various environments.

Programming Language Support

While using UFT, testers have option to write test scripts only in VBScript. As the scripting version of VB programming language, VBScript is both simple and easy to learn. It enables testers to write test scripts easily and quickly. But the scripting language lacks the advanced features offered by other modern object-oriented programming languages. Selenium supports several object-oriented programming languages ​​including C #, Java, PHP, Ruby and Python. So the framework makes it easier for QA professionals to adopt an object-oriented approach to test automation. At the same time, it also allows testers to write test script in their choice of programming language.

Support for IDEs and Testing Frameworks

Nowadays, QA professionals use IDEs to effectuate and speed up test script development. But the choice of IDE differs from one tester to another. HP UFT does not allow testing professionals to use their preferred IDE. They are required to develop test cases using a single IDE, ie, UFT IDE. Selenium, on the other hand, allows testing professionals to choose from several widely used IDEs like Eclipse, Netbeans and Visual Studio. They also have option to use a variety of testing frameworks with Selenium, based on their choice of programming language. These IDEs and testing frameworks make it easier for QA professionals to significantly reduce the time and effort required to test large and complex web applications.

Reduced Execution Time

To complete all tests within a stipulated amount of time, QA professionals explore ways to write and execute test scripts quickly. UFT uses scripting time by using VBScript. But it increases the execution time drastically by taking the entire load on RAM and CPU. Also, it lacks the capability to run multiple instances or threads of the application simultaneously. On the other hand, Selenium executes test scripts at a faster pace. Also, it enables users to run different instances or threads of the web application simultaneously on different web browser. The lower execution time and option to run multiple instances make Selenium hugely popular among web developers and testers across the world.

Option to Create Complete Test Automation Suite

HP UFT allows users to automate all types of functional testing using a single GUI interface. The interface enables them to test the application's GUI functionality, and business logic or back-end services. On the other hand, Selenium allows users to create a complete test automation suite for web application by combining Selenium IDE and Selenium WebDriver. Selenium IDE can be used for creating quick bug reproduction scripts, whereas Selenium IDE effectuates development of browser-based regression automation tests and suites. The distinct variants also make Selenium score over UFT.

While comparing Selenium and HP UFT, the user must focus on the features of each test automation tools. Considered color : as being Despite the pioneer in the software testing space, Selenium testing can be of used only for web-based versions applications. So the huge popularity of the portable web application testing framework can be attributed the massive popularity of websites and web applications. On the other hand, a business can use HP UFT for automating both desktop and web applications. That is why; it becomes essential for the user to pick Selenium or HP UFT according to his testing needs.

[ad_2]

Source by Ellora Sarkar

Google Go Vs Objective C

[ad_1]

1. Introduction

"The significance of language for the evolution of culture lies in this, that mankind set up in language a separate world beside the other world, a place it took to be so firmly set that, standing upon it, it could lift the rest of the world off its hinges and make itself master of it. to the extent that man has for long ages believed in the concepts and names of things as in aeternae veritates he has appropriated to himself that pride by which he raised himself above the animal: he really thought that in language he possessed knowledge of the world. " Fredrick Nietzsche.

Every computer programmer has few comments on how his programming language of choice is the best. There are common attributes that most programmers want, like an easy to use syntax, better run-time performance, faster compilation and there are more particular functionalities that we need depending on our application. These are the main reasons why there are so many programming languages ​​and a new one being introduced almost daily. Despite the large amount of interest and attention on language design, many modern programming languages ​​do not always offer innovation in language design for Microsoft example and Apple offer only variations of it.

It is not too far in the history when C stepped into the world of computing and became the basis of many other successful programming languages. Most of the members of this family stayed close to their infamous mother and very few managed to break away and distinguish themselves as an individual being. The computing landscape however, has changed considerably since the birth of C. Computers are thousands of times faster utilizing multi-core processors. Internet and web access are widely available and the devices are getting smaller and smaller and mobile computing has been pushed to the mainstream. In this era, we want a language that makes our life better and easier.

According to TIOBE Index, Go and objective C were amongst fastest growing languages ​​specially in 2009 and Go was awarded "Programming Language of the Year" in the very same year. TIOBE obtain its results on a monthly basis by indexing. Indexing is updated using the data obtained by the links to certified programmers, training and software vendors. This data is assembled for TIOBE via the Google, Bing, Yahoo, Wikipedia and YouTube search engines. The results was more predictable for Objective C as it is the language of the iPhone and Mac, and Apple is running strong in the market. However, this result gets more interesting because it has not been long since the technology darling introduced her own programming language called GO.

2. A Little Bit Of History

Go's infamous mother Google has dominated search, e-mail and more. So the introduction of a new programming language is not a shocker! Like many of Google's open source projects, Go began life as a 20 percent time project which Google gives to its staff to experiment, and later evolved into something more serious. Robert Griesemer, Rob Pike and Ken Thompson started its Design and Go was officially announced in November 2009, with implementations released for Linux and Mac OS platforms. Google released Go under a BSD-style license, hoping that the programmer's community will develop and build Go into a viable choice for software development. At the moment, Go is still very young and experimental. Even Google is not currently using Go in large scale production of applications. While the site that's hosting the code is running a server built with Go as a proof, the primary purpose of the release was to attract developers and build a Go community around it. Despite its uncertain status, Go already supports many of the standard tools you'd expect from a system language.

Objective C In contrast has a longer and broader history. Today it is used primarily on Apple's MAC OS and iPhone. Objective C is the primary language used for Apple's COCOA API. Objective C was created by Brad Cox and Tom Love in the early 80s at their company StepStone. In 1986, Cox published the main description of Objective C in its original form in the book "Object-Oriented Programming, An Evolutionary Approach". Since then, Objective C had been compared feature for feature with other languages, and now it is Steve Jobs' language of choice.

There are many aspects that contribute to the design, and success or failure of a programming language. In this article, I attempt to give a general comparison of these two arguably very important languages ​​of the future.

3. General Comparison

These days, the world is full of programming languages ​​and they are becoming more and more general and all-purpose, but they still have their specializations and characteristics, and each language has its disadvantages and advantages.

Languages ​​can generally be divided into many different categories. The following Table is not a complete list of all the possible comparable features. Features which were thought to be of somewhat more importance in comparison of the two chosen programming languages ​​were selected and a brief explanation of each one is given.

3.1 Paradigm

Objective-C is an imperative object oriented language, meaning objects can change state. Objective-C also gives you the full power of a true object-oriented language with one syntax addition to the original C and many additional keywords. Naturally, object-oriented programs are built around objects, so in Objective C, objects are the roots of everything. A class is used to produce similar objects, called instances of the class. Classes are used to encapsulate data and methods that belong together. Methods are the operations that Objective-C applies to data and are identified by their message selectors. Objective-C supports polymorphism meaning that several classes can have a method with the same name. Also Single Inheritance is used for code reuse. The closest that can be achieved to obtain multiple inheritance is to create a class with instance variables that are references to other objects. However, the Objective-C philosophy is that programmers do not need multiple inheritance and it discourages it.

In GO things are a little bit different. The Go designers selected a message-passing model to achieve concurrent programming. The language offers two basic constructs Goroutines and Channels to achieve this paradigm. In their design FAQ, Google writes that GO is and is not an object oriented language! Although Go has types and methods and let us simulate an object-oriented style of programming, there is no type hierarchy. Lack of type hierarchy makes "objects" in Go to be much more lightweight than object in Objective C. Go utilizes an innovative approach to objects and programmers are not required to worry about large object trees. Since go is not a truly object oriented language, a programmer can solve the problem in whatever way he wants and still enjoys the Object Oriented-like features.

I can not really think of any object oriented language which does not have a hierarchical inheritance mechanism. But for those who do have it, it seems to create a better model for flexibility and reuse. Absence of Inheritance in Go is interesting indeed! As far as I remember, Inheritance has always been taught to me as the punchline of object orientation. The reality is that inheritance is not the only possible mechanism for reuse in object orientation. Composition arguably is a more powerful mechanism for sharing behavior than inheritance.

Object-oriented programming became very popular specially in big companies, because it is suitable approach for the way they develop software and it increases their chances of successful project using teams of mediocre programmers. Object-oriented programming implements a standard for these programmers and prevents individuals from making too much damage. The price is that the resulting code is full of duplication. This is not too high a price for big companies, because their software is going to be full of duplications anyway.

3.2 Syntax

Objective C is an extension of standard ANSI C, existing C programs can be adapted to use the software frameworks without losing any of the work that went into their original development. In Objective C, Programmer gets all the benefits of C when working within Objective C. Programmer can choose to do something in an object-oriented way like defining a new class, or, stick to procedural programming techniques. Objective-C is generally regarded as something like a hybrid between C and Smalltalk. One setback due to the learning curve could be the necessity of having the basic knowledge of programming in C before entering the world of Objective C. C like syntax and Object-oriented programming, often presents a long and difficult learning curve to new programmers and Objective C is also not an exception.

Go is a C family member also, but I think Go manages to break the coding style and somehow makes it different. Compared to Objective C, declarations are backwards. In C, the notion is that a variable is declared like an expression denoting its type like in Basic, which is a nice idea in my opinion.

in Go: var a, b * int;

I find Go closer to a human natural language for example this statement: "Variable a is integer" can be shown as:

var a int;

This is clearer, cleverer and more regular.

Go also permits multiple assignments, which are done in parallel.

i, j = j, i // Swap i and j.

Control statements in Go do not accept parenthesis. While the most common control statement, if, would take the form of "if (self) {" in Objective C and most of the other OO languages. But in Go, it would have the following form:

if self {

Another difference in Go is that semicolons are not recommended. However, you can terminate any Go statement with a semicolon optionally. In reality, semicolons are for parsers and Google wanted to eliminate them as much as possible. A single statement does not require a semicolon at all which I find rather convenient.

Go is a compiled language similar to a C. There are two Go compilers currently available, one for the x86 platform and another for AMD. Compilation speed of Go is very fast. When I first tried it (without any intended or proper measurement), it was just too damned fast! My experiences with programming languages ​​is limited and rather focused on Object Oriented languages ​​like Java so I had never seen a speed quite like that! One of the fundamental promised goals of Go is to be able to compile things really quickly. To the official According the Go demonstration video , the Go's performance is within 10 – 20% of C. However, the I do not think That's really trust-worthy until we 've get some performance benchmarks in the a near repute.

3.3. Exceptions And Generics

Objective C does not have Generic Types unless programmer decides to use C ++ templates in his custom collection classes. Objective-C uses dynamic typing, which means that the run-time does not care about the type of an objects because all the objects can receive messages. When a programmer adds an object to a built-in collection, they are just treated as if they were type id. Similar to C ++, the Objective-C language has an exception-handling syntax.

Go's type system does not support generic types. At least for now, they do not consider them necessary. Generics are convenient but they enforce a high overhead in the type system and run-time, and Go can not stand that! Like generics, exceptions remain an open issue. Go's approach to Exception while innovative and useful, is most likely difficult for many programmers. Google's codebase is not exception-tolerant and so exceptions are a similar story and they have been left out from the language. Instead, programmer can now use multiple return values ​​from a call to handle errors. Since Go is garbage-collected, absence of exceptions is less of an issue compared with C ++, but there are still cases where things like file handles or external resources need to be cleaned up. Many programmers believe that exceptions are absolutely necessary in a modern programming language. However, I like the no exception fact because I find exception handling in most languages ​​ugly. In a language like Go, where it's possible to return multiple values ​​from functions, programmers can do things like return both a result and a status code, and handle errors via status codes.

3.4. Type Systems

Compared to other object oriented languages ​​based on C, Objective C is very dynamic. Nowadays, programmers tend to choose dynamically typed languages ​​such as Objective C. The downfall is that there is less information at compile time. This dynamicity means that we can send a message to an object which is not specified in its interface. The compiler holds detailed information about the objects themselves to use at run-time. Decisions that could otherwise be made at compile time, will be delayed until the program is running. This gives Objective C programs flexibility and power.

Dynamically typed languages ​​have the potential problem of an endless run-time errors which can be uncomfortable and confusing. However Objective-C allows the programmer to optionally identify the class of an object, and in those cases the compiler will apply strong-typing methodology. Objective C makes most of the decisions at run-time. Weakly typed pointers are used frequently for things such as collection classes, where the exact type of the objects in a collection may be unknown. For programmers who are used to a strongly typed languages, the use of weak typing would cause problems so some might give up the flexibility and dynamism. At the same time and while the dynamic dispatch of Objective C makes it slower than a static languages. Many developers believe that the extra flexibility is definitely worth the price and they argue most desktop applications rarely use more than 10% of a modern CPU. I do not agree with the above justification that we only use 10% of the CPU. So what ?! It is not a very good trend that the minimalist approaches aimed at efficiency and performance are being replaced by wasteful programs which are largely betting on the power of the hardware, and I personally prefer to work with a more static type checking.

Go also tries to respond to this growing trend of dynamically typed languages ​​and it offers an innovative type system. Go ends up giving a programmer a language with a Pythonish duck typing. Go indeed has an unusual type system: It excludes inheritance and does not spend any time on defining the relationships between types. Instead, programmers can define struct types and then create methods for operating on them. Like Objective C, programmers can also define interfaces. Go is Strongly Typed, but the good thing is that it is not that strong! Programmer do not need to explicitly declare types of variables. Instead, Go implicitly assigns the type to the untyped variable when the value is first assigned to the variable. there is dynamic type information under the covers that programs can use to do interesting things.

3.5. Garbage Collection

It is very important these days to have garbage collection as one of the biggest sources of keeping everything clean and manage memory. In Objective C 2.0 Garbage Collection was introduced. It certainly was a good news for new iPhone and Mac Developers who might be very used to Java. Garbage collection simplified matters but still required programmers to be careful when dealing with the memory management. The Objective-C 2.0 garbage collector is a conservative collector meaning that not only developers have full access to the power of the C language, but also C's ability to integrate with C ++ code and libraries is preserved. A programmer can create the bulk of his application using Objective C, letting the garbage collector manage memory and where it's needed, we can escape to the power of C and C ++.

In Go, as a concurrent and multi-threaded programming, memory management is very difficult because objects can move between threads, and it becomes very difficult to guarantee that they will be freed safely once we want to get rid of them. Automatic garbage collection eases concurrent coding. Looking at it with the prospect of a person, like myself who is used to a high level, safe, garbage collected languages ​​for many years now, so much of this is just a boring news. but in the other hand, in the low level world of systems programming languages, these types of changes are revolutionary, specially if the desired performance can be achieved. Go's focus is on speed, and in garbage collection lies a performance overhead. Advances in the garbage collection technology however, allowed it to have it with no significant latency and enabled Google to include it in Go.

4. Future And Conclusion

There must be a reason behind the growth of the popularity of these two languages. Maybe the reason could be that when the light of Microsoft is declining; Apple and Google are rapidly taking over each with their own particular ecosystem. Go is a language promoted by Google, giving it an undeniable advantage in terms of popularity, reputation and technical coverage, and Objective C is supported by the might of the Steve Job's empire.

Objective C enjoys the benefits of Cocoa libraries that ships with Mac OS. Mac OS X and the iPhone are the largest implementations of the language by a big margin. Recently, there has been a huge iPhone Applications trend and the potential to make easy money with easy programming projects is quite high. And I believe this very basic human fact will greatly contribute to the future growth of Objective C. Because the more developers use a language and test it in different situations, the better and the stronger a language can become.

Go is indeed an interesting language. With Google's backing and resources, programmers can rest assured that Go will have some sort of a future even if not too shiny! I think the language has potential but it will be some time, not a very short time, before it can attract developers to drop their current platform and choose Go. Go still is a small language. It is experimental and is not recommended for production environments. There is no IDE integration and there are few code examples. Go is incomplete and they put out what they've got and encourage developers' contribution. As an open source project backed by Google, I think Go will soon develop an IDE and an ecosystem, as it seems to be really well received as mentioned before on the TIOBE index. But it's impossible to predict how big the ecosystem will get. If the language is able to generate an ecosystem, then things can go smoothly. I think there is a need to later put in support for the Windows operating system and also integrating it with Eclipse IDE to further expand it among programmers.

Apple and Objective C stress on object oriented programming and all of the documentation for the language is geared toward object-oriented programming. So in this sense there is a huge difference between Objective C and Go. But, like any other human or machine language, Objective C and Go are comparable by certain criteria and I tried to provide a general comparison between the two. However, it might take a very long time for the path of these two languages ​​to actually come across. Go is young and full of uncertainties. This makes the comparison of these two programming languages ​​rather difficult or maybe as my programmer friends say "impossible". Go needs proper evaluation by unbiased referees for some time in order to be more comparable but I'm sure we will hear more about these two languages ​​in the near future.

[ad_2]

Source by Esfandiar Amirrahimi