Featured

Coding and learning with VS Code on Chromebooks

December 3, 2020 by Alessandro Segala, @ItalyPaleAle For the last few years, Chromebooks running Google Chrome OS have been providing an alternative to "traditional" laptops. Thanks to lots of choices, from very affordable models to high-end ones, Chromebooks are...

Hello, GoLand 2020.3!

Today is a great day because GoLand 2020.3 is polished and ready to be delivered to you! It is the third and the last release of this year. In this version, you will find a new option to explore goroutine dumps in the debugger, the ability to stop a debug session...

GoLand 2020.3 RC Now Available!

Great news for today! GoLand 2020.3 Release Candidate is out. If no critical issues are found, this build will become the official release version. As usual, you can get this RC build via our Toolbox App, from the website, as a snap package (for Linux), or directly...

Experimenting with Go Type Parameters (Generics) in GoLand

In today’s article, we will experiment with generics in Go, and their latest form, Type Parameters. Before we start, let’s take a quick look at the proposal’s history. History of generics in Go Generics have been some of the most desired language features since Go’s...

GoLand 2020.3 Beta 2 is Here!

We’re getting closer and closer to the release of GoLand 2020.3! The Beta 2 build is here with a bunch of bug fixes! You can get this build through the Toolbox App, by downloading it from the website, or by using a snap package (for Ubuntu). Or you can update from...

GoLand 2020.3 Goes Beta!

GoLand 2020.3 Beta is out! :collision: The Beta is quite stable in comparison to the Early Access Program builds, but please keep in mind that there may still be some rough edges here and there. The Beta build is usually the last build in the EAP cycle that does not...

Eleven Years of Go

Russ Cox, for the Go team10 November 2020 Today we celebrate the eleventh birthday of the Go open source release. The parties we had for Go turning 10 seem like a distant memory. It’s been a tough year, but we’ve kept Go development moving forward and accumulated...

Pkg.go.dev has a new look!

Julie Qiu10 November 2020 Since launching pkg.go.dev, we’ve received a lot of great feedback on design and usability. In particular, it was clear that the way information was organized confused users when navigating the site. Today we’re excited to share a redesigned...

Hiring: Senior Software Engineer at Invision

U.S. Equal Opportunity Employment Information (Completion is voluntary) Individuals seeking employment at InVision are considered without regards to race, color, religion, national origin, age, sex, marital status, ancestry, physical or mental disability, veteran...

Shell Scripting with GoLand 2019.2

Go developers may rely at times on shell scripts to perform various tasks. In this post, we’ll have a look at the new builtin support for Shell scripting in GoLand 2019.2. First, we need a new shell script file, let’s call it hello.sh. As you have probably...

Introducing GoLand 2020.1 — Even Smarter and Faster

Hooray, GoLand 2020.1 is out! In this new version of GoLand, you will find a variety of upgrades for Go Modules support, as well as code-editing features that require little to no interaction from the user and an expanded code completion family. On top of that, there...

GoLand 2019.3.3 is out!

Download GoLand 2019.3.3 via the Toolbox App, update from an earlier version by using Help | Check for Updates command, or use a snap package (for Ubuntu), or just download a copy from our website. Download GoLand 2019.3.3 The main aim of this bug-fix update is to...

Hello, GoLand 2019.1!

We’ve just released GoLand 2019.1 that we want to introduce to you! GoLand 2019.1 gets built-in Memory, CPU, Block and Mutex profilers, enhances the debugger with advanced features, adds new refactorings, and alerts you about potential errors of using nil in...

Hello, GoLand 2020.3!

Today is a great day because GoLand 2020.3 is polished and ready to be delivered to you! It is the third and the last release of this year. In this version, you will find a new option to explore goroutine dumps in the debugger, the ability to stop a debug session...

Introducing GoLand 2020.2!

Today brings the release of GoLand 2020.2, and it’s already waiting to be installed on your machines. What’s inside? New features for Go modules, better presentation of possible problems and weak places in your code, new code inspections, new code editing...

GoLand 2020.2.3 Is Here!

Time to update! GoLand 2020.2.3 is out with lots of bug fixes and new features. You can update to 2020.2.3 by: Downloading it from the website. Updating via the Toolbox App. Applying a patch on top of 2020.2.2 or 2020.1.4 (go to Help | Check for Updates). Or using a...

Debugging in GoLand – Windows minidumps

A while back we talked about debugging the core dumps produced on Linux systems. Since then, the IDE has had an update that allows it to debug the equivalent memory dumps produced on Windows systems, called minidumps. As with core dumps, minidumps can be analyzed on...

Running Go applications using Docker Compose in GoLand

Today we’ll be continuing our series on how to use Docker to run and debug Go applications. In this post, we’ll use Docker Compose to run and debug our application. For this article, we’ll be using the source code here and we’ll switch to the...

GitHub Actions: first impressions

I've been using Travis CI fairly extensively since 2013, when I moved my personal OSS projects from Bitbucket to GitHub. It's a great service and a much-appreciated boon to the open-source community. However, since Travis announced that their .org variant is shutting...

Writing multi-package analysis tools for Go

In my posts about embedding in Go last month, I provided multiple examples of different kinds of embeddings from the Go standard library. How did I find these examples? I wish I could say it all comes from a deep familiarity with the breadth and depth of the standard...

Embedding in Go: Part 3 – interfaces in structs

August 19, 2020 at 19:54 Tags Go This post is part 3 in a series describing the kinds of embedding Go supports: Structs in structs (part 1) Interfaces in interfaces (part 2) Interfaces in structs (this part) Embedding interfaces in structs At first sight, this is the...

Embedding in Go: Part 2 – interfaces in interfaces

August 17, 2020 at 17:48 Tags Go This post is part 2 in a series descibing the kinds of embedding Go supports: Structs in structs (part 1) Interfaces in interfaces (this part) Interfaces in structs (part 3 - TBD) Embedding interfaces in interfaces Embedding an...

Embedding in Go: Part 1 – structs in structs

August 15, 2020 at 05:43 Tags Go Go doesn't support inheritance in the classical sense; instead, in encourages composition as a way to extend the functionality of types. This is not a notion peculiar to Go. Composition over inheritance is a known principle of OOP and...

An Intel 8080 assembler and online simulator

While going through Charles Petzold's "Code" book again, I was looking for an easy-to-use online assembler and simulator for the classic Intel 8080 CPU, but couldn't find anything that fit my needs exactly. There are some well-done tools out there, but they seem to be...

How to dump the GOSSAFUNC graph for a method

The Go compiler’s SSA backend contains a facility to produce HTML debugging output of the compilation phases. This post covers how to print the SSA output for function and methods. Let’s start with a sample program which contains a function, a value...

You don’t need virtualenv in Go

Programmers that come to Go from Python often wonder "do I need something like virtualenv here?" The short answer is NO; this post will provide some additional details. While virtualenv in Python is useful in many situations, I think it'd be fair to divide them into...

Code Republic USA: Rust vs Go – Meetup

Hi reddit family, I'm hosting a Meetup next week on December 10th 5:30 EST. (I hope it's okay to post this here) My meetups have one rule and that's no selling. These are purely fun and educational events for people who want to learn! We will be discussing two of the...

Question: input string with predefined values

Hi all, how can I define a parameter that can only have certain values ? f.e. func setFavouriteFruit(f string){...} , where f can only be “apple”, “mango” and “others”. It occurs to me that I can make a check function and use it right at the beginning of the...

mongo driver 1.4.4 with server version < 4.2

Hello everyone, i run a lot of test in array mode where I create and delete database. Everything was fine (average of 7ms) with globalsign mgo driver and my mongo in 3.6 version (docker). I use now the official mongo driver in 1.4.4 version and my response_time become...