text:
PostgreSQL 7.4.30 Documentation | ||||
Prev | Fast Backward | Appendix E. Release Notes | Fast Forward | Next |
Release date: 2003-11-17
Major changes in this release:
In previous releases, IN/NOT IN subqueries were joined to the upper query by sequentially scanning the subquery looking for a match. The 7.4 code uses the same sophisticated techniques used by ordinary joins and so is much faster. An IN will now usually be as fast as or faster than an equivalent EXISTS subquery; this reverses the conventional wisdom that applied to previous releases.
In previous releases, rows to be grouped had to be sorted first. The 7.4 code can do GROUP BY without sorting, by accumulating results into a hash table with one entry per group. It will still use the sort technique, however, if the hash table is estimated to be too large to fit in sort_mem.
In previous releases, hash joins could only occur on single keys. This release allows multicolumn hash joins.
Prior releases evaluated queries using the explicit JOIN syntax only in the order implied by the syntax. 7.4 allows full optimization of these queries, meaning the optimizer considers all possible join orderings and chooses the most efficient. Outer joins, however, must still follow the declared ordering.
The entire regular expression module has been replaced with a new version by Henry Spencer, originally written for Tcl. The code greatly improves performance and supports several flavors of regular expressions.
Simple SQL functions can now be inlined by including their SQL in the main query. This improves performance by eliminating per-call overhead. That means simple SQL functions now behave like macros.
Previous releases allowed only IPv4 connections, and the IP data types only supported IPv4 addresses. This release adds full IPv6 support in both of these areas.
Several people very familiar with the SSL API have overhauled our SSL code to improve SSL key negotiation and error recovery.
In previous releases, B-tree index pages that were left empty because of deleted rows could only be reused by rows with index values similar to the rows originally indexed on that page. In 7.4, VACUUM records empty index pages and allows them to be reused for any future index rows.
The information schema provides a standardized and stable way to access information about the schema objects defined in a database.
The commands FETCH and MOVE have been overhauled to conform more closely to the SQL standard.
These cursors are also called holdable cursors.
The new protocol adds error codes, more status information, faster startup, better support for binary data transmission, parameter values separated from SQL commands, prepared statements available at the protocol level, and cleaner recovery from COPY failures. The older protocol is still supported by both server and clients.
While previous libpq releases already supported threads, this release improves thread safety by fixing some non-thread-safe code that was used during database connection startup. The configure option --enable-thread-safety must be used to enable this feature.
A new full-text indexing suite is available in contrib/tsearch2.
The new autovacuum tool in contrib/autovacuum monitors the database statistics tables for INSERT/UPDATE/DELETE activity and automatically vacuums tables when needed.
Many array limitations have been removed, and arrays behave more like fully-supported data types.
A dump/restore using pg_dump is required for those wishing to migrate data from any previous release.
Observe the following incompatibilities:
The server-side autocommit setting was removed and reimplemented in client applications and languages. Server-side autocommit was causing too many problems with languages and applications that wanted to control their own autocommit behavior, so autocommit was removed from the server and added to individual client APIs as appropriate.
Error message wording has changed substantially in this release. Significant effort was invested to make the messages more consistent and user-oriented. If your applications try to detect different error conditions by parsing the error message, you are strongly encouraged to use the new error code facility instead.
Inner joins using the explicit JOIN syntax might behave differently because they are now better optimized.
A number of server configuration parameters have been renamed for clarity, primarily those related to logging.
FETCH 0 or MOVE 0 now does nothing. In prior releases, FETCH 0 would fetch all remaining rows, and MOVE 0 would move to the end of the cursor.
FETCH and MOVE now return the actual number of rows fetched/moved, or zero if at the beginning/end of the cursor. Prior releases would return the row count passed to the command, not the number of rows actually fetched or moved.
COPY now can process files that use carriage-return or carriage-return/line-feed end-of-line sequences. Literal carriage-returns and line-feeds are no longer accepted in data values; use \r and \n instead.
Trailing spaces are now trimmed when converting from type char(n) to varchar(n) or text. This is what most people always expected to happen anyway.
The data type float(p) now measures p in binary digits, not decimal digits. The new behavior follows the SQL standard.
Ambiguous date values now must match the ordering specified by the datestyle setting. In prior releases, a date specification of 10/20/03 was interpreted as a date in October even if datestyle specified that the day should be first. 7.4 will throw an error if a date specification is invalid for the current setting of datestyle.
The functions oidrand
, and userfntest
have been removed. These
functions were determined to be no longer useful.
String literals specifying time-varying date/time
values, such as 'now' or
'today' will no longer work as
expected in column default expressions; they now cause the
time of the table creation to be the default, not the time
of the insertion. Functions such as now()
, current_timestamp
, or current_date
should be used instead.
In previous releases, there was special code so that
strings such as 'now' were
interpreted at INSERT time and not
at table creation time, but this work around didn't cover
all cases. Release 7.4 now requires that defaults be
defined properly using functions such as now()
or current_timestamp
. These will work in all
The dollar sign ($) is no longer allowed in operator names. It can instead be a non-first character in identifiers. This was done to improve compatibility with other database systems, and to avoid syntax problems when parameter placeholders ($n) are written adjacent to operators.
Below you will find a detailed account of the changes between release 7.4 and the previous major release.
Allow IPv6 server connections (Nigel Kukard, Johan Jordaan, Bruce, Tom, Kurt Roeckx, Andrew Dunstan)
Fix SSL to handle errors cleanly (Nathan Mueller)
In prior releases, certain SSL API error reports were not handled correctly. This release fixes those problems.
SSL protocol security and performance improvements (Sean Chittenden)
SSL key renegotiation was happening too frequently, causing poor SSL performance. Also, initial key handling was improved.
Print lock information when a deadlock is detected (Tom)
This allows easier debugging of deadlock situations.
Update /tmp socket modification times regularly to avoid their removal (Tom)
This should help prevent /tmp directory cleaner administration scripts from removing server socket files.
Enable PAM for Mac OS X (Aaron Hillegass)
Make B-tree indexes fully WAL-safe (Tom)
In prior releases, under certain rare cases, a server crash could cause B-tree indexes to become corrupt. This release removes those last few rare cases.
Allow B-tree index compaction and empty page reuse (Tom)
Fix inconsistent index lookups during split of first root page (Tom)
In prior releases, when a single-page index split into two pages, there was a brief period when another database session could miss seeing an index entry. This release fixes that rare failure case.
Improve free space map allocation logic (Tom)
Preserve free space information between server restarts (Tom)
In prior releases, the free space map was not saved when the postmaster was stopped, so newly started servers had no free space information. This release saves the free space map, and reloads it when the server is restarted.
Add start time to pg_stat_activity (Neil)
New code to detect corrupt disk pages; erase with zero_damaged_pages (Tom)
New client/server protocol: faster, no username length limit, allow clean exit from COPY (Tom)
Add transaction status, table ID, column ID to client/server protocol (Tom)
Add binary I/O to client/server protocol (Tom)
Remove autocommit server setting; move to client applications (Tom)
New error message wording, error codes, and three levels of error detail (Tom, Joe, Peter)
Add hashing for GROUP BY aggregates (Tom)
Make nested-loop joins be smarter about multicolumn indexes (Tom)
Allow multikey hash joins (Tom)
Improve constant folding (Tom)
Add ability to inline simple SQL functions (Tom)
Reduce memory usage for queries using complex functions (Tom)
In prior releases, functions returning allocated memory would not free it until the query completed. This release allows the freeing of function-allocated memory when the function call completes, reducing the total memory used by functions.
Improve GEQO optimizer performance (Tom)
This release fixes several inefficiencies in the way the GEQO optimizer manages potential query paths.
Allow IN/NOT IN to be handled via hash tables (Tom)
Improve NOT IN (subquery) performance (Tom)
Allow most IN subqueries to be processed as joins (Tom)
Pattern matching operations can use indexes regardless of locale (Peter)
There is no way for non-ASCII locales to use the standard indexes for LIKE comparisons. This release adds a way to create a special index for LIKE.
Allow the postmaster to preload libraries using preload_libraries (Joe)
For shared libraries that require a long time to load, this option is available so the library can be preloaded in the postmaster and inherited by all database sessions.
Improve optimizer cost computations, particularly for subqueries (Tom)
Avoid sort when subquery ORDER BY matches upper query (Tom)
Deduce that WHERE a.x = b.y AND b.y = 42 also means a.x = 42 (Tom)
Allow hash/merge joins on complex joins (Tom)
Allow hash joins for more data types (Tom)
Allow join optimization of explicit inner joins, disable with join_collapse_limit (Tom)
Add parameter from_collapse_limit to control conversion of subqueries to joins (Tom)
Use faster and more powerful regular expression code from Tcl (Henry Spencer, Tom)
Use bit-mapped relation sets in the optimizer (Tom)
Improve connection startup time (Tom)
The new client/server protocol requires fewer network packets to start a database session.
Improve trigger/constraint performance (Stephan)
Improve speed of col IN (const, const, const, ...) (Tom)
Fix hash indexes which were broken in rare cases (Tom)
Improve hash index concurrency and speed (Tom)
Prior releases suffered from poor hash index performance, particularly for high concurrency situations. This release fixes that, and the development group is interested in reports comparing B-tree and hash index performance.
Align shared buffers on 32-byte boundary for copy speed improvement (Manfred Spraul)
Certain CPU's perform faster data copies when addresses are 32-byte aligned.
Data type numeric reimplemented for better performance (Tom)
numeric used to be stored in base 100. The new code uses base 10000, for significantly better performance.
Rename server parameter server_min_messages to log_min_messages (Bruce)
This was done so most parameters that control the server logs begin with log_.
Rename show_*_stats to log_*_stats (Bruce)
Rename show_source_port to log_source_port (Bruce)
Rename hostname_lookup to log_hostname (Bruce)
Add checkpoint_warning to warn of excessive checkpointing (Bruce)
In prior releases, it was difficult to determine if checkpoint was happening too frequently. This feature adds a warning to the server logs when excessive checkpointing happens.
New read-only server parameters for localization (Tom)
Change debug server log messages to output as DEBUG rather than LOG (Bruce)
Prevent server log variables from being turned off by non-superusers (Bruce)
This is a security feature so non-superusers cannot disable logging that was enabled by the administrator.
log_min_messages/client_min_messages now controls debug_* output (Bruce)
This centralizes client debug information so all debug output can be sent to either the client or server logs.
Add Mac OS X Rendezvous server support (Chris Campbell)
This allows Mac OS X hosts to query the network for available PostgreSQL servers.
Add ability to print only slow statements using log_min_duration_statement (Christopher)
This is an often requested debugging feature that allows administrators to see only slow queries in their server logs.
Allow pg_hba.conf to accept netmasks in CIDR format (Andrew Dunstan)
This allows administrators to merge the host IP address and netmask fields into a single CIDR field in pg_hba.conf.
New read-only parameter is_superuser (Tom)
New parameter log_error_verbosity to control error detail (Tom)
This works with the new error reporting feature to supply additional error information like hints, file names and line numbers.
postgres --describe-config now dumps server config variables (Aizaz Ahmed, Peter)
This option is useful for administration tools that need to know the configuration variable names and their minimums, maximums, defaults, and descriptions.
Add new columns in pg_settings: context, type, source, min_val, max_val (Joe)
Make default shared_buffers 1000 and max_connections 100, if possible (Tom)
Prior versions defaulted to 64 shared buffers so PostgreSQL would start on even very old systems. This release tests the amount of shared memory allowed by the platform and selects more reasonable default values if possible. Of course, users are still encouraged to evaluate their resource load and size shared_buffers accordingly.
New pg_hba.conf record type hostnossl to prevent SSL connections (Jon Jensen)
In prior releases, there was no way to prevent SSL connections if both the client and server supported SSL. This option allows that capability.
Remove parameter geqo_random_seed (Tom)
Add server parameter regex_flavor to control regular expression processing (Tom)
Make pg_ctl better handle nonstandard ports (Greg)
New SQL-standard information schema (Peter)
Add read-only transactions (Peter)
Print key name and value in foreign-key violation messages (Dmitry Tkach)
Allow users to see their own queries in pg_stat_activity (Kevin Brown)
In prior releases, only the superuser could see query strings using pg_stat_activity. Now ordinary users can see their own query strings.
Fix aggregates in subqueries to match SQL standard (Tom)
The SQL standard says that an aggregate function appearing within a nested subquery belongs to the outer query if its argument contains only outer-query variables. Prior PostgreSQL releases did not handle this fine point correctly.
Add option to prevent auto-addition of tables referenced in query (Nigel J. Andrews)
By default, tables mentioned in the query are automatically added to the FROM clause if they are not already there. This is compatible with historic POSTGRES behavior but is contrary to the SQL standard. This option allows selecting standard-compatible behavior.
Allow UPDATE ... SET col = DEFAULT (Rod)
This allows UPDATE to set a column to its declared default value.
Allow expressions to be used in LIMIT/OFFSET (Tom)
In prior releases, LIMIT/OFFSET could only use constants, not expressions.
Implement CREATE TABLE AS EXECUTE (Neil, Peter)
Make CREATE SEQUENCE grammar more conforming to SQL:2003 (Neil)
Add statement-level triggers (Neil)
While this allows a trigger to fire at the end of a statement, it does not allow the trigger to access all rows modified by the statement. This capability is planned for a future release.
Add check constraints for domains (Rod)
This greatly increases the usefulness of domains by allowing them to use check constraints.
Add ALTER DOMAIN (Rod)
This allows manipulation of existing domains.
Fix several zero-column table bugs (Tom)
PostgreSQL supports zero-column tables. This fixes various bugs that occur when using such tables.
Have ALTER TABLE ... ADD PRIMARY KEY add not-null constraint (Rod)
In prior releases, ALTER TABLE ... ADD PRIMARY would add a unique index, but not a not-null constraint. That is fixed in this release.
Add ALTER TABLE ... WITHOUT OIDS (Rod)
This allows control over whether new and updated rows will have an OID column. This is most useful for saving storage space.
Add ALTER SEQUENCE to modify minimum, maximum, increment, cache, cycle values (Rod)
Add ALTER TABLE ... CLUSTER ON (Alvaro Herrera)
This command is used by pg_dump to record the cluster column for each table previously clustered. This information is used by database-wide cluster to cluster all previously clustered tables.
Improve automatic type casting for domains (Rod, Tom)
Allow dollar signs in identifiers, except as first character (Tom)
Disallow dollar signs in operator names, so x=$1 works (Tom)
Allow copying table schema using LIKE subtable, also SQL:2003 feature INCLUDING DEFAULTS (Rod)
Add WITH GRANT OPTION clause to GRANT (Peter)
This enabled GRANT to give other users the ability to grant privileges on a object.
Add ON COMMIT clause to CREATE TABLE for temporary tables (Gavin)
This adds the ability for a table to be dropped or all rows deleted on transaction commit.
Allow cursors outside transactions using WITH HOLD (Neil)
In previous releases, cursors were removed at the end of the transaction that created them. Cursors can now be created with the WITH HOLD option, which allows them to continue to be accessed after the creating transaction has committed.
FETCH 0 and MOVE 0 now do nothing (Bruce)
In previous releases, FETCH 0 fetched all remaining rows, and MOVE 0 moved to the end of the cursor.
Cause FETCH and MOVE to return the number of rows fetched/moved, or zero if at the beginning/end of cursor, per SQL standard (Bruce)
In prior releases, the row count returned by FETCH and MOVE did not accurately reflect the number of rows processed.
Properly handle SCROLL with cursors, or report an error (Neil)
Allowing random access (both forward and backward scrolling) to some kinds of queries cannot be done without some additional work. If SCROLL is specified when the cursor is created, this additional work will be performed. Furthermore, if the cursor has been created with NO SCROLL, no random access is allowed.
Implement SQL-compatible options FIRST, LAST, ABSOLUTE n, RELATIVE n for FETCH and MOVE (Tom)
Allow EXPLAIN on DECLARE CURSOR (Tom)
Allow CLUSTER to use index marked as pre-clustered by default (Alvaro Herrera)
Allow CLUSTER to cluster all tables (Alvaro Herrera)
This allows all previously clustered tables in a database to be reclustered with a single command.
Prevent CLUSTER on partial indexes (Tom)
Allow DOS and Mac line-endings in COPY files (Bruce)
Disallow literal carriage return as a data value, backslash-carriage-return and \r are still allowed (Bruce)
COPY changes (binary, \.) (Tom)
Recover from COPY failure cleanly (Tom)
Prevent possible memory leaks in COPY (Tom)
Make TRUNCATE transaction-safe (Rod)
TRUNCATE can now be used inside a transaction. If the transaction aborts, the changes made by the TRUNCATE are automatically rolled back.
Allow prepare/bind of utility commands like FETCH and EXPLAIN (Tom)
Add EXPLAIN EXECUTE (Neil)
Improve VACUUM performance on indexes by reducing WAL traffic (Tom)
Functional indexes have been generalized into indexes on expressions (Tom)
In prior releases, functional indexes only supported a simple function applied to one or more column names. This release allows any type of scalar expression.
Have SHOW TRANSACTION ISOLATION match input to SET TRANSACTION ISOLATION (Tom)
Have COMMENT ON DATABASE on nonlocal database generate a warning, rather than an error (Rod)
Database comments are stored in database-local tables so comments on a database have to be stored in each database.
Improve reliability of LISTEN/NOTIFY (Tom)
Allow REINDEX to reliably reindex nonshared system catalog indexes (Tom)
This allows system tables to be reindexed without the requirement of a standalone session, which was necessary in previous releases. The only tables that now require a standalone session for reindexing are the global system tables pg_database, pg_shadow, and pg_group.
New server parameter extra_float_digits to control precision display of floating-point numbers (Pedro Ferreira, Tom)
This controls output precision which was causing regression testing problems.
Allow +1300 as a numeric time-zone specifier, for FJST (Tom)
Remove rarely used functions oidrand
, oidsrand
, and userfntest
functions (Neil)
Add md5()
function to
main server, already in contrib/pgcrypto (Joe)
An MD5 function was frequently requested. For more complex encryption capabilities, use contrib/pgcrypto.
Increase date range of timestamp (John Cochran)
Change EXTRACT(EPOCH FROM timestamp) so timestamp without time zone is assumed to be in local time, not GMT (Tom)
Trap division by zero in case the operating system doesn't prevent it (Tom)
Change the numeric data type internally to base 10000 (Tom)
New hostmask()
(Greg Wickham)
Fixes for to_char()
Allow functions that can take any argument data type and return any data type, using anyelement and anyarray (Joe)
This allows the creation of functions that can work with any data type.
Arrays can now be specified as ARRAY[1,2,3], ARRAY[['a','b'],['c','d']], or ARRAY[ARRAY[ARRAY[2]]] (Joe)
Allow proper comparisons for arrays, including ORDER BY and DISTINCT support (Joe)
Allow indexes on array columns (Joe)
Allow array concatenation with || (Joe)
Allow WHERE qualification expr op ANY/SOME/ALL (array_expr) (Joe)
This allows arrays to behave like a list of values, for purposes like SELECT * FROM tab WHERE col IN (array_val).
New array functions array_append
, array_cat
, array_lower
, array_prepend
, array_to_string
, array_upper
, string_to_array
Allow user defined aggregates to use polymorphic functions (Joe)
Allow assignments to empty arrays (Joe)
Allow 60 in seconds fields of time, timestamp, and interval input values (Tom)
Sixty-second values are needed for leap seconds.
Allow cidr data type to be cast to text (Tom)
Disallow invalid time zone names in SET TIMEZONE
Trim trailing spaces when char is cast to varchar or text (Tom)
Make float(p) measure the precision p in binary digits, not decimal digits (Tom)
Add IPv6 support to the inet and cidr data types (Michael Graff)
Add family()
function to
report whether address is IPv4 or IPv6 (Michael
Have SHOW datestyle generate output similar to that used by SET datestyle (Tom)
Make EXTRACT(TIMEZONE) and SET/SHOW TIME ZONE follow the SQL convention for the sign of time zone offsets, i.e., positive is east from UTC (Tom)
Fix date_trunc('quarter', ...) (Böjthe Zoltán)
Prior releases returned an incorrect value for this function call.
Make initcap()
compatible with Oracle (Mike Nolan)
now uppercases
a letter appearing after any non-alphanumeric character,
rather than only after whitespace.
Allow only datestyle field order for date values not in ISO-8601 format (Greg)
Add new datestyle values MDY, DMY, and YMD to set input field order; honor US and European for backward compatibility (Tom)
String literals like 'now' or
'today' will no longer work as a
column default. Use functions such as now()
, current_timestamp
instead. (change
required for prepared statements) (Tom)
Treat NaN as larger than any other value in
NaN was already sorted after ordinary numeric values
for most purposes, but min()
and max()
didn't get this right.
Prevent interval from suppressing :00 seconds display
New functions pg_get_triggerdef(prettyprint)
Allow time to be specified as 040506 or 0405 (Tom)
Input date order must now be YYYY-MM-DD (with 4-digit year) or match datestyle
Make pg_get_constraintdef
support unique,
primary-key, and check constraints (Christopher)
Prevent PL/pgSQL crash when RETURN NEXT is used on a zero-row record variable (Tom)
Make PL/Python's spi_execute
interface handle null
values properly (Andrew Bosma)
Allow PL/pgSQL to declare variables of composite types without %ROWTYPE (Tom)
Fix PL/Python's _quote()
function to handle big integers
Make PL/Python an untrusted language, now called plpythonu (Kevin Jacobs, Tom)
The Python language no longer supports a restricted execution environment, so the trusted version of PL/Python was removed. If this situation changes, a version of PL/Python that can be used by non-superusers will be readded.
Allow polymorphic PL/pgSQL functions (Joe, Tom)
Allow polymorphic SQL functions (Joe)
Improved compiled function caching mechanism in PL/pgSQL with full support for polymorphism (Joe)
Add new parameter $0 in PL/pgSQL representing the function's actual return type (Joe)
Allow PL/Tcl and PL/Python to use the same trigger on multiple tables (Tom)
Fixed PL/Tcl's spi_prepare
to accept fully qualified
type names in the parameter type list (Jan)
Add \pset pager always to always use pager (Greg)
This forces the pager to be used even if the number of rows is less than the screen height. This is valuable for rows that wrap across several screen rows.
Improve tab completion (Rod, Ross Reedstrom, Ian Barwick)
Reorder \? help into groupings (Harald Armin Massa, Bruce)
Add backslash commands for listing schemas, casts, and conversions (Christopher)
\encoding now changes based on the server parameter client_encoding (Tom)
In previous versions, \encoding was not aware of encoding changes made using SET client_encoding.
Save editor buffer into readline history (Ross)
When \e is used to edit a query, the result is saved in the readline history for retrieval using the up arrow.
Improve \d display (Christopher)
Enhance HTML mode to be more standards-conforming (Greg)
New \set AUTOCOMMIT off capability (Tom)
This takes the place of the removed server parameter autocommit.
New \set VERBOSITY to control error detail (Tom)
This controls the new error reporting details.
New prompt escape sequence %x to show transaction status (Tom)
Long options for psql are now available on all platforms
Multiple pg_dump fixes, including tar format and large objects
Allow pg_dump to dump specific schemas (Neil)
Make pg_dump preserve column storage characteristics (Christopher)
This preserves ALTER TABLE ... SET STORAGE information.
Make pg_dump preserve CLUSTER characteristics (Christopher)
Have pg_dumpall use GRANT/REVOKE to dump database-level privileges (Tom)
Allow pg_dumpall to support the options -a, -s, -x of pg_dump (Tom)
Prevent pg_dump from lowercasing identifiers specified on the command line (Tom)
pg_dump options --use-set-session-authorization and --no-reconnect now do nothing, all dumps use SET SESSION AUTHORIZATION
pg_dump no longer reconnects to switch users, but instead always uses SET SESSION AUTHORIZATION. This will reduce password prompting during restores.
Long options for pg_dump are now available on all platforms
PostgreSQL now includes its own long-option processing routines.
Add function PQfreemem
for freeing memory on Windows, suggested for NOTIFY (Bruce)
Windows requires that memory allocated in a library be
freed by a function in the same library, hence
doesn't work for
freeing memory allocated by libpq. PQfreemem
is the proper way to free
libpq memory, especially on Windows, and is recommended
for other platforms as well.
Document service capability, and add sample file (Bruce)
This allows clients to look up connection information in a central file on the client machine.
Make PQsetdbLogin
the same defaults as PQconnectdb
Allow libpq to cleanly fail when result sets are too large (Tom)
Improve performance of function PQunescapeBytea
(Ben Lamb)
Allow thread-safe libpq with configure option --enable-thread-safety (Lee Kindness, Philip Yarra)
Allow function pqInternalNotice
to accept a format
string and arguments instead of just a preformatted
message (Tom, Sean Chittenden)
Control SSL negotiation with sslmode values disable, allow, prefer, and require (Jon Jensen)
Allow new error codes and levels of text (Tom)
Allow access to the underlying table and column of a query result (Tom)
This is helpful for query-builder applications that want to know the underlying table and column names associated with a specific result set.
Allow access to the current transaction status (Tom)
Add ability to pass binary data directly to the server (Tom)
Add function PQexecPrepared
and PQsendQueryPrepared
functions which
perform bind/execute of previously prepared statements
Allow setNull
updateable result sets
Allow executeBatch
on a
prepared statement (Barry)
Support SSL connections (Barry)
Handle schema names in result sets (Paul Sorenson)
Add refcursor support (Nic Ferrier)
Prevent possible memory leak or core dump during libpgtcl shutdown (Tom)
Add Informix compatibility to ECPG (Michael)
This allows ECPG to process embedded C programs that were written using certain Informix extensions.
Add type decimal to ECPG that is fixed length, for Informix (Michael)
Allow thread-safe embedded SQL programs with configure option --enable-thread-safety (Lee Kindness, Bruce)
This allows multiple threads to access the database at the same time.
Moved Python client PyGreSQL to http://www.pygresql.org (Marc)
Prevent need for separate platform geometry regression result files (Tom)
Improved PPC locking primitive (Reinhard Max)
New function palloc0
allocate and clear memory (Bruce)
Fix locking code for s390x CPU (64-bit) (Tom)
Allow OpenBSD to use local ident credentials (William Ahern)
Make query plan trees read-only to executor (Tom)
Add Darwin startup scripts (David Wheeler)
Allow libpq to compile with Borland C++ compiler (Lester Godwin, Karl Waclawek)
Use our own version of getopt_long()
if needed (Peter)
Convert administration scripts to C (Peter)
Bison >= 1.85 is now required to build the PostgreSQL grammar, if building from CVS
Merge documentation into one book (Peter)
Add Windows compatibility functions (Bruce)
Allow client interfaces to compile under MinGW (Bruce)
New ereport()
for error reporting (Tom)
Support Intel compiler on Linux (Peter)
Improve Linux startup scripts (Slawomir Sudnik, Darko Prenosil)
Add support for AMD Opteron and Itanium (Jeffrey W. Baker, Bruce)
Remove --enable-recode option from configure
This was no longer needed now that we have CREATE CONVERSION.
Generate a compile error if spinlock code is not found (Bruce)
Platforms without spinlock code will now fail to compile, rather than silently using semaphores. This failure can be disabled with a new configure option.
Change dbmirror license to BSD
Improve earthdistance (Bruno Wolff III)
Portability improvements to pgcrypto (Marko Kreen)
Prevent crash in xml (John Gray, Michael Richards)
Update oracle
Update mysql
Update cube (Bruno Wolff III)
Update earthdistance to use cube (Bruno Wolff III)
Update btree_gist (Oleg)
New tsearch2 full-text search module (Oleg, Teodor)
Add hash-based crosstab function to tablefuncs (Joe)
Add serial column to order connectby()
siblings in tablefuncs
(Nabil Sayegh,Joe)
Add named persistent connections to dblink (Shridhar Daithanka)
New pg_autovacuum allows automatic VACUUM (Matthew T. O'Connor)
Make pgbench honor environment variables PGHOST, PGPORT, PGUSER (Tatsuo)
Improve intarray (Teodor Sigaev)
Improve pgstattuple (Rod)
Fix bug in metaphone()
in fuzzystrmatch
Improve adddepend (Rod)
Update spi/timetravel (Böjthe Zoltán)
Fix dbase -s option and improve non-ASCII handling (Thomas Behr, Márcio Smiderle)
Remove array module because features now included by default (Joe)


text:
Speaker: 'Kiwimeter' is a methodological car crash and I still can't look away
88 Responses
First ←Older Page 1 2 3 4 Newer→ Last
Sacha, in reply to
Thanks for commenting here, Peter.
In such a Semantic Differential scale, shouldn't there be a middle/neutral point akin to 'Neither agree nor disagree'? A non-committal response is a valid response. If UoA academics were involved in this, they are bloody incompetent.
Sacha, in reply to
a national broadcaster doing it essentially for entertainment
bet you they are doing it for business
#ad-targetting -
Sacha, in reply to
Likert scales force a choice. Standard practice.
Andrew Robertson, in reply to
I guess that is possible, but I really really doubt it.
There are arguments on both sides as to whether semantic-differential or Likert scales should have an odd number or an even number of options.
The former allows a neutral midpoint, which may well be a valid response, but can also be a popular choice if respondents are tired, or don't want to think about the question (which is not the same as being neutral), or don't understand the question.
The latter forces respondents to read and think about the question and choose an opinion in one direction, even if only by a slight margin; but it removes the ability to signal true neutrality on a single item. However, neutrality may still be allowed to emerge by including two opposite-polarity items asking for the same information. -
Sacha, in reply to
there is a trend away from using reverse scored items.
thank goodness
linger, in reply to
I guess that is possible, but I really really doubt it.
It's hard to see any other meaningful purpose to the exercise, though.
linger, in reply to
Reverse scored items have their purpose. It is still recommended that at least one opposite-polarity item be included in each set of items attempting to measure the same thing – as an internal check that respondents are reading the questions rather than blindly choosing the same option, and as a way of minimising the inherent bias arising from forced choices (see previous comment). But wording such items takes some care, as they shouldn't be made harder to understand than the corresponding positive statement.
Sacha, in reply to
90% of TVNZ's income is advertising.
why the disbelief? -
This whole project seems like a classic case of a failure of research expertise and oversight of the whole enterprise, from development to delivery, start to finish.
So you're saying the manager deserves a promotion then, right?
Sacha, in reply to
neutrality may still be allowed to emerge by including two opposite-polarity items asking for the same information.
which does not work if some items are removed.
#oops -
Am more excited in any case by the prospects of this project led by my ex-neighbour Dr Carla Houkamau.
Sacha, in reply to
Interested to hear what Carla thought of that question.
Geoff Lealand, in reply to
I think a neutral mid-point is essential, for it can include a range of possible motivations, such as 'this question is too complex to allow me to answer it' or 'this is a really stupid question' or 'I don't have an opinion on this issue' to 'fuck off with your dumb research' etc.
I blame management schools for bad research such as this, with their neglect of ethical considerations. -
I think too many people are taking the "research" angle of the Kiwimeter at face value. It surely is a simple promotional device for TVNZ and and any research value is very much a distant secondary priority. I bet the whole special treatment for Maori question is intentionally designed to provoke the reaction it has received. That's marketing not research. False forced choices never appeal in questionnaires of any kind.
linger, in reply to
a neutral mid-point is essential, for it can include a range of possible motivations
That's exactly why it's dispreferred: by design, it provides a response that is not easily given one single interpretation. (That said, a neutral option can be offered when those other competing responses are less likely: e.g. on uncontroversial topics, in short questionnaires that are easy for their respondents.)
Russell Brown, in reply to
I bet the whole special treatment for Maori question is intentionally designed to provoke the reaction it has received.
Well, perhaps not exactly the reaction it's received, but certainly a reaction. The difference between the preserve and Kiwimeter questions certainly suggests that.
Weird… I was in the middle of replying to Tinakori myself. What we do know is that the question was intentionally worded that way to mirror the phrasing of talkback discussion – which probably is intended to provoke reaction. So, yes, kind of, but not in that direct a fashion.
Okay wow, the Director of Vox replied, and confirmed that he does not accept the validity of any feedback from Maori so far, about their decreased likelihood of filling in the survey on ideological grounds, because feedback is "anecdotal" and "sampling on the dependent variable". He does not seem to understand that *any* qualitative evidence of groups selecting-out of the survey on these grounds is a problem for the survey, *precisely because* it cannot be quantified. This is like a stereotype of a quant guy who does not understand the purpose of qualitative research in the context of survey design, i.e. that often a survey will be useless without it. Also he does not seem to want to acknowledge the effect that the media coverage is also likely to have on selecting out of the survey. Also tries to cover himself by saying that cognitive testing is not common in "academic research", I guess this is why he hadn't heard of it oh dear. I'm getting the feeling that this guy is a freakin' amateur.
Tze Ming Mok, in reply to
The points made by Peter Davis are essentially what I covered in my first post on this matter, which is that we need to study the prevalence of racist attitudes by, inevitably, testing racist statement in surveys. I am not suggesting here that a research ethics committee needs to intervene into/block research like this; but that in this case the researchers did not think as hard as they normally should be expected to, about the likely impact of the reduced schedule of Kiwimeter questions .This is actually likely because they relied on their 'usual' approach despite the delivery of the survey being far removed from the context of say, the way the NZAVS is presented to respondents. These are duties researchers have to themselves and their own standards, not necessarily something that needs policing by an external REC.
linger, in reply to
One might politely enquire as to how the percentage of Maori respondents currently compares to the population proportion.
I saw the Kiwimeter survey on facebook, so I naturally assumed it was going to tell me that my "Kiwi IQ" was in the top 4% of the world and by the way - here is some more click-bait that might appeal to your narcissism. It didn't work on Firefox so I didn't persevere.
I guess all surveys are self-selecting to some extent, but I still have an issue with the sort of things I come across at work. My response is always the same: "Put your graphs and statistical models away. You got a 12.1% response rate. All we know is that those people are the freaks, the outliers. Stop pretending that this is now "evidence" for "evidence-based policy". -
Tze Ming Mok, in reply to
You would think that would have been their first line of defense if the numbers looked right. However, I suspect (just a hunch, not based on my experience of online self-selective surveying in NZ) they would be needing to upweight Maori participants in the first place, for any online survey.
A few thoughts: one of the things that seems clear here is that there are quite clear disciplinary expectations on how things should be done (including some I'm inclined to flip on myself, such as reverse scoring).
Reverse scoring — totally a classic move for the reasons previously outlined (agreement bias, check people are awake etc.), but also disadvantages those with lower English proficiency, and they still tend to cluster together as their own factor.
Having a mid point — I'm strongly in favour of having a midpoint (unless, Rasch, see later). Forcing people to have an opinion where they are actually neutral leads can in paper surveys to people circling between the two (creating their own midpoint), and people stopping the survey in electronic.
And we haven't really talked about clustering, which is less relevant for the main argument under discussion here, but are there really genuine clusters, or is the data pretty evenly scattered? In which case plotting in 2 or 3D space would make more sense, rather than applying inaccurate arbitrary boundaries.
So back to Rasch. As the NZAVS statement alludes, using adaptive Rasch or Mokken scaling would have been a great well to test this domain of interest. In essence, you start out with a statement on the midpoint of the scale, which is relatively uncontentious (e.g., Cultural diversity enriches New Zealand society). If you agree with that statement, you start to be shown progressively more, well progressive statements (e.g., New Zealanders need to do more to make up for past treatment of Māori.). Whereas if you disagree with the statement, you start see statements heading in the other direction ((e.g., Claims about Māori discrimination are exaggerated.), perhaps culminating in the "special treatment" question. This confers a couple of great benefits. (1) People don't have to answer as many questions and (2) People are less likely to see statements they don't agree with. This also swings both ways. It's not surprising that the special treatment rankles with many, but there is also the real potential to get non-completion with questions like Claims about Māori discrimination are exaggerated. I understand that the reason why the census ethnicity question reverted to using "New Zealand European" is due to the backlash/write-in responding when "Pākehā" was used (c. 2001).
Finally, in my nosing about today, the special treatment question could be a local adaption of "Irish, Italian, Jewish, and many other minorities overcame prejudice and worked their way up. Blacks should do the same without any special favors." (Symbolic Racism Scale; Henry & Sears, 2002)
Post your response…
This topic is closed.

subset: commoncrawl


text:
Being the ideal nursing candidate isn't all about being the best academic student. The admissions tutors are looking for candidates who also demonstrate a high level of personal and professional aptitude towards nursing. To increase your chances of success ensure you sell yourself in your personal statement. Here are a few tips:
Have a balanced introduction. Set the scene for your statement but steer away from quotes and references to childhood aspirations.
Explain your application. Identify which field of nursing you have chosen and why you think it's right for you.
Demonstrate motivation and commitment. Illustrate what you've done to prepare for nursing, such as gaining care or work experience.
Sell your abilities. Explain what you have to offer your chosen field and say how you can match your abilities against your choice.
Personal qualities. Explain other life experiences that make you a sound candidate for the nursing role.
Clear conclusion. Offer a summary of your dedication to nursing and some insight into your nursing aspirations.


text:
Waterproof electronic enclosures are a gold standard in virtually every industry. From smartphones and wearables to underwater cameras—customers are extremely concerned about the waterproof rating as it affects both performance and durability. Having assembled circuit boards for a wide range of applications, we highly recommend getting your enclosure design right the first time. This will avoid the risk of ruining an expensive prototype and delaying your product launch.
3 Important Considerations for Full Electronic Enclosure Assembly
- Waterproof ratings – Engineers are often confused about what rating to look for in a waterproof enclosure. Typical "waterproof" IP ratings are:
- IP65 – Protect against water jets projected from a 6.3mm nozzle
- IP66 – Protection against powerful water jets from a 12.5 mm nozzle
- IP67 – Protection against immersion/submersion to a depth of 1m
Our PCB assembly specialists suggest considering the environment in which your product will be used and then testing electronic enclosures for both static and water jet pressure to be absolutely safe.
- Choosing a seal that works – Seals and gaskets create a barrier between housing and enclosure. Being a critical factor in water resistance, it is important to select one that will suit the product environment. Performance requirements such as water spray or submersion determine the sealing material, hardness and design elements. Custom designs and the right material can help achieve the desired compression and thickness while solving any shape-related problems.
- Prototype assembly and testing recommendations: Select a lower resolution material to check aesthetics and test the fit and function of your prototypes. This can help reduce cost. For the waterproofing test, you will have to use high resolution materials to ensure proper sealing. For high pressure sealing, we recommend CNC machining. This will guarantee surface control quality prior to testing the prototype for water resistance.
We are happy to provide a layout review and manufacturing feasibility assessment of your electronic box builds and enclosure designs to help you reduce the risk of rework.
Electronic Enclosure Assembly at Our ESD-Controlled Facility
Rely on Power Design Services for cost-effective electronic boxes and enclosure builds. Our veteran engineers handle the most complex design and manufacturing projects, meeting your specifications and timelines.
From design assistance to warehousing, shipping and inventory control, we offer complete solutions to save you time and money. Our 13,000-sq. ft. ESD-controlled facility is equipped with the latest PCB assembly equipment and follows stringent quality standards to ensure accuracy and reliability. Strategically located near San Jose Mineta International Airport, we ensure quick turnaround for customer orders. We offer quotes in 4 hours and 24-hour order fulfillment for time-sensitive projects. Pickup and delivery in Silicon Valley is also available.
From PCB prototypes to quick turn assemblies and volume runs, we provide high quality, fully finished housings ready for final assembly of your equipment. Our operations are ISO-9000 and ITAR certified.
Request a quote for electronic enclosures. Call Power Design Services at 408-437-1931 today to find out more about electronic enclosure assembly considerations.
Originally posted at http://www.powerdesignservices.com/full-electronic-enclosure-assembly-considerations/


text:
TEMA-3 Test of Early Mathematics Ability Third Edition
TEMA-3 Test of Early Mathematics Ability Third Edition
Ages: 3-0 through 8-11
Testing Time: 40 minutes
Administration: Individual
The TEMA-3 measures the mathematics performance of children between the ages of 3-0 and 8-11 and is also useful with older children who have learning problems in mathematics. It can be used as a norm-referenced measure or as a diagnostic instrument to determine specific strengths and weaknesses. Thus, the test can be used to measure progress, evaluate programs, screen for readiness, discover the bases for poor school performance in mathematics, identify gifted students, and guide instruction and remediation. The test measures informal and formal (school-taught) concepts and skills in the following domains: numbering skills, number-comparison facility, numeral literacy, mastery of number facts, calculation skills, and understanding of concepts. It has two parallel forms, each containing 72 items.
The all new standardization sample is composed of 1,219 children. The characteristics of the sample approximate those in the 2001 U.S. Census. Test results are reported as standard scores, percentile ranks, and age and grade equivalents. Internal consistency reliabilities are all above .92; immediate and delayed alternative form reliabilities are in the .80s and .90s. In addition, many validity studies are described.
Also provided is a book of remedial techniques (Assessment Probes and Instructional Activities) for improving skills in the areas assessed by the test. Numerous teaching tasks for skills covered by each TEMA-3 item are included. After giving the test, the examiner decides which items need additional assessment information and uses the book to help the student improve his or her mathematical skills.
Several important improvements were made in the TEMA-3. First, a linear equating procedure is used to adjust scores on the two test forms to allow the examiner to use scores on Form A and B interchangeably. Second, bias studies are now included that show the absence of bias based on gender and ethnicity. Finally, the pictures of animals and money in the Picture Book are now in color to make them more appealing and more realistic in appearance.
You can use the TEMA-3 in a variety of settings, such as preschools, elementary schools, and clinics. The two forms of the test allow you to study a child's mathematics progress over time.
COMPLETE TEMA-3 KIT INCLUDES: Examiner's Manual, Picture Book Form A, Picture Book Form B, 25 Examiner Record Booklets Form A, 25 Examiner Record Booklets Form B, 25 Worksheets Form A, 25 Worksheets Form B, Assessment Probes, 5" x 8" cards, 25 blocks, 25 tokens, and a mesh bag, all in a sturdy storage box. (�2003)


text:
Informed Consent Policy
The data and information of individuals (e.g., information obtained through a doctor–patient relationship) must be handled with the highest levels of confidence and discretion. It is therefore almost always necessary for authors to obtain written informed consent from any patients described in case reports and from those who are the subject of photographs. However, a report may be published without explicit consent if it meets all three of the following conditions: it is of great significance to public health (or is important in some other way); consent would be unusually difficult to obtain; and a reasonable individual would be unlikely to object to publication.


text:
The world of Real Estates is gigantic and there is just no way could anyone who is serious with making investment can entirely put this off the radar. But if this needs to be done, its must to be done through proper way and method.
And only then it will be possible to bring out the best results. For all Real Estate lovers, I would say look at US commercial real estate outlook 2020, as this would be a massive help to set towards the right direction.


text:
What business isn't looking to control expenses? Staffing firms offer many effective solutions for reducing overhead, managing operating costs and improving organizational performance. Used effectively, staffing services can save you more than they cost.
Here are some key ways you can use staffing to reduce costs in your organization:
Convert fixed expenses to variable.
Develop a plan to staff your business strategically. Minimize the number of permanent employees on your staff to the level needed to sustain your core volume of work. Proactively plan to bring in extra help when it's needed.
Bring in expertise on an as-needed basis.
Temporaries can deliver the experience and skills you need without impacting fixed expenses. As an added benefit, temporary "experts" are often less expensive than consultants.
Lower benefits costs.
Limit benefits expense by using temporary employees. Most temporary employees receive only limited benefits which are paid by the temporary staffing service. Companies with extensive benefits programs may not want to offer full benefits to all employees. Using a temporary staffing, payrolling or employee leasing service may make it possible to offer more limited and cost effective benefits programs to these employees.
Eliminate overtime.
Use temporary employees to reduce the amount of overtime worked by your permanent staff.
Reduce training costs.
Reduce training costs and learning curves by bringing in temporary employees who are trained and have experience using the skills you need.
Streamline recruiting.
Use a permanent placement service to eliminate the costs and time involvement associated with advertising, screening resumes, interviewing, testing and reference checking applicants.
Lower payroll expenses.
Administration Eliminate the costs associated with processing and administering your company's payroll and benefits by using a payroll or employee leasing service.
Reduce unemployment claims.
Using a temporary in place of a short-term employee prevents an unemployment claim from affecting the client company. Legally, payrolled or leased employees work for the company providing the payrolling or employee leasing service. All claims affect the staffing service's unemployment rating, not yours.
Eliminate operating inefficiencies.
Inefficient functions can be outsourced to services that can perform the work more effectively. The outsourcing service should be able to reduce expenses and improve performance while allowing your company to focus on its core competencies.
Develop a Strategic Staffing Plan for Your Organization
At Westside Personnel, we help clients evaluate their current workforce and develop a strategic staffing model to help lower overall employment costs and access the skilled talent they need.
Discover more about our staffing solutions.


text:
Don't rent a house without it…
Being a landlord comes with well-known risks. From maintaining the property to managing tenants, landlords are exposed to potential lawsuits on a daily basis.
And if you're ever found liable if someone is injured on your property, or if you are required to pay for damage done to someone else's property, it can end up costing you your property.
Landlord liability coverage can help cover you for many of those risks.
What does Landlord Liability help cover?
Landlord liability coverage kicks in to help pay medical expenses for injured tenants, or legal defense and court judgments made against you for other damages, up to the limits stated in your policy. Coverage may include:
- Tenant injuries due to a loose handrail or exposed sprinkler head causing a tenant to fall and become injured. If you're found negligent in maintaining the property, or failed to warn the tenant of a potential safety risk, landlord liability can cover you.
- Proper security for your tenants in terms of lighting and parking safety.
- Unlawful behavior by tenants that you fail to take measures against could land you in trouble with the neighbors.
- Liability to cover you against claims of accidental damage in relation to your investment property.
- Fair Rental Value Coverage to cover lost income due to your property ever being declared unlivable due to a covered loss.
- Inflation Protection which automatically adjusts your policy limits to keep pace with inflation, including premium discounts.
- Personal Injury Protection should a tenant claim injuries arising out of libel, slander, invasion of privacy, wrongful eviction or wrongful entry.
- Lock replacement to cover the costs of replacing locks and keys.
Ontario Discounts for Landlords
Rideau Insurance Service Ltd. offers a variety of discounts on Landlord Insurance policies that help keep costs affordable, including:
- Multi-policy: discounts for insuring property, autos, RVs or other policies held with the same carrier
- New/renovated homes may be eligible for a discount.
- Other discounts we can share once we know more about your property and your specific needs.
Worried about the cost?
Rideau Insurance Service Ltd. specializes in covering local businesses, and business owners like you. We have everything you'll need right here, including:
- Monthly payment options to help spread out your payments so you can better manage your your cash flow
- Coverage of staff, full-time employees, and independent contractors
- Claims responsiveness when time is of the essence, especially in the event of an insurance claim
- Tailored coverage for the specific risks of your field and industry
- Knowledgeable agents who provide exceptional, passionate service
- Fast and simple online quotes and immediate coverage
The Rideau Insurance Service Ltd. Difference
You may think you want the cheapest insurance you can find, but realize you may not be getting everything you bargained for.
While most insurance products are similar in price and function, insurance providers are very different when it comes to structuring a policy that actually covers you.
There's no such thing as a one-size-fits-all insurance policy when it comes to your business.
We're your neighbors. We protect people we know and care about in Ontario, and that means we always look for ways to protect you better, including carefully choosing the insurance companies we represent to be both affordable and responsive.
Click on the quote request button now and let the professionals at Rideau Insurance Service Ltd. help you forge the strongest shield possible to help you protect the things you care about most.


text:
Modern shopping in Latvia is centered around shopping malls, which consists of various shops, restaurants and places for entertainment (e.g. cinemas).
The larger the city, the more large shopping malls it has. The largest ones are in Riga. These may be used to spend an entire day, whereas the smaller city malls are typically more limited in size.
While many malls are located in suburbs, some are also located in downtowns where they replaced old Soviet buildings.
Towns and many city districts lack malls, but they have supermarkets which are large shops that offer various goods and groceries. These belong to several major chains, most of them foreign: e.g. "Maxima" (Lithuanian), "Rimi" (Norwegian), "Prisma" (Finnish). "Narvessen" (Norwegian) is a chain of convenience stores which have longer working hours at an expense of a smaller size and somewhat higher prices.
More hectic places to shop are various bazaar-like marketplaces, often opened in mornings or just during some days. These are filled with small-scale businessmen, kiosks, and stalls.
During the festivals, makeshift new temporary marketplaces get constructed (e.g. the Christmas market in Riga).


text:
You may have big dreams for that new home in Southern Utah but cool your jets. This is a time for careful consideration, not for hastily scribbled modern design notes on napkins. Although there are certain changes you can make that will update or upgrade your new home, there are others that can potentially devastate its value. This is no small thing.
If you thought that ugly entryway light fixture was a real turn-off, just read on to learn about things potential buyers will find extremely unappealing down the road.
There's Good, There's Bad and There's Ugly
Every homeowner will leave a mark on the homes they own, this is an inevitable fact of life. The only question you need to ask yourself is if your mark will be a good one. Will you be the homeowner who planted the gorgeous maple tree that eventually turns into a beloved climbing tree or are you the one that glued neon green shag carpet to the hardwood floors?
We've made a short list of some of the most dramatic ways to destroy your home's value without even trying all that hard so you can, hopefully, avoid these problems when you go to sell. Now, this is an important point to note: if you're in your forever home, go hog wild. If you don't need to sell that puppy ever, feel free to do whatever thrills you. Just be aware that your outlandish choices could prevent things like refinances and even reverse mortgages down the road.
Having made those disclosures, let's talk about home value-destroying projects!
4 Things That Can Lower Your Home's Re-Sell Value
Now that you own a house in Southern Uah, people will be giving you all sorts of weird advice. You're going to have to learn to tune it out because generally, random people don't know. Most people own two or three homes in their lives, which doesn't give them a whole lot of experience with market values and making upgrades that will make a house really pop.
Realtors, general contractors, and other home pros, on the other hand, make it their business to know what's just in vogue and what's a classic, evergreen sort of modification that will stand the test of time. These are the people to ask when you really need a second set of eyes.
But, before you even get that far, let's count down some of the worst ideas for your new home.
#4 Really Personalizing the Place
Look, we know you're eager to make your house your own. But step away from the lime green wallpaper and the orange tiles. Just for a minute. Think this through. Some buyers can see past over-personalization, others simply cannot. There's a reason Realtors used to advise sellers to paint everything beige, it creates a blank pallet for a buyer to start from.
If you want to use quirky wallpaper, choose something that's easy to remove when you go to sell. You may want to choose a tile that is mostly neutral and scatter those orange ones in just here and there like confetti. In short, tone it down a bit. However, feel free to paint to your heart's desire — just plan to repaint before you put the house on the market.
When a buyer walks into your home, the first impression they have informs every other thought they have as they walk through. They're simultaneously calculating two things in their heads: "How much can I afford to pay for this house?" and "How much will I have to pay to fix this place?" Each intolerable thing they encounter, like that orange tile, is another thing that goes in the repair budget. As it grows, the price they're willing to pay shrinks.
Oh, you left the flamingo wallpaper in your bedroom? The repair budget's getting pretty heavy. And these are just the immediately visible things, they haven't yet gotten to the inspection period. The point here is: do you, but do it in a way that can be reversed before anyone shows the house.
#3. Converting the Garage to Anything Else
There's a difference between using your garage as a gym and making it a gym permanently. When it's a permanent gym, you can't push some stuff out of the way and pull the car in real quick to get it out of the rain. In fact, you probably don't even have a garage door anymore!
Many people have made this hasty decision, turning their garages into master suites, home gyms, playrooms and home offices, not considering the long term ramifications. Then, after dumping thousands of dollars into the project, they find out that it's extremely difficult to resell their home.
No matter how professionally the conversion was done (and some are done very well), the buyer says to themselves, "Where am I going to stash my lawnmower?" Even if the yard's a postage stamp, it's a valid question.
Buyers come into a transaction with a certain set of expectations and, frankly, when they're looking at houses in certain areas or certain prices that typically come with garages, it sort of breaks their brains to find one that doesn't quite fit the model. That's the beginning of the price chopping spiral. Eventually you'll discount the house much more than you ever intended or just give up on selling and rent it out or not move at all.
#2. Tearing Down (Some) Walls
This one is actually not a hard and fast rule. There are sometimes walls that should come out. But don't make this call without consulting with an architect or a general contractor because there are several things to consider, including the structural integrity and flow of the home.
The walls that you definitely should never tear out are the ones that reduce bathroom or bedroom number, unless you have something like five or more beds and three or more baths. At that point, you have a little wiggle room. As long as you maintain the American standard of a three bedroom, two bath home (or whatever is standard in your neighborhood), you're probably ok.
However, turning a three bedroom home into a two bedroom home because you wanted to expand a bedroom is a value killer. If you think about it from a market perspective, it might make a bit more sense. A larger, or more mature, family is most likely to buy a three bedroom home. They're going to have a bigger budget because there are two incomes, they need more partitioned spaces because there are possibly teenagers involved.
The same house with the same square footage, but with two bedrooms, is more likely to be shown to young families with small children, possibly only one income while one parent stays home to raise the toddlers, or even single people. Their budgets are smaller, which means that the two bedroom market simply doesn't support the higher prices of the three bedroom market.
When your home is appraised, your appraiser will be pulling comparable homes based on things like neighborhood, square footage and numbers of bedrooms and baths. So, if the other two bedroom homes are selling for $30k less than three bedrooms, that means yours is going to appraise somewhere well below where you might expect, maybe even below what you paid for it.
Bottom line: Don't knock out walls without professional consultations with your Realtor and an architect or general contractor at minimum so you can understand the full impact of this decision.
#1. Unprofessional DIY Repairs
There are two kinds of DIYers: those with significant trade experience and those without. If your main qualifications involve eighth grade shop class, you probably should not try to handle any big jobs on your own. Start small and work your way up, watch lots of YouTube videos, practice on test materials that don't affect your home and for the sake of your house and your financial future, recognize and accept when you're in over your head.
A home pro is often less expensive than you might imagine if you just call them in first. When they're asked to clean up a bad repair and still make the original correction, it can cost a lot extra.
Finding these sorts of obvious DIY repairs in a home is a terrifying prospect for potential buyers. When they see them, they wonder what else you've tried to repair on your own. Did you rewire the electrical box? Is the house going to burn down in the night because you did something to the HVAC?
Because they don't know you or your level of competency, they just see that one botched repair and hyperfocus on it until they either run away or submit an offer significantly lower than what you were expecting.
Protecting Your Home's Value is Simple
It's really quite simple to protect your home's value in Southern Utah, despite how this blog may make it sound. Just ask yourself two simple questions: "Can I really do this myself?" and "Is this decision one that will stand the test of time? If not, is it easy to undo?"


text:
Finish Line Brake Fluid - Mineral Oil
Finish Line's Mineral Brake Fluid is formulated specifically for bicycle brake systems requiring mineral oil. Features no compromise leading edge chemistry to provide superior fluid life and braking performance.
Formulated with a low viscosity base oil to yield superior level response, pad retraction, and consistent performance through a full range of operating temperatures. Finish Line Mineral Brake Fluid was specifically engineered for use in bicycle hydraulic disc brake systems.
When you are serious about getting the most out of your braking system, Finish Line Mineral Brake Fluid is a great choice.
- Specifically engineered for use in bicycle hydraulic disc brakes
- Provides maximum fluid life and braking performance, even at low temperatures
- Prevents foaming and overheating
Part Numbers
Option | UPC | MPN | Store SKU |
16-ounce | 036121960015 | BM0160101 | MIN31248691T |
32-ounce | 036121960022 | BM0320101 | MIN31931414T |


text:
Hi I have a free account with DriveHQ and I'm looking to upgrade my account to a paid account. One of the issues I had with free service is that it won't allow more than 1 or 2 connections. I looked at the descriptions for different paid plans but couldn't figure out what plans allow for more connections. Please help thanks.
Thank you for your email. Assuming you are refering to concurrent ftp connections, there is indeed a limitation on this for our free users, though 2 should not be an issue (at least 5 should be permitted). This limitation to to ensure that we are not having users abuse our service.
Entering into our personal plans, you will be limited to 25 connections. The enterprise and business levels increase this to 50-150 connections depending on the level you go with. If you require more than this, or have other special circumstances, please email firstname.lastname@example.com.
Thanks, and look forward to hearing back from you,
DriveHQ Support Team
Please logon and reply, Not DriveHQ Member?


text:
Book flights to Sofia
Book a flight to Sofia with Qatar Airways and you'll discover there is more to Bulgaria's capital than meets the eye.
A deep current of history runs through Sofia, Bulgaria's capital. Its compact size belies its unique charm – a fascinating blend of east and west. Anywhere you go in this city, you'll find remnants of its rich, and often complicated, colonial past. Communist and European architecture sit alongside Ottoman mosques, neo-Byzantine buildings and the ruins of Roman settlements.
Sofia is a thriving metropolis that offers visitors a terrific mix of outdoor and indoor activities. Go skiing on Mount Vitosha or scour flea markets in the Antiques Market; alternatively, you can see the city's old-world treasures in its museums and galleries.
Book your ticket to Sofia with Qatar Airways today and explore this wonderful city.
Sofia travel highlights
Commune with nature at Mount Vitosha, hunt for curios in Bitaka or admire Byzantine architecture in the city centre – welcome to Sofia.
Tourist attractions
On your trip to Sofia, hop on the city's subway system to explore the main sights. One of Europe's oldest cities, Sofia is renowned for its mineral water springs, one of which can be seen in the square behind the Banya Bashi Mosque. The Viennese-style Royal Palace, once the headquarters of the Ottoman police force, is now home to the Ethnographical Museum and National Art Gallery.
From here, you can visit the Ivan Vazov House Museum, which commemorates the life of Bulgaria's most famous author, or explore other museums and galleries. Don't miss the National History Museum, home to a fascinating collection of artefacts dating to 4000 BC, such as Thracian gold and silver wares. The Archaeological Museum and the National Art Gallery are also worth visiting.
One of Sofia's most iconic landmarks is the gold-domed Alexander Nevsky Cathedral, an Orthodox church built in Byzantine Revival style. -
Leisure activities
Mount Vitosha, the oldest national park in the Balkan Range, has come to symbolise Sofia. Accessible by public transport, taxi or car, it is a year-round destination with 10 peaks to explore. During summer, it's an ideal spot for picnics, hiking or trekking, and in winter, it is popular among skiing and snowboarding enthusiasts.
Sofia also has plenty of urban green spaces, including the Borrisova Garden, which offers family-friendly activities such as boat-riding on Lake Ariana. If you've had enough walking, then sit down and have a cup of coffee. The city has a thriving café culture and many of the local establishments have homey vibes and outdoor seating areas optimised for people-watching.
When you travel to Sofia, a free, sightseeing walking tour, with an English-speaking guide, is one of the best ways to see the city's sights. You can also hop on a bike tour to visit some of the surrounding countryside. -
Bulgarian cuisine is usually very hearty, consisting of steamed or oven-baked meat, fish, or rich stews. Try some of the local specialities such as tarator (a cold yoghurt and cucumber soup), turshia (pickled vegetables), and kebapche (grilled, spiced mince-meat). Bulgarians love their desserts, and a trip to a local bakery will allow you to try Garash cake (ground walnut cake with chocolate icing) – highly recommended.
Traditional Bulgarian bakeries are generally a better option for lunch than many fast-food restaurants. Most bakeries offer a range of pastries as well as katma (a kind of crepe with sweet or savoury filling).
You'll find no shortage of international cuisine as well, but for a real flavour of Sofia, do as the locals do, and head for one of the city's soup restaurants. It's not unusual to find menus filled with traditional Bulgarian soups and some restaurants offer stunning views over the rooftops of the city. -
Traditional Bulgarian souvenirs are a highlight of any trip to Sofia – head for the National Ethnographic Museum Shop or the stalls in the Antiques Market on Alexander Nevsky Square. For designer goods, Vitosha Boulevard, the city's main shopping street, is the place to be.
Sofia also has plenty of markets that offer a wide retail selection. Zhenski Pazar is an open-air market filled with bargains, while Malashevtsi Market or Bitaka is the city's largest flea market. Bitaka is open on weekends and a great spot to find antiques and curios.
For international brands, clothing and accessories, head for The Mall of Sofia, Paradise Mall, Mall Bulgaria or City Centre Sofia. Most malls also have food courts serving international cuisine.
Flight FAQ
To get the best price on your {Destination} flights, it is recommended that you book well in advance of your departure date, as booking early means you are likely to secure the flight you want with your preferred departure and arrival times.
From the moment you step on board until you reach {Destination}, the award-winning cabin crew will take care of your every need. Prepare to enjoy renowned hospitality as you relax in a spacious seat, and keep warm with a cosy blanket for the ultimate comfort. Explore local and international flavours when you indulge in fine cuisine prepared with only the freshest ingredients. Explore up to 6,000 entertainment options on Oryx One, including the latest movie releases, TV series, music and games.


text:
Our Copenhagen range is a funky selection of stylish Scandinavian cotton printed fabric. Each design features a different geometric pattern against a white background - Magda with floral tree leaves, Laila with circles and diamonds and Vita with stripes and triangles. Choose from three colours - Burnt Orange and Blue Teal, Blush Pink and Yellow and Grey. These products create modern Hyyge and Lagom styles and we recommend combining this range with plain colours or using it as standalone statement pieces for minimalist, contemporary or even more traditional rooms.
- Designer Scandinavian Placemat Sets -
Use these fabric placemats as dinner table settings for the kitchen and dining room, for BBQs and as decorative clothes for parties, weddings and other events. Each table mat comes with a heat resistant backing in a plain and contrasting colour. Choose from 100% cotton table linen sets of 2 or 4 matching designs - ideal as gift sets and presents!
This product is part of our Kitchen Collection - a range of accessories for indoor and outdoor dining, kitchen cooking and baking. Choose from Table Mats, Oven Mitts and Oven Gloves, Chef Aprons, Tea Towels and Shopping Bag Holders in our designer fabrics. From dinner parties and preparing meals to picnics and BBQ's, McAlister Textiles has you covered!
Design: McAlister Copenhagen
Composition: 100% Cotton
Dimensions: 33cm x 44cm per mat (13" x 17 Inches)
Care Instructions: Machine Washable at a Low Heat & Slow RPM
Available Colours: Burnt Orange & Blue Teal, Ochre Yellow & Grey Pink
- Le choix d'une sélection entraîne l'actualisation d'une page entière.
- Appuyez sur la touche espace puis sur les touches fléchées pour faire une sélection.
- Utilisez les flèches gauche/droite pour naviguer dans le diaporama ou glissez vers la gauche/droite sur un appareil mobile


text:
Use current location
Welcome to Cambridge Tire, your one-stop, on-the-spot auto service headquarters for a complete line of quality tires and auto services. For years, we have provided the Cambridge, ON area with the latest products and unprecedented services for everything we sell. And for years, our customers have been coming back. View our online catalogs for the tires you need or stop in and see us.
Take a look around. If you don't find what you need, visit us in Cambridge, ON. From the latest and best in tire technology to the services required to keep your vehicle looking good and running great, Cambridge Tire can get you out on the road quickly and at an affordable price. Stop by soon and see why so many people consider Cambridge Tire to be the one-stop shop for all their tire needs.
At Cambridge Tire, our friendly and knowledgeable staff, quick and dependable service professionals, and affordable prices all come together to make driving out on a new set of tires easy. On top of that, we never "tire" of tires! Stop by and see us, and you'll be glad you did.
Please click anywhere to continue browsing our site.


text:
- News
All the latest updates on building safety reformRegulations latest
- Focus
- Comment
- Programmes
- Building the Future
- Jobs
- Data
- Subscribe
- Events
2024 events calendar
Explore nowBuilding Awards
Keep up to date
- Building Boardroom
All the latest updates on building safety reform
2024 events calendar
Explore nowBuilding Awards
Keep up to date2017-07-28T06:00:00
Interactive table of the top 150 contractors 2017, ranked by turnover
You are not currently logged in. Subscribers may LOGIN here.
SUBSCRIBE for UNLIMITED access to news and premium content
A subscription will provide access to the latest industry news, expert analysis & comment from industry leaders, data and research - including our popular annual league tables. You will receive:
Get access to premium content subscribe today


text:
The next great villain from a galaxy far, far away is here. Fans attending Lucasfilm's Star Wars Rebels panel today at New York Comic Con got the world's first look at the Inquisitor, a black-clad, intimidating figure who will play a prominent role in the upcoming animated series.
In a new video screened at the end of the panel, Star Wars Rebels executive producer Dave Filoni officially revealed the character, showing design sketches, a sculpted maquette, and disclosing that the Inquisitor is "tasked by Darth Vader to hunt down the remaining Jedi Knights."
The panel, hosted by Lucasfilm's Pablo Hidalgo, focused on the Empire and how it is central to the story of Star Wars Rebels. Hidalgo revealed that the series takes place about 14 years after the events of Star Wars: Episode III Revenge of the Sith, a time in which the Emperor's rule is secure and the Empire is seeking to expand its power to Outer Rim territories. Further details about the panel can be found on www.starwars.com.
If anything was made clear at today's panel, it's that the Empire is back — thanks to Star Wars Rebels.
Star Wars Rebels is scheduled to premiere in fall 2014 as a one-hour special telecast on Disney Channel, it will be followed by a series on Disney XD channels around the world.


text:
$ 285.00
Transformer coupled Class A Pre-amplifier
We've taken the great sound of the Broadcast and added the extra flexibility of foot switchable gain modes and separate level controls for those who like to switch gain modes on the fly. Finished in battleship grey with dark red Marconi style knobs.
We have made the gain mode (LOW or HIGH) select-able via the right hand foot switch (the green LED indicates when the pedal is in HIGH gain mode). Each mode its own LEVEL control and in addition, the pedal has two internal trimmers that allow you to fine tune the amount of gain each mode has.
The Broadcast is a transformer coupled, discrete Class-A germanium pre-amplifier based on the classic broadcast consoles of the 1960's. In the low-gain setting, the Broadcast Dual FW can cover everything from sparkling clean boost through to transparent overdrive, all with a healthy dose of volume available to push your amp. The Broadcast Dual FW features a specially selected Triad steel-core transformer and a Germanium transistor. Advancing the gain on the Broadcast Dual FW starts to saturate the transformer and the pedal's discrete circuitry, giving rise to a gentle and dynamic compression coupled with subtle thickening of the mid-range. With the gain switch in the high setting and the trim control wound up, the Broadcast Dual FW starts to deliver heavier distorted sounds with a warm and fuzzy edge to them. The Broadcast Dual FW covers a wide range of driven and distorted tones whilst remaining dynamic, responding well to pick attack and the subtle nuances of every player.
LEFT FOOT SWITCH - Bypasses the pedal (red LED indicates the pedal is active)
RIGHT FOOT SWITCH - Toggles between LOW and HIGH gain modes (green LED indicates HIGH gain mode is selected)
LEVEL LOW - Controls the volume of the pedal in LOW gain mode
LEVEL HIGH - Controls the volume of the pedal in HIGH gain mode
GAIN TRIM - Controls the gain level (both in LOW and HIGH gain modes) of the Broadcast (at higher settings the high-end of the signal is gently rolled off)
LOW CUT - Attenuates the low-end of the Broadcast Dual FW (since this control lies at the front end of the unit's circuitry, it is interactive with the gain controls) INTERNAL TRIMMERS - Sets the total amount of gain available in each mode.
DC SOCKET - The Broadcast Dual FW requires a DC power supply unit (PSU) and can run at voltages between 9v and 24v; running the Broadcast Dual FW at 18v or 24v gives it more headroom, output level and clarity. This is great for use with bass or when using the Broadcast Dual FW as a clean pre-amp boost.
The Broadcast Dual FW requires a DC power supply unit (PSU). Please ensure your PSU can supply between 9v and 24v, a minimum current of 20mA and has a 2.1mm negative centre barrel plug. Any other type may damage your pedal. If you plan on sharing the same PSU with other pedals, we recommend using a PSU with isolated outputs, e.g. Voodoo Labs ISO-5 / Pedal Power 2 Plus.
CURRENT DRAW - 20mA
Full two year Warranty


text:
Chrome extensions are awesome, they provide amazing convenience that is limited only by your imagination. There are some amazing Chrome Extensions for Salesforce already, some of my favourites being:
As a great fan of JavaScript I've always wanted to create a Chrome Extension for Salesforce and I've finally gotten around to it. The hardest part was figuring out what context the JS executes in (e.g. in the current tabs context, or in some separate context). Let me step through the code to show you how it's done.
Chrome Extension Structure
A Chrome Extension is made up of a JavaScript, HTML, images and JSON. At its core is a manifest file which contains the metadata describing your application in JSON. There is a lot of documentation about the structure of this file but some of the key elements are shown below.
"name": "Get off my case!",
"version": "0.8.1",
"description": "Presents a notification above the favicon with the number of cases assigned to the current user.",
"manifest_version": 2,
"icons" : {
"16": "img/icons/16.png",
"48": "img/icons/48.png",
"128": "img/icons/128.png"
"permissions": [ "tabs", "https://*.force.com/*", "https://*.salesforce.com/*"],
"update_url": "https://clients2.google.com/service/update2/crx",
"author": "Wesley Nolte",
"browser_action": {
"default_icon": "img/tquila_lozenge.png"
"content_scripts": [ {
"js": [ "js/jquery.js",
"js/contentscript.js" ],
"matches": [ "https://*.salesforce.com/*", "https://*.force.com/*" ]
This file references all external resources (JavaScript, images etc.), the important parts here being the JavaScript i.e. jquery.js, forcetk.js, tinycon.js and contentscript.js. In short these files represent:
- jquery.js – the jQuery library
- forcetk.js – the JavaScript wrapper for the Salesforce.com REST API, but with one modification i.e. the ability to fetch info about the current user
- tinycon.js – a small library used to create the notification on the tab
- contentscript.js – the JavaScript file that brings them all together
The JavaScript
The first 3 JavaScript files are libraries that great, but aren't particularly interesting in the context of this tutorial. The last file is where the magic happens, the code is listed below.
/* Get the cookie values om nom nom */
function getValueFromCookie(b) {
var a, c, d, e = document.cookie.split(";");
for (a = 0; a < e.length; a++)
if (c = e[a].substr(0, e[a].indexOf("=")), d = e[a].substr(e[a].indexOf("=") + 1), c = c.replace(/^\s+|\s+$/g, ""), c == b) return unescape(d)
/* Encapsulating code instead of just letting it lay about */
function init() {
// Get an instance of the REST API client and set the session ID
var client = new forcetk.Client();
// Retrieve the data representing the current user
var user = response;
// Find cases that belong to the current user
client.query("SELECT COUNT() FROM Case WHERE ownerId = '{0}'".replace("{0}",user.id), function(response){
In short the code gets the session ID from the user's cookie (the extension works in the context of the current user session for that tab) and uses that to call in using the REST API. Pretty easy huh?
Sourcecode and Extension Install
The sourcecode is on github if you want to experiment with it, and if you'd like to see it in action you can install it from the Chrome Web Store.