Interchange 5.4.2 released
Today a new version on the Interchange 5.4 stable branch was released. This was primarily a bugfix release, as documented in the release notes summary.
interchange
Greg Sabino Mullane’s PostgreSQL tips and how-to articles
End Point engineer Greg Sabino Mullane is a prolific writer of PostgreSQL tips, suggestions, and how-to articles in his Planet PostgreSQL blog. Some posts involve emergency procedures to diagnose and fix an ailing database, while others are helpful recipes developers can use. The strengths and weaknesses of various approaches are compared, and there are lots of neat things to learn along the way.
Here’s my list of favorites from those Greg has posted since last March, in reverse chronological order:
- Turning a table into a queue
- Reindexing the PostgreSQL system tables
- Viewing nearby rows
- Finding multi-column keys
- In-database email address validation without reinventing the wheel
- Making a copy of a unique row
- Finding the median of a table using PL/Perl
- Finding the value closest to the average using PL/Perl
- Getting random rows from a database table
- Scripting with psql
- The million table challenge
Enjoy!
database postgres tips
Hardware Monitoring with Nagios on OpenBSD
At End Point we use Nagios and its remote client, NRPE, to monitor servers we manage and alert us to any problems. Aside from the usual monitoring of remote accessibility of services such as a website, database, SSH, etc., it’s very helpful to have monitoring of memory usage, disk space, number of processes, and CPU load.
In this detailed article Dan Collis-Puro shows how to go even further and monitor the CPU and case temperature, and fan speeds, to alert administrators to hardware failures so they can be remedied before they become catastrophic.
networking monitoring openbsd
YAPC::NA 2006 Conference Report
End Pointers Jon Jensen and I, along with 450-500 other Perl enthusiasts, descended on the campus of IIT, the Illinois Institute of Technology in Chicago, for three days at the end of June for the annual North American edition of what is affectionately known by the Perl community as Yet Another Perl Conference (YAPC).
This year’s conference had three main focuses covered by four tracks of talks: Web 2.0 (as the hypesters like to call it), software development methodology improvements, and Perl 6 – the future of the language. Participants and speakers had a range of experience with Perl and varied backgrounds, from experts working for the Perl Foundation on the forefront of Perl 6 development to beginners finding out how best to implement their first assignment.
Perl 6, while not immediately practical for daily use at this time, is advancing the language at the heart of most of End Point’s development. Perl 6 represents advancements in language design that will likely bring Perl back to the forefront of dynamic language syntax and research. But Perl 5 remains in the practical lead it’s long held, with the amazingly wide-ranging and useful CPAN, and it is …
conference perl
Review: Practices of an Agile Developer
Practices of an Agile Developer by Venkat Subramaniam and Andy Hunt (Pragmatic Bookshelf, 2006)
Practices of an Agile Developer is a fast, enjoyable, often-amusing read. It’s also full of wisdom and excellent advice for engineers of all levels, technical managers, and just about anyone with an interest in the software development process. The book makes for a great companion to The Pragmatic Programmer (also co-authored by Andy Hunt), but is more concise and focuses on bigger-picture development practices than does the often-implementation-oriented latter. The authors clearly outline a number of agile methodologies, with attention given to tasks ranging from managing teams, managing time, and keeping estimates realistic, to integration automation, release management, and test-oriented development.
Of particular interest are topics that relate to developer/client interaction, which could apply to a variety of professional relationships (consultant and client; development team and sales team; etc.). The practices outlined present a path to greater success for all parties, with a greater sense of ownership for the client and a greater sense of satisfaction for the developer. …
community books
Trouble with MySQL 4.1 under heavy load
Two of our customers running high-traffic websites backed by MySQL (one using PHP, the other using Perl and Interchange) recently ran into serious problems with their MySQL server getting extremely slow or ceasing to respond altogether. In both cases the problem happened under heavy load, with MySQL 4.1 running on Red Hat Enterprise Linux 4 (i386) with the MySQL RPMs built by Red Hat, installed from Red Hat Network. In both cases, we were unable to find any log output or traffic patterns that indicated the cause of the problem.
When this happened on the first server, we tried numerous MySQL configuration changes, and wrote scripts to monitor the MySQL daemon and restart it when it failed, to give us time to investigate the problem fully. But eventually, out of expediency we simply upgraded to MySQL 5.0 with RPMs provided by the creators of MySQL. Doing so immediately fixed the problem. About a month later when another client encountered the same problem, we went straight for the upgrade path and it fixed things there too.
We haven’t had trouble like this with MySQL before, from any source. I filed a bug report in Red Hat’s bug tracker and Tom Lane quickly pointed me to …
database mysql
Interchange 5.4.1 released
Interchange 5.4.1 was released today. This is a maintenance update of the web application server End Point has long supported.
There were a few important bugfixes:
-
Dan Collis-Puro fixed bugs in the ITL (Interchange Tag Language) parser that can cause an infinite loop when malformed ITL opening tags are encountered.
-
Stefan Hornburg fixed a regression in the htmlarea widget (word processor-style editing in web browsers) which kept it from working with Microsoft Internet Explorer and browsers claiming to be compatible.
-
Brian Miller fixed an obscure profile parsing bug that kicked in when a comment immediately precedes the NAME identifier.
-
Kevin Walsh changed the default robot detection settings to check for “GoogleBot”, rather than just “Google”, to prevent false positive matches with other user agent values such as “GoogleToolbar”.
-
Josh Lavin and Mike Heins made improvements to the Linkpoint and VeriSign payment modules.
-
Ryan Perry added support for recent versions of mod_perl 2 to Interchange::Link.
-
UPS shipping rates were updated in the Standard demo.
There were also numerous other minor bugfixes in core code, tags, the admin, and …
interchange
PostgreSQL Supports Two-Phase Commit
The recent release of the 8.1 version of PostgreSQL provides a new feature that offers even more flexibility and scaling for End Point clients. That new feature is the support for “two-phase commit”. But what is this feature, and why would you use it?
First, let’s explore how database management systems (DBMS) do their jobs. Consider a simple example of editing a file. You open a file with a text editor or word processor. You make some changes. You save those changes. You close the file.
A little more complexity enters the picture if you make some changes, change your mind, and close the file without saving it. Now the file is in the original state. Even more complexity: what if the file is shared between two (or more) users, for instance, by use of a network system with shared drives?
Now we have to consider how the operations on the file occur over time. If Alan opens the file at 9:00 and starts making changes, but Becky opens the same file at 9:05, what file will Becky see? It depends on when Alan saves his changes. If he saves them at 9:04, then Becky sees those changes. If he saves at 9:06, Becky sees the original file.
If Becky is allowed to make changes to …
database postgres