3,134 karma · joined June 24, 2009
Overall I'm not that concerned about our usage as it's not that bad and the industry is already rewarded for producing more efficient machines to compute.
That said, I've always thought it would be a cool project to use formal methods to prove efficiency properties or to quantify and prove the trade-offs between some more efficient algorithm and a greedier algorithm (especially in distributed systems.) But, most of that feels like developer mental masturbation in comparison to the much more egregious sorts of inefficiencies facing us (many of which require both social and technical solutions - the social one being the hardest.)
2020 has made me not feel safe in many areas of my life (and I'm privileged), everything from the pandemic, to the upcoming election, to the economic uncertainty. I think giving yourself as much of a break as possible is absolutely warranted. This is pretty hard, even for introverts who do well with solitude and software developers who can work remotely.
My own pessimism has also grown. I doubt that the threat detection circuits in our brains, that evolved to detect uncertain threats, were ever equipped to handle the scale of some of the uncertain threats that loom over us (and the speed and accuracy of the information about them.) Hang in there, you're not alone, 2020 is pretty fucked up (2019 was hard for me personally, too) and focus on your immediate connective relationships and well-being.
This article was a recent and good read (sorry for the Medium link, I know HN hates Medium): https://elemental.medium.com/your-surge-capacity-is-depleted...
[EDIT] I re-read my comment after posting (as you do) and realized it has an advice-giving tone, I didn't exactly intend for that, I was intending more to relate and empathize (and hopefully be helpful.)
I agree that aligning economic incentives is a good (and probably the only?) way to steer hordes of people in directions that will either help or harm the "community".
I'm not actually sure whether most people are or aren't wearing masks. While driving out to camp in the desert, stops to get gas provided (very limited anecdata) that people generally don't care at all about mask wearing. Which is why I think it was the right move where I live to force businesses to deny service to people not wearing masks but these people tend to only do it in settings where they become pariahs if they don't (so they're only doing it to conform, which is better than not at all). e.g. in some places, the people running the place don't even care so therefore it goes unenforced (if not procedurally, definitely not socially).
I also agree with your concern about our/my/your ability to accurately estimate anything of importance. But this isn't a good reason alone for not encouraging thinking and care about these things, even if it means reeducation later on (harm reduction as opposed to some form of "getting it perfect", which is exceedingly hard).
However there is one important point: moving people cognitively towards thinking about these issues in a moral framework of care and purity is probably better than not, even if it means slightly more carbon output due to higher calorie consumption because of bicycle riding instead of driving a car (e.g. I support a carbon tax much more now than I did before I got rid of my car, it wasn't a cause mind you but it certainly co-occurred with my beginning to care more about the sanctity of our natural environment).
So, I agree with you generally, but we shouldn't fall into the trap of thinking only in terms of economic or technological solutions because not focusing on the social domain can have consequences (read: conservatives now becoming science deniers and buying gas guzzling trucks to stick it to the libs, for example).
I do think, however, that we're living in a "golden age" and that it will come to an end somewhat abruptly. Many people will probably die but we're not going to go extinct.
I share your concern regarding the inability of so many people (at least in the USA) to perform the simple task of wearing a mask for communal good. It does not bode well for community engagement on totally revamping people's lifestyles to help mitigate climate change (I can imagine the foaming at the mouth that would occur with many people around where I live - Austin - if the government instituted a gasoline car buyback program in exchange for hybrids, as a simple example.)
The company I work for uses Haskell for a network packet parsing engine, web api servers, CLI executables, build infrastructure (alongside Nix and NixOS), an interpreter for a custom programming language, a gateway/proxy service for AWS services, etc.
It's worth learning and using IMHO.
- Pull requests should usually optimize for latency, not throughput (i.e. smaller PRs/changes are usually better)
- Release frequently instead of infrequently (implying that frequent releases will be smaller but in frequent releases will be very large)
- Non-strictness (latency-optimized) is more composable than strictness (throughput-optimized)
... this orbits another mental model I was exposed to a few years ago I call "weak-signal thinking".
His comment is not dangerous, it's encouraging. Pharmaceuticals all have side effects and must be taken with care, I've known literally no one that went into antidepressants ignorant of those things.
I think, for me, it comes from a deep desire and need to be "noticed" and when I am observing someone or listening to someone and there is an opportunity for me to start "fixing" I feel this compulsive urge to do so.
I've started telling myself: just STFU. STFU, let them talk, and if after talking they open the door for feedback or thoughts or observations share them, otherwise they only want someone to acknowledge what's going on for them.
Unsolicited advice is also really vicious the more I've thought about it, you're robbing someone of the opportunity to figure things out for themselves, even if you've figured it out yourself or you have a great way of doing things, most people will and should figure things out on their own (and those that want to improve will open themselves up to feedback).
First of all, I don't think pasta is too terrible if it's fitting in your macros. Wheat will have a larger glycemic impact on you though than many other carbohydrate sources (e.g. sweet potatoes, which I consider a super food for humans, alongside eggs).
The most important thing about diet change is to resist making big, dramatic changes. Think in terms of weak signals: figure out what foods would be easy to meal prep for, that you like eating, and would be good combined together in simple ways. By simple I mean very simple, pick two major macros (carbs and protein, or fat and protein). Once you've got that figured out and you've decided how to combine them, then you can add easy low-effort accessories at meal time.
I ended up landing on what I call a "power bowl" dinner meal that I eat every single night (I haven't tired of it yet) consisting of:
Mains:
- Main 1: 150 grams of sweet potato (cubed and baked with some olive oil and salt)
- Main 2: 10oz of a main protein (I rotate between chicken, cod, pork, and burger patties)
Accessories:
- 2 cups of spinach
- optional fried egg
- tomato / onion
- zero carb rosemary dressing (high fat though)
It's extremely easy to meal prep, very easy to weigh and measure, it tastes really good, great mix of macros, the carbohydrates from sweet potatoes have a low glycemic impact (unlike anything made from wheat), and I get a lot of protein. If it gets boring I can add a fried egg, or goat cheese, or change the protein, or add some green chiles, etc. so creating novel flavors is easy and doesn't require significant prep time.
At some point I'm going to start growing my own sweet potatoes and spinach at which point I only need to buy my protein and other add-ons.
I also don't have patience or energy to cook, one of my early-20s favorite meals was white rice with canned meat sauce. I don't eat that anymore but the trick to changing what you eat is to:
- Keep it simple
- Keep it whole (as in "whole food")
- Meal prep the bulk items (you can bake sweet potatoes and chicken/cod/pork in less than an hour on Sunday, then assemble the bowls easily at night)
Making it easy and simple to assemble will help keep you from convincing yourself you're too tired and should just run to Chipotle :-p This is why I like the power bowls because they don't require any special timing, or prep, or techniques, or specialized ingredients (unless you want them).
That's all for dinner. I stay fasted through breakfast and I usually eat 5 eggs with 4 slices of high-quality bacon for lunch. I have lots of nuts, fruits, and paleo granola for snacks.
In most cases, both parties will contribute to the problem but someone needs to lead themselves and their partner out of the complementary neurosis and you do that by taking responsibility for your contribution then setting boundaries and working compassionately with the other person/people.
I don't even think it's people generally who are victims. I don't like victim mentality because it robs "the victim" of agency.
Men are not victims here. Have a hard look at why you think this and fix the problem.
The reason why I like the olivine weathering proposal is that it weathers co2 out of the ocean and uses the ocean as a carbon sink. This way you remove co2 from the both the atmosphere and ocean (if you weather enough of it).
I'm interested in learning more about research into enhanced weathering, could you provide some recommendations?
If you make small and totally doable changes here and there, they will accumulate and have an impact, especially if more people in the community begin adding their own weak signals. No one weak signal on its own will have the ability to change the dire course we find ourselves on but it needs to start with taking some personal responsibility.
A few, small and easy changes I've made that help: I signed up for my electric utility's green option (they offset 100% of my usage by buying from a windfarm here in Texas), we went from a two-car family to a one-car family, we switched to a hybrid, I moved to remote work instead of commuting, and I use the bus system as often as I can.
Those changes all happened over the course of the last three years and many other lifestyle changes. The biggest change I've made was focusing on financial independence which helped me move from profligate consumption to saving the majority of my income.
If you feel worried, the best thing you can do is make small, meaningful changes because it will help you feel empowered which wards off despair.
The situation certainly feels pretty dire but I think we can solve it, it just requires the accumulation of weak signals.
Cross-compilation of GHC used to be a huge pain in the ass but that's improved significantly these days, on a project a few years ago I had to choose another language/ecosystem due to that limitation but I wouldn't have to now.
The only project I used it for that was interactive in that sense was an interactive CLI tool. However Oskar Wikstrom wrote a screen cast editing tool so he could make his Haskell screen casts.
I don't think functional style prohibits interactivity (see: purescript which is strongly influenced by Haskell, we use it for all frontend web work now).
Your argument RE: immutability and purity hampering implementations: Haskell excels at allowing developers to start with impure IO-heavy code, allowing you to later refactor chunks of the implementation out to pure code. In-fact, I talk about Haskell as the language you use to "move fast and _not_ break things". It also encourages a more principled approach to software design and reasoning than many other programming languages.
I've used Haskell (and seen it used) in production for many different problem domains for the last seven years of my career. I have yet to see something Haskell/GHC cannot handle well with a few niche exceptions.
In my time using Haskell I've come to think of "mutation" as a cardinal sin in software and you better have a good reason for committing it instead of letting the compiler do it for you (you can write mutable code in Haskell, too, btw - it just strongly discourages you from doing so and it makes some classes of mutable code impossible to write, which is a very, very good thing).
As a (very) fallible generalist, Haskell is a godsend and we use it extensively where I work for shell-scripts, for code generation, for (performant) network packet parsing, HTTP web servers, gRPC micro-services, and even our "build bot".
Rationality is energy intensive and difficult to cultivate and is usually a socially learned or reinforced skill (similar to the fact that long-term research is usually only funded by public tax dollars and not corporations).
So I don't think now is any different, it's just at a different scale and behooves those of us who have had the privilege to cultivate the skill to not gloom and doom and to instead show the way up the ladder (if possible, not all people want to cultivate rationality).
I agree with your point and I also think English is imprecise. It's great for socializing and flushing out ideas but it can also give one a false sense of confidence.