Posts

Showing posts from May, 2021

6 Critical Reasons Beginner Programmers Should Learn JavaScript in 2021

Image
The post 6 Critical Reasons Beginner Programmers Should Learn JavaScript in 2021 first appeared on Qvault . “Why learn JavaScript?” I asked my sister when she was in college and starting to pick up the fundamentals of JavaScript. “Isn’t it ancient? Do people still use it?”  I was surprised to learn that JavaScript was the most used programming language in 2020, but I shouldn’t have been – it’s held that spot for the past eight years, according to StackOverflow’s developer survey . It’s a really popular language for mobile apps and web development especially. You’re looking at a website built with JavaScript right now.  As the no-code movement gains a foothold, beginner programmers might wonder why they learn JavaScript at all, given there are endless numbers of JavaScript frameworks providing ready-to-use code, and many websites and apps can be built entirely free of code. To those naysayers, I will only say that it’s always worth understanding how something works before you sta

Comprehensive Guide to Dates and Times in Go

Image
The post Comprehensive Guide to Dates and Times in Go first appeared on Qvault . Keeping track of time in code has long been a developer’s nightmare. While no language or package manages time perfectly, I’m of the opinion that Golang does a pretty good job out-of-the-box. This full tutorial is designed to answer ~90% of the questions you’ll have about managing time in Go. Table of Contents Overview – How dates and times are stored in Go Get the current time with time.Now() Create a time object for a specific date Printing, parsing, and formatting times in Go Time durations Convert between separate timezones Get the timezone from an existing time object Create a new time.Location object Convert a time from one location to another Custom timezone name Add and subtract time Add time and duration Get difference between two times Compare two times to see which comes after the other Intervals, sleeping, and tickers Force the current goroutine to sleep Execute

Continuous Deployments != Continuous Disruptions

Image
The post Continuous Deployments != Continuous Disruptions first appeared on Qvault . Luckily, I’ve met very few engineers in my career who are outright opposed to continuous deployment. That said, I have met some, and I think their hesitation is usually rooted in the myth that continuous causes more disruptions to end-users than a batched release cycle. What is continuous deployment? Before we get into the nitty-gritty of why continuous deployment (CD) is almost always better than batched releases, let’s define some terms. Atlassian’s definition of CD is close, but I’m going to modify it a bit for my purposes. Unlike them, I don’t think CD requires continuous integration testing, but why you wouldn’t run tests is beyond me. Continuous Deployment (CD) is a software release process that deploys new versions to a production environment when certain conditions in a code repository are met. – Me For example, I work a lot in Kubernetes , so my CD often consists of a Github Actions

The 10x Meeting – Solving for Too Many Meetings

Image
The post The 10x Meeting – Solving for Too Many Meetings first appeared on Qvault . Perhaps you’ve heard of the fabled 10x developer (or 10x engineer) – the one on the team that’s 10x as productive as their average colleague. While many, including myself, doubt the existence of such people, I do think there are meetings that are 10x as productive as the average meeting . My goal in this article is to break down their properties so we can have 10x fewer meetings. What’s the purpose of a meeting? Meetings are a communication mechanism. In the context of software development, most “actual work” falls under one of the following tasks. Coding Documenting Testing Deploying Designing Architecting Meetings are none of these things. Meetings are ways for us to communicate about these things. Meetings serve the same purpose as an email, a call, or a slack channel – they’re just another medium through which we can talk about how to accomplish tasks. Why a meeting instead of an ema

Concatenating with strings.Builder Quickly in Golang

Image
The post Concatenating with strings.Builder Quickly in Golang first appeared on Qvault . The Go standard library makes concatenating strings easy. Concatenation is just a fancy word for adding strings together to make a larger string. For example, if we concatenate "hello" , " " and "world" we’d get "hello world" . The built-in fmt.Sprintf function takes a format and a variadic list of interfaces as input. func Sprintf(format string, a ...interface{}) string The formatting option lets us template out how the final string will look, then we can add inputs that will be interpolated into the string. s := fmt.Sprintf("%v has been subscribed since %v.\n", user.Name, user.CreatedAt) %v is a simple token that will be replaced by the default format of whatever the given arguments are. In our case, it was a string and a time.Time . Check out the documentation for all the formatting options. Efficient string concatenation Go 1.10+