The Central Hub of Toad Knowledge

Angular 5: Making API calls with the HttpClient service

Note to readers, May 18, 2018: the code in this post is built for Angular 5.x. The same techniques will work with Angular 6 as long as you use the rxjs-compat Node package. To see how to upgrade this code for full, native RxJS compatibility, see this post.
By Keith Dechant, Software Architect
November 27, 2017
Iot Data Pipeline

Building an Expandable IoT Data Pipeline - Part 1

Background and problem description In late 2016 we were approached with an opportunity to build a data pipeline for one of our large clients. The client needed to obtain sensor data and media (images, video, etc) from custom IoT devices built by one of their vendors. The goal was to capture and analyze metric to improve efficiency of a business process.
By Joshua De Leon, Data & Analytics Architect
November 27, 2017

Speed Kills: How Much does a Slow Web Site Cost?

In my last post, I wrote about the cost of tech debt, using a case study of skyrocketing hardware costs. Here's another, subtler effect of poor performance: impatient customers don't stick around when they experience slowdowns. However, choosing to prioritize speed can be hard to justify when the cost isn't quantified.
By Dylan Tack, Director of Engineering
November 27, 2017

Drupal 8 Entity API cheat sheet

Wait, is it "$node->title" or "$node->title->value"? How do I write an EntityQuery again? Yeah, I can never remember, either. For the developers out there, if you've already read the official Drupal 8 Entity API documentation and you want more examples, here's a handy cheat sheet: The examples here contain some hard-coded IDs. These are all examples. In your real code, you should already have the node IDs, file IDs, etc. in a variable.
By Keith Dechant, Software Architect
November 22, 2017

Be a Partner, not a Vendor

Years ago, I received a frustrating email from a disappointed client. I was confused – from an engineering perspective, this should have been a model project. It nailed the requirements on time, under budget, with great documentation, full unit test coverage, and even included some cutting-edge original research and upstream open-source contributions. Here's the email (emphasis added, scare quotes original):
By Dylan Tack, Director of Engineering
November 16, 2017

The High Cost of Technical Debt: A Case Study

Technical Debt: we all have it. Yet, this phenomenon remains poorly understood by product managers. Unlike financial debt, the costs are often hidden and difficult to measure. But the most dangerous aspect is that "Technical Debt items are contagious, causing other parts of the system to be contaminated with the same problem, which may lead to nonlinear growth of interest." [1] Here's a case study of one such event; unmanaged tech debt caused interest costs to spiral catastrophically out of…
By Dylan Tack, Director of Engineering
November 14, 2017
Nosql gif

Say no to NoSQL AKA NewSQL is the future!

With the rise of Big Data™ and IoT we saw a large wave of NoSQL™ proponents. Everyone began to jump on the bandwagon and hype trains to use these technologies to service their persistence layers. It became a mantra and it seemed like the end of nigh for relational (SQL) databases. Some companies were steadfast in only using NoSQL™ stores, claiming this was all that was needed for their data and would not hear another word of ever using a traditional "SQL" database. Unsurprisingly, SQL is not…
By Joshua De Leon, Data & Analytics Architect
November 13, 2017
Django logo

Django 2.0 - Is your project ready?

Django 2.0 is in beta now. It's expected to be released in December 2017. The question remains, is the rest of the world going to be ready? Let's take a look at the history of Django versions and see why this might not be as tough of an upgrade as you might expect.
By Keith Dechant, Software Architect
November 6, 2017

Servers...yay or nay?

...On Serverless Infrastructure The what
By Alex Banks, Senior Developer
November 3, 2017
Railroad Junction Photo

Sum Algebraic Data Types in Haskell and Swift

"Grove Park Traincare Depot and sidings" (CC BY-SA 2.0) by train_photos Engineers at Metal Toad participate in a variety of continuing education such as the Hackathon, dedicated time for professional development, and various interest groups for a variety of topics like machine learning and iOS/Android development. Haskell I recently joined the interest group on functional programming in Haskell. We start with an introduction to Algebraic Data Types.
By Phil Tseng, Software Engineer
November 2, 2017

Ready for transformation?