• 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

    Liquid Galaxy at the World Oceans Summit

    Gerard Drazba

    By Gerard Drazba
    February 24, 2012

    Jenifer Austin Foulkes, Product Manager for Google Ocean contacted End Point for the purpose of using Liquid Galaxy as a presentation platform at ocean-centric conferences around the world. The World Oceans Summit was held at the Capella Singapore Resort, February 22nd through February 24th, 2012 and Liquid Galaxy was there: World Oceans Summit

    Josh Tolley of End Point specially developed a Google Earth tour for the Liquid Galaxy featuring Hope Spots:

    “Hope Spots are special places that are critical to the health of the ocean, Earth’s blue heart.”

        —from the Sylvia Earle Alliance website

    The Underwater Earth Seaview Project was unveiled for the first time in Singapore. Liquid Galaxy showcased some of the amazing panoramas created by the project. The panoramas are beautiful in the immersive format that a Liquid Galaxy provides.

    “We’re on a mission to reveal our oceans. Why? Because the biggest threat to life in our oceans is the fact that it is out of sight and out of mind.”

        —from the Underwater Earth website

    Gap Kim from Google Singapore worked hard to get approvals to bring a portable Liquid Galaxy to the World Ocean Summit and also to have it subsequently installed at …


    visionport event

    Spring authentication plugin

    Josh Tolley

    By Josh Tolley
    February 24, 2012

    One of our clients regularly deploys Pentaho with their application, and wanted their users to be able to log in to both applications with the same credentials. We could, of course, have copied the user information from one application to another, but Pentaho, and the Spring system it uses for authentication, allows us to be much more elegant.

    Spring is often described as an “application development framework”, or sometimes an “Inversion of Control container”, which essentially means that you can redefine, at run time, exactly which objects perform various services within your application. That you have to navigate a bewildering and tangled web of configuration files in order to achieve this lofty goal, and that those files suffer from all the verbosity you’d expect from the combined forces of XML and Java, normally isn’t as loudly proclaimed. Those inconveniences notwithstanding, Spring can let you do some pretty powerful stuff, like in our case, redefining exactly how a user gets authenticated by implementing a few classes and reciting the proper incantation in the configuration files.

    Spring handles most of the plumbing in the Pentaho authentication process, and it all starts …


    java pentaho casepointer

    Downloading CSV file from Django admin

    Szymon Lipiński

    By Szymon Lipiński
    February 22, 2012

    Django has a very nice admin panel. The admin panel is highly extensible and there can be performed really cool enhancements. One of such things is a custom action.

    For the purpose of this this article I’ve created a simple Django project with a simple application containing only one model. The file models.py looks like this:

    from django.db import models
    from django.contrib import admin
    
    class Stat(models.Model):
        code = models.CharField(max_length=100)
        country = models.CharField(max_length=100)
        ip = models.CharField(max_length=100)
        url = models.CharField(max_length=100)
        count = models.IntegerField()
    
    class StatAdmin(admin.ModelAdmin):
        list_display = ('code', 'country', 'ip', 'url', 'count')
    
    admin.site.register(Stat, StatAdmin)
    

    I’ve also added a couple of rows in the database table for this model. The admin site for this model looks like this:

    Now I want to be able to select some rows and download a CSV file right from the Django admin panel. The file should contain only the information about selected rows.

    This can be done really easy with the admin actions mechanism. Over the table with rows there is the actions …


    django python

    Perl, UTF-8, and binmode on filehandles

    Greg Sabino Mullane

    By Greg Sabino Mullane
    February 21, 2012

    Original image by avlxyz

    I recently ran into a Perl quirk involving UTF-8, standard filehandles, and the built-in Perl die() and warn() functions. Someone reported a bug in the check_postgres program in which the French output was displaying incorrectly. That is, when the locale was set to FR_fr, the French accented characters generated by the program were coming out as “byte soup” instead of proper UTF-8. Some other languages, English and Japanese among them, seemed to be fine. For example:

    ## English: "sorry, too many clients already"
    ## Japanese: "現在クライアント数が多すぎます"
    ## French expected: "désolé, trop de clients sont déjà connectés"
    ## French actual: "d�sol�, trop de clients sont d�j� connect�s"
    

    That last line should be very familiar to anyone who has struggled with Unicode on a command line, with those question marks on an inverted background. Our problem was that the output of the script looked like the last line, rather than the one before it. The Japanese output, despite being chock full of Unicode, does have the same problem! More on that later.

    I was able to duplicate the problem easy enough by setting my locale to FR_fr and having …


    perl unicode

    World IPv6 Launch: 6 June 2012

    Jon Jensen

    By Jon Jensen
    February 17, 2012

    For any of our readers who don’t know: The classic Internet Protocol (IPv4) supported around 4 billion IP addresses, but it recently ran out of free addresses. That the addresses would eventually all be used was no surprise. For more than a decade, a replacement called IPv6 has been under development and allows practically unlimited addresses.

    Last year there was a one-day trial run called World IPv6 Day. Our own Josh Williams wrote about it here. It was the first major attempt for mainstream websites to enable dual-stack IPv4 and IPv6 networking, so that both the “old” and “new” Internet could access the same site. It was intended to bring to the surface any problems, and it went very well – most people never knew it was happening, which was the goal.

    World IPv6 Launch is 6 June 2012 – The Future is Forever

    This year there’s a much bigger event planned: World IPv6 Launch, and this time IPv6 is meant to stay on. Google, Facebook, Yahoo!, Bing, and many other major sites are participating. A big advance over last year’s event is that many ISPs and vendors of home networking gear are also participating. That means it won’t just be a test that classic IPv4 still works for people alongside IPv6, but that for some customers, native IPv6 …


    hosting ipv6 networking

    Tracking down PostgreSQL XYZ error: tablespace, database, and relfilnode

    Greg Sabino Mullane

    By Greg Sabino Mullane
    February 14, 2012

    One of our Postgres clients recently had this error show up in their logs:

    ERROR: could not read block 3 of relation 1663/18421/31582:
    read only 0 of 8192 bytes
    

    Because we were using the tail_n_mail program, the above error was actually mailed to us within a minute of it occurring. The message is fairly cryptic, but it basically means that Postgres could not read data from a physical file that represented a table or index. This is generally caused by corruption or a missing file. In this case, the “read only 0 of 8192” indicates this was most likely a missing file.

    When presented with an error like this, it’s nice to be able to figure out which relation the message is referring to. The word “relation” is Postgres database-speak for a generic object in the database: in this case, it is almost certainly going to be a table or an index. Both of those are, of course, represented by actual files on disk, usually inside of your data_directory. The number given, 1663/18421/31582, is in the standard X/Y/Z format Postgres uses to identify a file, where X represents the tablespace, Y is the database, and Z is the file.


    The first number, X, indicates which tablespace this relation belongs …


    database postgres

    Django and Virtual Environments

    Szymon Lipiński

    By Szymon Lipiński
    February 13, 2012

    When you have to work with a bunch of different Python applications, the usual problem is that you have to deal with plenty of different packages in different versions. Each application needs its own set of libraries. Usually the versions of the libraries vary between the applications.

    To solve all the problems you could create Python virtual environments. There is a great tool: virtualenv. It can create virtual environments for Python. Using it is not too nice. However there is a wrapper to it, called virtualenvwrapper. It wraps all the virtualenv commands into a couple of shell commands.

    Let’s assume that I need to work on two applications written in Django 1.2 and Django 1.3. Each of the applications needs different set of packages in different versions. I will create two virtual environments.

    Installing virtualenvwrapper on Ubuntu is pretty easy:

    $ sudo apt-get install virtualenvwrapper
    

    After the installation there is a couple of new commands. The basic one is: mkvirtualenv which creates a new environment. Let’s create one.

    $ mkvirtualenv django_demo_12
    

    This command automatically switches to the new environment, so you might notice that the prompt changed. The prompt …


    django python

    DevCamps setup with Ruby 1.9.3, rbenv, Nginx and Unicorn

    Richard Templet

    By Richard Templet
    February 10, 2012

    I was working with Steph Skardal on the setup of a new DevCamps installation that was going to need to use Ruby 1.9.3, Rails 3, Unicorn and Nginx. This setup was going to be much different than a standard setup due to the different application stack that was required.

    The first trick for this was going to get Ruby 1.9.3 on the server. We were using Debian Squeeze but that still only comes with Ruby 1.9.1. We wanted Ruby 1.9.3 for the increased overall speed and significant speed increase with Rails 3. We decided on using rbenv for this task. It’s a very easy to setup utility that allows you to maintain multiple version of Ruby in your system user account without the headache of adjusting anything but the PATH environment variable. It takes advantage of another easy to setup utility called ruby build to handle the actual installation of the Ruby source code.

    A quick and easy version for setting up a user with this is as follows:

    Ensure you are in the home directory. Then, clone the repository into a .rbenv directory

    git clone git://github.com/sstephenson/rbenv.git .rbenv
    

    Adjust your users path to find the newly installed commands

    echo 'export …

    camps hosting rails
    Previous page • Page 150 of 220 • Next page