Skip to content

Instantly share code, notes, and snippets.

View adamierymenko's full-sized avatar

Adam Ierymenko adamierymenko

View GitHub Profile
### Keybase proof
I hereby claim:
* I am adamierymenko on github.
* I am adamierymenko (https://keybase.io/adamierymenko) on keybase.
* I have a public key whose fingerprint is F421 312D 3E58 D9B6 4E13 74F8 C887 7CF2 D7A5 D7F3
To claim this, I am signing this object:
@adamierymenko
adamierymenko / zerotier_rules_example.ztrd
Last active June 13, 2023 17:57
An example of what an advanced ZeroTier network rule set might look like
# This is an example from a work in progress, so final versions might
# be slightly different. Don't use as a guide after release!
# Define rule set macros
# Whitelist a TCP destination port on the network. Use this as a template to
# make your own rule sets for more advanced criteria like tag matches, etc.
# This works for both IPv4 and IPv6. Add an ethertype match to restrict it to
# one or the other.
macro tcp_whitelist_dest_port($port)
@adamierymenko
adamierymenko / go2-operator-overloading-idea.md
Last active September 1, 2018 23:58
Proposal for limited operator overloading in Go

After looking over some of the Go 2 generics proposals, I kept thinking about the primary utility of generics. For the most part it lies in collections, algorithms, and math code. For the latter however generics really don't help a whole lot without operator overloading. The versatility of C++ operator overloading combined with low or zero cost generics is what makes C++ really shine for reusable math libraries and number crunching.

However I also love love love Go's simple parsimonious nature. This is the most true thing I have ever read about programming. Some people see Go as a language for entry level programmers, but I disagree. I'm 40 and have been programming since I was between 5 and 8 years old (Commodore VIC-20 baby!) and I love it. To me it's a language for people who are past their fascination with overdone high cognitive load abstractions.

I don't want to see anything added to Go that damages that. Operator overloading *mis