• Tally Tables in SQL

    Reynold Greenlaw

    A tally table is a table with a set of numbers in, such as all of the integers from 1 to 1,000,000  in order. It may also known as a number table and could contain every day between two dates, or every Monday between two dates, etc. Tally tables can be used for a large and varied number of ways, to make code simpler and/or faster. Converting a CSV string into a dataset A common use of a tally table[...]

  • Outsmarting SQL Joins

    Reynold Greenlaw

    If you work with SQL you will know about the various types of join and what they do: [Inner] Join Left [Outer] Join Right [Outer] Join Full [Outer] Join Cross Join (Where the Inner and Outer keywords are optional). But how does SQL actually do the joining? Usually, it picks the most appropriate method (ie the fastest) and everything’s fine. Occasionally, however, it drops the performance ball and everything grinds to a halt. In these situations, knowing what’s going on[...]

  • Object-relational mapping

    Reynold Greenlaw

    At OCC there are regular presentations between the engineers on any technical topic of interest. We’ve decided to post a recent one on a technique called Object-relational mapping. Object-relational mapping in computer software is a programming technique for converting data between incompatible type systems in relational databases and object oriented programming languages. So it bridges the gap between the database and the code that uses the data. ORM can be used for Fast prototyping and any data-based product that doesn’t have[...]

  • Tips for streaming video with Amazon CloudFront + Flowplayer

    Reynold Greenlaw

    Flowplayer is a Flash-based video-player that supports streaming video using the Adobe’s Real-Time Messaging Protociol (RTMP). Amazon CloudFront is a content-delivery network (CDN) tied in with Amazon’s Simple Storage Service (Amazon S3), and can stream via RTMP. Great! This is a simple-to-set-up, cost-effective, and reliable video-on-demand system. Where you can get a little bit tangled up is the way the video resource is identified to the player. Following the recipe for Flowplayer with the RTMP plug-in, you need two values, the[...]

  • MCERTS

    Reynold Greenlaw

    OCC software is being submitted for approval by MCERTS. This is the Environment Agency (EA) Monitoring Certification Scheme. As OCC provides software for air quality monitoring, we have attracted interest from “MCERTS for Software” which is new. As the EA document puts it: Problems with Data Management can have a number of serious adverse effects Nothing new there. So what’s involved in MCERTS certification? It’s one of those happy occasions where a standard imposes reasonable and not too onerous restrictions[...]

  • Choosing agile development

    Reynold Greenlaw

    The oldest software process is “code and fix”. This actually works on small one-man projects, but as a system grows, bugs become harder to fix. A typical sign of such a system is a long test phase after the system is “feature complete”. Such a long test phase plays havoc with schedules as testing and debugging is near impossible to schedule. The classic response comes from engineering, whose methods try to plan the software process in detail for a long[...]

  • Online video content using Amazon S3 for TaxTV

    Reynold Greenlaw

    The conventional approach to making videos or other data available online is to buy a server and host it at an ISP. This requires up-front capital costs for the server, and development of systems to keep track of backups, redundant copies, and scaling up as your needs increase. An alternative approach is to use storage web services, such as Amazon’s Simple Storage Service, or Amazon S3 for short. Your files are stored on the same highly scalable, reliable, fast, inexpensive[...]