• 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
  • Our Blog

    Ongoing observations by End Point Dev people

    Web Development, Big Data and DevOps—​OSI Days 2014, India

    Selvakumar Arumugam

    By Selvakumar Arumugam
    January 12, 2015

    This is the second part of an article about the conference Open Source India, 2014 was held at Bengaluru, India. The first part is available here. The second day of the conference started with the same excitement level. I plan to attend talks covering Web, Big Data, Logs monitoring and Docker.

    Web Personalisation

    Jacob Singh started the first talk session with a wonderful presentation along with real-world cases which explained the importance of personalisation in the web. It extended to content personalisation for users and A/B testing (comparing two versions of a webpage to see which one performs better). The demo used the Acquia Lift personalisation module for the Drupal CMS which is developed by his team.

    MEAN Stack

    Sateesh Kavuri of Yodlee spoke about the MEAN stack which is a web development stack equivalent to popular LAMP stack. MEAN provides a flexible compatibility to web and mobile applications. He explained the architecture of MEAN stack.

    He also provided an overview of each component involved in MEAN Stack.

    MongoDB — NoSQL database with dynamic schema, in-built aggregation, mapreduce, JSON style document, auto-sharding, extensive query mechanism and high availability. …


    angular conference docker containers mongodb nodejs php cms

    DBD::Pg: one ping to rule them all

    Greg Sabino Mullane

    By Greg Sabino Mullane
    January 7, 2015

    How can you tell if your database connection is still valid? One way, when using Perl, is to use the ping() method. Besides backslash-escaped placeholders, a revamped ping() method is the major change in the recently released version 3.5.0 of DBD::Pg, the Perl/DBI interface to Postgres. Before 3.5.0, there was a chance of false positives when using this method. In particular, if you were inside of a transaction, DBD::Pg did not actually attempt to contact the Postgres backend. This was definitely an oversight, and DBD::Pg now does the right thing.

    Detecting a dead backend is a little trickier than it sounds. While libpq stores some state information for us, the only way to be sure is to issue a command to the backend. Additionally, we check the value of PQstatus in case libpq has detected a problem. Realistically, it would be far better if the Postgres protocol supported some sort of ping itself, just a simple answer/response without doing anything, but there is nothing like that yet. Fortunately, the command that is issued, / DBD::Pg ping test, v3.5.0 */*, is very lightweight.

    One small side effect is that the ping() method (and its stronger …


    database dbdpg postgres

    Bucardo replication trigger enabling

    Greg Sabino Mullane

    By Greg Sabino Mullane
    December 22, 2014

    Bucardo is one of the trigger-based replication systems for Postgres (others include Slony and Londiste). All of these not only use triggers to gather information on what has changed, but they also disable triggers when copying things to remote databases. They do this to ensure that only the data itself gets copied, in as fast as manner as possible. This also has the effect of disabling foreign keys, which Postgres implements by use of triggers on the underlying tables. There are times, however, when you need a trigger on a target to fire (such as data masking). Here are four approaches to working around the disabling of triggers. The first two solutions will work with any replication system, but the third and fourth are specific to Bucardo.

    First, let’s understand how the triggers get disabled. A long time ago (Postgres 8.2 and older), triggers had to be disabled by direct changes to the system catalogs. Luckily, those days are over, and now this is done by issuing this command before copying any data:

    SET session_replication_role = 'replica';
    

    This prevents all normal triggers and rules from being activated. There are times, however, when you …


    bucardo postgres replication

    2014 hack.summit() wrap-up #hacksummit

    Brian Gadoury

    By Brian Gadoury
    December 5, 2014

    Seeing the proposed line-up for the 2014 hack.summit() virtual conference was the grown-up equivalent of seeing the line-up for some of the first Lollapalooza events. It was definitely an “All those people I want to see, and all in one place? head asplode” moments.

    So, what is this conference with the incredibly nerdy name? In short, it’s a selection of industry leading speakers presenting all on-line and streamed live. The “registration fee” was actually a choice between mentioning the conference on a few social media platforms, or making a donation to one of a number of programming non-profits. Seeing as I don’t tweet, I made a donation, then signed in (using OAuth) via my Google+ account. It was a delightfully frictionless process.

    The hack.summit() conference ran December 1st through December 4th, but I was only able to “attend” the last two days. Luckily for me, all of the live-streamed presentations are also available afterwards on the hacksummit site. They feel a little hidden away in the small menu in the upper left corner, but they’re all there, available as YouTube videos.

    So, why is was hack.summit() worth your time? It’s got an amazing collection of very accomplished …


    conference

    Ecommerce in the Django World

    Kirk Harr

    By Kirk Harr
    December 3, 2014

    Mezzanine (http://mezzanine.jupo.org/) is a powerful piece of software written for the Django Framework in Python that functions like a structured content management system similar to Drupal, WordPress, and others. Built on top of this CMS structure is a module which adds features for Ecommerce which is known as Cartridge (http://cartridge.jupo.org/).

    Installing Cartridge/Mezzanine

    Installing the Mezzanine CMS system from scratch can be accomplished in two methods, either by using the pip python package manager, or you can clone the current source from the git repository from the software maintainers. If you were planning to modify either Mezzanine or Cartridge to customize the setup for your own needs the latter would likely be preferable as you could then easily begin creating custom branches off the original source to track the customization work. However for this example I will show the pip method of installation:

    pip install -U cartridge
    

    Once installed, there is a mezzanine-project command which will allow you to create a new blank Mezzanine environment within a new directory, and in this case we will also send an option to instruct the command to install the Cartridge module …


    django ecommerce python cms

    Easier IE Site Testing With RemoteIE

    Greg Davidson

    By Greg Davidson
    December 2, 2014

    Microsoft recently announced a new service which I’m finding very useful. RemoteIE lets you test your sites with IE (currently version 11) on Windows 10 Technical Preview. The service runs in Azure RemoteApp which is available for several clients including Android, iOS and Windows Phone. What’s great about this is that you do not have to install and maintain your own virtual machine with VirtualBox or VMWare.

    RemoteIE

    To use RemoteIE you’ll need a valid Microsoft account—​it’s easy to sign up if you don’t already one. Once you have an account and have downloaded & installed the Azure RemoteApp client of your choice it’s just a matter of starting it up and logging in. Happy Testing!


    html browsers testing tools virtualization windows

    MySQL to PostgreSQL Migration Tips

    David Christensen

    By David Christensen
    November 26, 2014

    I recently was involved in a project to migrate a client’s existing application from MySQL to PostgreSQL, and I wanted to record some of my experiences in doing so in the hopes they would be useful for others.

    Note that these issues should not be considered exhaustive, but were taken from my notes of issues encountered and/or things that we had to take into consideration in this migration process.

    Convert the schema

    The first step is to convert the equivalent schema in your PostgreSQL system, generated from the original MySQL.

    We used mysqldump --compatible=postgresql --no-data to get a dump which matched PostgreSQL’s quoting rules. This file still required some manual editing to cleanup some of the issues, such as removing MySQL’s “Engine” specification after a CREATE TABLE statement, but this resulted in a script in which we were able to create a skeleton PostgreSQL database with the correct database objects, names, types, etc.

    Some of the considerations here include the database collations/charset. MySQL supports multiple collations/charset per database; in this case we ended up storing everything in UTF-8, which matched the encoding of the PostgreSQL database, so there were no …


    shell mysql perl postgres

    Integrate Twilio in Django

    Kulbir Singh

    By Kulbir Singh
    November 24, 2014

    Twilio

    Twilio is a powerful HTTP API that allows you to build powerful voice and SMS apps. The goal of this blog post is to help make building the SMS applications as simple as possible in django.

    There is a already Twilio Python help library available. The open source twilio-python library lets us to write Python code to make HTTP requests to the Twilio API.

    Installation

    The easiest way to install twilio-python library is using pip. Pip is a package manager for Python.

    Simply run following command in terminal.

    $ pip install twilio
    

    Twilio API Credentails

    To Integrate twilio API in django application, we need TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN variables. These variables can be found by logging into your Twilio account dashboard. These variables are used to communicate with the Twilio API.

    You’ll need to add them to your settings.py file:

    TWILIO_ACCOUNT_SID = 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
    TWILIO_AUTH_TOKEN = 'YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY'
    

    Create a New App

    We are going to interact with people using SMS, so I prefer to create an app named communication. I am assuming you’ve already installed Django.

    Run following command in terminal.

    $ django-admin.py …

    django python saas api
    Previous page • Page 87 of 220 • Next page