Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    G

    Gopher Academy Blog

    blog.gopheracademy.com · Publication · on HN since 2013

    Gopher Academy publishes community articles about the Go language, covering servers, parsers, dependency management, and garbage collection.

    Visit blogHN submissions
    ProgrammingLanguages & Compilers
    What HN says

    HN links it for guides like exposing Go directly to the internet, which its author says is somewhat dated, and a Go versus Rails piece.

    Stats for nerds
    94HN people shared it
    175linked in comments
    1.6Kstory points
    Apr 2026last shared
    2014people per year2026

    Top posts on HN

    1. 1
      So you want to expose Go on the Internet
      4 people · 433 points · first shared 2016 · 140 comments on HN
    2. 2
      Some Tools for Go Lang That You Might Not Know Yet
      1 person · 129 points · first shared 2016 · 26 comments on HN
    3. 3
      Using Go Templates
      1 person · 120 points · first shared 2017 · 20 comments on HN
    4. 4
      Code Generation from the AST in Go
      1 person · 83 points · first shared 2015 · 14 comments on HN
    5. 5
      Cron as a filesystem
      3 people · 68 points · first shared 2015 · 17 comments on HN
    6. 6
      Advanced Encoding and Decoding Techniques in Go
      1 person · 62 points · first shared 2016 · 6 comments on HN
    7. 7
      Go Advent Day 2: Performance Improvements in Go 1.2
      1 person · 54 points · first shared 2013 · 7 comments on HN
    8. 8
      The Case Against Third Party Libraries (2014)
      4 people · 46 points · first shared 2014 · 28 comments on HN
    9. 9
      Composable Pipelines [in Go] Improved
      1 person · 41 points · first shared 2015 · 20 comments on HN
    10. 10
      Build a Christmas List with Martini
      1 person · 35 points · first shared 2013 · 10 comments on HN

    What HN people wrote when they linked it

    • derhuerstAug 2022

      There is a project called Peermaps that is building a full P2P stack for OSM-based maps:

      They convert Planet OSM and Natural Earth OSM dumps into the storage format used by their geospatial DB [1] and then distribute them using P2P file storage tools like IPFS [3] or hyperdrive [4].

      Because those storage tools make use of content addressing [5] and clever chunking [6], you can download only changes to the (converted) OSM dump.

      Because those tools are inherently P2P-focused and come with pluggable transports, the data representing the changes in the (converted) OSM dump don't have to be sent via the internet. For example, Mapeo [7] allows syncing "local" changes to OSM via USB sticks [8].

      [1] https://github.com/peermaps/eyros
      [2] https://github.com/peermaps/data
      [3] https://ipfs.io/#why
      [4] https://hypercore-protocol.org/guides/modules/hyperdrive/
      [5] https://docs.ipfs.tech/concepts/how-ipfs-works/#content-addressing
      [6] https://blog.gopheracademy.com/advent-2018/split-data-with-cdc/
      [7] https://www.digital-democracy.org/mapeo/
      [8] https://docs.mapeo.app/complete-reference-guide/mapeo-desktop-use/using-mapeo-desktop-to-manage-mapeo-mobile-data/syncing-data/synchronizing-with-a-file

    • farslanJan 2015

      I'm one of the Core authors of the Kite library (library for writing micro services). I wrote an extensive introduction here on GopherAcademy: http://blog.gopheracademy.com/birthday-bash-2014/kite-microservice-library/

      I think Gotalk and Kite have a lot of common (for example we have also kite.js, to talk with browsers). The mission of the Kite library is the same as with Gotalk, mainly to communicate two pieces of software in an easy way. However in order to achieve this Kite also has an inbuilt service discovery mechanism. I think this is really important because with time you are app number will increase and service discovery is a must have. There are many differences too, for example protocol (we use JSON).

      Congrats on shipping this, I'm really looking forward to see how it evolves and how you solve upcoming problems (such as poor network conditions where Websocket badly fails).

    • FiloSottileFeb 2019

      crypto/tls is designed and developed to be fit to be exposed directly to the Internet. The advice I wrote here is mostly dated (I really need to write a follow-up), but it's still indicative: https://blog.gopheracademy.com/advent-2016/exposing-go-on-the-internet/

      [Updated to add] TLS 1.3 is opt-in because despite years of improvements, it can still hit compatibility issues with broken or legacy peers. (Search for "TLS 1.3" on the Go issue tracker if you are curious.)

      0-RTT is blocked on figuring out good, safe APIs for it. I feel like I am 80% of the way there for servers (just have to figure out how to make it opt-in per http.Handler instead of opt-out), while for clients I have no idea how to fit resending in io.Writer.

    • krenelFeb 2020

      Well, the parameter of a Timer is of type Duration:

      A Duration represents the elapsed time between two instants as an int64 nanosecond count. The representation limits the largest representable duration to approximately 290 years.

      Which is not really good because we have to calculate the time between now() and Saturday. If "wall time" changes, the scheduler will not be triggered when expected.

      In that case I would not rely on Timer to use it in a cron-like fashion, or trigger a Ticker every second, check the _current_ wall time, and decide if anything needs to be done.

      You can read more about Timers, Tickers and Sleeps in this (pretty interesting) article[1]

      [1] https://blog.gopheracademy.com/advent-2016/go-timers/

    • twotwotwoDec 2018

      Re: showing bottlenecks, the Go latency tracer may be a neat reference point; it doesn't find serial parts automatically, but it shows the execution timeline so that you can see them. Besides serial bottlenecks, it can be useful for seeing where you blocked waiting on I/O and so on:

      https://blog.gopheracademy.com/advent-2017/go-execution-tracer/

      There might already be similar tools for Rust; I know less about what's available there.

      (Go folks also added some tools for tracing across RPCs, which is less relevant to what you said but just kinda independently neat: https://medium.com/observability/debugging-latency-in-go-1-11-9f97a7910d68)

    • jweirApr 2015

      I like Go, and I am replacing aspects of Rails apps with Go, but for a lot of web app uses, Rails is really, really good.

      Hashicorp, who has a very high Go competence, migrated away from Go to Rails for their web service.

      http://blog.gopheracademy.com/advent-2014/atlas/

      > Once we decided to evaluate other technologies for our web service, we had a few choices. Based on having Rails experience and the maturity of that tooling we saw it as the most pragmatic option. As we began our initial port, we realized that over two weeks worth of work in Go had been replaced in just a few hours in Rails. We were sold.

    Related

    Go Blogblog.golang.org529 people

    Go 2, here we come

    Go Blog
    Company · last shared 2026
    Peter Bourgonpeter.bourgon.org38 people

    Go best practices, six years in

    Peter Bourgon
    Personal · last shared 2025
    Sourcegraph Blogabout.sourcegraph.com156 people

    An ex-Googler’s guide to dev tools

    Sourcegraph Blog
    Company · last shared 2024
    Applied Goappliedgo.net25 people

    Perceptrons – the most basic form of a neural network

    Applied Go
    Personal · last shared 2026
    Rust Blogblog.rust-lang.org533 people

    Announcing Rust 1.0

    Rust Blog
    Company · last shared 2026
    Erlang/OTP Blogblog.erlang.org34 people

    Erlang/OTP 24 highlights

    Erlang/OTP Blog
    Company · last shared 2021
    DailyJSdailyjs.com112 people

    Backbone.js: Hacker's Guide

    DailyJS
    Publication · last shared 2017
    Stack Overflow Blogstackoverflow.blog1.1k people

    How Dwarf Fortress is built

    Stack Overflow Blog
    Company · last shared 2026