Data retrieval and storage are one of the most common components of J2EE applications. JDBC (Java DataBase Connectivity) is the Java API for accessing a Structured Query Language (SQL) relational database and adding, retrieving, and updating data in the database. JDBC 3.0 specification is the current specification implemented by most application servers. JDBC 4.0 specification became available in December 2006, but is not yet implemented by most application servers such as Oracle Application Server, WebLogic Server, JBoss Application Server, and WebSphere Application Server.
To connect with a SQL relational database, a JDBC driver is required; and most databases provide a JDBC 4.0 driver. We will use the Oracle JDeveloper 10.1.3 IDE to develop most of the J2EE applications in the book. We have chosen JDeveloper, because it includes an embedded J2EE server, the Oracle Containers for J2EE (OC4J) server, to run J2EE applications. JDeveloper also provides built-in support to connect to any of the commonly used application servers such as Oracle Application Server, WebLogic Server, JBoss Application Server, Tomcat server, and WebSphere Application Server and deploy applications to these servers. Another advantage of using JDeveloper is that JDeveloper provides built-in support for JDBC. JDeveloper also provides support for JSF; JSF user‑interface components may be selected from a component palette and added to a J2EE application.

The Edge calls Trigger Happy a "seminal piece of work." For the first time ever, an aficionado with a knowledge of art, culture, and a real love of gaming takes a critical look at the future of our videogames, and compares their aesthetic and economic impact on society to that of film. Thirty years after the invention of the simplest of games, more videogames are played by adults than children. This revolutionary book is the first-ever academically worthy and deeply engaging critique of one of today's most popular forms of play: videogames are on track to supersede movies as the most innovative form of entertainment in the new century.
About the Author
Steven Poole is a journalist and writer who has contributed articles to the Guardian, the Independent, and the Times Literary Supplement. He has also worked as a composer for television and short films.

Providing you with a comprehensive and up-to-date understanding of organic and inorganic nanostructures, this cutting-edge resource covers all aspects of this fast-growing area of nanotechnology. The book explores the technology, structure, and electrical and optical properties of organic/inorganic nanostructures, as well as their application in microelectronic, optoelectronic, and nano-electronic devices. This unique reference offers you practical insight into the selection and optimization of thin films and nanostructures for specific applications, the development of novel nano-electronic and sensing devices, and the optical characterization of a wide range of composite materials and nanostructures.
About the Author
Alexei V. Nabok is a senior lecturer at the Material Engineering Research Institute, Sheffield Hallam University. Dr. Nabok received an M.Sc. in radiophysics and electronics from Kiev State University, Ukraine and a Ph.D. in physics of semiconductors and dielectrics from the Institute of Semiconductor Physics, Academy of Sciences of the Ukraine.

OpenGL is a powerful software interface used to produce high-quality, computer-generated images and interactive applications using 2D and 3D objects, bitmaps, and color images.
The OpenGL® Programming Guide, Fifth Edition, provides definitive and comprehensive information on OpenGL and the OpenGL Utility Library. The previous edition covered OpenGL through Version 1.4. This fifth edition of the best-selling "red book" describes the latest features of OpenGL Versions 1.5 and 2.0, including the introduction of the OpenGL Shading Language.
You will find clear explanations of OpenGL functionality and many basic computer graphics techniques, such as building and rendering 3D models; interactively viewing objects from different perspective points; and using shading, lighting, and texturing effects for greater realism. In addition, this book provides in-depth coverage of advanced techniques, including texture mapping, antialiasing, fog and atmospheric effects, NURBS, image processing, and more. The text also explores other key topics such as enhancing performance, OpenGL extensions, and cross-platform techniques.
This fifth edition has been extensively updated to include the newest features of OpenGL Versions 1.5 and 2.0, including:
- Storage of vertex arrays in buffer objects for faster rendering
- Occlusion queries for course-grain visibility testing
- Non-power-of-two dimensioned texture maps
- Point sprites
- Separate stencil operations for RGB and alpha
- Rendering to multiple color buffers using GLSL
Most importantly, this edition discusses the OpenGL Shading Language (GLSL) and explains the mechanics of using this new language to create complex graphics effects and boost the computational power of OpenGL.
About the Author
Dave Shreiner, a leading OpenGL consultant, was a longtime member of the core OpenGL team at SGI. He authored the first commercial OpenGL training course, and has been developing computer graphics applications for more than two decades.
Excerpt. © Reprinted by permission. All rights reserved.
The OpenGL graphics system is a software interface to graphics hardware. (The GL stands for Graphics Library.) It allows you to create interactive programs that produce color images of moving three-dimensional objects. With OpenGL, you can control computer-graphics technology to produce realistic pictures or ones that depart from reality in imaginative ways. This guide explains how to program with the OpenGL graphics system to deliver the visual effect you want.
What This Guide Contains
This guide has 15 chapters. The first five chapters present basic information that you need to understand to be able to draw a properly colored and lit three-dimensional object on the screen.
- Chapter 1, “Introduction to OpenGL,” provides a glimpse into the kinds of things OpenGL can do. It also presents a simple OpenGL program and explains essential programming details you need to know for subsequent chapters.
- Chapter 2, “State Management and Drawing Geometric Objects,” explains how to create a three-dimensional geometric description of an object that is eventually drawn on the screen.
- Chapter 3, “Viewing,” describes how such three-dimensional models are transformed before being drawn on a two-dimensional screen. You can control these transformations to show a particular view of a model.
- Chapter 4, “Color,” describes how to specify the color and shading method used to draw an object.
- Chapter 5, “Lighting,” explains how to control the lighting conditions surrounding an object and how that object responds to light (that is, how it reflects or absorbs light). Lighting is an important topic, since objects usually don’t look three-dimensional until they’re lit.
The remaining chapters explain how to optimize or add sophisticated features to your three-dimensional scene. You might choose not to take advantage of many of these features until you’re more comfortable with OpenGL. Particularly advanced topics are noted in the text where they occur.
- Chapter 6, “Blending, Antialiasing, Fog, and Polygon Offset,” describes techniques essential to creating a realistic scene—alpha blending (to create transparent objects), antialiasing (to eliminate jagged edges), atmospheric effects (to simulate fog or smog), and polygon offset (to remove visual artifacts when highlighting the edges of filled polygons).
- Chapter 7, “Display Lists,” discusses how to store a series of OpenGL commands for execution at a later time. You’ll want to use this feature to increase the performance of your OpenGL program.
- Chapter 8, “Drawing Pixels, Bitmaps, Fonts, and Images," discusses how to work with sets of two-dimensional data as bitmaps or images. One typical use for bitmaps is describing characters in fonts.
- Chapter 9, “Texture Mapping,” explains how to map one-, two-, and three-dimensional images called textures onto three-dimensional objects. Many marvelous effects can be achieved through texture mapping.
- Chapter 10, “The Framebuffer,” describes all the possible buffers that can exist in an OpenGL implementation and how you can control them. You can use the buffers for such effects as hidden-surface elimination, stenciling, masking, motion blur, and depth-of-field focusing.
- Chapter 11, “Tessellators and Quadrics,” shows how to use the tessellation and quadrics routines in the GLU (OpenGL Utility Library).
- Chapter 12, “Evaluators and NURBS,” gives an introduction to advanced techniques for efficient generation of curves or surfaces.
- Chapter 13, “Selection and Feedback,” explains how you can use OpenGL’s selection mechanism to select an object on the screen. Additionally, the chapter explains the feedback mechanism, which allows you to collect the drawing information OpenGL produces, rather than having it be used to draw on the screen.
- Chapter 14, “Now That You Know,” describes how to use OpenGL in several clever and unexpected ways to produce interesting results. These techniques are drawn from years of experience with both OpenGL and the technological precursor to OpenGL, the Silicon Graphics IRIS Graphics Library.
- Chapter 15, “OpenGL 2.0 and the OpenGL Shading Language,” discusses the changes that OpenGL 2.0 introduces. This includes an introduction to the OpenGL Shading Language, also commonly called the "GLSL," which allows you to take control of portions of OpenGL’s processing for vertices and fragments. This functionality can greatly enhance the image quality and computational power of OpenGL.
In addition, there are several appendices that you will likely find useful:
- Appendix A, “Order of Operations,” gives a technical overview of the operations OpenGL performs, briefly describing them in the order in which they occur as an application executes.
- Appendix B, “State Variables,” lists the state variables that OpenGL maintains and describes how to obtain their values.
- Appendix C, “OpenGL and Window Systems,” briefly describes the routines available in window-system-specific libraries, which are extended to support OpenGL rendering. Window system interfaces to the X Window System, Apple MacIntosh, IBM OS/2, and Microsoft Windows are discussed here.
- Appendix D, “Basics of GLUT: The OpenGL Utility Toolkit,” discusses the library that handles window system operations. GLUT is portable and it makes code examples shorter and more comprehensible.
- Appendix E, “Calculating Normal Vectors,” tells you how to calculate normal vectors for different types of geometric objects.
- Appendix F, “Homogeneous Coordinates and Transformation Matrices,” explains some of the mathematics behind matrix transformations.
- Appendix G, “Programming Tips,” lists some programming tips based on the intentions of the designers of OpenGL that you might find useful.
- Appendix H, “OpenGL Invariance,” describes when and where an OpenGL implementation must generate the exact pixel values described in the OpenGL specification.
- Appendix I, “Built-In OpenGL Shading Language Variables and Functions,” lists all of the built-in variables and functions available in the OpenGL Shading Language.
Finally, an extensive Glossary defines the key terms used in this guide.
What’s New in This Edition
The fifth edition of the OpenGL Programming Guide includes new and updated material, covering both OpenGL Versions 1.5 and 2.0:
- Coverage of the following new core capabilities of OpenGL Version 1.5 has been added:
- Storage of vertex arrays in buffer objects
- Occlusion queries
- Addition of GL_LEQUAL and GL_GEQUAL texture comparison functions for use with shadow-mapping
- Minor token updates
- Coverage of the following OpenGL 2.0 core features:
- Addition of the OpenGL Shading Language for programming vertex and fragment shaders
- Output of different color values to multiple color buffers from programmable shaders
- Relaxation of the power-of-two size requirement for texture maps
- Rendering of texture-mapped point sprites
- Separate stencil operations for front- and back- facing polygons
- Bug fixes
What You Should Know Before Reading This Guide
This guide assumes only that you know how to program in the C language and that you have some background in mathematics (geometry, trigonometry, linear algebra, calculus, and differential geometry). Even if you have little or no experience with computer graphics technology, you should be able to follow most of the discussions in this book. Of course, computer graphics is a huge subject, so you may want to enrich your learning experience with supplemental reading:
- Computer Graphics: Principles and Practice by James D. Foley, Andries van Dam, Steven K. Feiner, and John F. Hughes (Addison-Wesley, 1990)— This book is an encyclopedic treatment of the subject of computer graphics. It includes a wealth of information but is probably best read after you have some experience with the subject.
- 3D Computer Graphics by Andrew S. Glassner (The Lyons Press, 1994)— This book is a nontechnical, gentle introduction to computer graphics. It focuses on the visual effects that can be achieved, rather than on the techniques needed to achieve them.
Another great place for all sorts of general information is the Official OpenGL Web Site. This Web site contains software, documentation, FAQs, and news. It is always a good place to start any search for answers to your OpenGL questions:
http://www.opengl.org/
Once you begin programming with OpenGL, you might want to obtain the OpenGL Reference Manual by the OpenGL Architecture Review Board (also published by Addison-Wesley), which is designed as a companion volume to this guide. The Reference Manual provides a technical view of how OpenGL operates on data that describes a geometric object or an image to produce an image on the screen. It also contains full descriptions of each set of related OpenGL commands—the parameters used by the commands, the default values for those parameters, and what the commands accomplish. Many OpenGL implementations have this same material online, in the form of manual pages or other help documents, which are probably more up-to-date. Ther...

We are starting a new era in the collaboration area. Voice and Video over IP are starting to dominate the world of telecommunications in a disruptive movement capable of changing the whole industry. The SIP (Session Initiation protocol) technology is at the center of this revolution. I believe, at present, SIP is the most used protocol for Voice and Video over IP.
In the future, when people learn how to use the technology, SIP will be for voice communications what email is today for text communications. We are starting with islands of SIP communications inside VoIP providers, enterprises, and even governments. In the near future, the barriers between the islands will be broken and you will be able to communicate with anyone in anyplace without paying high fees. The only fees you will pay in the future will be the access to the data network, because with the pervasiveness of VoIP and Video over IP, everything will be simply data. I remember the first days of Internets email in the early 90s. It took some years until everyone had an email address. The same thing could be happening in the SIP world now. Unfortunately, the SIP providers still behave as islands not, usually, allowing free inter-domain routing.
With the introduction of 3G, 4G, and WiMAX, fast data communications are becoming widespread in the mobile industry. Newer phones from mainstream manufacturers are starting to support WiFI, WiMAX, and obviously 3G. SIP clients can run in these platforms changing the whole mobile communication industry in the near future. Sure, the telephone companies will try, legitimately, to protect their revenue sources, but they cannot hide for ever the SIP communication infrastructure already in place. Slowly, users will start to use SIP clients in their mobile phones hugely cutting the communication costs. The movement, even without a huge sponsor, will spread by word of mouth until it becomes pervasive.

The Windows Presentation Foundation (WPF) is a next generation graphics platform that is part of .NET 3.0 and .NET 3.5. It allows you to build advanced user interfaces that incorporate documents, media, 2D and 3D graphics, animations, and web-like characteristics. "Practical WPF Graphics Programming" provides all the tools you need to develop professional graphics applications using WPF and C#. This book will be useful for WPF and C# programmers of all skill levels. It provides a complete and comprehensive explanation of the WPF graphics capability, and pays special attention to the details of code implementation. The book shows you how to create a variety of graphics ranging from simple 2D shapes to complex 3D surfaces and interactive 3D models. It includes over 120 code examples, which cover broad array of topics on WPF graphics programming. You will learn how to create a full range of 2D and 3D graphics applications and how to implement custom 3D geometries and shapes that can be reused in your WPF projects. Please visit the author's website for more information about this book at www.authors.unicadpublish.com/~jack_xu.

The history of AI is interesting all by itself. It’s a modern-day drama, filled with excitement and anticipation, discovery, and disappointment. From over-promises of early (and later) AI research, to fears of the unknown from the general public, AI’s history is worthy of study by itself. In this chapter, we’ll explore AI’s tumultuous history and also provide a summary introduction to each of the chapters of this book.
To build software that is deemed intelligent, it’s helpful to begin with a definition of intelligence. Intelligence can be simply defined as a set of properties of the mind. These properties include the ability to plan, solve problems, and in general, reason. A simpler definition could be that intelligence is the ability to make the right decision given a set of inputs and a variety of possible actions.
Using this simple definition of intelligence (making the right decision), we can apply this not only to humans, but also to animals that exhibit rational behavior. But the intelligence that is exhibited by human beings is much more complex than that of animals. For example, humans have the ability to communicate with language, but so do some animals. Humans can also solve problems, but the same can be said of some animals. One difference then is that humans embody many aspects of intelligence (the ability to communicate, solve problems, learn and adapt) where animals typically embody a small number of intelligent characteristics, and usually at a much lower level than humans.
We can use the same analogy on AI applied to computer systems. For example, it’s possible to build an application that plays a world-class game of Chess, but this program knows nothing of the game of Checkers, nor how to make a good cup of tea. A data mining application can help identify fraud, but can’t navigate a complex environment. From this perspective, the most complex and intelligent applications can be deemed intelligent from one perspective, but lack even the simplest intelligence that can be seen in the least intelligent of animals.

Your study guide for success
To pass the state licensing exam, you need knowledge and confidence. This comprehensive review guide gives you plenty of both. It’s packed with sample questions to help you focus your efforts, review material on all aspects of the 2002 National Electrical Code (NEC), the lowdown on business competency requirements, and tips for studying and test-taking that will help you conquer any anxiety.
- Learn the definitions, specifications, and regulations of the 2002 NEC
- Find answers to questions you can expect on license exams
- Brush up on taxes, unemployment, workers compensation, OSHA, lien laws, and other aspects of the business competency exam
- Get up to speed on telecommunications issues
- Review electrical laws, components, and circuits, motors, controllers, generators, distribution, welding, transformers, safety, and more
- Boost your confidence with studying and test-taking tips
About the Author
Paul Rosenberg is a master electrician with extensive experience in all aspects of the industry. A Board member of the Fiber Optics Association, he created the first installation standard for optical fiber (ANSI-NEIS-301) and is the author of Audel Electrician’s Pocket Manual, 2nd Edition.
