• 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

    Simplifying mobile development with Ionic Framework

    Kamil Ciemniewski

    By Kamil Ciemniewski
    November 6, 2014

    My high school math teacher used to say that mathematicians are the laziest people on Earth. Why? Because they always look for clever ways to simplify their work.

    If you stop and think about it, all that technology is, is just simplification. It’s taking the infinitely complex world and turning it into something sterile and simple. It’s all about producing simple models with a limited number of elements and processes.

    Today I’d like to walk you through creation of a mobile app that could be used on iOS, Android or Windows Phone. We’ll use a very cool set of technologies that allow us to switch from using multiple languages and frameworks (Objective-C for iOS, Java for Android and C# for Windows Phone) to just using HTML, CSS and JavaScript.

    Let’s start turning complex into simple!

    PhoneGap and Ionic Framework

    Creating the project

    In order to be able to start playing along, you need to get yourself a set of toys. Assuming that you’ve got NodeJS and Npm installed already, all you have to do is:

    $ npm install -g cordova ionic
    

    Now you should be able to create the project’s scaffold. We’ll be creating a simple app that will list all the latest cartoons from the xkcd blog. Let’s call it …


    android angular css html ios javascript mobile

    CSS table-cells ::before and ::after

    Kent Krenrich

    By Kent Krenrich
    November 5, 2014

    When laying out HTML forms, instead of using a table (re: tables-are-only-for-tabular-data et al), I’ve had good results making use of the table family of values for the CSS display property. I find it a reliable way to ensure items line up in a wide range of situations, a change in the size of labels or a resize of the browser’s window for example.

    Something simple like the following has worked well for me on several occasions:

    .table {
      display: table;
    }
    .table>* {
      display: table-row;
    }
    .table>*>* {
      display: table-cell;
    }
    

    Occasionally though, I’ve wanted to leave a column empty for one reason or another. To accomplish this I found myself including empty HTML tags like:

    <form class="table">
      <div>
        <div>A Cell</div>
        <div>A Cell</div>
      </div>
      <div>
        <div></div>
        <div>A Cell</div>
      </div>
    </form>
    

    The empty elements function well enough but they feel a little out of place. Recently I came up with a solution I like better. By using the CSS ::after and ::before selectors, you can insert an arbitrary element that can take the place of a missing cell. The following …


    css html

    OpenSSL CSR with Alternative Names one-line

    Emanuele “Lele” Calò

    By Emanuele “Lele” Calò
    October 30, 2014

    2017-02-16—​Edit—​I changed this post to use a different method than what I used in the original version cause X509v3 extensions were not created or seen correctly by many certificate providers.

    I find it hard to remember a period in my whole life in which I issued, reissued, renewed and revoked so many certificates.

    And while that’s usually fun and interesting, there’s one thing I often needed and never figured out, till a few days ago, which is how to generate CSRs (Certificate Signing Requests) with AlternativeNames (eg: including www and non-www domain in the same cert) with a one-liner command.

    This need is due to the fact that some certificate providers (like GeoTrust) don’t cover the parent domain when requesting a new certificate (eg: CSR for www.endpoint.com won’t cover endpoint.com), unless you specifically request so.

    Luckily that’s not the case with other Certificate products (like RapidSSL) which already offer this feature built-in.

    This scenario is starting to be problematic more often since we’re seeing a growing number of customers supporting sites with HTTPs connections covering both www and “non-www” subdomains for their site.

    Luckily the solution is pretty simple …


    security sysadmin tls

    Prevent MediaWiki showing PHP version with new extension: ControlSpecialVersion

    Greg Sabino Mullane

    By Greg Sabino Mullane
    October 29, 2014


    Sok Kwu Wan

    I recently created a new MediaWiki extension named ControlSpecialVersion whose purpose is to allow some control over what is shown on MediaWiki’s “special” page Special:Version. The latest version of this extension can be downloaded from Mediawiki.org. The primary purpose of the module is to prevent showing the PHP and database versions to the public.

    As with most MediaWiki extensions, installation is easy: download the tarball, unzip it into your extensions directory, and add this line to your LocalSettings.php file:

    require_once( "$IP/extensions/ControlSpecialVersion/ControlSpecialVersion.php" );
    

    By default, the extension removes the PHP version information from the page. It also changes the PostgreSQL reported version from its revision to simply the major version, and changes the name from the terrible-but-official “PostgreSQL” to the widely-accepted “Postgres”. Here is what the Software section of bucardo.org looks like before and after the extension is used:

    Note that we are also eliding the git revision information (sha and date). You can also do things such as hide the revision information from the extension list, remove the versions entirely, or even …


    mediawiki

    Another Round of Tidbits: Browser Tools, Performance, UI

    Steph Skardal

    By Steph Skardal
    October 20, 2014

    It’s been a while since I shared a blog article where I share End Point tidbits, or bits of information passed around the End Point team that don’t necessarily merit a single blog post, but are worth mentioning and archiving. Here are some notes shared since that last post that I’ve been collecting:

    • Skeuocard and creditcard.js are intuitive user interface (JS, CSS) plugins for credit card form inputs (card number, security code, billing name).

    Skeuocard Screenshot
    • StackExchange UX is a Stack Overflow resource for user interface Q&A.
    • wpgrep is an available tool for grepping through WordPress databases.
    • Here is a nifty little tool that analyzes GitHub commits to report on language convention, e.g. space vs. tab indentation & spacing in argument definitions.

    Example comparison of single vs. double quote convention in JavaScript.
    • Ag (The Silver Searcher) is a document searching tool similar to ack, with improved speed. There’s also a Ag plugin for vim.
    • GitHub released Atom earlier this year. Atom is a desktop application text editor; features include Node.js support, modular design, and a full feature list to compete with existing text editors.
    • SpeedCurve is a web …

    tips

    Updating Firefox and the Black Screen

    Jeff Boes

    By Jeff Boes
    October 16, 2014

    If you are updating your Firefox installation for Windows and you get a puzzling black screen of doom, here’s a handy tip: disable graphics acceleration.

    The symptoms here are that after you upgrade Firefox to version 33, the browser will launch into a black screen, possibly with a black dialog box (it’s asking if you want to choose Firefox to be your default browser). Close this as you won’t be able to do much with it.

    Launch Firefox by holding down the SHIFT key and clicking on the Firefox icon. It will ask if you want to reset Firefox (Nope!) or launch in Safe mode (Yes).

    Once you get to that point, click the “Open menu” icon (three horizonal bars, probably at the far right of your toolbar). Choose “Preferences”, “Advanced”, and uncheck “Use hardware acceleration when available”.

    Close Firefox, relaunch as normal, and you should be AOK. You can try re-enabling graphics acceleration if and when your graphics driver is updated.

    Reference: here.


    browsers graphics windows

    Postgres copy schema with pg_dump

    Greg Sabino Mullane

    By Greg Sabino Mullane
    October 9, 2014


    Manny Calavera (animated by Lua!)
    Image by Kitt Walker

    Someone on the #postgresql IRC channel was asking how to make a copy of a schema; presented here are a few solutions and some wrinkles I found along the way. The goal is to create a new schema based on an existing one, in which everything is an exact copy. For all of the examples, ‘alpha’ is the existing, data-filled schema, and ‘beta’ is the newly created one. It should be noted that creating a copy of an entire database (with all of its schemas) is very easy: CREATE DATABASE betadb TEMPLATE alphadb;

    The first approach for copying a schema is the “clone_schema” plpgsql function written by Emanuel Calvo. Go check it out, it’s short. Basically, it gets a list of tables from the information_schema and then runs CREATE TABLE statements of the format CREATE TABLE beta.foo (LIKE alpha.foo INCLUDING CONSTRAINTS INCLUDING INDEXES INCLUDING DEFAULTS). This is a pretty good approach, but it does leave out many types of objects, such as functions, domains, FDWs, etc. as well as having a minor sequence problem. It’s also slow to copy the data, as it creates all of the indexes before populating the table via INSERT.

    My preferred approach …


    postgres

    Liquid Galaxy at the Ryder Cup 2014

    Will Plaut

    By Will Plaut
    October 6, 2014

    End Point was proud to present the Liquid Galaxy for the French Golf Federation at this year’s Ryder Cup in Gleneagles, Scotland. The French Golf Federation will be hosting the cup in 2018 at Le Golf National, which is just outside of Paris and is also the current venue of the French Open.

    Throughout the event, thousands of people came in and tried out the Liquid Galaxy. The platform displayed one of its many hidden talents and allowed golf fans from around the world to find and show off their home courses. One of the most interesting things to witness was watching golf course designers accurately guess the date of the satellite imagery based on which course changes were present.

    This deployment presented special challenges: a remote location (the bustling tented village adjacent to the course) with a combination of available hardware from our European partners and a shipment from our Tennessee office. Despite these challenges, we assembled the system, negotiated the required network connectivity, deployed the custom interface, and delivered a great display for our sponsoring partners. The event was a great success and all enjoyed the unseasonably mild Scottish weather.


    event visionport
    Previous page • Page 89 of 220 • Next page