The Central Hub of Toad Knowledge

lambda

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
Screen capture of a phone depicting the widget.

Momento Mori

In April of 2017 I put a widget on my phone that reminds me that I’m going to die. This is how it improved my life.  A long time ago I learned about the concept of Momento Mori. It’s a simple phrase that is held up by the trussing of history and hardened by philosophy. It means: “Remember that you must die." 
By Matt Thogerson, Product Manager
October 31, 2017
Finger pushing the publish button

Push the publish button already

The most important measure of progress in building blogging expertise is not word count, it’s how many timers you hit the publish button. Every post is either a rock or a gem dropped into the water; the rocks will sink and be forgotten but the gems will be scooped up and shared.  Drop enough rocks in the water and you are more likely to create a gem.  So push the publish button already.
By Joaquin Lippincott, CEO
October 31, 2017

Proxying MS SQL connections using PuTTY

Connecting to a Microsoft SQL Server database isn't too hard, most of the time. But, what if the database is in your office, and you want to access it remotely, but you don't have a VPN? There is another way to connect, using PuTTY and port forwarding. All you need is a server in the office which accepts SSH connections and can connect to the SQL Server. This will serve as a gateway or makeshift proxy server. With the proper port forwarding setup, you can connect to your database from anywhere.
By Keith Dechant, Software Architect
October 28, 2017
building blueprints

The Art of Sprinting: It’s Not Just for Software Development

As a sequel to the article I wrote last month about the process and technology improvements I helped design/build firm Design Platform make earlier this year, I wanted to highlight another change that they implemented that transformed their workflow efficiency: Two week sprints.
By Hayli Hay, Director of Client Services
October 24, 2017

Leveraging Structs and Generics in the Networking Layer with Swift 4 (An update to objc.io Swift Talk)

Swift Talk #1 and #8 introduces an approach (hereinafter alternative approach) to using structs and generics to build a networking layer in Foundation. The original code was written in Swift 2.2. Here, I will make an update for Swift 4, incorporating the use of newly available JSON parsing features. I will also show how it could be extended to fetch images.
By Phil Tseng, Software Engineer
October 23, 2017

Q4 Hackathon Theme: Machine Learning & Data Science

I was dusting off my copy of Ray Kurzweil's The Age of Spiritual Machines today, and found a fascinating chart (adapted below). The book was written in 1998; it's interesting to reflect nearly 20 years later we're more or less on schedule. $1000 will buy you an electronic brain with a "thinking" capacity somewhere between a mouse and human.
By Dylan Tack, Principal Engineer
October 21, 2017

Origin Protection with AWS WAF & Shield

Amazon has been steadily improving their CloudFront CDN offering with WAF (Web Application Firewall) capabilities. This is a great feature, however it's ineffective if origin servers can be attacked directly, bypassing CloudFront. With a little extra work, access to the origin can be restricted. The solution is to add a secret header value at the edge, and configure the load balancer to block requests that are missing this secret. This is necessary because CloudFront distributions are not…
By Dylan Tack, Principal Engineer
October 12, 2017

Git: Push All Branches to a New Remote

Here's a scenario some of you might have encountered with your Git repositories. You have a working copy of a Git repo, say from an old server. But you only have the working copy, and the origin is not accessible. So you can't just fork it. But you want to push the whole repo and all the branch history to your new remote. This is possible if your working copy contains the tracking branches from the old remote (origin/branch1, origin/branch1, etc.). If you do, you have the entire repo and…
By Keith Dechant, Software Architect
October 9, 2017

Ready for transformation?