Our Thoughts on Technology and Business

911 Financials for State
A State client needed an administration system for the collection of state wide 911 financial information.
Developers VS. Problem Solvers: Why it's Important To Have Both On Your Team
When choosing a firm to develop your custom software, it's important to know who is on the team.
Usefulness of Issue Tracking Software
In software development, issue tracking is sometimes called 'bug tracking'.  This term does not fully encompass its entire utility, however.  Applied correctly, issue tracking software can do more than just report 'bugs' in a testing phase of development.
Why Working with a US-Based Software Developer Makes Sense
Software development is a highly technical field where the skill, expertise, and reliability of your team will determine the success of your project. This is why it is so important that you are selecting the team that matches and blends well with you and how you work.
The High Costs of Low Priced Development 2
It seems every day I get a call from a businessman about a disaster he had just experienced with offshore development work. Issues with communication, budget overruns, not getting what he wants, not delivering on promises, etc.
Software Development and CMMI: What to Expect From a Level 3 Appraised Company
When evaluating a software development company, one thing to look at is their use of a business process improvement system such as Capability Maturity Model Integration model (CMMI.)
Single Page Applications SWOT Analysis
An increasingly more popular, but not necessarily new, paradigm for web application development is the single page application (SPA). This applications offer many opportunities to increase performance and availability while reducing hosting costs.
Selecting a Database Backup Strategy
Evaluating database backup strategies can be complex. This guide can help plan your database backups.
Playing with Parallel I/O - Part 2
Analysis of parallel processing performance with benchmarking results.
Playing with Parallel I/O - Part 1
Analysis of parallel processing performance with benchmarking results.
Planning for Security in Applications
Each problem is its own domain of security, but the core concept is the same: security procedures must be designed into the system from the beginning. From an API to network system configuration, attempting to add security after the fact tends to involve much more work than proper planning during the implementation phase.
PhantomJS for HTML to PDF Rendering
PhantomJS utilized a headless (no UI) browser to render content that can then be converted to PDF.
Older Hardware and the Internet of Things
In my last post, I talked about the growing Internet of Things. It seems every new consumer device can go online these days, and for good reason -- the benefits include such things as more intelligent automation, centralized management, and streamlined updating.
MySQL Backups
In last month's article, we discussed performing full backups and incremental backups. This blog entry will focus more on how to actually accomplish these backups with MySQL.
Evaluating Code for Bottlenecks and Performance
A bottleneck occurs at a process or component in an application that has the lowest throughput, therefore limiting the overall performance of an application. Identifying and correcting bottlenecks is crucial to maintaining a well performing application.
Cloud IDEs: Are They Worth It?
If we can reap all the benefits of a fast development environment without worrying about setup, maintenance, and support then why isn't everyone ditching their desktop IDEs right now? Well, it seems few developers can find a valid argument for not at least giving cloud IDEs a try.
Choosing a Hosting Provider: Shared vs Dedicated vs Virtual Dedicated vs Managed Hosting
Selecting where to host your website or application can be a challenge. This guide can help your decision-making process.
Choosing a CMS
If you are going to choose a content management system as the base for your new project we have you covered!
Bad Business: A Decade of 'One Size Fits All' Off Shoring Strategies
For the last decade U.S. Corporations have rushed to move Information Technology. and Software Development operations offshore in an effort to presumably 'shore up' their organization's bottom line and save dollars through cheaper costs via overseas development centers in India, China, Vietnam and the Philippines.
Automated Penetration Testing
Automated Penetration Testing is a way of testing a computer system, software application, or a web application to potentially reveal any vulnerabilities in an application.
An Internet of Things
In the early eras of computing, even the most simple of devices required rooms' worth of space, infrastructure, and operators. But as computing technology has gotten smaller and cheaper, the devices around us have been able to leverage those advances in a lot of different ways.
A Primer for Handheld Usability
Smart phones and tablets are here.  They went from becoming ubiquitous devices to, well, ubiquitous devices.  Sales of smart phones passed  the sales of “dumb” phones in 2011, within the US, and in 2013, worldwide.  This trend has encouraged many software developers to jump into the mobile platform.  And it means the handheld space faces an increasingly competitive opportunity for developers.
10 Things To Consider When Hiring A Software Developer
Choosing a software development company to tackle your project is a bit like recruiting and hiring a new employee. The challenge is not simply finding a software developer. It's about finding the one that's the best fit for you, your project and your timetable.
Apache Cordova Applications
Apache Cordova Applications are applications that are compiled against the Apache Cordova framework and are written utilizing HTML, JavaScript, and CSS. Cordova provides the benefit of a write once, deploy everywhere paradigm.
Backup using rsnapshot
In last month's article, we discussed using the rsync utility on Linux to perform backups of data. This month, we will look at utilizing the rsnapshot utility to create rotating backups of data over periods of time.
Performance Bottlenecks and Software
Now that we've covered some of the ways to address application performance in hardware, let's review some ways that we can better design and implement software to avoid excessive load in the first place. Remembering that our biggest concern is exhaustion of a shared resource, it's clear that if we're not able to increase the amount of resources available (via hardware), then we need to consider making more efficient use of the resources that we do have.
Making Sure Your Site is Mobile-Friendly
In today's increasingly-connected world, more and more people are using their smartphones or tablets as a primary way of interacting with the world. In fact, some estimates say that over 50% of web traffic comes from a mobile device, versus a desktop browser. This means that if you're serious about making your web presence maximally accessible and available, you need to be conscious of how mobile users will see and interact with your site. Is it functional? Is it visually appealing? Is it even readable?
Agile and Continuous Delivery: Part 1
The complexity of today's software has changed the way we look at delivering it. The demand for constant updates has forced companies to find faster and more efficient ways to deploy tested and working versions of software. Continuous Delivery allows for just that.
Agile and Continuous Delivery: Part 2
In my last article, I wrote about what Continuous Delivery is and it's advantages and disadvantages. This time I'll be discussing how the Continuous Delivery process can co-exist with Agile methodologies. Continuous Delivery is a defined process that can sometimes conflict with traditional Agile practices - one of these conflicts is iteration completion.
SQL Server Backups
In August's article, we discussed the importance of backing up your databases. This month we'll examine best practices to back up most SQL Server databases.
What You Need to be Asking About Mobile
SmartPhones, pads, pods, tablets, surfaces, and slates. They go by many names, but these portable devices are showing up everywhere. It’s no secret that the consumers for both business and personal are leaving their desks to do their work on the go (or with their feet up on the couch). Mobile devices are making that easy. More importantly, they are fun and cool.
Backing up with rsync
Configuring backups is important. Here is how rsync can be used to perform backups.
Asynchronous Event Handling with Promises
A Promise is effectively an envelope representing a promise to deliver an object that currently is not available. Their use is valuable in concurrent programming languages; such as JavaScript.
The Future of 'Freemium' for SaaS
The 'Freemium' business model in the software industry has been around in different forms since the 1980's. When software as a service (SaaS) took off, different 'freemium' strategies were utilized to help achieve the model's main goal - attract as many users as possible by giving away certain aspects of the software while monetizing on other 'premium' aspects.
Structured Data Content
Structured Data Content (SDC) is the result of collaboration between all the major players in the search engine market (Google, Bing, Yahoo, etc.).  The goal of this is to make it easier for search engine crawlers to understand your websites content.
Performance Bottlenecks and Hardware
The prettiest, most featureful site or application in the world is worthless if it's not usable.  Users are a pretty impatient lot -- if things don't work quickly and responsively, they will become impatient.  So ensuring that your infrastructure is as performant as possible is a huge issue.  As projects get bigger and userbases grow, things will inevitably slow down and your performance will suffer.
Using Views in SQL
While working on a recent project, I had a client request database needs where a view was the most optimal solution. In this article, I will go over 'why' and 'when' to use a view in SQL.  
Your Diffie-Hellman Makes a Difference
One of the vulnerabilities that we could potentially counter involves the prime number used in the Diffie Hellman key exchange.
Do You Need an API?
When designing and developing a system that will be accessed via the web, mobile app, and possibly even embedded device, it's important to consider how best to accomodate the shared aspects of each system.  Developing an API-based system can help you make the most of your system and ensure it's able to grow well into the future.
Communication and Participation
A short summary on some of the ways we work to keep clients informed on project progress and keep them involved in the development process.
WebForms vs MVC
The decision on which technology to use can be a tricky one.  In most cases we’ve left this decision up to our customers.  If they want something done quickly and on a tight budget we would typically use WebForms.  It’s been around a long time and we have a large staff of developers well versed in the technology.  In other cases a customer may specifically request their project be developed using MVC.  I thought it might be interesting to do a little more research and see what the rest of the internet’s thoughts are on these two technologies.  As you can imagine it only take a few minutes of searching to find thousands of reasons why one is better or worse than the other.
Image Manipulation: HTML5 Canvas vs SVG
When HTML5 was introduced a few years ago, two new graphic elements were revealed - Canvas and SVG. Although SVG has been supported before, HTML5 has introduced the SVG tag as a container for SVG graphics. What is so great about these? Well, for starters they are capable of advanced and efficient image editing techniques while being completely library independent. 
The Lost Art of the Keystroke
Hotkeys are all but forgotten by many modern productivity suite users, but they are still incredibly valuable for improving a user's speed, reaction, and overall performance.
Driving Data with an ORM
Interfacing with relational databases can be tricky. To help manage this task, a number of ORM frameworks are available to encapsulate the specifics of managing your database.  This can make development and maintenance of your data-driven application much easier.  
Engaging with Social Media
One of the biggest buzzwords in any industry today is “social media.” But it doesn't have to be just a buzzword – with a solid social media strategy, you can leverage your customer base to help promote your brand and your products.
Realtime Web Data with WebSockets
WebSockets can be used to PUSH realtime data to your clients and are the future of web application development.
GraphQL: The Future of APIs?
GraphQL provides a common interface between the client and the server for simpler querying of data and also manipulating data using the notion of mutation queries.  It has evolved into it's own architectural style as a direct replacement for REST.  
Using WordPress to Supplement Your Existing Web Application
Everyone is pretty familiar with the concept of building an entire website using the WordPress CMS. But what if you already have a fully developed website that you want to add CMS functionality to without rewriting and restructuring the entire thing? WordPress is a powerful tool that can allow you to do just that.
Securing Your Internet of Things Devices
It's been said that "the safest computer is one that isn't connected to the Internet." There's a certain truth to that statement; however, in today's ever-more-online world, it's a pretty pointless platitude. And when you're talking about the Internet of Things, it's a contradiction in terms. By definition, your device must be connected to the world to do its job properly – and that means security is a very real consideration.