1. Do not create "assertion libraries" like `assertEqual(x, y)` [1]
2. Leave testing to the Test function [2]
3. Intialisms (HTTPURL, IOS, gRPC) [3]
4. Function formatting [4]
For the record I'm not saying I disagree with these. I just think that folks coming from other languages have a lot of built in muscle memory to do it other ways. [1] https://google.github.io/styleguide/go/decisions#assertion-libraries
[2] https://google.github.io/styleguide/go/best-practices#leave-testing-to-the-test-function
[3] https://google.github.io/styleguide/go/decisions#initialisms
[4] https://google.github.io/styleguide/go/decisions#function-formattingI started buying 0 calorie fizzy water (Bubly) as my go-to replacement for alcohol. Opening up a can fulfilled part of my prior habit. Swapping one habit for a more healthy variant is one tip.
I was also held accountable by my doctor reviewing my monthly blood test. If I drank alcohol I assumed they would catch it. There are other people that you can ask to hold you accountable like this.
I'm not sure how to get over the self-hatred after a binge. In one respect I think it's healthy in a small dose. But if it's so large that you don't want to restart your sobriety then it's a problem.
If I could snap my fingers and appear 7 days in the future, my body having experienced a vacation but my mind having no recollection what did I really gain? And at what cost?
The Incerto Series by Nassim Nicholas Taleb: where to start...I started reading this series over a decade ago and I still think about it weekly. It can be very dense to get through as I took a lot of notes. But I think it's worth the trouble. One of my favorite chapters is via negativa. This is the concept that it is easier to know what NOT to do than what should be done. Many interested ideas flow out from that when it comes to personal health, public policy, and morality.
Thinking Fast and Slow by Daniel Kahneman: this book opened up my eyes to a host of mental biases. It's similar to some of Taleb's work but IMO easier to read. My favorite chapter surrounded the idea of the self as your memory vs your experience. Thought experiment: if you could take your dream vacation at no expense but would have no memories or photos/videos of the trip would you do it?
Regardless what the reason may be, I would like to see a return to shows like Startrek Next Generation or Stargate SG-1 and a depart from their current versions. A return to the exploration and selflessness that contrasts our real-lives' hardships, socio-political discussions and routine. The utopia of Startrek.
I, for one, could not wait to engineer my next thing after an energizing episode of exploration focused sci-fi. Something that does not happen after watching the dark, emotional facsimiles of today.
If I had to summarize my favorite features I'd say:
1) Strong support for multiple currencies/commodities including cost-basis,historical-market,current-market price conversions.
2) Advanced reporting options to support various filters, mutations, conversions, outputs. One of my favorite reports is total net worth in CAD converted using latest market prices
ledger bal Assets -V -X CAD
Another might be top expense accounts in decreasing cost: ledger bal Expenses -H -X CAD --flat -S -T
3) Error detection: by enforcing double-entry accounting it has helped me identify hidden fees. It also helps when I make a mistake balancing a transaction.4) Better than 2 decimal precision. This helps with crypto where your crypto balances can look something like 1.23456789 BTC
Like:
- Standard Tooling: formatting coverage, dependencies, BIN install, versioning, vendoring all done in Go CLI
- Opinionated, minimal design: often I feel like there are fewer ways to do things in Go than in other languages.
- Readability: fewer operators and minimal language design make it feel easier to ramp up and read most go programs
Dislike:
- Hard to master: some elements are very unintuitive coming from other languages (interfaces). I feel like a lot of content on go.dev is out of date (Effective Go). The Google Style guide is helping to light a path and when they publish Go Tips I think it will get better.
- Too Minimal: in some cases it feels like Go went too far in not building language features (no set, use map[$TYPE]bool instead or map[$TYPE]struct{} for more efficiency but less readable imo)