Skip Navigation
lyda Kevin Lyda @programming.dev

Software developer in the West of Ireland. Can also be found at https://mastodon.ie/@lyda

Posts 6
Comments 12

Go API server

gitlab.com Kevin Lyda / template-go-api · GitLab

This is a template project to demonstrate a method of generating an API server that is reliable and robust.

cross-posted from: https://programming.dev/post/5161514

> A template project for creating OpenAPI document driven API servers in Go.

0

Go API server

gitlab.com Kevin Lyda / template-go-api · GitLab

This is a template project to demonstrate a method of generating an API server that is reliable and robust.

A template project for creating OpenAPI document driven API servers in Go.

0
Conventional Commits: A specification for adding human and machine readable meaning to commit messages
  • And then

    git ci -am "Addressed performance issue in flurbin module
    
    The flubin module was designed as a successor to the flurbar module
    which took in...
    [...500 line essay on the hostory, problem and solution deleted...]
    
    Hopefully this will fully fix the issue discussed."
    

    for a one character change that adds an additional, and unrequired, semicolon.

  • The Absolute Minimum Every Software Developer Must Know About Unicode in 2023 (Still No Excuses!)
  • js console: document.querySelector('.pointers').hidden=true

  • Browse and Discover Manpages
  • ls /usr/share/man/man?/* will show you all the man pages on your system. I used to pick ones at random.

    Originally there were a number of manuals. Manual 1 had user commands. Manual 2 had system calls. Etc. You can type man NUMBER intro to read about that manual. You can also use man -k or appropos but I've also just used grep. These days they're compressed so zgrep.

  • The Absolute Minimum Every Software Developer Must Know About Unicode in 2023 (Still No Excuses!)
  • The mouse pointer background is kinda a dick move. Good article. but the background is annoying for tired old eyes - which I assume are a target demographic for that article.

  • How to affect the order of operations for "go generate"
  • Good answers. I like these. I like the more than one command in a file, that will work. And yes, should have read the source!

  • How to affect the order of operations for "go generate"

    Say I have go:generate directives in two files: one in the foo/ directory and one in the mock/ directory. The generated mock code will need data structures from the generated code in the foo module. Will go generate ./... reliably generate code in the correct order? What do I need to do to make that happen?

    2
    Bingo for reproducible builds
  • Well, nix would be an entire operating system. This is just for a build system to specify the versions of the tools to use.

  • Bingo for reproducible builds

    github.com GitHub - bwplotka/bingo: Like `go get` but for Go tools! CI Automating versioning of Go binaries in a nested, isolated Go modules.

    Like `go get` but for Go tools! CI Automating versioning of Go binaries in a nested, isolated Go modules. - GitHub - bwplotka/bingo: Like `go get` but for Go tools! CI Automating versioning of Go b...

    GitHub - bwplotka/bingo: Like `go get` but for Go tools! CI Automating versioning of Go binaries in a nested, isolated Go modules.

    Wonder if anyone here has been using bingo for reproducible builds. I've found it to be really good and wish I could find similar tooling for things like python for tools like yamllint.

    3

    Version control for ~

    Back in 2016 I finally moved from mercurial to a git-based tool for version controlling my home dir. I now have six repos. The link is to my first article on it. I use tagging on my blog so you can find the other vcsh articles from there. It makes switching machines super-simple and encourages me to write utilities to make my life easier.

    0
    Fossil: Fossil Versus Git
  • I love that fossil exists. I would never use it, but I'm glad cranks have something to work on.

  • Signing Commits in Git, Explained
  • I have never heard proper reasoning for squashing commits. I don't think sanitized history is useful in any context. Seeing the thought process that went into building something has been repeatedly useful in debugging things. It's also useful to me as a software engineering manager to help folks on my team get better. I could care less how "pretty" git log looks, but I care a hell of a lot about what git diff and git blame tell me. They help me figure out where issues actually are and how they came to be.

  • Signing Commits in Git, Explained
  • This is yet another reason not to squash commits.

  • Dotfiles matter
  • I use vcsh to manage my home directory - including but not limited to dot files. Written a number of posts on it over the years: https://phrye.com/tags/vcsh/

  • What do y'all think about mailing lists and IRC as sole communication channels?
  • Projects like that make me want to create a uucp network and so I can email a bang path address to get my patch.

  • Memoization in Go
  • I suppose I should be clearer on the features I want. I'd want to be able to store my cache in memcached or redis and I want the cached data to expire. So for one call, I might want to keep it for five minutes, but another one can stick around for 24 hours.

    The memorize package falls down there.

  • Memoization in Go

    I'm curious what people are doing for memoization in #golang. I've looked around and haven't found great libraries for this which makes me wonder if I'm pursuing the wrong solution to a problem.

    Caching the return values of functions based on the params has been useful to reduce load on downstream services, make things a bit faster on average and even add some level of consistency in functions that can be highly variable (which is an odd use case but nonethelass useful). But maybe there's a different pattern/idiom that's used in the Go ecosystem?

    3