The Fairway Technologies Blog

July 9, 2018 | Paul D. Sheriff

Getting Started with PouchDB - Part 3

In the last two blog posts, you have been introduced to the PouchDB NoSQL database. You learned to create a new database, modify documents within that database, and retrieve documents using the allDocs(). Now that you have inserted several documents into your PouchDB database, you might wish to retrieve documents based on data in fields other than the _id property. In this third part of our on-going blog posts on PouchDB, you learn to use the find() plug-in to perform queries on any property in your documents.

May 22, 2018 | Paul D. Sheriff

How to upload Small Files using Angular

Sometimes, you may need to upload files to your server via an Angular application. There are a few different methods you may use. Today, I am going to present a method that works well for small files up to about two megabytes in size. In this blog, you build two projects: a .NET Core Web API project and an Angular project. You build these two projects from scratch using the Angular CLI, .NET Core, and Visual Studio Code editor.

August 16, 2017 | Greg Schwartz

Pros and Cons of Hiring a Software Development Consultancy

When your business needs help with IT, it can be difficult to find the right fix. Technology talent is tough to find, and the best people always seem to be taken. Consider hiring a software development consultancy rather than going through an expensive, time-consuming hiring process that doesn’t guarantee you the candidate you want. Weigh the benefits against the potential drawbacks to decide what’s right for your company.

January 17, 2014 | Jeff Treuting

Soft-Delete As a Cross-Cutting Concern With SharpRepository


Doing soft deletes is a very common requirement or preference used in software development and it has many benefits including the main one of not accidentally losing data since it is never actually deleted from the database.  The main approach to doing this is to add an IsDeleted flag to the database table and setting that to true instead of doing a hard delete.  Simple enough and it works pretty well.  The annoying part of using this approach comes when you have to add !IsDeleted to every single query you run against each table where you have implemented soft-deletes.  Casey, a fellow Fairway-er (or Fairway-ian, Fairway-ite, ???) pointed this out as we started working on a new project.  So we decided to treat this as a cross-cutting concern and implement it as an attribute that we can apply to the entities that we want to be soft-deleted.  While we are still early on in using this new approach, so far so good.

January 17, 2014 | Jeff Treuting

Getting Your Hooks Into SharpRepository


A little while back I noticed that a GitHub user had forked SharpRepository and added some simple hooks into it in order to automatically index entities into Lucene when they are added, updated or deleted through SharpRepository.  This was such a good idea that I knew we needed to get some proper hooks into the library itself.  We decided to use an Aspect Oriented Programming approach and allow developers to decorate their entities with attributes that would hook into the proper part of SharpRepository to give them the controls they need.

October 22, 2013 | Jeff Johnson

A Beginner's Guide to Querying LDAP with Ruby. Also Spaceballs.


I'm at a point in my project where I need to look up stuff.  No doubt you're saying something like "Duh - programs need to look up stuff all the time, dummy!  THAT'S NOT SPECIAL!  TELL ME SOMETHING INTERESTING!"

July 21, 2013 | Jeff Johnson

Slapstick - a Backbone Tutorial, Part 1 - Modeling the Model


It's time to get going on the Slapstick application, 'cause it isn't going to build itself.  Before we jazz up our application with all kinds of swanky JavaScript goodness, we need a foundation to build on.  In this post, we'll talk about the objects we'll be working with to represent our fantasy hockey team.

July 1, 2013 | Jeff Johnson

Slapstick - a Backbone.js Tutorial, Part 0 - the Beginning


Two developers.  One Backbone tutorial.  One of us is an avid hockey fan.  The other is a bit of a sci-fi/fantasy nerd.  Therefore, it only makes sense that the app we'll be building is a fantasy hockey league website during this tutorial series.  Because seriously - who doesn't want to see Darth Vader vs. Sauron on the ice?  An epic seven game series of elves of Lothlorien vs. stormtroopers of the Death Star?  Yes, please.  I'm sure there's a "one puck to rule them all" joke in here somewhere.  I'll leave that exercise to you, dear reader.

June 13, 2013 | Lorrie Hunsaker

Fairway Unveils Redesigned Website

New site delivers multiple enhancements for a richer user experience

December 7, 2012 | Jeff Johnson

Distributed Transaction Coordinators, Port 135, and Firewalls - Oh My!

The Scenario

A while back, I worked on a project that required persisting data to multiple databases.  The requirement was to save some data to a Microsoft SQL Server (which hosted the billing application data) and save a different set of data to an Oracle database (which housed the database for the flagship Online Transaction Processing [OLTP] system).  Both of the database servers were protected by the almighty firewall, valiantly protecting the valuable database servers from a variety of virulent violations.

Ailing attempts at alliteration aside, here’s a high-level diagram describing the application I’m talking about:



New Call-to-action
New Call-to-action