(Very) Basic Intro to Elliptic Curve Cryptography

Elliptic curve cryptography is an efficient modern approach to public-key cryptosystems. In this introduction, our goal will be to focus on the high-level princ | Continue reading


@qvault.io | 3 years ago

Basic Intro to Lattices in Cryptography

By Lane Wagner - @wagslane on TwitterLattice-based cryptography has been coming into the spotlight recently. In January 2019, Many of the semifinalists | Continue reading


@qvault.io | 3 years ago

Manager Can’t Code? They Shouldn’t Be Your Manager

Managers who can't code are an outdated artifact of corporate America circa 2005. The best managers that I've had spend ~80% of their time coding, architecting, | Continue reading


@qvault.io | 3 years ago

SHA-256 Step-by-Step

SHA-2 (Secure Hash Algorithm 2), of which SHA-256 is a part, is one of the most popular hashing algorithms out there. In this article, we are going to break dow | Continue reading


@qvault.io | 3 years ago

Future of Education – Gamify Learning and Focus on Mastery

We just launched Qvault Classroom and can't be more excited. Our first crash course in Go, "Go Mastery" is now available! We teach students by allowing them to | Continue reading


@qvault.io | 3 years ago

Finally Getting Lint on Save with vs Code to Work (Go)

Go has hard opinions about how you should style and format your code. The big upside of this is that you don't need to spend hours setting up tools like ESLint, | Continue reading


@qvault.io | 3 years ago

Make, New and Literals Cheat Sheet – Slice and Map Initialization in Go

There are quite a few ways to create new maps and slice in Go. Which one is best? Or perhaps better asked, which one is best in your situation? Let's take a loo | Continue reading


@qvault.io | 3 years ago

An Intro to Quantum Mechanics; Google’s Claim to Quantum Supremacy

The science that deals with the description of the motion and interaction of subatomic particles is known as Quantum Mechanics. Traditional computers utilize th | Continue reading


@qvault.io | 3 years ago

How to Get Consistent Line Breaks in vs Code (LF vs. CRLF)

Ever had the problem where you submit a pull request and the diff is waaaaay bigger than it should be? The code looks identical but GitHub is telling you that i | Continue reading


@qvault.io | 3 years ago

Simple Setup – Vue Linting in vs Code

I'm a gopher by nature, so I expect consistent styling and linting in my codebases. More importantly though, I don't like to think about styling. I like to type | Continue reading


@qvault.io | 3 years ago

Show HN: Go-CoNLLU – Some Much Needed Machine Learning Support in Go

Python is commonly seen as the AI/ML language, but is often a dull blade due to unsafe typing and being slow, like really slow. Many popular natural language pr | Continue reading


@qvault.io | 3 years ago

Sorting in Go – Don’t Reinvent This Wheel

Sorting is a common task in programming, and for that reason most languages have a default sorting algorithm in their standard library. Go is one such language. | Continue reading


@qvault.io | 3 years ago

Leave Scrum to Rugby, I Like Getting Stuff Done

Scrum is a buzzword, the virtue signal of choice for middle-management in software organizations.If your goal as a manager is to implement a system by which | Continue reading


@qvault.io | 3 years ago

Loops in Rust; Breaking from Nested Loops

Looping in Rust isn't the same as standard C-style languages. The syntax is different and there are some powerful options that make looping easier. First, let's | Continue reading


@qvault.io | 3 years ago

Variable Shadowing in Rust – “Let” Is Immutable but Not Constant

Let's take a look at some of the common pitfalls with the keywords let and mut. Then, we will throw learn how immutable != constant by using variable shadowing. | Continue reading


@qvault.io | 3 years ago

Quantum Programming 101: Back end Monitor

Introduction In a previous tutorial we showed how you can get basic information on all quantum devices using backend_overview(). While this function is great to get information on all quantum ... Read More | Continue reading


@qvault.io | 3 years ago

Rust vs. Go – Which Is More Popular?

Go and Rust are two of the hottest compiled programming languages. I develop in Go full-time and love it, and I’m learning more about Rust recently – its an exciting ... Read More | Continue reading


@qvault.io | 4 years ago

Range over Ticker in Go with Immediate First Tick

The Go standard library has a really cool type – Ticker. Tickers are used when you want to do something at a regular interval, similar to JavaScript’s setInterval. Here’s an ... Read More | Continue reading


@qvault.io | 4 years ago

(Very) Basic Intro to White-Box Cryptography

White-box cryptography combines methods of encryption and obfuscation to embed secret keys within application code. The goal is to combine code and keys in such a way that the two ... Read More | Continue reading


@qvault.io | 4 years ago

Using ‘Go Generate’ to Deploy Multi-Process Apps

In microservice architectures, it is fairly common to have a project that includes different worker types. A Makefile can be used to manage the creation of multiple programs, but the ... Read More | Continue reading


@qvault.io | 4 years ago

Quantum Programming 101: Superdense Coding Tutorial

By Macauley Coggins What is Superdense coding ? Superdense coding is a quantum communications protocol that allows a user to send 2 classical bits by sending only 1 qubit. The ... Read More | Continue reading


@qvault.io | 4 years ago

Golang Conversions – Ints to Strings and Strong Typing

Go is a strongly typed language, which means at any point a developer should know exactly what type of value they are dealing with. For example, if we have a ... Read More | Continue reading


@qvault.io | 4 years ago

How to Separate Library Packages in Go

I’ve often seen, and have been responsible for, throwing code into packages without much thought. I’ve quickly drawn a line in the sand and started putting code into different folders ... Read More | Continue reading


@qvault.io | 4 years ago

Show HN: Go-TinyDate, the Missing Golang Date Package

time.Time makes dealing with dates and times in Go a breeze, and it even comes bundled in the standard library! However, a time.Time{} struct uses more than 24 bytes of ... Read More | Continue reading


@qvault.io | 4 years ago

Best Practices for Writing Clean Interfaces in Go

Interfaces allow us to treat different types as the same type when it comes to specific behaviors. They are central to a Go programmers toolbelt and are often used improperly by new Go developers… leading to hard to read and buggy code. Recap on Interfaces Let’s look to the stand … | Continue reading


@qvault.io | 4 years ago

Wrapping Errors in Go – How to Handle Nested Errors

By Lane Wagner @wagslane on Twitter The paradigm of errors as a type, rather than something to be thrown and cause panics, allows for more control of how to handle “bad” state. It also forces developers to think about errors at every step. What will go wrong here? How should I ha … | Continue reading


@qvault.io | 4 years ago

How Do Brute-Force Attackers Know They Found the Key?

Brute force attackers guess passwords, passphrases, and private keys in an attempt to eventually get the right answer and crack the security of a system, but how do they know when they have the right key? It depends on the system. Let’s answer the question three times, once for t … | Continue reading


@qvault.io | 4 years ago

Why Is Exclusive or (XOR) Important in Cryptography?

If you are getting into cryptography, or just trying to understand the fundamentals, you may have noticed that the exclusive-or operation is used quite often, especially in ciphers. What is XOR (⊕)? XOR, or “exclusive or” operates on binary data. It returns true if both of its in … | Continue reading


@qvault.io | 4 years ago

JavaScript vs. Java – Differences, Similarities, and History

By @wagslane (twitter) JavaScript and Java confuse many new programmers. They sound so similar, so one might think they have the same use-cases, or perhaps the same company created both languages. Neither of those hypotheses is true! Let’s go over the differences and history in t … | Continue reading


@qvault.io | 4 years ago

JavaScript Map Function Explained – A Deep Dive

We are going to walk through the JavaScript map function, and I’ll explain how it works in a simple way. Later in the article, we will do a deep dive into some more advanced concepts regarding the map function and its uses. Map Function Syntax From Mozilla’s definition: The Array … | Continue reading


@qvault.io | 4 years ago

Logging for Gophers – Idiomatic Log Strategies in Go (Golang)

In this article, I’m going to cover some rules of thumb for logging in go, as well as some functions you may not have heard of that can make your debugging life easier. Rule #1 – Use Errors Where Appropriate, Not Strings Go has a built-in error type, which allows developers to ea … | Continue reading


@qvault.io | 4 years ago

(Very) Basic Intro to Hash Functions (SHA-256, MD-5, etc.)

This is going to be a basic introduction to hash functions. I will assume most of my audience is here to gain an understanding of why hash functions are used and the basic idea of why they work. My goal is to explain it in a general sense, I will be omitting proofs and implementa … | Continue reading


@qvault.io | 4 years ago

(Very) Basic Intro to Elliptic Curve Cryptography

This is going to be a basic introduction to elliptic curve cryptography. I will assume most of my audience is here to gain an understanding of why ECC is an effective cryptographic tool and the basics of why it works. My goal is to explain it in a general sense, I will be omittin … | Continue reading


@qvault.io | 4 years ago

(Very) Basic Intro to Key Derivation Functions (Argon2, Scrypt, etc.)

A key derivation function, or KDF, derives one or many secret keys from a secret value. KDFs are quite similar to hash functions, but learn the difference! | Continue reading


@qvault.io | 4 years ago

(Very) Basic Shamir’s Secret Sharing

By @wagslane (twitter) Adi Shamir’s secret sharing is an algorithm used to share ownership of a secret among a group of participants. In order to calculate the original secret, a minimum number of shares must be used. Example Problem Let us imagine that a family of four shares a … | Continue reading


@qvault.io | 4 years ago

Qvault’s Lead Engineer Interviewed on “Running in Production”

Check out the podcast here: https://runninginproduction.com/podcast/6-qvault-is-an-open-source-tool-to-manage-passwords-and-crypto-keys First off, thanks to Nick for having me on the show! In this episode of Running in Production, I talk with Nick about about how we built Qvault, … | Continue reading


@qvault.io | 4 years ago

How Game Dev and Physics Constants Made Me Think About Religion

I am an atheist and developer, I've found it surprising how often these two identities collide. | Continue reading


@qvault.io | 4 years ago

God’s Irreducible Complexity Debunked Using Computer Science?

Many creationists and theists invoke the argument of irreducible complexity in an attempt to discount the theory of evolution. So… what is irreducible complexity? Irreducible complexity (IC) involves the idea that certain biological systems cannot evolve by successive small modif … | Continue reading


@qvault.io | 4 years ago

Percolate Queries in Elasticsearch Make Alerting a Breeze

Once upon a time, a company I worked for had a problem: We had thousands of messages flowing through our data pipeline each second, and we want to be able to send email and SMS alerts to ours users when messages matching specific criteria were seen. The first attempt at an alerti … | Continue reading


@qvault.io | 4 years ago

Benchmarking Array Traversal in JavaScript – Going Backwards Is Fastest

There are many ways to traverse an array in Javascript. In this benchmark, we will look at five different ways and the pros and cons of each. Keep in mind that these benchmarks were run in a Chrome browser on Codepen. Results will vary by browser/interpreter. For a working exampl … | Continue reading


@qvault.io | 4 years ago

Singletons in ES6 – The Good, the Bad, the Ugly

Singletons are fairly controversial as far as I can tell, especially in Javascript programming. Let’s take a look at what they are, when to (maybe) use them, and when not to. What is a Singleton? A singleton is a class that allows only a single instance of itself to be created an … | Continue reading


@qvault.io | 4 years ago

Purity in My Programming Please

Pure functions are often hyped up in the Javascript world, probably because of the abundance of state in front end applications. While pure functions have their downsides (i.e. inconvenience, potentially large argument lists), I believe they should be used as much as reasonably p … | Continue reading


@qvault.io | 4 years ago

Global Constant Maps and Slices in Go

For the most part, Go developers are pretty good about using constants for global configuration, rather than global variables. A problem arises however when we want a global constant slice or map. The go compiler doesn’t allow these more complex types to be set as constant. Many … | Continue reading


@qvault.io | 4 years ago

Constants in Go vs. JavaScript, and When to Use Them

Constants can be confusing and easy to misuse in Go if you are coming from an untyped language. In this article we will learn what constants are, and when it is best to make use of them. Most of the points I make here apply to general-purpose programming languages as a whole, but … | Continue reading


@qvault.io | 4 years ago

Systems and Processes That Aren’t in Code Are Terrifying

The dreaded: You may recognize this as a unix cronjob, a job that is scheduled to run on a server periodically. You may be thinking, “Why is that scary? We use cronjobs all the time!” If the code that manages the crontab is source controlled and exists within the organization’s c … | Continue reading


@qvault.io | 4 years ago

The Proper Use of Pointers in Go (Golang)

Go has become increasingly popular in recent years, especially in my local area. Go has been consistently displacing other backend languages like Ruby, Python, C# and Java. Go is wanted for its simplicity, explicitness, speed, and low memory consumption. Many developers that are … | Continue reading


@qvault.io | 4 years ago

Thinking about Recursion: How to Recursively Traverse JSON Objects

I work primarily on application-level programs, so I tend to not use recursion very often. However, every now and then I need a function that is best solved recursively. It is important to be able to recognize when a problem is best solved recursively, and to be able to write it … | Continue reading


@qvault.io | 4 years ago

How to Create a Bitcoin Savings Wallet Using Qvault and Sentinel

Qvault and Samourai’s Sentinel are a match made in heaven for anyone wanting a secure and easy solution for Bitcoin savings. Why? A watch-only wallet is perfect for users who want a high-security savings account. It is a two-app-setup where the seed (containing spending keys) is … | Continue reading


@qvault.io | 4 years ago