I have wrestled with my own demons, some similar to yours.
What I found was I was missing authentic friendship and connection with people.
This was a long process, but the first step was to find safe trustworthy and interested people.
For you, some actionable steps:
Finding a good counselor is an excellent step. I won’t try to advise how to go about that, others have done a much better job than I could. One key would be to take action (and keep taking action). Also don’t just settle with the first counselor you find. Try several and choose which one helps you move in the right direction most.
Secondly I have personally found Headspace’s mediations on Loneliness and on Anxiety very helpful on a physiological level.
Everything else I have is less actionable.
Our hearts and emotions matter. Compassion matters. People being compassionate toward you, and you toward yourself. Being seen for who you are matters.
Your history indicates deep wounds. When our wounding comes within the context of relationships, healing also ends up needing to come from relationships. This will take time. You will have to find people you can trust.
Life is more than getting by. Find yourself, and find people who love you and respect you, as different as you may be.
This is a wake up call, who you are is signaling that you need more.
I suspect Haskell has enough base-level complexity to be productive in it that it gets in the way of its adoption.
Contrast that to say writing something to serve http requests in Go. The number of complex concepts or idioms in related library pieces is comparatively very low. [0]
I’ve found the complexity of the solution should match the complexity of the problem being solved.
If the solution has equivalent number of moving pieces and choices as the problem space requires, then it’s been made “as simple as possible, not simpler”.
This is where some languages (tools) are better suited to a problem than others. Don’t reach for imperative patterns when css declaratively does what you want and has matured enough to have boiled down the very good ways of doing it.
I like Joe Armstrong’s approach of writing and then iterating a solution (a method, part of a feature, whole feature) until the extra dead material falls off.
So like I said, I have mixed feelings about this.
It’s a shame to have to add artificial complexity.
[0]: Go and it’s libraries are admittedly not a perfect example. I find Go leans a little past the edge in trying to make things simpler than they actually are. But it’s not too far off.
The company I work for uses Haskell and Go. I can immediately read and comprehend what’s going on in any of the Go repositories in a few seconds. By contrast, every Haskell repo ends up becoming a DSL — which is a pleasure to write and refactor for the original authors but impossible for anyone else to understand.
I can’t speak for the entire spectrum available. But I have two data points and am shocked at the difference, since I expect none.
At home I have a rancilio rocky grinder, bought used, newly replaced burrs.
It’s “stepped” so I don’t have much fine tuned flexibility - I’m basically choosing between only two or three steps for espresso.
My friend has a Pharos manual grinder. I’ve come over to help his wife adjust the grind several times.
I bring the same beans I’ve been using that week as a reference point. I’m always shocked how much better theirs tastes - even far-out-of-optimal shots - ones that are very fast or very slow.
On my machine the unpleasant overextracted flavors creep in quickly. I chalk it up to consistency of the grind - and that’s observable. You can pinch grinds up and “smear” them across a white sheet of paper to observe size, and to a lesser extent, variability.
I’m still surprised that the grinder affects the espresso more than the espresso machine.
Note: the Pharos is a beast and I don’t recommend it unless you like armwrestling as part of you coffee prep every time.
Yeah but that messes up the balance, ie character moves from left to right - it is quiet, then LOUD, then quiet.
I guess upping the center channel is an ok solution in practice because this doesn't happen very often, but DTS:X and Dolby TrueHD do actually support a separate dialog object that you can adjust the volume of independently, but AFAIK there are no actual movie titles that are mixed to make use of this feature.
I have the center channel bumped several steps louder than the others on my receiver. This makes a world of difference over stereo mixes. (I will admit the voice sound can be more uneven - wind noise etc starts to show through)
Hmm, thinking out loud - I bet a multichannel mix could be calibrated on your system to bump the center channel, even if outputting to 2 speaker
Oh gosh, me too.
I recall calling a number in the back of a magazine to buy VistaPro 3. I was a dirt-poor kid at the time. I asked for the upgrade, and was worried because I didn't own v2, just the first version. They laughed and said it would work fine.
It came and was the full install, they were just giving a discount if you owned the previous version.
It came with two additional CDs filled with DEMs. One with DEMs in the US, the other across the world.
Fun times, getting lost in the madness of creating.
Back then, I spent a lot of time generating amazing landscapes with the free version of Terragen. One of these image served as my desktop background for several years.
And the pure assembly demo's showing realtime Mars like landscapes, my brother was always looking for precomputed tables to avoid the expensive div and mul, fun times. Software was optimized in size and execution speed in the early days. Also remember the first voxel based flight simulation like Novalogic's Comanche.
I work in C# but have come to a similar conclusion to his note at the top of his article.
C# supports extension methods, so if you want you can augment the original 3rd party class with your own (chaining in this case) methods.
Or author your own “fluent interface” on your own classes, as he’s done here.
I’m the end, most of the time I found I was wanting a function ‘forward composition’ operator (like F#’s |> ). And the only place the chaining methods really made sense was factory classes/methods for complex declarative configuration.
The only ones that stuck for us were ORM mapping declarations, and factories for setting up complex domain specific data setup in tests.
For C#, the only method chaining we really do today would be for LINQ (very heavy usage) and AspNetCore startup logic.
If you are super addicted to certain language sugar like object initializers, then wrapping some of your business logic (e.g. mappers) with extension methods is not a terrible path. E.g.:
public Thing MyFavoriteThing => new Thing
{
Id = Guid.NewGuid(),
TheThing = _someLocalProperty.SomeTransform().Trim(),
MyOtherInitalizedFact = true
};
The alternative would look something like:
public Thing MyFavoriteThing()
{
var result = new Thing
{
Id = Guid.NewGuid(),
TheThing = SomeTransform(_someLocalProperty),
MyOtherInitializedFact = true
};
result.TheThing = Trim(theThing);
return result;
}
Oh gosh no.
I can see it now, google self driving car with built in “captcha” where it checks your response time to the “fire drill” alert tone to take over driving.
That’ll train us.
Probably the perfect time to show an advert too. Our attention is pulled, and the adrenaline is pumping…
Or would that just train us to ignore the ‘take over tone’?
What is your point? If the car is actually self driving, then there is no need for human interaction. The issue is this is not, therefore the driver still needs to be engaged enough to respond
Sorry, no strong point. I was just pondering that the issue is inattention, and imagining google, who spends the most money, ever, on capturing human attention, taking the next dystopian step.
If you hold down space and right your car drifts to the right a tiny bit with only a very small amount of rotation. This lets you move into the spot directly sideways.
For you, some actionable steps: Finding a good counselor is an excellent step. I won’t try to advise how to go about that, others have done a much better job than I could. One key would be to take action (and keep taking action). Also don’t just settle with the first counselor you find. Try several and choose which one helps you move in the right direction most.
Secondly I have personally found Headspace’s mediations on Loneliness and on Anxiety very helpful on a physiological level.
Everything else I have is less actionable.
Our hearts and emotions matter. Compassion matters. People being compassionate toward you, and you toward yourself. Being seen for who you are matters.
Your history indicates deep wounds. When our wounding comes within the context of relationships, healing also ends up needing to come from relationships. This will take time. You will have to find people you can trust.
Life is more than getting by. Find yourself, and find people who love you and respect you, as different as you may be. This is a wake up call, who you are is signaling that you need more.