• 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
  • An Introduction to Google Website Optimizer

    Steph Skardal

    By Steph Skardal
    April 17, 2012

    On End Point’s website, Jon and I recently discussed testing out use of Google Website Optimizer to run a few A/B tests on content and various website updates. I’ve worked with a couple of clients who use Google Website Optimizer, but I’ve never installed it from start to finish. Here are a few basic notes that I made during the process.

    What’s the Point?

    Before I get into the technical details of the implementation, I’ll give a quick summary of why you would want to A/B test something. A basic A/B test will test user experiences of content A versus content B. The goal is to decide which of the two (content A or content B) leads to higher conversion (or higher user interactivity that indirectly leads to conversion). After testing, one would continue to use the higher converting content. An example of this in ecommerce may be product titles or descriptions.

    A/B tests in Google Website Optimizer

    I jumped right into the Google Website Optimizer sign-up and wanted to set up a simple A/B test to test variations on our home page content. Unfortunately, I found right away that basic A/B tests in Google Website optimizer require two different URLs to test. In test A, the user would be see …


    analytics seo testing

    Liquid Galaxy Website Launch

    Brian Dillon

    By Brian Dillon
    April 17, 2012

    We have just launched a new site to promote our Liquid Galaxy turn-key systems, our suite of Liquid Galaxy services, as well as presenting the current range of the Liquid Galaxy’s capabilities.

    Check the Liquid Galaxy Website here.

    End Point has been developing the Google Liquid Galaxy project into a commercially available platform over the last two years. In case you are unfamiliar with the Liquid Galaxy project here is a brief rundown:

    • Originally developed by engineers at Google on their 20% time
    • Provides an immersive viewing environment for Google Earth by running multiple instances of the software synced across any number of displays
    • The core software is available as open source

    So far the majority of the people using this system (only a small number to date) are advanced hackers and hobbyists who have set up mini versions using computer display monitors. Some of these talented developers have completed projects like porting open source video games or experimenting with different display configurations.

    Meanwhile, End Point has been hard at work developing a standardized, portable, and robust turn-key version of the Liquid Galaxy system. Through trial and error and the …


    company visionport

    Monitoring cronjob exit codes with Nagios

    Brian Buchalter

    By Brian Buchalter
    April 17, 2012

    If you’re like me, you’ve got cronjobs that make email noise if there is an error. While email based alerts are better than nothing, it’d be best to integrate this kind of monitoring into Nagios. This article will break down how to monitor the exit codes from cronjobs with Nagios.

    Tweaking our cronjob

    The monitoring plugin depends on being able to read some sort of log output file which includes an exit code. The plugin also assumes that the log will be truncated with every run. Here’s an example of a cronjob entry which meets those requirements:

    rsync source dest 2>&1 > /var/log/important_rsync_job.log; echo "Exit code: $?" >> /var/log/important_rsync_job.log

    So let’s break down a couple of the more interesting points in this command:

    • 2>&1 sends the stderr output to stdout so it can be captured in our log file
    • Notice the single > which will truncate the log every time it is run
    • $? returns the exit code of the last run command
    • Notice the double » which will append to the log file our exit code

    Setting up the Nagios plugin

    The check_exit_code plugin is available on GitHub, and couldn’t be easier to setup. Simply specify the log file to …


    monitoring

    Easy creating ramdisk on Ubuntu

    Szymon Lipiński

    By Szymon Lipiński
    April 16, 2012

    Hard drives are extremely slow compared to RAM. Sometimes it is useful to use a small amount of RAM as a drive.

    However, there are some drawbacks to this solution. All the files will be gone when you reboot your computer, so in fact it is suitable only for storing some temporary files—​those which are generated during some process and are not useful later.

    I will mount the ramdisk in my local directory. I use Ubuntu 11.10, my user name is ‘szymon’, and my home directory is ‘/home/szymon’.

    I create the directory for mounting the ramdisk in my home dir:

    mkdir /home/szymon/ramdisk

    When creating the ramdisk, I have a couple of possibilities:

    • ramdisk—​there are sixteen standard block devices at /dev/ram* (from /dev/ram0 to /dev/ram15) which can be used for storing ram data. I can format it with any of the filesystems I want, but usually this is too much complication
    • ramfs—​a virtual filesystem stored in ram. It can grow dynamically, and in fact it can use all available ram, which could be dangerous.
    • tmpfs—​another virtual filesystem stored in ram, but because it has a fixed size, it cannot grow like ramfs.

    I want to have a ramdisk that won’t be able to use all of my ram, and I want …


    hosting linux ubuntu

    XOR ROX

    Jeff Boes

    By Jeff Boes
    April 13, 2012

    Recently a co-worker posed an interesting issue:

    Given a non-zero integer $delta,

    an array of structures with two key/value pairs,

    { flag => boolean, quantity => non-zero value }

    Sort the array so that the first structures are those where either

    flag is true and (sign of $delta and sign of $quantity are different)

    or

    flag is false and (sign of $delta and sign of $quantity are the same)

    Secondarily, sort on the absolute value of $quantity.

    A solution fairly leaped out at me, but I’m not claiming incredible programming skill: in fact, the solution suggested an XOR operation, which was the second time in about as many weeks that I’d gotten to use XOR in Perl code. (It’s one of those things that you can literally write tens of thousands of lines of code without ever needing, so a second opportunity within the same decade was pretty pleasing in a code-geek kind of way.)

    The key to recognizing XOR in your problem solution is a pattern like:

    A AND (B != C) or ~A AND (B == C)

    or more simply:

    (A AND ~B) or (~A AND B)

    which is nothing more complex than the expanded equivalent of (A XOR B), from your college symbolic-logic class. The daunting sort problem becomes:

    @sorted = sort {( …

    perl

    Make your code search-friendly

    Jeff Boes

    By Jeff Boes
    April 12, 2012

    Here’s something about coding style that you may not have considered: is your code “search-friendly”? That is, does the format of your code help or hinder someone who might be searching it for context while debugging, extending, or just learning how it works?

    Seriously Contrived Example (from Perl):

    my $string = q{Your transaction could not be} .
       q{ processed due to a charge} .
       q{ card error.};
    return $string;

    Now someone’s going to experience this error and wonder where it occurs. So armed with grep, or ack, or git-grep, they set off into the wilderness:

    $ git grep 'could not be processed'
    $ git grep 'charge card error'
    $ git grep -e 'transaction.*charge.*error'
    $ alsdkjgalkghkf

    (The last simulates pounding the keyboard with both fists.) I would suggest humbly that “strings you emit as a line should appear as a line in your code”, if for no other reason than that it makes it so much easier for you or others to find them. Thus:

    my $string = <<'MSG';
    Your transaction could not be processed due to a charge card error.
    MSG
    return $string;

    perl search

    Tips for job applicants

    Jon Jensen

    By Jon Jensen
    April 12, 2012

    This a public service announcement for job applicants, a list of assorted suggestions I’ve collected over the years based on my own observations and conversations I’ve had with others who were hiring.

    General

    • When you apply for a job, make sure you actually have time to pursue it. It’s rude to say you’re too busy to interview except late in the evening or for 15 minutes on your cell phone in the parking lot outside work. Finding a job takes some investment and you shouldn’t waste potential employers’ time if you’re not ready to put some of your vacation time on the line.

    • This is old advice, but important as always: Don’t claim to have abilities or experience that you don’t! Be honest about your strengths and if directly asked, admit what you lack. We will find out anyway, and it’s pretty embarrassing to all of us to have to see you’re dishonest and clueless about something you claimed as a skill.

    Code samples and technical evaluation

    • If you’re applying for a programming job, be prepared to show recent code samples. Saying that all your work is under NDA with employers may be true, but doesn’t help us see what your code is like. If you can’t show any code from work, assemble …


    tips

    Three Things: Photography, Facebook on WordPress, and the watch command

    Steph Skardal

    By Steph Skardal
    April 11, 2012

    1. Photography News

    There’s been some recent news in the photography space. Adobe announced Photoshop CS6, and Lightroom 4, and Adobe Photoshop Touch recently. The Lytro Light Field camera has picked up recognition lately. The new Nikon D4 recently became available, as well as the Canon 5D MK III, both high end DSLRs.

    2. Facebook Comments for WordPress

    Last week, I was working on WordPress development for The Best Game Apps, and I came across a strange Facebook integration error about compatibility mode, show in the screen below:

    The site uses the WordPress plugin Facebook Comments for WordPress. After some research, I decided to dig into the Facebook documentation and the code to make the following change myself to specify the post URL as the href attribute in the facebook markup:

    219c219
    -    echo "\t<fb:comments xid='$xid' url='$postUrl' $siteisdark ",
    +    echo "\t<fb:comments xid='$xid' href='$postUrl' url='$postUrl' $siteisdark ",
    

    In the context of:

    219                     echo "\t<fb:comments xid='$xid' href='$postUrl' url='$postUrl' $siteisdark ",
    220 …

    tips
    Previous page • Page 149 of 223 • Next page