• Home

  • Custom Ecommerce
  • Application Development
  • Database Consulting
  • Cloud Hosting
  • Systems Integration
  • Legacy Business Systems
  • Security & Compliance
  • GIS

  • Expertise

  • About Us
  • Our Team
  • Clients
  • Blog
  • Careers

  • VisionPort

  • Contact
  • Another Post-Postgres Open Post

    Josh Williams

    By Josh Williams
    September 22, 2011

    Well, that was fun! I’ve always found attending conferences to be an invigorating experience. The talks are generally very informative, it’s always nice to put a face to names seen online in the community, and between the “hall track”, lunches, and after-session social activities it’s difficult to not find engaging discussions.

    My favorite presentations:

    • Scaling servers with Skytools — seeing what it takes to balance several high-velocity nodes was intriguing.
    • Mission Impossible — lots of good arguments for why Postgres can be an equivalent, nay, better replacement for an enterprise database.
    • The PostgreSQL replication protocol — even if I never intend to write something that’ll interact with it directly, knowing how something like the new streaming replication works under the hood goes a long way to keeping it running at a higher level.
    • True Serializable Transactions Are Here! — I’ll admit I haven’t had a chance to fully check out the changes to Serializable, so getting to hear some of the reasoning and stepping through some of the use cases was quite helpful.

    But what of my talks? Monitoring went well—​it seemed to get the message out. There was a lot of “gee, I have Postgres, …


    conference postgres bucardo

    Rails 3.1: Upgrading a Simple App — Part 1

    Steph Skardal

    By Steph Skardal
    September 21, 2011

    Here at End Point, I’ve worked with a few Rails 3 applications in production and a couple of Rails 3.1 apps in development, so I’ve become familiar with the new features and functionality including the Rails 3.1 Asset Pipeline that I mentioned earlier this year. I thought it was a good time to upgrade our website to Rails 3.1 and share the experience.

    To start, here’s a quick summary of our website:

    • Simple Rails application running on Rails 2.1.2 with no database
    • Static pages throughout the site, fully cached
    • Rake tasks to generate partials throughout the site to display dynamic blog content
    • Site uses a moderate amount of jQuery and jQuery plugins.
    • Site is optimized in terms of asset serving (ETags, Expires headers, CSS sprites, etc.)

    While I’ve worked with a few Rails 3 apps, I haven’t been involved in the actual upgrade process myself. There are plenty of resources out there with upgrade advice, including a few RailsCasts (one, two, and three). My favorite resource was the rails_upgrade gem, a gem that is now officially supported by Rails to help with the upgrade process. I followed the instructions to install the gem (script/plugin install …


    javascript jquery rails

    Headed out to PgWest next week

    David Christensen

    By David Christensen
    September 20, 2011

    I’m gearing up to go out to San Jose to attend and speak at the PG West PostgreSQL conference in sunny San Jose. (Does anyone have directions…?)

    I’m excited to again meet and mingle with more PostgreSQL experts and enthusiasts and look forward to the various talks, technical discussions, and social opportunities. My talk will be on Bucardo and many uses for it as a general tool. It’ll also cover additional changes coming down the pipe in Bucardo 5.

    I look forward to seeing everyone!


    conference postgres bucardo

    Bucardo, 9.1, and you!

    Josh Williams

    By Josh Williams
    September 13, 2011

    A little bit of bad news for Bucardo fans, Greg Sabino Mullane won’t be making Postgres Open due to scheduling conflicts. But not to worry, I’ll be giving the “Postgres masters, other slaves” talk in the meantime in his place.

    In looking over the slides, one thing that catches my eye is how quickly Bucardo is adopting PostgreSQL 9.1 features. Specifically, Unlogged Tables will be very useful in boosting performance where Bucardo stages information about changed rows for multi-database updates. I also wonder if the enhanced Serializable Snapshot Isolation would be helpful in some situations. Innovation encouraging more innovation, gotta love open source!

    If I hadn’t said it before, thanks to everyone that made Postgres 9.1 possible. Some of the other enhancements are just as exciting. For instance, I’m eager to see some creative uses for Writable CTE’s. And it’ll be very interesting to see what additional Foreign Data Wrappers pop up over time.

    Now, back to packing…


    conference postgres bucardo

    OpenSSH known_hosts oddity

    Jon Jensen

    By Jon Jensen
    September 12, 2011

    A new version of the excellent OpenSSH was recently released, version 5.9. As you’d expect from such widely-used mature software, there are lots of minor improvements to enjoy rather than anything too major.

    But what I want to write about today is a little surprise in how ssh handles multiple cached host keys in its known_hosts files.

    I had wrongly thought that ssh stopped scanning known_hosts when it hit the first hostname or IP address match, such as happens with lookups in /etc/hosts. But that isn’t how it works. The sshd manual reads:

    It is permissible (but not recommended) to have several lines or different host keys for the same names. This will inevitably happen when short forms of host names from different domains are put in the file. It is possible that the files contain conflicting information; authentication is accepted if valid information can be found from either file.

    The “files” it refers to are the global /etc/ssh/known_hosts and the per-user ~/.ssh/known_hosts.

    The surprise was that if there are multiple host key entries in ~/.ssh/known_hosts, say, for 10.0.0.1. If the first one has a non-matching host key, the ssh client tries the second one, and so on until it …


    hosting security

    CSS Fixed, Static Position Toggle

    Steph Skardal

    By Steph Skardal
    September 9, 2011

    In a recent Rails project, I had to implement a simple but nifty CSS trick. A request came in to give a DOM element fixed positioning, meaning as the user navigates throughout the page, the DOM element stays in one place while the rest of the page updates. This is pretty common behavior for menu bars that show up along one of the borders of a window while a user navigates throughout the site. However, this situation was a bit trickier because the menu bar that needed fixed positioning was already a few hundred pixels down the page below header and navigation content:

    I came up with a nifty way of using jQuery to toggle the menu bar CSS between fixed and static positioning. The code uses jQuery’s scroll event handler to adjust the CSS position setting of the menu bar as users scroll through the page. If the window scroll position is below it’s original top offset, the menu has fixed positioning at the top of the window. If the window scroll position is above it’s original top offset, the menu has static positioning. Here’s what the code looks like:

    var head_offset = jQuery('#fixed_header').offset();
    jQuery(window).scroll(function() {
        if(jQuery(window).scrollTop() < …

    css javascript jquery

    Postgres Open: One week to go!

    Josh Williams

    By Josh Williams
    September 7, 2011

    Wow, time flies, Postgres Open is almost upon us!

    I’ll be there giving a talk Thursday morning on monitoring tools and techniques, and possibly helping with the Bucardo 5 replication session Friday afternoon. Sadly I’ll need need to catch a flight shortly after that, so there won’t be much time to explore Chicago around everything going on. But at least it’ll be nice to get out to a conference again!


    conference postgres

    SQL errors in Interchange

    Jeff Boes

    By Jeff Boes
    September 7, 2011

    Interchange has a little feature whereby errors in a [query] tag are reported back to the session just like form validation errors. That is, given the intentional syntax error here:

    [query ... sql="select 1 from foo where 1="]

    Interchange will paste the error from your database in

      $Session->{errors}{'table foo'}

    That’s great, but it comes with a price: now you have a potential for a page with SQL in it, which site security services like McAfee will flag as “SQL injection failures”. Sometimes you just don’t want your SQL failures plastered all over for the world to see.

    Simple solution:

      DatabaseDefault LOG_SESSION_ERROR 0

    in your Interchange configuration file, possibly constrained so it only affects production (because you’d love to see your SQL errors when you are testing, right?).


    interchange sql
    Previous page • Page 160 of 222 • Next page