text:
|Oracle® Call Interface Programmer's Guide
10g Release 1 (10.1)
Part Number B10779-01
|View PDF
This chapter contains these topics:
The Oracle Call Interface (OCI) is an application programming interface (API) that lets you create applications that use function calls to access an Oracle database server and control all phases of SQL statement execution. OCI supports the datatypes, calling conventions, syntax, and semantics of C and C++.
OCI provides:
OCI lets you manipulate data and schemas in an Oracle database using C programming language. It provides a library of standard database access and retrieval functions in the form of a dynamic runtime library (OCI library) that can be linked in an application at runtime.
OCI has many new features that can be categorized into several primary areas:
OCI provides significant advantages over other methods of accessing an Oracle database:
You compile and link an OCI program in the same way that you compile and link a non-database application. There is no need for a separate preprocessing or precompilation step.
Oracle supports most popular third-party compilers. The details of linking an OCI program vary from system to system. On some operating systems, it may be necessary to include other libraries, in addition to the OCI library, to properly link your OCI programs. See your Oracle system-specific documentation and the installation guide for more information about compiling and linking an OCI application for your operating system.
OCI has the following functionality:
The Oracle Call Interface (OCI) lets you develop scalable, multithreaded applications in a multitier architecture that combines the non-procedural data access power of Structured Query Language (SQL) with the procedural capabilities of C and C++.
The combination of both non-procedural and procedural language elements in an OCI program provides easy access to an Oracle database in a structured programming environment.
OCI supports all SQL data definition, data manipulation, query, and transaction control facilities that are available through an Oracle database server. For example, an OCI program can run a query against an Oracle database. The queries can require the program to supply data to the database using input (bind) variables, as follows:
SELECT name FROM employees WHERE empno = :empnumber;
In the preceding SQL statement,
:empnumber is a placeholder for a value that will be supplied by the application.
You can also take advantage of PL/SQL, Oracle's procedural extension to SQL. The applications you develop can be more powerful and flexible than applications written in SQL alone. OCI also provides facilities for accessing and manipulating objects in an Oracle database server.
OCI has facilities for working with object types and objects. An object type is a user-defined data structure representing an abstraction of a real-world entity. For example, the database might contain a definition of a
person object. That object might have attributes--
last_name, and
age--which represent a person's identifying characteristics.
The object type definition serves as the basis for creating objects, which represent instances of the object type. Using the object type as a structural definition, a
person object could be created with the attribute values 'John', 'Bonivento', and '30'. Object types may also contain methods--programmatic functions that represent the behavior of that object type.
|See Also:
OCI includes functions that extend the capabilities of OCI to handle objects in an Oracle database server. Specifically, the following capabilities have been added to OCI:
Additional OCI calls are provided to support manipulation of objects after they have been accessed by SQL statements. For a more detailed description of enhancements and new features, refer to "Encapsulated Interfaces".
One of the main tasks of an OCI application is to process SQL statements. Different types of SQL statements require different processing steps in your program. It is important to take this into account when coding your OCI application. Oracle recognizes several types of SQL statements:
Queries are often classified as DML statements, but OCI applications process queries differently, so they are considered separately here.
|See Also:
Data definition language (DDL) statements manage schema objects in the database. DDL statements create new tables, drop old tables, and establish other schema objects. They also control access to schema objects.
The following is an example of creating and specifying access to a table:
CREATE TABLE employees (name VARCHAR2(20), ssn VARCHAR2(12), empno NUMBER(6), mgr NUMBER(6), salary NUMBER(6)); GRANT UPDATE, INSERT, DELETE ON employees TO donna; REVOKE UPDATE ON employees FROM jamie;
DDL statements also allow you to work with objects in the Oracle database server, as in the following series of statements which creates an object table:
CREATE TYPE person_t AS OBJECT ( name VARCHAR2(30), ssn VARCHAR2(12), address VARCHAR2(50)); CREATE TABLE person_tab OF person_t;
OCI applications treat transaction control, session control, and system control statements like DML statements.
|See Also:
Oracle Database SQL Reference for information about these types of statements
Data manipulation language (DML) statements can change data in the database tables. For example, DML statements are used to:
|See Also:
"Binding Placeholders in OCI" for more information about input bind variables
DML statements also allow you to work with objects in the Oracle database server, as in the following example, which inserts an instance of type
person_t into the object table
INSERT INTO person_tab VALUES (person_t('Steve May','123-45-6789','146 Winfield Street'));
Queries are statements that retrieve data from a database. A query can return zero, one, or many rows of data. All queries begin with the SQL keyword
SELECT, as in the following example:
SELECT dname FROM dept WHERE deptno = 42;
Queries access data in tables, and they are often classified with DML statements. However, OCI applications process queries differently, so they are considered separately in this guide.
Queries can require the program to supply data to the database using input (bind) variables, as in the following example:
SELECT name FROM employees WHERE empno = :empnumber;
In the preceding SQL statement,
:empnumber is a placeholder for a value that will be supplied by the application.
name values returned from the query.
|See Also:
PL/SQL is Oracle's procedural extension to the SQL language. PL/SQL processes tasks that are more complicated than simple queries and SQL data manipulation language statements. PL/SQL allows a number of constructs to be grouped into a single block and executed as a unit. Among these are:
You can use PL/SQL blocks in your OCI program to:
The following PL/SQL example issues a SQL statement to retrieve values from a table of employees, given a particular employee number. This example also demonstrates the use of placeholders in PL/SQL statements.
BEGIN SELECT ename, sal, comm INTO :emp_name, :salary, :commission FROM emp WHERE empno = :emp_number; END;
Note that the placeholders in this statement are not PL/SQL variables. They represent input values passed to Oracle when the statement is processed. These placeholders need to be bound to C language variables in your program.
|See Also:
OCI processes SQL statements as text strings that an application passes to Oracle on execution. The Oracle precompilers (Pro*C/C++, Pro*COBOL, Pro*FORTRAN) allow you to embed SQL statements directly into your application code. A separate precompilation step is then necessary to generate an executable application.
It is possible to mix OCI calls and embedded SQL in a precompiler program.
|See Also:
This guide uses special terms to refer to the different parts of a SQL statement. For example, a SQL statement such as
SELECT customer, address FROM customers WHERE bus_type = 'SOFTWARE' AND sales_volume = :sales;
contains the following parts:
customer and
FROM clause -
WHERE clause -
bus_type and
WHERE clause - '
WHERE clause -
When you develop your OCI application, you call routines that specify to the Oracle database server the address (location) of input and output variables of your program. In this guide, specifying the address of a placeholder variable for data input is called a bind operation. Specifying the address of a variable to receive select-list items is called a define operation.
For PL/SQL, both input and output specifications are called bind operations. These terms and operations are described in Chapter 4, "Using SQL Statements in OCI".
All the data structures that are used by OCI calls are encapsulated in the form of opaque interfaces that are called handles. A handle is an opaque pointer to a storage area allocated by the OCI library that stores context information, connection information, error information, or bind information about a SQL or PL/SQL statement. A client allocates a certain types of handles, populates one or more of those handles through well-defined interfaces, and sends requests to the server using those handles. In turn, applications can access the specific information contained in the handle by using accessor functions.
The OCI library manages a hierarchy of handles. Encapsulating the OCI interfaces by means of these handles has several benefits to the application developer, including:
OCI provides application developers with simplified user authentication and password management in several ways:
OCI supports two types of login sessions:
OCI has several enhancements to improve application performance and scalability. Application performance has been improved by reducing the number of client to server round trips required and scalability improvements have been made by reducing the amount of state information that needs to be retained on the server side. Some of these features include:
SELECT statement result sets to eliminate the describe round trip, reduce round trips, and reduce memory usage
OCI provides a comprehensive application programming interface for programmers seeking to use the Oracle server's object capabilities. These features can be divided into five major categories:
The object cache is a client-side memory buffer that provides lookup and memory management support for objects. It stores and tracks object instances that have been fetched by an OCI application from the server to the client side. The object cache is created when the OCI environment is initialized. Multiple applications running against the same server will each have their own object cache. The cache tracks the objects which are currently in memory, maintains references to objects, manages automatic object swapping and tracks the meta-attributes or type information about objects. The object cache provides the following to OCI applications:
Applications using OCI can access objects in the Oracle server through several types of interfaces:
INSERT, and
UPDATE statements
OCI provides a set of functions with extensions to support object manipulation using SQL
INSERT, and
UPDATE statements. To access Oracle objects these SQL statements use a consistent set of steps as if they were accessing relational tables. OCI provides the following sets of functions required to access objects:
OCI also provides a set of functions using a C-style pointer chasing scheme to access objects once they have been fetched into the client-side cache by traversing the corresponding smart pointers or REFs. This navigational interface provides functions for:
REFs that point from one to the other
OCI provides functions for objects that manages how Oracle objects are used on the client-side. These functions provide for:
OCI provides two sets of functions to work with Oracle objects:
Additionally, the
OCIDescribeAny() function provides information about objects stored in the database.
The Object Type Translator (OTT) utility translates schema information about Oracle object types into client-side language bindings of host language variables, such as structures. The OTT takes as input an
intype file which contains metadata information about Oracle schema objects. It generates an
outtype file and the necessary header and implementation files that must be included in a C application that runs against the object schema. Both OCI applications and Pro*C/C++ precompiler applications may include code generated by the OTT. The OTT has many benefits including:
OTT is typically invoked from the command line by specifying the
intype file, the
outtype file and the specific database connection. With Oracle, OTT can only generate C structures which can either be used with OCI programs or with the Pro*C/C++ precompiler programs.
OCI provides an interface to Oracle's Streams Advanced Queuing (Streams AQ) feature. Streams AQ provides message queuing as an integrated part of the Oracle server. Streams AQ provides this functionality by integrating the queuing system with the database, thereby creating a message-enabled database. By providing an integrated solution Streams AQ frees you to devote your efforts to your specific business logic rather than having to construct a messaging infrastructure.
|See Also:
OCI supports the Oracle XA library.
|See Also:
Oracle Database Application Developer's Guide - Fundamentals for information about support for the Oracle XA library.
The following sections discuss issues concerning compatibility between different versions of OCI client and server, changes in the OCI library routines, and upgrading an application from the release 7.x OCI to this release of OCI.
OCI has been significantly improved with many features. Applications written to work with OCI release 7 have a smooth migration path to this OCI release because of the interoperability of OCI release 7 clients with this release of the server, and of clients of this release with an Oracle database version 7 server.
As a result, when migrating an existing OCI version 7 application you have the following two alternatives:
If you need to use any of the object capabilities of the current server release, you will need to upgrade your client to this release of OCI.
Here are the rules for re-linking for a new release.
Statically-linked applications need to be re-linked for both major and minor version releases, because the linked Oracle client-side library code may be incompatible with the error messages in the upgraded
ORACLE_HOME. For example, if an error message was updated with additional parameters then it will not be compatible with the statically-linked code.
Dynamically-linked applications need to be re-linked for major version releases only. OCI applications which are dynamically linked have a hard reference to the
libclntsh.so.n, where
n is the major release number (such as 9.0)
.For minor releases like 9.2 where a new client-side library,
libclntsh.so.9.2, is created, OCI has a symbolic link called
libclntsh.so.9.0 which points to
Applications with a hard link to
libclntsh.so.9.0 will continue to work in a 9.2
ORACLE_HOME. For a major release OCI does not create all the earlier version symbolic links. In 10.1 there is no
libclnsth.so.9.0 which points to
libclnsth.so.10.1. The application with a hard reference to
libclnsh.so.9.0 cannot run in 10.1
ORACLE_HOME unless it is re-linked.
|See Also:
Release 8.0 of the OCI introduced an entirely new set of functions which were not available in release 7.3. Oracle continues to support these release 7.3 functions. Many of the earlier 7.x calls are available, but Oracle strongly recommends that new applications use the new calls to improve performance and provide increased functionality.
Table 1-1, "Obsolescent OCI Routines" lists the 7.x OCI calls with their later equivalents. For more information about the OCI calls, see the function descriptions in Part III of this guide. For more information about the 7.x calls, see the Programmer's Guide to the Oracle Call Interface, Release 7.3. These 7.x calls are obsoleted, meaning that OCI has replaced them with newer calls. While the obsoleted calls are supported at this time, they may not be supported in all future versions of OCI.
In many cases the new OCI routines do not map directly onto the 7.x routines, so it may not be possible to simply replace one function call and parameter list with another. Additional program logic may be required before or after the new call is made. See the remaining chapters of this guide for more information.
|7.x OCI Routine
|Equivalent or Similar Later OCI Routine
Note: cursors are not used in release 8.x or later
Note: schema objects are described with OCIDescribeAny(). A describe, as used in release 7.x, will most often be done by calling OCIAttrGet() on the statement handle after SQL statement execution.
Note: nonblocking mode can be set or checked by calling
Note: cursors are not used in release 8.x or later
Note: see odescr() preceding
Note: see
Note: see
|See Also:
For information about the additional functionality provided by new functions not listed here, see the remaining chapters of this guide.
Some OCI routines that were available in previous versions of OCI are not supported in later releases. They are listed in Table 1-2, "OCI Routines Not Supported":
|OCI Routine
|Equivalent or Similar Later OCI Routine
Note: see
Note: see
This section addresses compatibility between different releases of OCI and Oracle server.
Existing 7.x applications with no new post-release 7.x calls have to be re-linked with the new client-side library.
The application will not be able to use the object features of Oracle8i or later, and will not get any of the performance or scalability benefits provided by those OCI releases.
Programmers who wish to incorporate release post-release 7.x functionality into existing OCI applications have two options:
This manual should provide the information necessary to rewrite an existing application to use only new OCI calls.
The following guidelines apply to programmers who want to incorporate new Oracle datatypes and features by using new OCI calls, while keeping 7.x calls for some operations:
OCILogon() instead of
olog() (or other logon call). The service context handle can be used with new OCI calls or can be converted into an
Lda_Def to be used with 7.x OCI calls.
|See Also:
See the description of
Lda_Def using
OCISvcCtxToLda(), and pass the resulting
Lda_Def to the 7.x calls.
If there are multiple service contexts that share the same server handle, only one can be in Oracle version 7 mode at any one time.
Lda_Def back to a server context handle using
Lda_Def and server context as often as necessary in the application.
This approach allows an application to use a single connection, but two different APIs, to accomplish different tasks.
You can mix OCI 7.x and post-release 7.x calls within a transaction, but not within a statement. This lets you execute one SQL or PL/SQL statement with OCI 7.x calls and the next SQL or PL/SQL statement within that transaction with post-release 7.x OCI calls.
You cannot open a cursor, parse with OCI 7.x calls and then execute the statement with post-release 7.x calls.
The Instant Client feature makes it extremely easy to deploy OCI, OCCI, ODBC, and JDBC-OCI based customer applications by eliminating the need for an
ORACLE_HOME. The storage space requirement of an OCI application running in Instant Client mode is significantly reduced compared to the same application running in a full client side installation. The Instant Client shared libraries only occupy about one-fourth the disk space of a full client installation.
Table 1-3 shows the Oracle client side files required to deploy an OCI application:
Client Code Library
OCI Instant Client Data Shared Library
Security Library
Release 10.1 library names are used in the table. The number part of library names will change in future releases to agree with the release.
To use the Microsoft ODBC and OLEDB driver,
ociw32.dll must also be copied from ORACLE_HOME\bin.
The benefits of Instant Client are:
The Instant Client libraries can also be installed by choosing the Instant Client option from the Oracle Universal Installer. The Instant Client libraries can also be downloaded from the Oracle Technology Network (
otn.oracle.com) Web site. The installation process is as simple as:
instantclient. On Windows, set PATH to locate the
instantclient directory.
After completing the above two steps you are ready to run the OCI application.
The OCI application operates in Instant Client mode when the three OCI shared libraries are accessible through the OS Library Path variable. In this mode, there is no dependency on
ORACLE_HOME and none of the other code and data files provided in
ORACLE_HOME are needed by OCI (except for the
tnsnames.ora file described later).
If you have done a complete client installation (by choosing the Admin option) the Instant Client shared libraries are also installed. The location of the Instant Client shared libraries in a full client installation is:
On UNIX:
libociei.so library is in
libclnstsh.so.10.1 and
libnnz10.so are in
On Windows:
oraociei10.dll library is in
orannzsbb10.dll are in
By copying the above libraries to a different directory and setting the OS shared library path to locate this directory you can enable running the OCI application in Instant Client mode.
All the libraries must be copied from the same
To enable other capabilities such as OCCI and JDBC-OCI, a few other files need to be copied over as well. In particular, for the JDBC OCI driver, in addition to the three OCI shared libraries, you must also download OCI JDBC Library (for example
libocijdbc10.so on UNIX and
oraocijdbc10.dll on Windows) and
ojdbcXY.jar (where XY is the version number, for example,
ojdbc14.jar). All libraries must be able to be loaded from the library path and
ojdbcXY.jar must be able to be loaded from CLASSPATH.
On hybrid platforms, such as Sparc64, if the JDBC OCI driver needs to be operated in the Instant Client mode, the
For OCCI, the OCCI Library (
libocci.so.10.1 on UNIX and
oraocci10.dll on Windows) must also be installed in a directory on the OS Library Path variable.
Instant Client is a deployment feature and should be used for running production applications. For development, a full installation is necessary to access OCI header files, Makefiles, demonstration programs, and so on. In general, all OCI functionality is available to an application being run in the Instant Client mode, except that the Instant Client mode is for client-side operation only. Therefore, server-side external procedures cannot operate in the Instant Client mode.
Because Instant Client is a deployment feature, the emphasis has been on reducing the number and size of files (client footprint) required to run an OCI application. Hence all files needed to patch Instant Client shared libraries are not available in an Instant Client deployment. An
ORACLE_HOME based full client installation is needed to patch the Instant Client shared libraries. The
opatch utility will take care of patching the Instant Client shared libraries.
After patching the Instant Client shared libraries Oracle recommends generating the patch inventory information by executing the following command from the
ORACLE_HOME/OPatch directory:
opatch lsinventory > opatchinv.out
opatchinv.out file should be copied along with the patched Instant Client libraries to the deployment directory. The information in
opatchinv.out will indicate all the patches that have been applied.
opatch inventory information for Instant Client libraries is not needed on the Windows platform, so this step can be skipped on Windows.
The OCI Instant Client Data Shared Library (
libociei.so) can be regenerated by performing the following steps in an Administrator Install of
cd $ORACLE_HOME/rdbms/lib make -f ins_rdbms.mk ilibociei
A new version of
libociei.so based on the current files in the
ORACLE_HOME is then placed in the
ORACLE_HOME/instantclient directory.
Regeneration of data shared library is not available on Windows platforms.
All Oracle net naming methods that do not require use of
ORACLE_HOME or
TNS_ADMIN (to locate configuration files such as
tnsnames.ora or
sqlnet.ora) work in the Instant Client mode. In particular, the connect string in the
OCIServerAttach() call can be specified in the following formats:
"(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp) (HOST=dlsun242) (PORT=5521)) (CONNECT_DATA=(SERVICE_NAME=bjava21)))"
Naming methods that require
TNS_ADMIN to locate configuration files continue to work if the
TNS_ADMIN environment variable is set.
If the
TNS_ADMIN environment variable is not set, and
TNSNAMES entries such as
inst1, and so on, are used, then the
ORACLE_HOME variable must be set, and the configuration files are expected to be in the
$ORACLE_HOME/network.101/admin directory.
Please note that the
ORACLE_HOME variable in this case is only used for locating Oracle Net configuration files, and no other component of Client Code Library (OCI, NLS, and so on) uses the value of
The bequeath adapter or the empty connect strings are not supported. However, an alternate way to use the empty connect string is to set the
TWO_TASK environment variable on UNIX, or the
LOCAL variable on Windows, to either a
tnsnames.ora entry or an Oracle Net keyword-value pair. If
TWO_TASK or
LOCAL is set to a
tnsnames.ora entry, then the
tnsnames.ora file must be able to be loaded by
TNS_ADMIN or
ORACLE_HOME setting.
ORACLE_HOME environment variable no longer determines the location of NLS, CORE, and error message files. An OCI-only application should not require
ORACLE_HOME to be set. However, if it is set, it does not have an impact on OCI's operation. OCI will always obtain its data from the Data Shared Library. If the Data Shared Library is not available, only then is
ORACLE_HOME used and a full client installation is assumed. Even though
ORACLE_HOME is not required to be set, if it is set, then it must be set to a valid operating system path name that identifies a directory.
If Dynamic User callback libraries are to be loaded, then as this guide specifies, the callback package has to reside in
ORACLE_HOME/lib (
ORACLE_HOME\bin on Windows). Therefore,
ORACLE_HOME should be set in this case.
Environment variables
ORA_NLS32, and
ORA_NLS are ignored in the Instant Client mode.
In the Instant Client mode, if the
ORA_TZFILE variable is not set, then the smaller, default,
timezone.dat file from the Data Shared Library is used. If the larger
timezlrg.dat file is to be used from the Data Shared Library, then set the
ORA_TZFILE environment variable to the name of the file without any absolute or relative path names. That is, on UNIX:
setenv ORA_TZFILE timezlrg.dat
On Windows:
set ORA_TZFILE timezlrg.dat
If OCI is not operating in the Instant Client mode (because the Data Shared Library is not available), then
ORA_TZFILE variable, if set, names a complete path name as it does in previous Oracle releases.
TNSNAMES entries are used, then, as mentioned earlier,
TNS_ADMIN directory must contain the
TNSNAMES configuration files, and if
TNS_ADMIN is not set, then the
ORACLE_HOME/network.101/admin directory must contain Oracle Net Services configuration files.


text:
Mazda RX-8 Performance Parts
Your Mazda RX-8 is the final result of over 25 years of refinement and tuning of Mazda's famed rotary engine. The improvements that have been made to the performance and reliability of Mazda's rotary powered vehicles over the years is truly remarkable. When the RX-8 was released in 2004 excited enthusiasts and tuners rushed to begin tuning the Renesis engine in an effort to uncover additional performance gains. As an RX-8 owner, you benefit from this vast array of tuning talent and experience you're now presented with a wide range of performance RX-8 parts for your vehicle. Racing Beat has been a leader in the development of rotary parts for over 40 years and proudly continues the march forward. We invite you to review our online RX-8 parts offering and contact us with any technical questions you might have regarding your RX-8.
New 2020 shirts are here!
For 2020 we've added a new Racing Beat shirt design to the line-up. Super soft shirts and a new vintage-aged logo design provide a contemporary look and awesome comfort! Our best fitting shirt ever. All sizes available.
Posted by Jim L January 07, 2020
EXEDY RX-8 Clutch Kit
Exedy now offers a revised complete clutch replacement kit for the RX-8 application. This kit contains an organic compound disc, pressure plate, throw out bearing, pilot bearing, and an alignment tool. This Exedy Kit (Exedy PN 10812) replaces the RX-7/RX-8 combo kit (Exedy PN 10803A – still available for RX-7).
Posted by Jim L August 18, 2015
RX-8 Exhaust Performance
Considering an aftermarket exhuast for your RX-8? We've prepared a guide to answer all your questions.
Considering An Intake For Your RX-8?
The Racing Beat REVi system is one of most popular intakes on the market , we'll tell you why.
Racing Beat RX-8 Sway Bars
Matched-set sway bars for the RX-8 - Ideal handling upgrade!
2004-08 RX-8 Complete Gauge & Panel Kit
Monitor critical engine performance with this ready-to-install kit. Everything included!
ECU Computer Reflash Service
Computer programs available for street, race and ported engines.

subset: commoncrawl


text:
The contemporary motif from this elegant collection has timeless appeal. Towel ring is constructed of solid brass and is an ideal six in. in diameter. It is ideal for displaying your favorite decorative towels or for providing the space for daily use.
- Made of the finest solid brass materials
- Concealed screw mounting hardware installs easily
- Available in a variety of designer finishes
- Accent ring available with dotted, groovy, twist or smooth detail
- Designer finish will provide corrosion free performance
- Limited lifetime warranty


text:
Power saving
This article covers the configuration needed to turn on power saving features. Almost all of the features listed here are worth using whether or not the computer is on AC or battery power. Most have negligible performance impact and are just not enabled by default because of commonly broken hardware/drivers. Reducing power usage means reducing heat, which can even lead to higher performance on a modern Intel or AMD CPU, thanks to dynamic overclocking.
- 1 Configuration
- 1.1 Audio
- 1.2 Backlight
- 1.3 Bluetooth
- 1.4 Web camera
- 1.5 Kernel parameters
- 1.6 Network interfaces
- 1.7 Bus power management
- 1.8 Hard disk drive
- 1.9 CD/DVD spin down
- 2 Tools and scripts
- 3 See also
If you would like to create your own scripts and power saving settings such as by udev rules you can take the following settings as a reference.
By default, audio power saving is turned off by most drivers. It can be enabled by setting the
power_save parameter; a time (in seconds) to go into idle mode. To idle the audio card after one second, create
options snd_hda_intel power_save=1
for Intel, or use
options snd_ac97_codec power_save=1
for ac97.
See Backlight.
To disable bluetooth completely, blacklist the
btusb and
bluetooth modules.
To turn off bluetooth only temporarily, use rfkill:
# rfkill block bluetooth
Or with udev rule:
# disable bluetooth SUBSYSTEM=="rfkill", ATTR{type}=="bluetooth", ATTR{state}="0"
Or just enable the instantiated
email@example.com provided by the rfkill package.
Web camera
If you will not use integrated web camera then blacklist the
uvcvideo module.
Kernel parameters
This section uses configs in
/etc/sysctl.d/, which is "a drop-in directory for kernel sysctl parameters." See The New Configuration Files and more specifically systemd's sysctl.d man page for more information.
Disabling NMI watchdog
The NMI watchdog is a debugging feature to catch hardware hangs that cause a kernel panic. On some systems it can generate a lot of interrupts, causing a noticeable increase in power usage:
kernel.nmi_watchdog = 0
or add
nmi_watchdog=0 to the kernel line to disable it completely from early boot.
Writeback Time
Increasing the virtual memory dirty writeback time helps to aggregate disk I/O together, thus reducing spanned disk writes, and increasing power saving. To set the value to 60 seconds (default is 5 seconds):
vm.dirty_writeback_centisecs = 6000
To do the same for journal commits on supported filesystems (e.g. ext4, btrfs...), use
commit=60 as a option in fstab.
See also sysctl#Virtual memory for other parameters affecting I/O performance and power saving.
Laptop Mode
See the kernel documentation on the laptop mode 'knob.' "A sensible value for the knob is 5 seconds."
vm.laptop_mode = 5
Network interfaces
Wake-on-LAN can be a useful feature, but if you are not making use of it then it is simply draining extra power waiting for a magic packet while in suspend. Disabling for all Ethernet interfaces:
ACTION=="add", SUBSYSTEM=="net", KERNEL=="eth*", RUN+="/usr/bin/ethtool -s %k wol d"
To enable powersaving on all wireless interfaces:
ACTION=="add", SUBSYSTEM=="net", KERNEL=="wlan*", RUN+="/usr/bin/iw dev %k set power_save on"
In these examples,
%k is a specifier for the kernel name of the matched device. For example, if it finds that the rule is applicable to
wlan0, the
%k specifier will be replaced with
wlan0. To apply the rules to only a particular interface, just replace the pattern
eth* and specifier
%k with the desired interface name. For more information, see Writing udev rules.
In this case, the name of the configuration file is important. Due to the introduction of persistent device names via
80-net-name-slot.rules in systemd v197, it is important that the network powersave rules are named lexicographically before
80-net-name-slot.rules, so that they are applied before the devices are named e.g.
Bus power management
Active State Power Management
If the computer is believed not to support ASPM it and will be disabled on boot:
$ lspci -vv | grep ASPM.*abled\;
ASPM is handled by the BIOS, if ASPM is disabled it will be because [ref]:
- The BIOS disabled it for some reason (for conflicts?).
- PCIE requires ASPM but L0s are optional (so L0s might be disabled and only L1 enabled).
- The BIOS might not have been programmed for it.
- The BIOS is buggy.
If believing the computer has support for ASPM it can be forced on for the kernel to handle with the
pcie_aspm=force kernel parameter.
- Forcing on ASPM can cause a freeze/panic, so make sure you have a way to undo the option if it does not work.
- On systems that do not support it forcing on ASPM can even increase power consumption.
To adjust to
powersave do (the following command will not work unless enabled):
echo powersave | tee /sys/module/pcie_aspm/parameters/policy
By default it looks like this:
$ cat /sys/module/pcie_aspm/parameters/policy
[default] performance powersave
PCI Runtime Power Management
ACTION=="add", SUBSYSTEM=="pci", ATTR{power/control}="auto"
Device power management
Enable power management for (almost) all devices, including USB:
# Various subsystems runtime power management (by bus or class) ACTION=="add", SUBSYSTEMS=="*", TEST=="power/control", ATTR{power/control}="auto" # Various subsystems power saving (by module) ACTION=="add", SUBSYSTEMS=="*", TEST=="parameters/power_save", ATTR{parameters/power_save}="1"
To list the various devices affected:
ls /sys/bus/*/devices/*/power/control ls /sys/class/*/*/power/control ls /sys/module/*/parameters/power_save
To enable power management for all systems except USB, you could replace the first rule with individual rules for each subsystem instead (/sys/bus/some_subsystem, /sys/class/some_subsystem):
ACTION=="add", SUBSYSTEM=="some_subsystem", TEST=="power/control", ATTR{power/control}="auto"
USB autosuspend
The linux kernel can automatically suspend USB devices when they are not in use. This can sometimes save quite a bit of power, however some USB devices are not compatible with USB power saving and start to misbehave (common for USB mice/keyboards). udev rules based on whitelist or blacklist filtering can help to mitigate the problem.
The most simple and likely useless example is enabling autosuspend for all USB devices:
ACTION=="add", SUBSYSTEM=="usb", TEST=="power/control", ATTR{power/control}="auto"
To allow autosuspend only for devices that are known to work, use simple matching against vendor and product IDs (use lsusb to get these values):
# whitelist for usb autosuspend ACTION=="add", SUBSYSTEM=="usb", TEST=="power/control", ATTR{idVendor}=="05c6", ATTR{idProduct}=="9205", ATTR{power/control}="auto"
Alternatively, to blacklist devices that are not working with USB autosuspend and enable it for all other devices:
# blacklist for usb autosuspend ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", ATTR{idProduct}=="9205", GOTO="power_usb_rules_end" ACTION=="add", SUBSYSTEM=="usb", TEST=="power/control", ATTR{power/control}="auto" LABEL="power_usb_rules_end"
The default autosuspend idle delay time is controlled by the
autosuspend parameter of the
usbcore kernel module. To set the delay to 5 seconds instead of the default 2 seconds:
options usbcore autosuspend=5
Similarly to
power/control, the delay time can be fine-tuned per device by setting the
power/autosuspend attribute.
See the Linux kernel documentation for more information on USB power management.
SATA Active Link Power Management
ACTION=="add", SUBSYSTEM=="scsi_host", KERNEL=="host*", ATTR{link_power_management_policy}="min_power"
Hard disk drive
See hdparm#Power management configuration for drive parameters that can be set.
Power saving is not effective when too many programs are frequently writing to the disk. Tracking all programs, and how and when they write to disk is the way to limit disk usage. Use iotop to see which programs use the disk frequently. See Solid State Drives#Tips for minimizing disk reads/writes for other tips, most of them are not specific to SSDs.
Also little things like setting the noatime option can help. If enough RAM is available, consider disabling or limiting swappiness as it has the possibility to limit a good number of disk writes.
CD/DVD spin down
To allow the CD/DVD rom to spin down after a while using udisks:
# udisks --inhibit-polling /dev/sr0
Tools and scripts
Using these tools can replace setting a lot of settings by hand. Only run one of these tools to avoid possible conflicts as they all work more or less similar. Have a look at the power management category to get an overview on what power management options exist in Archlinux.
These are the more popular scripts and tools designed to help power saving:
- aclidswitch — Simple Power Management tool to define custom lid, brightness and low battery actions depending on the laptop's AC state.
- acpid — A daemon for delivering ACPI power management events with netlink support.
- ftw — Script to configure udev rules to save power.
- Laptop Mode Tools — Utility to configure laptop power saving settings, considered by many to be the de facto utility for power saving though may take a bit of configuration.
- pm-utils — Suspend and powerstate setting framework (largely undeveloped now).
- Powerdown — Scripts that combine different settings to make the computer consume less energy.
- powertop — A tool to diagnose issues with power consumption and power management to help set power saving settings.
- TLP — Advanced power management for Linux.
Using a script and an udev rule
Since systemd users can suspend and hibernate through
systemctl suspend or
systemctl hibernate and handle acpi events with
/etc/systemd/logind.conf, it might be interesting to remove pm-utils and acpid. There is just one thing systemd cannot do (as of systemd-204): power management depending on whether the system is running on AC or battery. To fill this gap, you can create a single udev rule that runs a script when the AC adapter is plugged and unplugged:
SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="/path/to/your/script true" SUBSYSTEM=="power_supply", ATTR{online}=="1", RUN+="/path/to/your/script false"
Examples of powersave scripts can be found here: powerdown, powersave.
The above udev rule should work as expected, but if your power settings are not updated after a suspend or hibernate cycle, you should add a script in
/usr/lib/systemd/system-sleep/ with the following contents:
#!/bin/sh case $1 in pre) /path/to/your/script false ;; post) if cat /sys/class/power_supply/AC0/online | grep 0 > /dev/null 2>&1 then /path/to/your/script true else /path/to/your/script false fi ;; esac exit 0
Do not forget to make it executable!
Now you do not need pm-utils anymore. Depending on your configuration, it may be a dependency of some other package. If you wish to remove it anyway, run
pacman -Rdd pm-utils.
Print power settings
This script prints power settings and a variety of other properties for USB and PCI devices. Note that root permissions are needed to see all settings.
#!/bin/bash for i in $(find /sys/devices -name "bMaxPower") do busdir=${i%/*} busnum=$(<$busdir/busnum) devnum=$(<$busdir/devnum) title=$(lsusb -s $busnum:$devnum) printf "\n\n+++ %s\n -%s\n" "$title" "$busdir" for ff in $(find $busdir/power -type f ! -empty 2>/dev/null) do v=$(cat $ff 2>/dev/null|tr -d "\n") [[ ${#v} -gt 0 ]] && echo -e " ${ff##*/}=$v"; v=; done | sort -g; done; printf "\n\n\n+++ %s\n" "Kernel Modules" for mod in $(lspci -k | sed -n '/in use:/s,^.*: ,,p' | sort -u) do echo "+ $mod"; systool -v -m $mod 2> /dev/null | sed -n "/Parameters:/,/^$/p"; done


text:
"Picture the communications future: every home linked via cable TV, push‐button phone, and video cassette to virtually every information retrieval bank in the country; every citizen able to efficiently get an answer to every question, a solution for every problem."
If you take out the antiquated references to push-button phones and video cassettes, you could easily imagine that the quote above came from the founders of Google. Or from the founders of any given web search engine, for that matter.
Yet, the quote is lifted directly from a special 1976 edition of the Journal of Broadcasting and Electronic Media, with the title: "Strategies for Dealing with Human Information Needs: Information or Communication?"
Communication practitioners and researchers in broadcasting, journalism, library science, and other information dissemination professions are devoting mammoth efforts to designing bigger information retrieval systems capable of handling more information, the journal stated. Information, it seems, was a key concept for the 1970s. "An answer to every question, a solution for every problem" was the baseline for human information needs.
The authors could never have imagined that the solution in the not too distant future would be summed up with these two words:
Google it!
From day one, Google's mission has been to "organize the world's information and make it universally accessible and useful." Perhaps not a totally original idea as Professor Vannevar Bush had a similar thought back in 1945 when he argued in the Atlantic Monthly that "as humans turned from war, scientific efforts should shift from increasing physical abilities to making all previous collected human knowledge more accessible."
Quite simply, Google was not designed specifically to drive traffic to websites as some seem to think. It was designed to provide knowledge, to give answers. Yes, to satisfy the human need for information.
Colossal, Mind-Bogglingly Huge Numbers
No other company has traversed the web so thoroughly in an effort to capture and catalogue its content. Recently, Google's Distinguished Engineer Matt Cutts went on record to say: "Google has had sight of 30 trillion URLs." Adding, "Google crawls 20 billion pages a day" and "100 billion searches are conducted per month" on Google.
Thirty trillion URLs is a giant number, to say the least. Yet, it represents only a fraction of the entire (exponentially growing) world wide web. Not only that, the fact that Google has had sight of those URLs does not mean it has crawled and indexed that content (or that it ever will).
It's vitally important to understand that Google does not have access to all content on the world wide web. And given the pace that end users now generate content, and the limitations that the protocol of the world wide web places on crawling, it's not likely that it ever will.
In short, Google is the gateway to the fraction of the web it has managed to index. It is not the gateway to the entire web.
And to place something else into perspective, of the 100 billion searches conducted on Google every month, just how many of those are "informational queries" compared to commercially related, or actual "shopping" queries?
Information retrieval scientists and professional marketers alike understand the importance of determining the user "intent" behind a web searcher's query. This study, Classifying Web Queries by Topic and User Intent discovered that the general search query breakdown for search engines was:
- 50 percent informational queries.
- 30 percent navigational queries.
- 10 percent product queries.
- 10 percent services queries.
I checked these findings directly with Google and this maps with its own internal research. It turns out only 30 percent of all search queries trigger ads (Google makes the majority of its ad revenue from products and services related queries, as you'd imagine).
So it's a fact: More people use Google to satisfy an information need than a shopping need.
Actually, when it comes to shopping, Google is the one playing catch-up. Mind-boggling numbers are one thing, but there's something else that falls into the world wide web, mind-boggling category for me. And that's the complainers supporting and motivating the FTC investigation into Google, who at the same time are reporting fabulous success stories to investors and stakeholders.
At no cost to the end user, Google provides an abundance of information, likely incomprehensible in its breadth and depth to the information scientists quoted at the beginning of this article. It's a technological gift that keeps on giving to a global, information-hungry society.
This is a unique "give first, take second" combined philanthropic and commercial business model. It's that which makes Google a more popular online destination than most of its (all take, no give) FTC-supporting complainers.
End Users Demand a Richer Experience
The web 2.0, constantly connected web surfer has much more sophisticated information needs. And these needs are frequently better satisfied by an experience richer than just a blue link and a web page.
If an end user is looking specifically to learn dance steps to The Charleston, for instance, then a video is a much more useful information resource than a text-based web page. A picture is a better result for someone who wants to know what a snowflake looks like under a microscope. And an audio file would be a better result for someone wishing to learn how to tune a guitar.
And yes, from time-to-time a commercial or shopping related query returns Google's own products or services in this richer mix of results. But regardless of where they're ranked, in return for the billions of queries satisfied without any commercial leaning whatsoever, why shouldn't they?
As I've stated before, why shouldn't Google have a slice of the commercial pie that has been created for all online businesses as a by-product of its own web information retrieval success?
In fact, the end user now expects this much richer experience from all search engines. Interesting to note that, although Google was first to take this multi-modal/universal search approach, when this article was written, Microsoft returned the higher number of "blended"-type results. Even more interesting is the fact that one of Microsoft's main complaints to the FTC regarding Google is for that very reason.
Web search isn't a solved problem by far. Google may be more advanced in its efforts to make sense of part of this never-ceasing digital deluge. But it too is threatened in its ability to satisfy the growing, personalized "concierge"-type search heralded by Siri, which is why, like its competition, Google is looking at fascinating other ways of satisfying the human need for information.
In my opinion, government time and money could be better used supporting this type of innovation at companies like Google – as opposed to pandering to the sour grapes of a few envious competitors.
Related reading
Quantum supremacy and nine SEO trends that'll flip 2020 on its head
In 2020 Google will start using breakthroughs like the quantum processor for commercial purposes. Scary? Interesting? Eight SEO trends to watch out for.
10 Tips for improved guest blogging in 2020
Top tips that'll do wonders for your guest blogging in 2020. Brand your business, demonstrate thought leadership and build relationships via link building.
How to utilize holiday season traffic for 2020's Q1 growth
A 2020 Q1 strategy for success: Holiday season audience types and how to engage with them in 2020's Q1 to turn them into paying customers.
Hootsuite social trends report for 2020
TikTok shakes up the status quo and brands strike a balance between public and private engagement. Hootsuite reveals trends that savvy marketers and social leaders need to know in 2020.


text:
There are some very silly commercials playing on TV for a security and identity theft company. It's a good company, and after you've watched it a few times you realize the effectiveness of the obvious as they show masked thieves robbing the couple in the commercial of everything they own as the couple talk to each other on the phone in obvious oblivion. It does make one want to call and order identity theft insurance because it's one of life's events that doesn't occur to us until it is too late and has actually happened. Those of us who have been dumped into a life with chronic pain know all about identity theft.
I don't need to tell those of you who have been reading this blog for any length of time how much each of us have lost. The dynamic that concerns me today is how to keep ourselves from losing any more of life's vitality, joy, and awareness as the days tick away. Like the couple in the commercial, we can sometimes be oblivious to our behavior as well as the choices we make along this road. I'd like to share three subjects with you: choices, opportunities, and the elephant in the room.
One of my favorite poets, Robert Frost, wrote a brilliant poem about choices, let me share it with you now.
The Road Not Taken
Two roads diverged in a yellow wood,
And sorry I could not travel both
And be one traveler, long I stood
And looked down one as far as I could
To where it bent in the undergrowth;
Then took the other, as just as fair,
And having perhaps the better claim,
Because it was grassy and wanted wear;
Though as for that the passing there
Had worn them really about the same,
And both that morning equally lay
In leaves no step had trodden black.
Oh, I kept the first for another day!
Yet knowing how way leads onto way,
I doubted I should ever come back.
I shall be telling this with a sigh
Somewhere ages and ages hence:
Two roads diverged in a wood, and I—
I took the one less traveled by,
And that has made all the difference.
Most of us did not have a choice before landing where we are now with our health in disarray or perhaps some did; but it is what it is, and now we can control our behavior, our choices, and the roads we choose to travel. Certainly we all travel on the road less traveled by, and it has made a dramatic difference in our lives. We often regret, grieve, and mourn, yet in doing so, we are losing the sunlight of today and the opportunities of the moment. We will never know what lay down that other road, the road not taken. Does it really matter? We have much to do on the road we're on.
Opportunities lay all around us. We often see our altered lives as limited. Yes, they are. We see them as dead end roads — that, they most certainly are not. Neither you nor I can see what lies ahead until we walk, crawl, or wheel there. The road may be rutted, dirty, and rough, but it is the road we're on. Chosen by us or life, it does not really matter now, does it? Opportunities for friendships, usefulness, love, and exploration lie ahead of us.
We have a most sacred opportunity to curb our emotions when necessary and behave ourselves. Sometimes I see individuals, patients, and friends who think their pain gives them license to be obnoxious, rude, and critical of others. When formed into words, these actions can hurt others who may be oblivious to what and who they are. Often we say or feel these negative reactions and they hurt us alone. We have the opportunity based on our own personal suffering to be kind, to be more understanding than most of the population, and to use our anger about our lot in life for positive purposes. We can still reach out a hand in friendship or helpfulness, can we not? We can still be a caring friend and listen and not always speak of our own ills. Those of us on the road less traveled need to express our dark humor toward those who treat us badly or are just ignorant of our plight, but we do have an obligation to ourselves to stop doing so before it becomes bitterness and turns around to bite us. I urge you as well as myself to turn to the beauty and the joy in life. We may need to let off steam on occasion, and it can be fun and helpful; but if we let off too much, our pot will be empty, and we'll be lost in a world of gray dampness. Choose, instead, to go outside and pull a weed, deadhead a flower, or sit beside a beloved cat and feel the purr of their whole body as you stroke them, or the warm tongue of a dog loving you in gratitude just for who you are.
Many of us live with an enormous elephant in the room. We talk constantly about the obvious. We do need to express ourselves, yet we also need to find the fine line between expression and driving others from our lives. I learned long ago it was too much for my husband my constant queries about why and how and decided it was better for both of us if I save my complaining for the "big stuff." Our spouses, lovers, and friends are never going to completely understand that elephant we live with, and that's because they can't feel what we feel. It's enough that they try to understand. Robert Frost wrote a small contribution to this subject that I'd like to share with you today.
The Secret Sits
We dance around in a ring and suppose,
But the Secret sits in the middle and knows.
Perhaps, it's for each of us to find the secret within our own lives as we attempt to keep our true identity along the way, this way of life with chronic pain.


text:
Change your default/index file
Your hosting account's default file displays when visitors go to your site. For more information, see What file displays when someone browses to my domain name?
Plesk has a built-in feature to let you reorder the preference for default files, as well as add new default file names.
- Log in to your GoDaddy account.
- Click Web Hosting.
- Next to the Plesk account you want to use, click Manage.
- Click Plesk Admin.
- At the bottom of the section of the domain hosting you want to use, click Show More.
- Click Virtual Directories.
- Click Directory Properties.
- In the Default documents search order field, change the order of the file names that display or enter the new filename you want to use.
- Click OK.


text:
2015 Audi A3 Reviews and Ratings
Sed 4D TDI Premium Plus 2WD I4 Turbo
Love this A3!!. smooth controlled ride even with the tire slap that creeps in on rough surfaces. Great acceleration and handling. Very comfortable seats and plenty of room for us. Some minor gripes include: no usb !? no rear view camera, expensive navigation package, small glove box.
Apart from that an ideal commuter car averaging 28 mpg on mixed roads and over 36 on highway.
Very happy with purchase.
highly recommended!
Expert Reviews
The Audi A3 is all-new for 2015. The 2015 Audi A3 begins its third generation in the U.S. as a four-door sedan, the first time for this body style in the U.S. Three- and five-door hatchbacks and a convertible are right behind the new sedans. A premium-level vehicle, the Audi A3 boasts a high-quality interior with leather upholstery as standard equipment.
As cars in the compact segment keep getting bigger, manufacturers are creating new models to slip into the entry-level category. Audi is no exception; while the A4 sedan was once considered Audi's compact offering, the 2015 Audi A3 sedan now takes over as the smallest four-door in the lineup.
Riding on a new platform, the 2015 Audi A3 offers a choice of two drivetrains. The standard front-wheel-drive sedan uses a 1.8-liter turbocharged inline-4 that makes 170 horsepower and 200 pound-feet of torque. Fuel economy is EPA-rated at 23/33 mpg City/Highway.
Top-of-the-line A3 sedans come with Quattro all-wheel drive and a 2.0-liter turbocharged inline-4 good for 200 hp and 258 lb.-ft. of torque. Fuel economy is an EPA-estimated 24/33 mpg City/Highway.
Both models use a 6-speed dual clutch transmission.
Like all Audis, the interior of the 2015 A3 is of high quality, with soft-touch materials, a clean, simple layout, and attention to detail. Even the climate control knobs have a well-built, substantial feel in-hand. The standard display screen is thin and retracts elegantly into the dash when not in use.
The A3 is packed with many standard features not always found on base models, including leather upholstery, power driver's seat, power sunroof and automatic wipers.
A new version of Audi's MMI control interface also is also standard, with 4G LTE data connectivity that effectively turns the A4 into a mobile hotspot, allowing users to pair up to eight compatible devices. Navigation is powered by Google Earth and Google Street View, with real-time weather, traffic and gas prices.
Although it's a four-door sedan, the 2015 Audi A3 is best on long trips for front-seat passengers only, though rear space is adequate for average-sized adults on short commutes. Cargo space is average for the class with all seats in place, and split-folding rear seats, including a center pass-through slot, help to make the A3 more versatile.
The base 1.8-liter engine is fine in the A3 sedan, and would be an ideal choice for commuting or driving around town.
Plenty of power and thrust is on tap driving the top-of-the-line 2.0T Quattro, with the most satisfaction coming in the higher revs. Though we sometimes found ourselves wanting more from the dual-clutch transmission through the winding roads, especially between second and third gears. Ride and handling is comfortable, though we found it a little floaty when pushing it hard around corners on rougher roads.
The closest competitor to the 2015 Audi A3 sedan is the Mercedes-Benz CLA250, which also rides on a front-wheel-drive platform (with optional AWD). The CLA-Class offers more power for the money with its standard 208-hp turbocharged inline-4, though we think the Audi is better looking and comes with more standard features.
2015 Audi A3 sedans come in two basic models: A3 1.8T uses front-wheel drive and a 170-hp, 1.8-liter turbocharged inline-4. A3 2.0T models have Quattro all-wheel drive and are fitted with a 200-hp turbocharged inline-4. Both models are available in three trim levels: Premium, Premium Plus and Prestige.
A3 Premium ($29,900) includes air conditioning, leather upholstery, a 12-way power driver's seat, manually adjustable passenger's seat, a tilt-and-telescoping steering wheel with multifunction controls, power windows/locks/mirrors, driver information system, cruise control, Bluetooth phone and streaming audio connectivity, 10-speaker audio system with single CD player, HD radio and satellite radio capability (with 90-day included subscription), SD card slot with 32GB capacity, panoramic sunroof, 60/40-split-folding rear seat, rain-sensing wipers, automatic Xenon headlights with LED daytime running lights and taillights and 17-inch alloy wheels. Options include navigation ($1,900), a Cold Weather Package ($500) with heated front seats, power adjustable side mirrors and heated windshield and washer nozzles.
A3 Premium Plus ($32,800) adds dual-zone automatic climate control, heated front seats, aluminum interior trim, pushbutton start, and upgrades to 18-inch alloy wheels. Packages include Navigation Plus ($2,600) which adds navigation and the AudiConnect hotspot connectivity with six-month subscription, a Driver Assistance Package ($1,400) including blind-spot detection, parking sensors and rearview camera; a Convenience Package ($750) adds power-adjustable folding heated exterior mirrors, an auto-dimming interior rearview mirror with digital compass, ambient LED interior lighting and an interior storage package.
A3 Prestige ($38,700) upgrades to a 14-speaker Bang & Olufsen sound system and adds navigation plus Audi S-line interior and exterior trim. Options for the Prestige trim include an Advanced Technology Package ($1,400), which includes front collision mitigation, lane departure assist and adaptive cruise control.
A Sport package ($550) available on Premium Plus and Prestige trims adds front sport seats, a sport steering wheel with paddle shifters, and adjustable driving modes. In addition, many of the features found on Premium Plus and Prestige models are available as packages or stand-alone options on Premium trims.
Size-wise, the 2015 Audi A3 is about 10 inches shorter than the Audi A4 sedan, but longer than the Audi TT coupe. It's about seven inches shorter than the Mercedes-Benz CLA-Class.
Design follows Audi's philosophy of placing two-thirds of the vehicle's mass below the daylight opening, or the space the windows occupy. Audi designers say concentrating volume at the bottom of the vehicle gives it a planted, aggressive stance.
Up front, the A3 uses Audi's signature trapezoidal single-frame grille, a tall, gaping maw with strong horizontal lines and the four-ring emblem affixed up top. Below, the grille is flanked on either side by air intakes that create a double-winged design. Daytime running lights are LED and are a unique shape to the A3 (with full-LED headlights on upper trim levels).
The roofline is more sloping than the A4, giving it a sportier appearance, but not curvy like the TT coupe, allowing for more rear headroom. A strong character line runs from the top corner of the wraparound headlight lenses, above the door handles and into the top corner of the LED taillights. A deep-cut, angular rocker panel rises sharply from the front fender to the rear. All new wheel designs appear on the 2015 A3 sedan, with standard 17-inch alloys on the base model.
In the rear, the curved decklid sits up high, with an integrated lip spoiler. New LED taillights are slimmer than before, and exhaust pipes are nestled in to the black plastic diffuser below.
Like all Audis, the interior of the 2015 A3 is of high quality, with soft-touch materials, a clean, simple layout, and attention to detail. Bauhaus is the word Audi designers use frequently in discussing the design of this third-generation Audi A3, yet they also insist the German minimalist philosophy was infused with some warmth, softening what could have otherwise been a too-austere look.
This is immediately evident in the dash design, a long, single piece, unfettered by the usual cut lines and variety of trim materials most carmakers use. The result is clean, yet in some ways almost boring. Fortunately, the dash material is a soft-touch plastic, with a feel and texture that keep it from seeming cheap. We were bothered, however, by a few blank buttons on the instrument panel and on the center console, a constant reminder that our car wasn't equipped with all the options.
The A3 is packed with many standard features not always found on base models, including leather upholstery, automatic climate control, power driver's seat, power sunroof and automatic wipers. Knobs and switches have a quality feel, more so than those found on the Mercedes-Benz CLA-Class or the BMW 2 Series. Even the climate control knobs have a well-built, substantial feel.
The color display screen is thin and retracts into the dash when not in use, a more elegant design than the screen found in the Mercedes-Benz CLA-Class, which is stuck on top of the dash and not movable.
A new version of Audi's MMI control interface is equipped with 4G LTE data connectivity that effectively turns the A4 into a mobile hotspot, allowing users to pair up to eight compatible devices. Navigation is powered by Google Earth and Google Street View, with real-time weather, traffic and gas prices. (An updated plug-and-play architecture allows Audi to update MMI hardware and software more frequently during the life cycle of the model, to ensure A3s rolling off the assembly line will have the latest technology.)
But despite Audi billing the A3 sedan as avant-garde in the tech department, we were dismayed to find that our 2.0T test car in the base trim did not come with a USB port, only the Audi music interface, which uses a last-generation iPod/iPhone cable. Consequently, we scrambled to find an adapter for our iPhone 5s. Upper trim levels come with one USB port, but for charging only, it does not pair the device with the MMI.
The front seat fit us nicely, and look higher-end than the CLA's one-piece design. Smaller adults will especially like that the A3's seat cushions are not too long, meaning that average-sized people will be able to bend their knees while sitting. Bolsters also hugged us nicely, though our 6-foot-3 driving companion complained the seats weren't long or wide enough.
The Audi A3 is best on long trips for one or two. On paper, the A3 offers several inches more legroom and slightly more headroom than the CLA-Class, but we found rear-seat space adequate for average-sized adults on short commutes, not long drives.
Cargo space measures 12.2 cubic feet in the 1.8-liter base model, and only 10 cubic feet in the 2.0T model. That falls short compared with 13.1 cubic feet in the Mercedes-Benz CLA-Class and 13.8 in the BMW 2 Series coupe. Split-folding rear seats, including a center pass-through slot, help to make the A3 more versatile.
We drove a front-wheel-drive 1.8T, but our longest drive in the Audi A3 to date has been in a 2.0T with Quattro all-wheel drive. This is the most expensive setup, with the most powerful engine and the best handling.
Plenty of power and thrust is on tap driving the top-of-the-line A3 2.0T Quattro, with the most satisfaction coming in the higher revs. Ride and handling is comfortable, though we found it a little disconnected and floaty when pushing it hard around corners on rougher roads.
The dual-clutch transmission worked well, but, as with all new cars, it's tuned to provide fuel economy over performance and will spin in the highest gear possible in normal driving. In manual mode, we found shifts to be on slow side, and we sometimes found ourselves wanting more, especially between second and third gears. Our pre-production cars were not equipped with paddle shifters, but Audi says a forthcoming sport package will offer this option, plus a lowered sport-tuned suspension that should provide more grip when cornering.
Noise, vibration and handling was fine on smooth roads, however, we did notice some wind- and road noise once pavement got bumpy, and on the freeway at speeds over 65 mph. At higher speeds, we had to raise our voices to converse with our fellow passengers.
We got only a short driving loop in the front-wheel-drive 1.8T sedan. As with the bigger engine, the 1.8-liter inline-4 does best in the mid- and higher revs, and has no problem merging on the onramp. We'd suggest this car for driving around town and the daily commute.
Four-wheel disc brakes on both models worked well, with an assured, yet not-too-bitey pedal feel.
The 2015 Audi A3 sedan is an attractive small sedan with adequate space and good road manners for those seeking a luxury car at an entry-level price. The 1.8T is a good choice for the daily commute. For better performance, opt for the 2.0-liter engine with all-wheel drive, but expect to pay more.
NewCarTestDrive.com senior correspondent Laura Burstein wrote this report after her test drive of the Audi A3 sedan near San Francisco, California.


text:
Time to draw a realistic dragon! I am including a few of my concept sketches in addition to the actual tutorial in order to make this tutorial a bit more helpful. I hope you'll indeed enjoy this tutorial on "how to draw a realistic dragon, step by step. Let's get started!
DragoArt members upload artwork and drawing tutorials! They are also allowed to leave comments on tutorials, profiles, etc. Many more features, as well; it's way better than just being a boring guest! Register Now!


text:
Any idea please? I am stuck, I look at BufferedReader methods but i didn't found any useful, need to do a method that return a String with the next line to read from a file. When it reach the end of file , it return null instead the String.
It is required that i pass BufferedReader as parameter
The only code I am able to think is "return br.readLine;" somewhere, but obviusly i need to remake that method, and not use it inside. I'm really stucked
import java.io.*; public class leer { public static void main(String[] args) { try { BufferedReader br = new BufferedReader(new StringReader("First line\nSecond line")); leeLinea(br); }catch(FileNotFoundException e) { }catch(IOException e){ } } static String leeLinea(BufferedReader br) throws IOException{ String string = ""; //while((string = nextLine()) != null) return string; return null; } }


text:
Retrieving Your MS SQL Database Admin Password
Some of the information in this article is advanced material we make available as a courtesy. Please be advised that you are responsible for properly following the procedures below. Customer Support cannot assist with these topics.
Note: This password was randomly created by Parallels Plesk Panel during configuration.
To retrieve your MSSQL database administrator password
- Log in to your Windows server using Remote Desktop Connection. See Connect via Remote Desktop (RDC) to your Windows server.
- From the Start menu, click Run....
- Type
cmdand press Enter.
- Type the following, where "p" is your Parallels Plesk Panel password, and then press Enter:
mssql -u admin -p
- Type your Parallels Plesk Panel password and press Enter.
- Type the following, and then press Enter:
use psa;
- Type the following, and then press Enter:
Select * from misc where param = 'mssql_admin_login' OR param ='mssql_admin_passwd';


text:
An Act promoting community service by the long-term unemployed through a civilian conservation corps
By Mr. Winslow of Norfolk, a petition (accompanied by bill, House, No. 1781) of Daniel B. Winslow and James R. Miceli for legislation to establish a civilian conservation corps promoting community service by the long-term unemployed. Labor and Workforce Development.
Bill Information
Bill Information
- Presenter:
- Daniel B. Winslow
The information contained in this website is for general information purposes only. The General Court provides this information as a public service and while we endeavor to keep the data accurate and current to the best of our ability, we make no representations or warranties of any kind, express or implied, about the completeness, accuracy, reliability, suitability or availability with respect to the website or the information contained on the website for any purpose. Any reliance you place on such information is therefore strictly at your own risk.


text:
Documenting and Scripting Databases
With SQL Server, you can document an existing database structure, called a schema, by generating one or more SQL scripts. An SQL script can be viewed in the SQL Server Management Studio Query Editor, or by using any text editor.
A schema generated as an SQL script can be used to do the following:
Maintain a backup script that lets the user re-create all users, groups, logins, and permissions.
Create or update database development code.
Create a test or development environment from an existing schema.
Train newly hired employees.
SQL scripts contain descriptions of the statements used to create a database and its objects. You can generate scripts from the objects in an existing database and then add these objects to another database by running the scripts against that database. In effect, this re-creates the complete database structure and any individual database objects.
The schema for generated objects can be saved in a single SQL Script file, or in several files with each file containing the schema of just one object. You can also save the schema generated for a single object, or a group of objects, into one or more SQL script files. Examples of SQL script files that you can generate include the following:
A complete database saved into a single SQL script file.
Table-only schema for one, some, or all tables in a database saved into one or more SQL script files.
Table and index schema saved into one SQL script file, stored procedures saved into another SQL script file, and defaults and rules saved into yet another SQL script file.
To generate a script
See Also


text:
FITCHBURG — More than 50 pieces of artwork made by staff from Fitchburg public schools and other city employees are on exhibit at the Fitchburg Art Museum through Nov. 27.
From pastel art by Superintendent of Schools Andre Ravenelle to quiltwork by Crocker Elementary School teacher Joanne Brennan to a beautiful mahogany mirror made by Anthony Stancato from building maintenance, the 3rd All Staff Community Art Show has a little bit of everything, according to Maureen Caouette, the new art director for Fitchburg schools.
"I'm thrilled with the turnout, and the variety of materials that were submitted," she said.
"I really like the wide variety of representation," said Ravenelle. "There are people from all different areas of the School Department, and most of the schools are represented. And the variety of the art — we have everything from very realistic paintings to incredibly abstract art."
Caouette submitted paintings and encaustic art, which is made using hot wax and resin — a technique that dates to before 500 B.C., she said. One piece is an encaustic collage piece made on a large door incorporating old letters and pictures, with each panel appearing to be curtains, hanging from the ceiling.
There are ceramic sculptures by 21st Century After-School Program art teacher Kara David, beaded necklaces by Art Department office manager Martha Thomas, photographs of the sunrise at Wachusett Mountain taken by Human Resources Director Richard Zeena, block prints by Reingold Elementary School Principal Kathy Brady and needlework pieces by Fitchburg Public Library Director Sharon Bernard.
School Committee Vice Chairwoman Sally Cragin submitted found-object jewelry pieces inspired by the December 2008 ice storm, including a necklace that looks like chunks of ice and a brooch made from electrical wires, Caouette said.
There are also many pieces of fiber and metal art, stained glass and mixed-media artwork, she said.
Ravenelle said it was the first time the biannual show had been opened to other city employees, and he's certain it will be from now on.
It was also the first time the event was hosted by the Fitchburg Art Museum, which opened up its lobby for the show.
"This is definitely one of many collaborations we look forward to having with the museum," Ravenelle said.
The event had previously been held at the Johnsonia, which burned in a June 2011 fire and was recently demolished.
"There was a tinge of sadness because the Johnsonia had always been so gracious to the Fitchburg public schools," Ravenelle said. "They always hosted this event there and the student art shows there. But everything changes, and there are new opportunities."
The exhibit is open to the public through Nov. 27 during regular museum hours, noon to 4 p.m. Wednesday through Friday, and 11 a.m. to 5 p.m. on Saturdays and Sundays.
Follow Alana Melanson at facebook.com/alanasentinel or on Twitter @alanamelanson.


text:
Just in time for Tax Day 2013 (better known in the Cringely household as Tequila for Breakfast, Lunch, and Dinner Day) comes news that the IRS is even a bigger snoop than you suspected -- or at least it might be.
Nathan Freed Wessler, staff attorney for the ACLU, penned a blog post earlier today that has twisted the blogosphere's collective knickers into tiny little knots. In it he writes of a Freedom of Information Act request the ACLU sent to the IRS last year and the 247 pages of bureaucratese it received in response.
[ Cash in on your IT stories! Send your IT tales to firstname.lastname@example.com. If we publish it, we'll keep you anonymous and send you a $50 American Express gift cheque. | For a humorous take on the tech industry's shenanigans, subscribe to Robert X. Cringely's Notes from the Underground newsletter. | Get the latest insight on the tech news that matters from InfoWorld's Tech Watch blog. ]
The ACLU wanted to know if the IRS requires a warrant before it reads the emails, texts, and other private communications of someone who is, presumably, undergoing an audit (better known in the Cringely household as an anesthetics-free colonoscopy). The answer? No, perhaps, we think, but we're not 100 percent sure. Per Wessler:
So does the IRS always get a warrant? Unfortunately, while the documents we have obtained do not answer this question point blank, they suggest otherwise. This question is too important for the IRS not to be completely forthright with the American public. The IRS should tell the public whether it always gets a warrant to access email and other private communications in the course of criminal investigations. And if the agency does not get a warrant, it should change its policy to always require one.
Don't let the facts get in the way of a good story
Well, that certainly clears things up, don't it? But that was all it took to get the blogger engines revving. Take SlashGear's Brian Sin, who penned a quickie summary post titled "IRS believes it can read your emails, chats, and more without a warrant." Or this quasi-double negative headline from TechCrunch's Gregory Ferenstein: "IRS doesn't deny snooping emails without a warrant." Then there's the Daily Finance's Matt Brownell, who apparently feels quite certain that "Yes, the IRS can read your emails if it wants" -- no lawyerly shades of gray for old Matt B.
Kudos to our friends over at PC Mag, who at least get the story right with "ACLU questions whether IRS is reading email without a warrant." It's a reasonable question, because of two things: One is rather shoddy legal advice provided in a 2009 IRS handbook that pretty much says all email is fair game to IRS investigators.
The Fourth Amendment does not protect communications held in electronic storage, such as email messages stored on a server, because Internet users do not have a reasonable expectation of privacy in such communications.


text:
By Gabriel Willow
When I tell people that I lead urban bird-watching tours, I brace myself for the inevitable pigeon jokes. "Ha-ha, yes, lots of pigeons. But did you know 250 species of birds have been seen in Central Park?".
When I began leading tours in Bryant Park a few years ago, even I thought there might not be much to see there aside from pigeons and the equally ubiquitous House Sparrows. It's a small park, located in the bustling heart of midtown, surrounded by imposingly tall buildings, and featuring only a couple of species of trees. Hardly an avian oasis or well-known bird-watching destination.
But I'm never one to turn down an opportunity to explore nature in any urban setting, and there are actually a lot of interesting facts to share about pigeons and sparrows, so I agreed to lead regular tours in a partnership between NYC Audubon and the Bryant Park Corporation.
I read up on pigeons, determined to impart as much information as possible about the few species I anticipated finding. However, much to my surprise and delight, Bryant Park actually was an avian oasis. Warblers flitted in the tops of the London Plane trees, gleaning insects off the leaf-buds. Normally shy Ovenbirds and Towhees strutted around on the lawn, taking foraging cues from the resident House Sparrows.
|Photo by Phil Jeffrey 2010
Bryant Park was really put on the birding map when a Prothonotary Warbler took up temporary residence in 2010; it is a southern species of swamps and bayous, rare this far north. Its deep gold hue and beady black eyes beguiled birders who travelled from around the city to marvel at its presence. I had seen them before, but usually while slogging through a mosquito-infested swamp. It was a whole new experience to witness one from a few feet away, hopping around on the library steps, eating bugs and breadcrumbs and seemingly unaware of the throngs sitting and standing nearby.
Often, the throngs are equally unaware of the birds. We began our seasonal tour series this past Monday, and were treated to another uncommon visitor: the American Woodcock, a snipe-like bird of rural fields and fens. They migrate through the area, and are often disoriented by the tall buildings and bright lights. Many fall victim to collisions with the windows of city skyscrapers. But here in Bryant Park were not one, but two Woodcock, which seem to have successfully navigated the cityscape thus far. One was bobbing along in the bushes, probing the ground for earthworms with its extraordinarily long beak. The other appeared exhausted, and was napping at the base of a yew shrub, nearly indistinguishable from a rock or pile of leaves.
|Photo by J. M. Miller 2013
The park is busy at this time of morning; people were bustling by on their way to work. Few had time to stop, although perhaps some wondered why our group was standing and staring into the bushes with binoculars. One of my favorite aspects of birding in Bryant Park is seeing how many people can walk right by such a remarkable creature as a woodcock without even realizing it's there; how many rare and unusual birds remain unnoticed in unexpected corners of the city? How often do we walk within feet of something strange and wild?
Within a few days, the Woodcocks will most likely be gone, resuming their journey northward, where the males will take up residence in damp meadows, and perform a remarkable aerial display. They will woo females, who will nest nearby in marshy stands of alders.
Although the Woodcocks will be gone, other birds will be arriving. Tanagers, vireos, thrushes, warblers, orioles, and more will seek food and shelter in this unexpected urban oasis.
Birding Tours of Bryant Park
Mondays, 8:00am – 9:00am
Thursdays, 5:00pm – 6:00pm
April 8 – May 23
Meet at the corner of 42nd Street & 6th Avenue


text:
Adrian College Athletic Department Code of Conduct
As athletes and coaches at Adrian College, we recognize that it is an honor and privilege to represent the entire community. As campus leaders, we acknowledge and accept responsibility for our actions as they may impact the athletic program and the College community.
It is expected that all student-athletes and coaches follow the policies set forth by the National Collegiate Athletic Association, the Michigan Intercollegiate Athletic Association, the Northern Collegiate Hockey Association, the United States Bowling Association, the Midwest Collegiate Volleyball League [and any other local, regional, or national organizations affiliated with Adrian College], Adrian College and the athletic department. Failure to do so may result in loss of competition, loss of captaincy or suspension from an athletic team.
Adrian College athletes and coaches do not condone the illegal or irresponsible use of alcohol or drugs. It is also expected that all athletes and coaches demonstrate respect through actions and attitudes with regard to academic integrity, the display of good sportsmanship, prevention of hazing and tolerance of others. The athletic department is committed to providing educational opportunities and support to encourage responsible behavior for all members of the Adrian College athletic community.


text:
This operation is performed in automatic mode 24/7.
min.: 0.1 ETH, max.: 46 ETH
Example: 0x6437ad8200caad13c3daebfb6acfaf3e677fd6ac
max.: 12.4349 EUR
Example: firstname.lastname@example.com
Enter your e-mail
For exchange you need to follow a few steps:
Note: this operation is performed in automatic mode.
Service exchange of electronic and crypto currency.
The exchange office works in an automatic mode.


text:
Peter Mueller to Florida: will the Avs regret his departure like Fleischmann's?
[media-credit name="Andy Cross, The Denver Post" align="alignright" width="495″][/media-credit]
As I discussed at some length in my latest podcast with Jibblescribbits, the issue of Peter Mueller being let go by the Avalanche for nothing is another that one can easily foresee coming back to bite the Avs in the rear.
The last player the Avs let go to Florida as an unrestricted free agent was Tomas Fleischmann in 2011, partially because the Avs had concerns about his medical history and ability to stay healthy. All Fleischmann did last season for the playoff-bound Panthers was put up 27 goals and 61 points, playing in ALL 82 games. It has become clear that that was a blunder of a decision by Avalanche management.
I've heard from some people out there that Fleischmann would never have been able to play in Denver for the long term because of what the altitude would do to his pulmonary embolism condition that prematurely ended his season in 2011 with Colorado. I'm not a doctor, but Fleischmann seemed to play just fine in the game he played at the Pepsi Center this season with Florida, and Denver isn't the only NHL city above sea level (Calgary, Edmonton, Phoenix).
Point is, the Avs were burned by that decision. They desperately needed help at the left wing last season, right where Fleischmann plays. Now, they've let another talented left winger go in Mueller, for what seem like essentially the same reasons: they didn't think he could stay healthy with any consistency, and didn't want to pay him to take that gamble.
Now, he's a Panther, and he sure sounds healthy, if this article in the Miami Herald today is to be believed. One of Mueller's quotes to the newspaper is: "I'm ready to rock and roll this coming season", and that he hasn't felt so good physically as he does now since his rookie season in Phoenix, when he scored 22 goals.
Meanwhile, the Avs still have a hole at left wing. Gabriel Landeskog is a tremendous left winger and Jamie McGinn should be good there as well. But after that? The pickings are slim, and now the Avs have let a 24-year-old left winger with a lot of talent go to the Florida Panthers.
This could easily turn out to be Fleischmann all over again.


text:
Teresa and Jeremy Installed a Little Free Library!
Teresa and Jeremy, active participants in the Share Tompkins community, just installed a "Little Free Library" in front of their house! It's an awesome way to share books with your neighbors. Here's what Teresa has to say…
Little Free Libraries
The Little Free Libraries were started in Wisconsin in late 2010 as a way of promoting literacy and community through the use of small, publically accessible book exchanges. When my husband and I recently went back to Wisconsin for a friend's wedding, we found ourselves charmed by the variety and number of Little Free Libraries in our old neighborhood, and decided to bring a little of that magic back to Ithaca with us.
We spent some time thinking about how to build a weathertight yet accessible little box, but after looking at the plans available at their website and considering our meager construction skill, we decided to buy one made from recycled materials. However, someone with more time and ability than me could certainly put one together in a weekend or two from any combination of found, recycled, or purchased materials. Most of the ones we've seen are about the size of a small laundry basket, with a door to keep out the elements. One of the cleverer designs I've seen is actually the next-nearest Library – a repurposed phone kiosk just outside Syracuse University's Library and Information Science department. Photo here
We live on a busy street with a fair amount of foot, car, and bike
traffic, so we didn't need to look farther than our own front yard. But other libraries are located in a wide variety of public and private places – outside of businesses, homes, and schools.
We're book fiends, and always have a stack of books to be passed along to other readers. Our Little Library is new, but I hope that it will become a neighborhood resource for exchanging beloved titles.
If you'd like to browse the Library and trade some books, or if you want a library of your own and want to see it in person, please stop by 1039 Hanshaw Rd. to check it out!


text:
We have two convenient locations to serve you. Our main office is located in Palm Beach Gardens, just a few minutes
from I-95 or the Florida Turnpike exits at PGA Boulevard.
Our second location is right next to the main JFK Hospital at Atlantis (Lake Worth), also a few minutes away from
the I-95 exit at 6th Ave. South, Lake Worth.
Palm Beach Gardens Office
900 Village Square Crossing, Suite 170
Palm Beach Gardens, FL 33410
Phone: (561) 627-8500
Fax: (561) 624-5885
Atlantis / Lake Worth Office
130 JFK Drive Suite 201
Atlantis, FL 33462
Phone: (561) 967-4400
Fax: (561) 967-5277