Go Icon

Go

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

Chris Siebenmann utcc.utoronto.ca

Go is Google's language, not ours

Fellow Gophers and Go Time fans out there, I’d love to hear your thoughts on this post from Chris Siebenmann. Go has community contributions but it is not a community project. It is Google’s project. This is an unarguable thing, whether you consider it to be good or bad, and it has effects that we need to accept. For example, if you want some significant thing to be accepted into Go, working to build consensus in the community is far less important than persuading the Go core team. In general, it’s extremely clear that the community’s voice doesn’t matter very much for Go’s development, and those of us working with Go outside Google’s walls just have to live with that.

read more

Go github.com

Get unlimited Google Drive storage by splitting binary files into base64

A clever hack that is now being investigated by Google’s internal forums. How it works: Google Docs take up 0 bytes of quota in your Google Drive Split up binary files into Google Docs, with base64 encoded text Encoded file is always larger than the original. Base64 encodes binary data to a ratio of about 4:3. A single doc can store ~1 million characters. This is around 710KB of base64 encoded data.

read more

Kevin Goslar Hackernoon

Go is on a trajectory to become the next enterprise programming language

Clearly we’re a fan of Go — listen to Go Time — but, what is it going to take to make it succeed Java as the dominating enterprise programming language? This post from Kevin Goslar lays out the strengths of Go that make this a real possibility. Go — a programming language designed for large-scale software development — provides a robust development experience and avoids many issues that existing programming languages have. … Companies and open-source initiatives looking for a safe and forward-looking technology choice for creating large-scale cloud infrastructures in the coming decades are well advised to consider Go as their primary programming language. A large portion of modern cloud, networking, and DevOps software is written in Go, for example Docker, Kubernetes, Terraform, etcd, or ist.io.Many companies are using it for general-purpose development as well. The capabilities that Go enables have allowed these projects to attract a large number of users, while Go’s ease of use has enabled many contributions.

read more

Dave Cheney dave.cheney.net

Dave Cheney's "High Performance Go" workshop docs

If you haven’t attended the workshop directly, the next best thing is to learn indirectly by reading the workshop’s docs. The goal for this workshop is to give you the tools you need to diagnose performance problems in your Go applications and fix them. It’s licensed under the Creative Commons Attribution-ShareAlike 4.0 International license and the source is on GitHub.

read more

Damian Gryski github.com

Practices for writing high-performance Go

From writing and optimizing Go code to common gotchas with the Go standard library, Damian Gryski shared his thoughts on Go performance optimization and outlined best practices for writing high-performance Go code. Available in English, 中文, and Español. When and where to optimize — Every optimization has a cost. Generally this cost is expressed in terms of code complexity or cognitive load – optimized code is rarely simpler than the unoptimized version. But there’s another side that I’ll call the economics of optimization. As a programmer, your time is valuable. There’s the opportunity cost of what else you could be working on for your project, which bugs to fix, which features to add. Optimizing things is fun, but it’s not always the right task to choose. Performance is a feature, but so is shipping, and so is correctness.

read more

Fernand Galiana github.com

Popeye - a Kubernetes cluster sanitizer

Popeye is a utility that cruises Kubernetes cluster resources and reports potential issues with your deployment manifests and configurations. By scanning your clusters, it detects misconfigurations and ensure best practices are in place thus preventing potential future headaches. This is a read-only tool, which means it’s pretty safe to kick the tires. For the back story, check out Fernand’s announcement post.

read more

Uber Engineering Icon Uber Engineering

Cadence is Uber's new orchestration engine

Its focus is on executing async long-running business logic. Business logic is modeled as workflows and activities. Workflows are the implementation of coordination logic. Its sole purpose is to orchestrate activity executions. Activities are the implementation of a particular task in the business logic. The workflow and activity implementation are hosted and executed in worker processes. These workers long-poll the Cadence server for tasks, execute the tasks by invoking either a workflow or activity implementation, and return the results of the task back to the Cadence server. Furthermore, the workers can be implemented as completely stateless services which in turn allows for unlimited horizontal scaling.

read more

Matt Holt caddyserver.com

Caddy 1.0, Caddy 2, and Caddy Enterprise 😱

Some big news coming from Matt Holt and team behind the Caddy web server. Today, I am pleased to make a series of interconnected announcements, which marks a new beginning for the Caddy project and new opportunities for your websites and services: Caddy 1.0 released Reunified licensing Caddy 2 and Caddy Enterprise are now in development Partnership with Ardan Labs Should we get Matt on Go Time soon to talk through the details?

read more

VS Code github.com

Run VS Code on any server over SSH

sshcode is a CLI to automatically install and run code-server over SSH. It uploads your extensions and settings automatically, so you can seamlessly use remote servers as VS Code hosts. If you have Chrome installed, it opens the browser in app mode. That means there’s no keybind conflicts, address bar, or indication that you’re coding within a browser. It feels just like native VS Code.

read more

Go blog.containo.us

Back to Traefik 2.0 - gigawatts of routing power

There’s a major new version of Traefik in the works: For several months, the maintainer team has been working on a deep refactoring of the codebase to provide the firm foundations for the next iteration of Traefik, and we are ready to share this vision with you. Today, we’re announcing Traefik 2.0 alpha, the edge router built with the future in mind. The new core is here, help us finalize Traefik with the features you want!

read more

Go github.com

A roadmap to becoming a Go developer in 2019

The purpose of this roadmap is to give you an idea about the landscape. The road map will guide you if you are confused about what to learn next, rather than encouraging you to pick what is hip and trendy. You should grow some understanding of why one tool would be better suited for some cases than the other and remember hip and trendy does not always mean best suited for the job

read more

Diego Bernardes github.com

PipeHub - A programmable proxy server

The core idea of this project is to do more with less. PipeHub being a programmable proxy allow users to extend and customize it as needed. Features found in other servers can be added with Go packages. Not ready for production, but interesting nonetheless. Not sure if PipeHub is something that might serve you well? Here’s some pretty good advice to help you decide: If your requirement is covered by built-in features present on other servers like Nginx and Caddy, you’re better of with then. PipeHub shines when you need to add logic that traverses the responsibility of multiple servers…

read more

Dave Cheney dave.cheney.net

Practical Go — Real world advice for writing maintainable Go programs

This is Dave Cheney’s working document for his Practical Go workshop. So much wisdom shared. My goal over the next two sessions is to give you my advice for best practices writing Go code. This is a workshop style presentation, I’m going to dispense with the usual slide deck and we’ll work directly from the document which you can take away with you today. There’s also this page of the same name on his site, but I’m not sure if they’re directly connected.

read more

Go blog.golang.org

Go 2018 survey results are in

Todd Kulesza and Steve Francia shared the details of Go’s 2018 survey on the Go blog. This year we had 5,883 survey respondents from 103 different countries … For the first time, half of survey respondents are now using Go as part of their daily routine. The most common uses for Go remain API/RPC services and CLI tools. Automation tasks, while not as common as CLI tools and API services, are a fast-growing area for Go.

read more

Go github.com

Inlets – expose your local endpoints to the internet

inlets combines a reverse proxy and websocket tunnels to expose your internal and development endpoints to the public Internet via an exit-node. An exit-node may be a 5-10 USD VPS or any other computer with an IPv4 IP address. You may be wondering why this project needs to exist, since many like it have come before. The author addresses that right up front: Similar tools such as ngrok or Argo Tunnel from Cloudflare are closed-source, have limits built-in, can work out expensive and have limited support for arm/arm64. Ngrok is also often banned by corporate firewall policies meaning it can be unusable. Other open-source tunnel tools are designed to only set up a static tunnel. inlets aims to dynamically bind and discover your local services to DNS entries with automated TLS certificates to a public IP address over its websocket tunnel.

read more

Drew Devault drewdevault.com

Generics aren’t ready for Go

Have you ever seen someone write something to the effect of “I would use Go, but I need generics”? Perhaps we can infer from this that many of the people who are pining after generics in Go are not, in fact, Go users. The inertia of “what I’m used to” comes to a violent stop when they try to use Go. People affected by this frustration interpret it as a problem with Go, that Go is missing some crucial feature - such as generics. But this lack of features is itself a feature, not a bug.

read more

Martin Olsansky medium.com

The world’s easiest introduction to WebAssembly with Golang for JS developers

A cool/fun intro to Wasm where you build a game for cats (catch the red laser dot) completely in Go. The fact that WASM is still considered a MVP (MAP) and that you create a game like this, without writing a single line of JS, is amazing! CanIUse is already fully green, there is nothing stopping you from building WASM powered websites and apps.

read more

Manish R Jain blog.dgraph.io

Why the Dgraph team chose Badger over RocksDB

This blog post is about Badger, the key-value database that makes it all happen under the hood, housing all Dgraph data, including Raft logs. There are many key-value store options in Go-land. Still, the Dgraph team decided to roll their own solution 18 months back. Was it a bad case of NIH? A good idea? Would they do it all over again? This article answers those questions in-depth.

read more

GitHub github.com

A simple web server for serving static GitHub Pages locally

This is useful for making sure things look right before pushing your content up to GitHub for serving. It’s better than python -m http.server and the like because it handles lack of file extensions and absolute paths better. It doesn’t support Jekyll-based GitHub pages, but it will take your Markdown files and send them off to api.github.com/markdown for character-perfect rendering.

read more

Go github.com

Turn any program that uses STDIN/STDOUT into a WebSocket server

WebSocket-capable applications can now be built very easily. As long as you can write an executable program that reads STDIN and writes to STDOUT, you can build a WebSocket server. Do it in Python, Ruby, Perl, Bash, .NET, C, Go, PHP, Java, Clojure, Scala, Groovy, Expect, Awk, VBScript, Haskell, Lua, R, whatever! No networking libraries necessary. Stuff already built with this include a real-time Linux stats dashboard, an arbitrary REPL in the browser, and a tool that retrieves SQL data from a server with LiveCode. (Use at your own risk 😈)

read more

0:00 / 0:00