twitter
    Find out what I'm doing, Follow Me :)
Showing posts with label Programming. Show all posts
Showing posts with label Programming. Show all posts

C++



C++ (pronounced "See plus plus") is a statically typedfree-formmulti-paradigmcompiled, general-purpose programming language. It is regarded as a middle-levellanguage, as it comprises a combination of both high-level and low-level language features.[1] It was developed by Bjarne Stroustrup starting in 1979 at Bell Labs as an enhancement to the C programming language and originally named "C with Classes". It was renamed to C++ in 1983.[2]
C++ is widely used in the software industry, and remains one of the most popular languages ever created. Some of its application domains include systems software, application software, device drivers, embedded software, high-performance server and client applications, and entertainment software such as video games. Several groups provide both free and proprietary C++ compiler software, including the GNU ProjectMicrosoftIntelBorland and others.
C++ is also used for hardware design, where design is initially described in C++, then analyzed, architecturally constrained, and scheduled to create a register transfer level hardware description language via high-level synthesis.
The language began as enhancements to C, first adding classes, then virtual functionsoperator overloadingmultiple inheritancetemplates, and exception handlingamong other features. After years of development, the C++ programming language standard was ratified in 1998 as ISO/IEC 14882:1998. That standard is still current, but is amended by the 2003 technical corrigendumISO/IEC 14882:2003. The next standard version (known informally as C++0x) is in development.

History

Bjarne Stroustrup, creator of C++
Stroustrup began work on "C with Classes" in 1979. The idea of creating a new language originated from Stroustrup's experience in programming for his Ph.D. thesis. Stroustrup found that Simula had features that were very helpful for large software development, but the language was too slow for practical use, while BCPL was fast but too low-level to be suitable for large software development. When Stroustrup started working in AT&T Bell Labs, he had the problem of analyzing the UNIX kernel with respect to distributed computing. Remembering his Ph.D. experience, Stroustrup set out to enhance the C language with Simula-like features. C was chosen because it was general-purpose, fast, portable and widely used. Besides C and Simula, some other languages that inspired him were ALGOL 68AdaCLU and ML. At first, the class, derived class, strong type checking, inlining, and default argument features were added to C via Cfront. The first commercial release occurred in October 1985.[3]

Java (programming language)


Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities. Java applications are typically compiled tobytecode (class file) that can run on any Java Virtual Machine (JVM) regardless of computer architecture.
The original and reference implementation Java compilers, virtual machines, and class libraries were developed by Sun from 1995. As of May 2007, in compliance with the specifications of the Java Community Process, Sun relicensed most of their Java technologies under the GNU General Public License. Others have also developed alternative implementations of these Sun technologies, such as the GNU Compiler for Java and GNU Classpath.

History

Duke, the Java mascot
James Gosling initiated the Java language project in June 1991 for use in one of his many set-top box projects.[9] The language, initially called Oak after an oak tree that stood outside Gosling's office, also went by the name Green and ended up later renamed as Java, from a list of random words.[10] Gosling aimed to implement a virtual machine and a language that had a familiar C/C++ style of notation.[11]
Sun Microsystems released the first public implementation as Java 1.0 in 1995. It promised "Write Once, Run Anywhere" (WORA), providing no-cost run-times on popular platforms. Fairly secure and featuring configurable security, it allowed network- and file-access restrictions. Major web browsers soon incorporated the ability to run Java applets within web pages, and Java quickly became popular. With the advent of Java 2 (released initially as J2SE 1.2 in December 1998), new versions had multiple configurations built for different types of platforms. For example, J2EEtargeted enterprise applications and the greatly stripped-down version J2ME for mobile applications. J2SE designated the Standard Edition. In 2006, for marketing purposes, Sun renamed new J2versions as Java EEJava ME, and Java SE, respectively.

PHP

PHP, or PHP: Hypertext Preprocessor, is a widely used, general-purpose scripting language that was originally designed for web development, to produce dynamic web pages. It can be embedded into HTML and generally runs on a web server, which needs to be configured to process PHP code and create web page content from it. It can be deployed on most web servers and on almost every operating system and platform free of charge.[3] PHP is installed on over 20 million websites and 1 million web servers.[4]
PHP was originally created by Rasmus Lerdorf in 1995[1] and has been in continuous development ever since. The main implementation of PHP is now produced by The PHP Group and serves as the de facto standard for PHP as there is no formal specification.[5] PHP is free software released under the PHP License, which is incompatible with the GNU General Public License (GPL) because of restrictions on the use of the term PHP.[6]
PHP has evolved to include a command line interface capability and can also be used in standalone graphical applications.[7]

History

Rasmus Lerdorf, who wrote the original Common Gateway Interface binaries, Andi Gutmans and Zeev Suraski, who rewrote the parser that formed PHP 3
PHP originally stood for personal home page.[5] It began in 1994 as a set of Common Gateway Interface (CGI)binaries written in the C programming language by the Danish/Greenlandic programmer Rasmus Lerdorf.[8][9]Lerdorf initially created these Personal Home Page Tools to replace a small set of Perl scripts he had been using to maintain his personal homepage. The tools were used to perform tasks such as displaying his résumé and recording how much traffic his page was receiving.[5] He combined these binaries with his Form Interpreter to create PHP/FI, which had more functionality. PHP/FI included a larger implementation for the C programming language and could communicate with databases, enabling the building of simple, dynamicweb applications. Lerdorf released PHP publicly on June 8, 1995 to accelerate bug location and improve the code.[10] This release was named PHP version 2 and already had the basic functionality that PHP has today. This included Perl-like variables, form handling, and the ability to embed HTML. The syntax was similar to Perl but was more limited, simpler, and less consistent.[5]

High-level programming language


In computing, a high-level programming language is a programming language with strong abstraction from the details of the computer. In comparison to low-level programming languages, it may use natural language elements, be easier to use, or be more portable across platforms. Such languages hide the details of CPU operations such as memory access models and management of scope.
This greater abstraction and hiding of details is generally intended to make the language user-friendly, as it includes concepts from the problem domain instead of those of the machine used. A high-level language isolates the execution semantics of a computer architecture from the specification of the program, making the process of developing a program simpler and more understandable with respect to a low-level language. The amount of abstraction provided defines how "high-level" a programming language is.
The first high-level programming language to be designed for a computer was Plankalkül, created by Konrad Zuse. However, it was not implemented in his time and his original contributions were isolated from other developments.

Mencegah Virus Merusak Windows

Tips Ampuh Menghindari Serangan Virus Komputer
Malicious software (malware) merupakan sebutan umum untuk keluarga virus dkk. Peranti lunak mencurigakan telah berkembang pesat dalam satu dekade ini. Virus adalah generasi paling umum dan paling dikenal di Indonesia dari keluarga malware. Diciptakan untuk merusak sistem komputer, virus sangatlah meresahkan pengguna komputer. Sampai saat ini, virus telah mencapai jumlah yang mengesankan. Jumlahnya telah mencapai angka juta. Tidak sebading dengan jumlah penawarnya, antivirus. Tiap detik jumlahnya selalu bertambah seiring dengan majunya teknologi informasi dan kebutuhan batin akan merusak milik orang lain. Hal ini yang membuat vendor antivirus kewalahan meng-crack virus dan membuatkan signature untuk produk antivirus mereka. Tak hanya mereka, kitapun kewalahan jika harus tiap hari mengupdate signaturenya. Tambahan paling menyebalkan, kita tidak bisa mengandalkan antivirus saja jika ingin menantang perang terhadap mafia internet.
Antispyware, anti rootkit, e-mail protector, dan lain sebagainya dibutuhkan untuk mencegah anggota keluarga lain dari virus seperti trojan dan worm. Pencegahan paling aman adalah tidak menggunakan computer sama sekali. Putuskan koneksi, cabut semua kabelnya, dan buang komputer anda ke laut. Namun pilhan ini sulit sekali diterapkan, karena di zaman IT ini kita mau tak mau harus menggunakan komputer untuk memudahkan kerja kita sehari-hari. Sudah tak mungkin lagi mengamankan komputer kita 100% dari serangan virus dkk. Namun kita masih bisa mengurangi persentase kekalahan kita.
Bagaimana mengamankan komputer dari serangan virus? Bagaimana mencegah virus masuk dan merusak komputer kita? Bagaimana mengamankan data pribadi anda?
Bagaimana mengamankan Windows dari virus? Saya akan coba menjawab semua tantangan
tersebut. Inilah hasil dari pengalaman pribadi saya dalam menghadang virus agar tidak membuat kisruh di komputer.

Semuanya Tentang Virus Komputer

Cara Virus Komputer Bekerja
Virus komputer: Sebuah kode komputer yang mampu "berbiak dengan sendirinya" yang menempelkan sebagian atau seluruh kodenya pada file atau aplikasi, dan mengakibatkan komputer Anda melakukan hal-hal yang tidak Anda inginkan. Virus-virus komputer merupakan penyakit umum dalam dunia teknologi modern. Mereka dapat menyebar dengan cepat melalui jaringan komputer yang terbuka seperti internet, dan mengakibatkan kerugian hingga milyaran dolar dalam waktu singkat. Lima tahun yang lalu, peluang untuk terjangkiti sebuah virus dalam periode 12 bulan adalah 1 berbanding 1000; sekarang perbandingan itu naik drastis hingga 1 berbanding 10.

Statistik vital dari virus:
  • Virus-virus masuk ke dalam sistem Anda melalui e-mail, download, floppy disk yang terinfeksi, atau (kadang-kadang) oleh hacking.
  • Dari definisinya, sebuah virus harus dapat melakukan "pembiakan sendiri" (alias membuat kloning atau salinan dari dirinya sendiri) untuk dapat menyebar.
  • Saat ini terdapat ribuan jenis virus, tetapi hanya sedikit yang ditemukan "di belantara"( berkeliaran, tak terdeteksi, di dalam jaringan) karena sebagian besar dari virus yang dikenal lahir dari laboratorium, yang merupakan varian dari virus "liar" yang banyak terdapat di dunia.
  • Akibat yang ditimbulkan virus bervariasi, mulai dari yang menjengkelkan hingga yang sangat merusak, akan tetapi virus yang paling sederhana pun memiliki kecenderungan untuk merusak karena adanya bug pada kode komputer mereka (karena programmer virusnya sangat ceroboh atau memang punya niat jahat).
  • Software antivirus yang ada di pasaran saat ini dapat mendeteksi hampir semua jenis virus yang ada, tetapi harus diupdate secara reguler untuk menjaga keefektifannya. Sebuah virus hanyalah sebuah program komputer. Seperti program komputer lainnya, di dalamnya terdapat instruksi yang dapat menyuruh komputer untuk melakukan tugas tertentu. Tetapi berbeda dengan program aplikasi, sebuah virus biasanya memerintahkan komputer Anda untuk melakukan hal yang sebenarnya tidak Anda inginkan, dan biasanya dapat menyebarkan dirinya ke file-file yang ada di dalam komputer Anda--dan kadang-kadang ke komputer orang lain juga. Bila Anda beruntung, sebuah virus paling-paling hanya menyebabkan komputer untuk melakukan tindakan yang aneh-aneh, seperti menyebabkan speaker komputer Anda berbunyi "blip-blip-blip" secara acak. Yang paling ditakuti adalah virus ganas yang dapat menyebabkan seluruh data pada harddisk Anda hilang (dengan memerintah komputer untuk memformat harddisk), bahkan ada virus yang dapat merusak hardware komputer Anda, seperti virus CIH yang merusakkan BIOS motherboard komputer Anda.

Touchscreen

A touchscreen is a display that can detect the presence and location of a touch within the display area. The term generally refers to touch or contact to the display of the device by a finger or hand. Touchscreens can also sense other passive objects, such as a stylus. However, if the object sensed is active, as with a light pen, the term touchscreen is generally not applicable. The ability to interact directly with a display typically indicates the presence of a touchscreen.

The touchscreen has two main attributes. First, it enables one to interact with what is displayed directly on the screen, where it is displayed, rather than indirectly with a mouse or touchpad. Secondly, it lets one do so without requiring any intermediate device, again, such as a stylus that needs to be held in the hand. Such displays can be attached to computers or, as terminals, to networks. They also play a prominent role in the design of digital appliances such as the personal digital assistant (PDA), satellite navigation devices, mobile phones, and video games.

History

Touchscreens emerged from academic and corporate research labs in the second half of the 1960s. One of the first places where they gained some visibility was in the terminal of a computer-assisted learning terminal that came out in 1972 as part of the PLATO project. They have subsequently become familiar in kiosk systems, such as in retail and tourist settings, on point of sale systems, on ATMs and on PDAs where a stylus is sometimes used to manipulate the GUI and to enter data. The popularity of smart phones, PDAs, portable game consoles and many types of information appliances is driving the demand for, and the acceptance of, touchscreens.

The HP-150 from 1983 was probably the world's earliest commercial touchscreen computer. It doesn't actually have a touchscreen in the strict sense, but a 9" Sony CRT surrounded by infrared transmitters and receivers which detect the position of any non-transparent object on the screen.

Until the early 1980s, most consumer touchscreens could only sense one point of contact at a time, and few have had the capability to sense how hard one is touching. This is starting to change with the commercialisation of multi-touch technology.

Touchscreens are popular in heavy industry and in other situations, such as museum displays or room automation, where keyboard and mouse systems do not allow a satisfactory, intuitive, rapid, or accurate interaction by the user with the display's content.

Historically, the touchscreen sensor and its accompanying controller-based firmware have been made available by a wide array of after-market system integrators and not by display, chip or motherboard manufacturers. With time, however, display manufacturers and chip manufacturers worldwide have acknowledged the trend toward acceptance of touchscreens as a highly desirable user interface component and have begun to integrate touchscreen functionality into the fundamental design of their products.

Technologies

There are a number of types of touchscreen technology.

Resistive

A resistive touchscreen panel is composed of several layers, the most important of which are two thin, metallic, electrically conductive layers separated by a narrow gap. When an object, such as a finger, presses down on a point on the panel's outer surface the two metallic layers become connected at that point: the panel then behaves as a pair of voltage dividers with connected outputs. This causes a change in the electrical current which is registered as a touch event and sent to the controller for processing.

Surface acoustic wave

Surface acoustic wave (SAW) sumit technology uses ultrasonic waves that pass over the touchscreen panel. When the panel is touched, a portion of the wave is absorbed. This change in the ultrasonic waves registers the position of the touch event and sends this information to the controller for processing. Surface wave touch screen panels can be damaged by outside elements. Contaminants on the surface can also interfere with the functionality of the touchscreen.[1]

Capacitive

A capacitive touchscreen panel consists of an insulator such as glass, coated with a transparent conductor such as indium tin oxide (ITO).[2][3] As the human body is also a conductor, touching the surface of the screen results in a distortion of the local electrostatic field, measurable as a change in capacitance. Different technologies may be used to determine the location of the touch. The location can be passed to a computer running a software application which will calculate how the user's touch relates to the computer software.

Surface capacitance

In this basic technology, only one side of the insulator is coated with a conductive layer. A small voltage is applied to the layer, resulting in a uniform electrostatic field. When a conductor, such as a human finger, touches the uncoated surface, a capacitor is dynamically formed. The sensor's controller can determine the location of the touch indirectly from the change in the capacitance as measured from the four corners of the panel. As it has no moving parts, it is moderately durable but has limited resolution, is prone to false signals from parasitic capacitive coupling, and needs calibration during manufacture. It is therefore most often used in simple applications such as industrial controls and kiosks. [4]

Projected capacitance

Projected Capacitive Touch (PCT) technology is a capacitive technology which permits more accurate and flexible operation, by etching the conductive layer. An XY array is formed either by etching a single layer to form a grid pattern of electrodes, or by etching two separate, perpendicular layers of conductive material with parallel lines or tracks to form the grid (comparable to the pixel grid found in many LCD displays).

Applying voltage to the array creates a grid of capacitors. Bringing a finger or conductive stylus close to the surface of the sensor changes the local electrostatic field. The capacitance change at every individual point on the grid can be measured to accurately determine the touch location.[5] The use of a grid permits a higher resolution than resistive technology and also allows multi-touch operation. The greater resolution of PCT allows operation without direct contact, such that the conducting layers can be coated with further protective insulating layers, and operate even under screen protectors, or behind weather and vandal-proof glass.

PCT is used in a wide range of applications including point of sale systems, smartphones, and public information kiosks. Visual Planet's ViP Interactive Foil is an example of a kiosk PCT product, where a gloved hand can register a touch on a sensor surface through a glass window.[6] Examples of consumer devices using projected capacitive touchscreens include Apple Inc.'s iPhone and iPod Touch, HTC's G1, and HTC Hero, Motorola's Droid, Palm Inc.'s Palm Pre and Palm Pixi and more recently the LG KM900 Arena, Microsoft's Zune HD, Sony Walkman X series, Sony Ericsson's Aino and now Vidalco's Edge, D1 and Jewel phones.

Infrared

Conventional optical-touch systems use an array of infrared (IR) light-emitting diodes (LEDs) on two adjacent bezel edges of a display, with photosensors placed on the two opposite bezel edges to analyze the system and determine a touch event. The LED and photosensor pairs create a grid of light beams across the display. An object (such as a finger or pen) that touches the screen interrupts the light beams, causing a measured decrease in light at the corresponding photosensors. The measured photosensor outputs can be used to locate a touch-point coordinate.

Widespread adoption of infrared touchscreens has been hampered by two factors: the relatively high cost of the technology compared to competing touch technologies and the issue of performance in bright ambient light. This latter problem is a result of background light increasing the noise floor at the optical sensor, sometimes to such a degree that the touchscreen’s LED light cannot be detected at all, causing a temporary failure of the touch screen. This is most pronounced in direct sunlight conditions where the sun has a very high energy distribution in the infrared region.

However, certain features of infrared touch remain desirable and represent attributes of the ideal touchscreen, including the option to eliminate the glass or plastic overlay that most other touch technologies require in front of the display. In many cases, this overlay is coated with an electrically conducting transparent material such as ITO, which reduces the optical quality of the display. This advantage of optical touchscreens is extremely important for many device and display vendors since devices are often sold on the perceived quality of the user display experience.

Another feature of infrared touch which has been long desired is the digital nature of the sensor output when compared to many other touch systems that rely on analog-signal processing to determine a touch position. These competing analog systems normally require continual re-calibration, have complex signal-processing demands (which adds cost and power consumption), demonstrate reduced accuracy and precision compared to a digital system, and have longer-term system-failure modes due to the operating environment.

Strain gauge

In a strain gauge configuration, also called force panel technology, the screen is spring-mounted on the four corners and strain gauges are used to determine deflection when the screen is touched.[7] This technology has been around since the 1960s but new advances by Vissumo and F-Origin have made the solution commercially viable.[8] It can also measure the Z-axis and the force of a person's touch. Such screens are typically used in exposed public systems such as ticket machines due to their resistance to vandalism.[9]

Optical imaging

A relatively-modern development in touchscreen technology, two or more image sensors are placed around the edges (mostly the corners) of the screen. Infrared backlights are placed in the camera's field of view on the other sides of the screen. A touch shows up as a shadow and each pair of cameras can then be triangulated to locate the touch or even measure the size of the touching object (see visual hull). This technology is growing in popularity, due to its scalability, versatility, and affordability, especially for larger units.

Dispersive signal technology

Introduced in 2002 by 3M, this system uses sensors to detect the mechanical energy in the glass that occurs due to a touch. Complex algorithms then interpret this information and provide the actual location of the touch.[10] The technology claims to be unaffected by dust and other outside elements, including scratches. Since there is no need for additional elements on screen, it also claims to provide excellent optical clarity. Also, since mechanical vibrations are used to detect a touch event, any object can be used to generate these events, including fingers and stylus. A downside is that after the initial touch the system cannot detect a motionless finger.

Acoustic pulse recognition

This system, introduced by Tyco International's Elo division in 2006, uses more than two piezoelectric transducers located at some positions of the screen to turn the mechanical energy of a touch (vibration) into an electronic signal.[11] The screen hardware then uses an algorithm to determine the location of the touch based on the transducer signals. This process is similar to triangulation used in GPS. The touchscreen itself is made of ordinary glass, giving it good durability and optical clarity. It is usually able to function with scratches and dust on the screen with good accuracy. The technology is also well suited to displays that are physically larger. As with the Dispersive Signal Technology system, after the initial touch, a motionless finger cannot be detected. However, for the same reason, the touch recognition is not disrupted by any resting objects.

Construction

There are several principal ways to build a touchscreen. The key goals are to recognize one or more fingers touching a display, to interpret the command that this represents, and to communicate the command to the appropriate application.

In the most popular techniques, the capacitive or resistive approach, there are typically four layers;

1. Top polyester layer coated with a transparent metallic conductive coating on the bottom 2. Adhesive spacer 3. Glass layer coated with a transparent metallic conductive coating on the top 4. Adhesive layer on the backside of the glass for mounting.

When a user touches the surface, the system records the change in the electrical current that flows through the display.

Dispersive-signal technology which 3M created in 2002, measures the piezoelectric effect — the voltage generated when mechanical force is applied to a material — that occurs chemically when a strengthened glass substrate is touched.

There are two infrared-based approaches. In one, an array of sensors detects a finger touching or almost touching the display, thereby interrupting light beams projected over the screen. In the other, bottom-mounted infrared cameras record screen touches.

In each case, the system determines the intended command based on the controls showing on the screen at the time and the location of the touch.

Development

Virtually all of the significant touchscreen technology patents were filed during the 1970s and 1980s and have expired. Touchscreen component manufacturing and product design are no longer encumbered by royalties or legalities with regard to patents and the manufacturing of touchscreen-enabled displays on all kinds of devices is widespread.

The development of multipoint touchscreens facilitated the tracking of more than one finger on the screen, thus operations that require more than one finger are possible. These devices also allow multiple users to interact with the touchscreen simultaneously.

With the growing acceptance of many kinds of products with an integral touchscreen interface the marginal cost of touchscreen technology is routinely absorbed into the products that incorporate it and is effectively eliminated. As typically occurs with any technology, touchscreen hardware and software has sufficiently matured and been perfected over more than three decades to the point where its reliability is unassailable. As such, touchscreen displays are found today in airplanes, automobiles, gaming consoles, machine control systems, appliances and handheld display devices of every kind. With the influence of the multi-touch-enabled iPhone and the Nintendo DS, the touchscreen market for mobile devices is projected to produce US$5 billion in 2009.[12]

The ability to accurately point on the screen itself is taking yet another step with the emerging graphics tablet/screen hybrids.

Ergonomics and usage

Finger stress

An ergonomic problem of touchscreens is their stress on human fingers when used for more than a few minutes at a time, since significant pressure can be required for certain types of touchscreen. This can be alleviated for some users with the use of a pen or other device to add leverage and more accurate pointing. However, the introduction of such items can sometimes be problematic depending on the desired use case (for example, public kiosks such as ATMs). Also, fine motor control is better achieved with a stylus, because a finger is a rather broad and ambiguous point of contact with the screen itself.

Fingernail as stylus


Pointed nail for easier typing. The concept of using a fingernail trimmed to form a point, to be specifically used as a stylus on a writing tablet for communication, appeared in the 1950 science fiction short story Scanners Live in Vain.

These ergonomic issues of direct touch can be bypassed by using a different technique, provided that the user's fingernails are either short or sufficiently long. Rather than pressing with the soft skin of an outstretched fingertip, the finger is curled over, so that the top of the forward edge of a fingernail can be used instead. (The thumb is optionally used to provide support for the finger or for a long fingernail, from underneath.)

The fingernail's hard, curved surface contacts the touchscreen at a single very small point. Therefore, much less finger pressure is needed, much greater precision is possible (approaching that of a stylus, with a little experience), much less skin oil is smeared onto the screen, and the fingernail can be silently moved across the screen with very little resistance, allowing for selecting text, moving windows, or drawing lines.

The human fingernail consists of keratin which has a hardness and smoothness similar to the tip of a stylus (and so will not typically scratch a touchscreen). Alternately, very short stylus tips are available, which slip right onto the end of a finger; this increases visibility of the contact point with the screen. Oddly, with capacitive touchscreens, the reverse problem applies in that individuals with long nails have reported problems getting adequate skin contact with the screen to register keystrokes. Ordinary styluses do not work on capacitive touchscreens nor do fingers gloved in insulating materials. There do exist conductive gloves that are specially designed to allow the user to interact with capacitive sensors.

Fingerprints

Touchscreens can suffer from the problem of fingerprints on the display. This can be mitigated by the use of materials with optical coatings designed to reduce the visible effects of fingerprint oils, such as the oleophobic coating used in the iPhone 3G S, or by reducing skin contact by using a fingernail or stylus.

Combined with haptics

The user experience with touchscreens without tactile feedback or haptics can be difficult due to latency or other factors. Research from the University of Glasgow Scotland [Brewster, Chohan, and Brown 2007] demonstrates that sample users reduce input errors (20%), increase input speed (20%), and lower their cognitive load (40%) when touchscreens are combined with haptics or tactile feedback, [vs. non-haptic touchscreens].

Gorilla Arm

Gorilla arm was a side-effect that destroyed vertically-oriented touch-screens as a mainstream input technology despite a promising start in the early 1980s. Designers of touch-menu systems failed to notice that humans are not built to hold their arms at waist- or head-height, making small and precise motions. After a short period of time, cramping may begin to set in, and arm movement becomes painful and clumsy. This is now considered a classic cautionary tale to human-factors designers; "Remember the gorilla arm!" is an industry term for "How is this going to fly in real use?".[13] Gorilla arm is not a problem for specialist short-term-use devices such as ATMs, since they only involve brief interactions which are not long enough to cause gorilla arm. Gorilla arm also can be mitigated by the use of horizontally-mounted screens such as those used in Tablet PCs, but these need to account for the user's need to rest their hands on the device. This can increase the amount of dirt deposited on the device, and obstructs the user's view of the screen. In addition, using a screen on a surface can present cervical RSI issues (i.e., the user can develop neck pain after using it for a period of time).