Discover and read the best of Twitter Threads about #golang

Most recents (24)

Here's a list of some changes coming in #golang 1.19! The first beta will be out in a month, and the final release in early August.

Live tweeting from @GolangSheffield! Each change with a link, so you can read more.
1.18 shipped generics, which made it a large release that arrived six weeks late.

This means 1.19 got less development time than usual, to be able to release on time. The feature freeze is this week.
Starting out, lots of fixes and tweaks for type parameters AKA generics!

Some are being backported to Go 1.18, and some are still in progress. Overall, more polish.
Read 20 tweets
Hablando de que hay muchos recursos gratuitos y super completos para aprender tecnologías como #javascript, #golang y más...

Aquí un thread 🧵 express con los cursos gratis que conozco :)
web.dev, de Google, tiene cursos de responsive design, #PWA, #CSS, performance en la web, y más

🥳
developers.google.com/learn tiene un muchísimooos cursos! Introducción a @golang, Dart, Java, Python, Firebase, Android...

Todos gratis!
Read 10 tweets
Now is a great time to be looking for a job writing Go. My inbox is absolutely blowing up with startups and established companies that need Go developers. If you've been thinking about a job change, get your resume out there now! #golang
Go look on #jobs in gopher slack. Update your resume. Make sure to highlight any projects you've done in Go (whether at work or on the side), and don't forget to include contributions to other people's open source projects, those count!
If you have a blog, post about Go and share it on r/golang and twitter and wherever else the kids find blog posts these days. If you don't have a blog, make one! It doesn't have to be self hosted or fancy. It's the content that matters.
Read 4 tweets
🧵 Go 1.18 got released 🥳. Outside of generics, five new features we should be aware of.
tip.golang.org/doc/go1.18 #golang
👇
1. Fuzz testing

Fuzzing is about passing random data to functions in an attempt to find vulnerabilities or crash-causing inputs.

Imagine the following scenario where we have to implement a custom function to test whether a string starts with a prefix: Image
Sometimes, it can be quite cumbersome trying to think by ourselves about all the different cases to be tested. Fuzzing is here to help us with that: Image
Read 11 tweets
Can't wait to share the KMCP preprint with you, hope it's not too late. Thanks for reading and any feedback is welcome and appreciated. biorxiv.org/content/10.110…
We present a novel metagenomic profiling tool, KMCP, which not only allows for accurate taxonomic profiling of archaea, bacteria, and viral populations from metagenomic shotgun sequence data, but also provides confident pathogen detection for clinical samples of low depth.
We reimplement a modified COBS data structure to index reference genomes. The index size of KMCP is smaller than COBS, and the batch searching speed is increased by near 10 times. And the database construction is fast, taking only 25 min to index 47,894 genomes from GTDB.
Read 13 tweets
Today in #golang:

fmt.Println("What is truth?", true)

can output:

What is truth? false
because Go lets you do this:

`true := false`
The local variable `true` overrides the keyword!?

Go obstinately protects you from declaring an unused variable or importing an unused library.

But shadow a keyword? ooookaaaaay
Read 4 tweets
I am going to be solving a leet code question per day till the end of the year across all difficulty levels. My preferred languages will be Java and Golang. As a form of accountability, I will be posting my solutions here as a thread.

#Programming #100DaysOfCode
Today is the first day, and I solved the Two Sums.
Difficulty Level: Easy.
Language: Golang Image
Day 2: I solved the first missing positive problem.
Difficulty level: Hard.
Language: Golang

#SoftwareEngineering #Programming #LeetCode Image
Read 7 tweets
🚆I see the #webassembly train quickly gaining momentum. Here is a summary of all the action in this space over the last week. Exciting times! 🧵
Read 6 tweets
Sharing a project that aims to make fuzzing more accessible:

github.com/thepudds/fzgen

fzgen builds on Go 1.18 fuzzing, adding:
- Fuzz complex types (structs, interfaces, ...)
- Auto gen fuzzing wrappers from normal code
- Auto hunt for concurrency bugs

#fuzzing #golang 1/n
Some fun examples...

Fuzzing the syzkaller implementation without writing any code:

github.com/thepudds/fzgen…

2/n
Finding a data race without writing any code:

github.com/thepudds/fzgen…

3/n
Read 6 tweets
I have decided to share the #dev topics that I will learn or already know. I want to continue this for a long time. Maybe 100 days maybe even more. It will be difficult to make this sustainable, but I think it is necessary for self-motivation. It will be good in the long run. 🚀
#nDaysOfLearning
Day 2:
I continued with the Behavior and Structural Pattern and implemented it in #Golang.

Topics:
- Proxy
- Adaptor
- Iterator
- Observer
- Strategy
- Visitor
Read 9 tweets
Here's a list of some changes to look forward to in #golang 1.18! The first beta should be out in a month, and the final release in three months.

Each change with a link, so you can read more.
Of course, generics, also known as type parameters! Work started about two years ago, and the language changes are finally landing.

Full details here: go.googlesource.com/proposal/+/ref…
Only overshadowed by generics is native support for fuzzing! @dvyukov led the way with go-fuzz for many years, and @katie_hockman with @jayconrod brought native support for "go test".

go.dev/blog/fuzz-beta
Read 14 tweets
Time to celebrate. 🥳 We hit a nice milestone last week when @theHyphyDude submitted a pull request on our address-formatting project. The PR added a link to a #golang project that uses our templates.

So what is address-formatting?
github.com/OpenCageData/a…

🌍🧵👇
2/ Here's the problem: addresses all over the world are different. Different countries do things differently, and sometimes there are even differences within countries. Image
3/ Meanwhile the global OpenStreetMap community is continually collecting all kinds of data about the world, which is great. 💪🗺️ This can go to intense detail: every tree, park bench, foot path, etc. That's great, but ... Image
Read 10 tweets
How I write HTTP services in #golang has changed over the years... here's my current style.

(Please consider sharing this with somebody you know who's learning Go.)

It's a yarn... 🧶

1/13
I make a server type that holds the dependencies.

2/13
all routing goes in routes.go (makes it easy to find stuff, given a URL)

3/13
Read 13 tweets
A few months ago, as users started throwing more API traffic at the Akita client, we started seeing multi-GB memory spikes. 🙀

At first, we hoped for an easy solution. There was none.

This is the story of @markgritter's 25-day journey taming memory usage in a #golang client. 1/ Memory spikes in the Akita CLI
@markgritter The first thing @markgritter did, as you would do in most languages, was to profile the system for obvious bottlenecks.

There was one, in the #gopacket reassembly buffer. Memory was persisting even though it wasn't getting used.

Mark fixed this, but the problem persisted. 2/ Profile showing bottleheck in reassembly
@markgritter At this point, the team and I weighed possible next steps.

Since #golang is memory-managed (2x memory overhead no matter what 🙀) and does not expose much control over the garbage collector, we were worried that it was not possible to be able to get memory usage low enough. 3/
Read 10 tweets
⭐ PPV ⭐
My current Life Operating System

PPV stands for Pillars, Pipelines, and Views.

It is an incredible productivity system created by @augustbradley.

I have been using it for about a year now. Let's look at the basics.

2021-09-18 #30years30threads 18/30

A thread🧵⬇
/1 The Goal
The whole PPV system is about integrating systems to gain better focus and alignment, with knowledge resurfacing at the right time.

With PPV I tie my tasks to my goals, habits, and values and track my overall progress regularly.
/2 Pillars
Organize by Cross-Cutting Life Segments

This is where you define what categories your life involves.

For me this includes;
* Mind Expansion
* Health, Fitness & Sleep
* Husband, Father & Family
* Finances & Admin
* Hobbies & Entertainment
* Job & Career
Read 9 tweets
It's Follow Friday: Golang Edition! 🤩

Check below for who you should follow for A+ #Golang content on various platforms.

Please feel free to jump in and add your own! I'm always looking for more quality sources!

2021-09-16 #30years30threads 16/30

A #FollowFriday thread🧵⬇
Read 7 tweets
great news everyone! I have been permanently banned from all #golang community spaces!! this will be fun to watch play out huh
all the more impressive given I help to draft the CoC
well that's fun: go.dev/blog/conduct-2…

does any of this apply to me? absolutely not!

but I guess agitate on technical grounds for long enough and it doesn't matter
Read 6 tweets
Let's wrap up learning about the #Golang CLI

Go CLI; Help, Docs, and Miscellany

2021-09-16 #30years30threads 16/30

A thread🧵⬇
/1 Go Help

When diving into the #Golang CLI `go help` is your best friend.

It contains very detailed reports of each sub-component in the CLI.
(Think man pages, but just for go)

You can see all top-level options with `go help`, then dive deeper with `go help <topic>`.
/2 Go Doc

This is the go-to tool for exploring the #Golang standard library and other packages.

With Go Doc you can lookup docs for;
* packages
* consts
* funcs
* types
* vars
* structs
* more...

e.g. `go doc net/http.StatusOK` to see HTTP status consts defined in net/http.
Read 8 tweets
The Blockchain Bar Chapter 15 is released! 🍾

Check your inboxes!

Everyone who purchased the eBook is now getting a new bonus chapter with 30 extra pages on forks and consensus.

I hope you didn't make plans for weekend. Time to practice some blockchain programming in #golang! Image
Very handy feature @gumroad - I didn't know I can directly send an email to the customers so they download the new eBook version! Image
@gumroad The fork is scheduled for block number 35! Image
Read 6 tweets
#Learn 📚 #Linux🐧:

A thread

Some useful Linux terminal keyboard shortcuts you should know to increase productivity. 👇

#CodeNewbie #coder #computer #code #java #100DaysOfCode #golang #privacy #css #javascript #html #linuxfan #linuxwindows #linuxmint #linuxubuntu #linuxtips
1) Working With Processes📈
Use the following shortcuts⌨️ to manage running🏃 processes.
#linuxfan #linuxwindows #linuxmint #linuxubuntu #linuxtips #linux #programming #hacking #coding #python #cybersecurity #hacker #kalilinux #programmer #technology #coder #100DaysOfCode
2) Controlling the Screen💻
The following shortcuts⌨️ allow you to control what appears on the screen.

#linuxfan #linuxwindows #linuxmint #linuxubuntu #linuxtips #programming #hacking #coding #python #cybersecurity #hacker #kalilinux #programmer #technology #100DaysOfCode
Read 10 tweets
#Learn 🧠🐍#python: Sometimes when programming in python they're situations when you want to copy the contents of an existing list into another. Python has several ways of achieving that. In this thread you will learn different ways of achieving that with the help of examples. Image
1) Using the equal (=) sign operator:
Using = operator you can copy the contents of an existing list onto another/new list. But there's a problem with this method which I will explain on the next section. Image
The problem with the above method is that if you modify the new copied_fruits list the original list (fruits) is modified too, this is because the copied list (copied_fruits) is referencing/ pointing to same fruits list in memory.
Read 17 tweets
¿A alguien más le parece medio raro cómo de repente apareció el hashtag #TeVieronLasHuevas y se hizo la primera tendencia en un solo día? ¿Como que alguien nos está .. viendo las huevas?

¿Exploremos? #twitterapi #golang #postgres #dataviz
Digamos que queremos descargar la lista completa de tweets con ese hashtag para ver si encontramos algún patrón en los usuarios que lo tuitearon inicialmente. Tal vez muchos de estos usuarios fueron creados más o menos al mismo tiempo. Tal vez comparten más características.
Podemos usar el API de Twitter para hacer la búsqueda y un pequeño programa que descargue algunos datos sobre los tweets y sus autores. Existe una librería para #Golang que lo hace más o menos fácil. github.com/g8rswimmer/go-…
Read 19 tweets
#golang Top Tip — Go lets you express behavioral polymorphism with interfaces, but until generics land, you essentially can't express state polymorphism. So don't try. Seriously. Whatever hacks you have to do with interface{} or reflect or whatever are worse than the disease.
The empty interface{} and package reflect are tools of last resort, for when there's literally no other way to solve your problem. In practice, that means in library code that needs to operate on types that are unknown at compile time.
In application code, by definition, you know the complete set of types you'll ever have to deal with at compile time. So there's almost never a reason to use either of these hacks. You can always write type-specific versions of everything you need. Do that.
Read 3 tweets
Here's a short list of the changes to look forward to for #golang 1.17, to start landing once the merge window opens in a few weeks.

Don't get confused with 1.16, releasing next month. 1.17 will come out in seven months.

Each change with a link, so you can read more.
A register-based calling convention for Go functions. Backwards compatible, and should give 5-10% speed improvements across a range of applications.

github.com/golang/go/issu…
First class fuzzing support in the Go toolchain. This work has been happening behind the scenes in the dev.fuzz branch for some months, so I hope it will start landing for 1.17.

golang.org/s/draft-fuzzin…
Read 8 tweets

Related hashtags

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!