• 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
  • Spree: Working with Sample Product Data

    Steph Skardal

    By Steph Skardal
    July 21, 2010

    It’s taken me a bit of time to gain a better understanding of working with Spree sample data or fixtures, but now that I am comfortable with it I thought I’d share some details. The first thing you might wonder is why should you even care about sample data? Well, in our project, we had a few motivations for creating sample data:

    1. Multiple developers, consistent sample data provides consistency during development. End Point offers SpreeCamps, a hosting solution that combines the open source Spree technology with devcamps to allow multiple development and staging instances of a Spree application. In a recent project, we had a two developers working on different aspects of the custom application in SpreeCamps; creating meaningful sample data allowed each developer to work from the same data starting point.
    2. Unit testing. Another important element of our project includes adding unit tests to test our custom functionality. Consistent test sample data gave us the ability to test individual methods and functionality with confidence.
    3. Application testing. In addition to unit testing, adding sample data gives the ability to efficiently test the application repeatedly with fresh sample data. …

    ecommerce rails spree

    Why is my load average so high?

    Josh Tolley

    By Josh Tolley
    July 15, 2010

    One of the most common ways people notice there’s a problem with their server is when Nagios, or some other monitoring tool, starts complaining about a high load average. Unfortunately this complaint carries with it very little information about what might be causing the problem. But there are ways around that. On Linux, where I spend most of my time, the load average represents the average number of process in either the “run” or “uninterruptible sleep” states. This code snippet will display all such processes, including their process ID and parent process ID, current state, and the process command line:

    #!/bin/sh
    
    ps -eo pid,ppid,state,cmd |\
        awk '$3 ~ /[RD]/ { print $0 }'

    Most of the time, this script has simply confirmed what I already anticipated, such as, “PostgreSQL is trying to service 20 times as many simultaneous queries as normal.” On occasion, however, it’s very useful, such as when it points out that a backup job is running far longer than normal, or when it finds lots of “[pdflush]” operations in process, indicating that the system was working overtime to write dirty pages to disk. I hope it can be similarly …


    environment hosting monitoring optimization

    Spree vs. Magento: Feature List Revisited

    Steph Skardal

    By Steph Skardal
    July 13, 2010

    A little over a month ago, I wrote an article on Spree vs. Magento Features. Recently, a client asked me to describe the features mentioned in that article. I thought this was another great opportunity to expand on my response to the client. So, here I am, revisiting ecommerce features in Spree and Magento. The original article can be referenced to compare availability of these features in Spree and Magento.

    Features on a Single Product or Group of Product

    • Product reviews and/or ratings: functionality to allow customers to review and rate products. See a Backcountry.com product page for an example.
    • Product QnA: functionality allow customers to ask and answer questions on products. See a Backcountry.com product page for an example.
    • Product SEO (URL, title, meta data control): functionality to allow site administrators to manage product URLs, product page titles, and product meta data.
    • Advanced/flexible taxonomy: functionality to build a custom taxonomy / navigation structure for product browsing. For example, build multiple categories and subcategories with complex hierarchy. The taxonomy at Spree’s demo includes two categories of brand and category and subcategories in each.
    • SEO …

    ecommerce rails spree cms magento localization

    Views across many similar tables

    Jeff Boes

    By Jeff Boes
    July 13, 2010

    An application I’m working on has a host of (a dozen or so) status tables, each containing various rows that reflect the state of associated rows in other tables. For instance:

    Table "public.inventory"
    ...
    status_code      | character varying(50)       | not null
    
    Table "public.inventory_statuses"
    code          | character varying(50)       | not null
    display_label | character varying(70)       | not null
    
    SELECT * FROM inventory_statuses;
    
      code    | display_label
    -----------+---------------
    ordered   | Ordered
    shipped   | Shipped
    returned  | Returned
    repaired  | Repaired

    etc.

    Several of the codes are common to several tables. For instance, “void” is a status that occurs in seven tables. The application cares about this; there are code-level triggers that will respond to a change of status to “void” in one table, and pass that information along to another table higher up the chain.

    Since I wasn’t present at the birth of the system (nor do I have unlimited memory to keep 180+ codes in my head), I needed a way to answer the question, “In which table(s) does status ‘foo’ occur?” This was made rather easier by attention to detail early on: each of the status tables …


    database postgres

    Mock Testing with Perl

    Sonny Cook

    By Sonny Cook
    July 9, 2010

    I’ll start by saying that I probably should have started with Test::MockObject and saved myself all of this trouble. But sometimes things don’t work out that way.

    So, I’m building unit tests in Perl the hard way. By the hard way, I mean that I am constructing ever more elaborate, interdependent, complex, and brittle test data sets to test the functions that I am hacking on. The data model is moderately complex, so there really isn’t any way around it (since I’m doing it the hard way, after all).

    At one point, one function (which I am not testing) returns a result that I need for the function I am testing. The problem is that it reaches pretty far away into a section of the data model that I’d rather not set up test data for at the moment just to get that one value. This is where I’m sitting there wishing I had mock objects more than usual, since this would be a perfect place to mock the method. Since I couldn’t be bothered to see if someone had written such a handy module, I looked for a hard way to do it. Turns out that there is one.

    It’s not actually hard, but it could be considered complex if you are not familiar with typeglobs and the workings of the symbol table in Perl. A …


    perl testing

    Upgrading Spree with the help of Git

    Steph Skardal

    By Steph Skardal
    June 28, 2010

    Lately, I’ve upgraded a few Spree projects with the recent Spree releases. Spree is a Ruby on Rails ecommerce platform that End Point previously sponsored and continues to support. In all cases, my Spree project was running from the Spree gem (version 0.10.2) and I was upgrading to Spree 0.11.0. I wanted to go through a brief explanation on how I went about upgrading my projects.

    Spree

    First, I made sure my application was running and committed all recent changes to have a clean branch. I follow the development principles outlined here that describe methodology for developing custom functionality on top of the Spree framework core. All of my custom functionality lives in the RAILS_ROOT/vendor/extensions/site/ directory, so that directory probably won’t be touched during the upgrade.

    steph@The-Laptop:/var/www/ep/myproject$ git status
    # On branch master
    nothing to commit (working directory clean)

    Then, I tried the rake spree:upgrade task with the following results. I haven’t upgraded Spree recently, and I vaguely remembered there being an upgrade task.

    steph@The-Laptop:/var/www/ep/myproject$ rake spree:upgrade
    (in /var/www/ep/myproject)
    [find_by_param error] database not available?
    This …

    ecommerce rails spree git

    Getting Started with Unit Testing

    Ethan Rowe

    By Ethan Rowe
    June 23, 2010

    So, you’re not writing tests.

    And it’s not like you don’t want to, or think they’re a bad idea. It just seems so hard to get started. The hurdles to clear feel like such an impediment. It Just Couldn’t Possibly Be Productive To Start Testing Right Now, Not When My Really Important Project Needs to Get Finished in a Timely Manner.

    Maybe you’re working on a legacy project, on an application built on an old framework that isn’t particularly friendly towards unit testing. To get testing, you’ll need to wrestle with so many things, it just doesn’t make sense to even try, right?

    After a few years of using test-driven development (TDD) pretty consistently, I’m convinced that unit testing can and should be a more widespread practice. More importantly, after learning a lot of lessons over those few years, I think it’s well within any dedicated individual’s grasp. Care to hear about it? (Don’t answer that.)

    Digression the First: Why You Should Write Tests, In Case You Require Convincing (and if you’re not writing them, then you clearly require convincing)

    The code you write is for something, and that something is for somebody. Somebody cares that the stuff you wrote does what it’s supposed …


    testing

    SouthEast LinuxFest 2010

    Brian J. Miller

    By Brian J. Miller
    June 16, 2010

    This past weekend I took a day to visit lovely, uh, Spartanburg, SC for the 2nd Annual SouthEast LinuxFest

    I’ve yet to live in an area of the country that either embraces Open Source Software (OSS) to a significant degree (Portland for instance) or is significantly populated (New York, San Francisco) or has significant university representation (Ann Arbor, Cambridge) which would allow me to get well connected in person or have large events to attend about the platforms I use regularly. Such is life, but it makes it difficult to feel engaged in the community aspects of many of the projects whose products I use on a daily basis. It also makes it difficult to learn in a quick fashion even the most basic elements about a new technology or practice that might be making its rounds at any given moment. Much to my surprise even here in “The South” there is a group of volunteers putting on a very good conference, not exceptional, not huge, but good. And for the second year, growing, and from the conversations I had with past participants improving!

    The nature of the conference, i.e. a LinuxFest, makes the topic range incredibly varied as how can you have a targeted conference about …


    community conference open-source
    Previous page • Page 181 of 222 • Next page