Go Icon

Go

Go is a programming language built to resemble a simplified version of the C programming language.
253 Stories
All Topics

Bill Kennedy ardanlabs.com

The why and what of Go modules

If you’re looking for a thorough primer of Go modules, Bill Kennedy has you covered: In this post, I will focus on the transition from GOPATH to modules and the problems modules are solving. Along the way, I will provide just enough of the semantics so you can have a better understanding of how modules work at a high level. Maybe more importantly, why they work the way they do. When you’re done with this, check out part 2 of the series about projects, dependencies, and gopls.

read more

Jerod Santo changelog.com/posts

5 things Rob Pike attributes Go's success to

As the saying goes… history doesn’t repeat itself, but it often rhymes. If you want to create a successful programming language (or at least understand how you might), it’s immensely valuable to learn from others who have done just that. on Go Time episode #100, two of Go’s creators (Rob Pike and Robert Griesemer) sat down to discuss the language’s success. Here’s 5 things they attribute to its success.

read more

Go github.com

Use HTTP/2 Server Push to create fast and idiomatic client-driven REST APIs

Around the advent of GraphQL, I found myself asking its proponents if HTTP/2 solves any of the same performance problems. Most of the answers were along the lines of, “it might, but that hasn’t been realized yet.” Well, Vulcain is here to realize it. Over the years, several formats have been created to fix performance bottlenecks impacting web APIs: over fetching, under fetching, the n+1 problem… Current solutions for these problems (GraphQL, JSON:API’s embedded resources and sparse fieldsets, …) are smart network hacks for HTTP/1. But these hacks come with (too) many drawbacks when it comes to HTTP cache, logs and even security. Fortunately, thanks to the new features introduced in HTTP/2, it’s now possible to create true REST APIs fixing these problems with ease and class! Here comes Vulcain! See also their comparison between Vulcain, GraphQL, and API formats.

read more

Jon Calhoun calhoun.io

Why can't we settle on a single application structure in Go?

Go Time panelist Jon Calhoun ruminates on a conversation started on episode 94 of the show: The goal of this article is it explore why exactly there isn’t a single app structure that is recommended to new Gophers, and the overall goal of this series is help newcomers to Go understand what choices are available to them so they can get started a little easier.

read more

Go github.com

Muon – GPU based Electron on a diet

Muon is a lightweight alternative to Electron written in Golang in about ~300 LoC, using Ultralight instead of Chromium. Ultralight is a cross-platform WebKit rewrite using the GPU to target embeded desktop applications that resulted in a fast, lightweight, and low-memory HTML UI solution that blends the power of Chromium with the small footprint of Native UI. Between this, NodeGui, and Catalina’s support for React Native, Electron is getting squeezed on all sides.

read more

Go github.com

Rudder is an open source Segment alternative

I’ve been a big fan of Segment since way back before they became our sponsors. The adapter pattern for marketing/analytics tools is a great idea and they’ve executed on it very well. I’m also a big fan of open source alternatives to commercial products. 😀 If the “Why Rudder?” section of the README (privacy & security, processing flexibility, unlimited events) has you nodding in agreement, this is worth a deeper look.

read more

Go watermill.io

Watermill – a Go library for working efficiently with message streams

intended for building event driven applications, enabling event sourcing, RPC over messages, sagas and basically whatever else comes to your mind. You can use conventional pub/sub implementations like Kafka or RabbitMQ, but also HTTP or MySQL binlog if that fits your use case. Check out the announcement post for more of the background on Watermill.

read more

JSON github.com

JSONC is a superset of JSON which supports comments

JSON formatted files are readable to humans but the lack of comments decreases readability. With JSONC, you can use block (/* */) and single line (//) comments to describe the functionality. Microsoft VS Code also uses this format in their configuration files like settings.json, keybindings.json, launch.json, etc. This is a Go-only implementation, but the concept is portable to any language (hint, hint).

read more

Go blog.arduino.cc

TinyGo on Arduino

Arduino announced they now work with TinyGo. To celebrate, they did a Q&A with Ron Evans on the Arduino blog. Why choose TinyGo over other languages? If software is eating the world, then Go is eating the world of software. The popularity of Go is still rapidly expanding, and TinyGo helps bring the new “enterprise standard” language down to the smallest of processors. Also as a compiled language, TinyGo can offer substantially better performance and size efficiency than that of interpreted languages like JavaScript and Python. If you haven’t yet, listen to our recent conversation with Ron Evans at OSCON 2019 to hear more about how “Go is eating the world of software.”

read more

Git github.com

A tool to monitor Git repos and automatically pull & push changes

gitomatic <path> 2019/08/03 00:16:48 Checking repository: /tmp/gitomatic-test/ 2019/08/03 00:16:48 Pulling changes... 2019/08/03 00:16:49 New file detected: hello_world.txt 2019/08/03 00:16:49 Adding file to work-tree: hello_world.txt 2019/08/03 00:16:49 Creating commit: Add hello_world.txt. 2019/08/03 00:16:49 Pushing changes... 2019/08/03 00:16:53 Sleeping until next check in 10s... 2019/08/03 00:17:03 Checking repository: /tmp/gitomatic-test/ 2019/08/03 00:17:03 Pulling changes... 2019/08/03 00:17:07 Deleted file detected: hello_world.txt 2019/08/03 00:17:07 Removing file from work-tree: hello_world.txt 2019/08/03 00:17:07 Creating commit: Remove hello_world.txt. 2019/08/03 00:17:07 Pushing changes...

read more

Go github.com

Use SQL to query & transform data from multiple databases & file formats

OctoSQL is a SQL query engine which allows you to write standard SQL queries on data stored in multiple SQL databases, NoSQL databases and files in various formats trying to push down as much of the work as possible to the source databases, not transferring unnecessary data. OctoSQL does that by creating an internal representation of your query and later translating parts of it into the query languages or APIs of the source databases. Whenever a datasource doesn’t support a given operation, OctoSQL will execute it in memory, so you don’t have to worry about the specifics of the underlying datasources. If you like writing SQL, you’ll probably like OctoSQL.

read more

0:00 / 0:00