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
By Lane Wagner - @wagslane on TwitterLattice-based cryptography has been coming into the spotlight recently. In January 2019, Many of the semifinalists | Continue reading
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
I am an atheist and developer, I've found it surprising how often these two identities collide. | Continue reading
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
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
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
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
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
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
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
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
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
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 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