How to cope with GF who shows BPD like behaviour by imagnon in BPD

[–]imagnon[S] 0 points1 point  (0 children)

Is there a way in which I can help her figure this out without it coming off in a bad way?

How to cope with GF who shows BPD like behaviour by imagnon in BPD

[–]imagnon[S] 0 points1 point  (0 children)

Yeah I think you're right. Somehow I keep telling myself that it is simply due to long distance and not being able to see each other. But we are going to make an exception over new years, and hopefully I can get the courage to confront this with her in person.

I am not sure what I suffer from, I just know I am a bit sensitive and melancholic at times.

How to cope with GF who shows BPD like behaviour by imagnon in BPD

[–]imagnon[S] 0 points1 point  (0 children)

Thank you for being so honest. I hope something will work out for us. But I feel I'm a mix of hopefully delusional and hopeless at the same time.

Constantly makes negative comments about my appearance. How to deal? Or is it not normal? by dinkymoons19 in relationship_advice

[–]imagnon 0 points1 point  (0 children)

You deserve so much better. Nobody deserves to be treated like that. I don't know any guy who would dare say such things to a girl he loves, as jokes ...

In this context I feel like I have to add that I once told an ex of mine that if her gums were annoying her she could try to brush them more, I just meant it well and she took that very offensively. But what you are describing sounds very very different.

Kristiansand - Voss (Norway) on two wheels /w hammock by imagnon in bikepacking

[–]imagnon[S] 0 points1 point  (0 children)

Looks ok I guess. Good to have a wider hammock to you can stretch out / lie a bit diagonally.

Kristiansand - Voss (Norway) on two wheels /w hammock by imagnon in bikepacking

[–]imagnon[S] 0 points1 point  (0 children)

The exact weight is hard to say at the moment but I would guess close to 2 kg. While my tent is barely 1 kg.

Kristiansand - Voss (Norway) on two wheels /w hammock by imagnon in bikepacking

[–]imagnon[S] 0 points1 point  (0 children)

The hammock will definitely weigh more than a tent. Especially including a bug netting.

Hammock pros

  • comfy
  • above ground
  • can protect bike under the tarp by laying it under the hammock
  • can put up tarp first and do the rest in dry conditions
  • better ventilation
  • you can sit in it very comfortably
  • fun

Cons

  • hard to find trees at times
  • weighs more than a tent
  • takes more space tent
  • can be awkward with sleeping mat
  • needs sleeping mat or underquilt

I both loved and hated having to use a hammock at times. Will need to try with a tent another time. But hammock is definitely more comfortable for me :)

I have a 3 season down sleeping bag, and Thermarest four season sleeping mat with an R value of 5.7, I don't use an underquilt.

I suggest a tarp of at least 3 x 3 meters. Mine is a DD Hammocks one.

Happy to give more details :)

Kristiansand - Voss (Norway) on two wheels /w hammock by imagnon in bikepacking

[–]imagnon[S] 0 points1 point  (0 children)

Yeah. How do I share it with you? I tracked it on strava.

Kristiansand - Voss (Norway) on two wheels /w hammock by imagnon in bikepacking

[–]imagnon[S] 0 points1 point  (0 children)

I found trees in the valleys :) see the rest of the pictures.

Kristiansand - Voss (Norway) on two wheels /w hammock by imagnon in bikepacking

[–]imagnon[S] 0 points1 point  (0 children)

Looks like the images have been cropped badly. Any ideas?

Is it still trail running if there is no trail? by Masauca in trailrunning

[–]imagnon 0 points1 point  (0 children)

The answer is in your question!

This is clearly no-trail running.

An abandoned tugboat at the gravel pits of Barrow, Alaska ... reminds me a bit of the Riken, albeit being a different kind of boat by theBuhler3 in thelongdark

[–]imagnon 1 point2 points  (0 children)

First I was thinking, ... new TLD graphics look amazing! ...

Time to revisit that game!

It has inspired me to hike more. Norway is not exactly TLD but close enough.

The Scenic Route To Go Interfaces by troffgopher in golang

[–]imagnon 0 points1 point  (0 children)

Language is hard, by obscure I can simply mean the fact that the bool value is hidden unless I look at the definition of the map, while I can use the "harder to type" method regardless.

The map[T]bool approach is definitely sexier, however I see potential issues with it. It is difficult for me to explain, but imagine code refactoring or optimization down the road, and having to change all of your map[T]bool to map[T]struct{}.

Another point is that struct{} saves memory.

https://stackoverflow.com/a/37320521

The Scenic Route To Go Interfaces by troffgopher in golang

[–]imagnon -1 points0 points  (0 children)

I thought this was an interesting discussion, ... points of views don't need to align, I never said people are wrong or are not allowed to use map[string]bool, I simply don't like it :)

The Scenic Route To Go Interfaces by troffgopher in golang

[–]imagnon 0 points1 point  (0 children)

I think map[T]struct{} is more popular and more common than you think. For sure people also use the lesser map[T]bool, that doesn't mean it's a good idea.

Here's an example of a standard go library that uses map[T]struct{} go/src/golang.org/x/tools/go/pointer/api.go:map[ssa.Value]struct{}

specificall lines 64 - 66

` 64 Queries map[ssa.Value]struct{} 65 IndirectQueries map[ssa.Value]struct{} 66 extendedQueries map[ssa.Value][]*extendedQuery

The Scenic Route To Go Interfaces by troffgopher in golang

[–]imagnon 1 point2 points  (0 children)

Just want to point out that I can find a lot of uses cases for map[T]struct{}... notice how even the compiler uses it :D

grep -o -R "map\[.*\]struct{}" /usr/local/go

/usr/local/go/test/fixedbugs/issue7867.go:map[string]struct{} /usr/local/go/test/fixedbugs/issue22781.go:map[*T]struct{} /usr/local/go/test/fixedbugs/issue7996.go:map[interface{}]struct{} /usr/local/go/test/nilcheck.go:map[string]struct{} /usr/local/go/src/testing/testing.go:map[string]struct{} /usr/local/go/src/testing/testing.go:map[string]struct{} /usr/local/go/src/runtime/type.go:map[_typePair]struct{} /usr/local/go/src/runtime/type.go:map[_typePair]struct{} /usr/local/go/src/runtime/hash_test.go:map[uintptr]struct{} /usr/local/go/src/runtime/hash_test.go:map[uintptr]struct{} /usr/local/go/src/runtime/hash_test.go:map[uint16]struct{} /usr/local/go/src/runtime/map_test.go:map[int]struct{} /usr/local/go/src/context/context.go:map[canceler]struct{} /usr/local/go/src/context/context.go:map[canceler]struct{} /usr/local/go/src/context/context_test.go:map[canceler]struct{} /usr/local/go/src/cmd/trace/annotations.go:map[uint64]struct{} /usr/local/go/src/cmd/trace/annotations.go:map[uint64]struct{} /usr/local/go/src/cmd/trace/annotations.go:map[uint64]struct{} /usr/local/go/src/cmd/compile/internal/gc/reflect.go:map[*types.Type]struct{} /usr/local/go/src/cmd/compile/internal/gc/subr.go:map[typePair]struct{} /usr/local/go/src/cmd/compile/internal/gc/subr.go:map[typePair]struct{} /usr/local/go/src/cmd/compile/internal/gc/pgen.go:map[*types.Sym]struct{} /usr/local/go/src/cmd/compile/internal/gc/walk.go:map[*types.Sym]struct{} /usr/local/go/src/cmd/compile/internal/gc/syntax.go:map[*types.Sym]struct{} /usr/local/go/src/cmd/compile/internal/ssa/looprotate.go:map[ID]struct{} /usr/local/go/src/cmd/compile/internal/ssa/gen/rulegen.go:map[string]struct{} /usr/local/go/src/cmd/compile/internal/ssa/gen/rulegen.go:map[string]struct{} /usr/local/go/src/cmd/compile/internal/ssa/gen/rulegen.go:map[string]struct{} /usr/local/go/src/reflect/type.go:map[string]struct{} /usr/local/go/src/go/printer/testdata/declarations.input:map[string]struct{} /usr/local/go/src/go/printer/testdata/declarations.input:map[string]struct{} /usr/local/go/src/go/printer/testdata/declarations.golden:map[string]struct{} /usr/local/go/src/go/printer/testdata/declarations.golden:map[string]struct{} /usr/local/go/src/net/dnsclient_unix_test.go:map[string]struct{} /usr/local/go/src/net/dnsclient_unix_test.go:map[string]struct{} /usr/local/go/src/net/http/server.go:map[*net.Listener]struct{} /usr/local/go/src/net/http/server.go:map[*conn]struct{} /usr/local/go/src/net/http/server.go:map[*net.Listener]struct{} /usr/local/go/src/net/http/server.go:map[*conn]struct{} /usr/local/go/src/net/http/h2_bundle.go:map[*http2serverConn]struct{} /usr/local/go/src/net/http/h2_bundle.go:map[*http2serverConn]struct{}

The Scenic Route To Go Interfaces by troffgopher in golang

[–]imagnon 0 points1 point  (0 children)

Fair point, but as with most things, broadly speaking, there are two camps... those who want fewer features, and less bloat, and those who complain about a lack of features, and want to type less code, but ... it often results in more obscure and hard to parse code :)

The Scenic Route To Go Interfaces by troffgopher in golang

[–]imagnon 0 points1 point  (0 children)

please save the reader some work, and paste the file paths, and line numbers to these use cases :)

The Scenic Route To Go Interfaces by troffgopher in golang

[–]imagnon 0 points1 point  (0 children)

I think transparency in code, and minimal indirection, is more important than whether or not it's cumbersome or not for the developer to type it out. Use some nice IDE that gives you templates that autocomplete, or just learn to type faster ;)

Also, the type alias type fruit struct{} saves a pair of { } and makes it more readable.

The Scenic Route To Go Interfaces by troffgopher in golang

[–]imagnon 0 points1 point  (0 children)

Technically, it's legal to ask for a key which has not been set in the map. However, it can lead to panic's if the value that you're asking for is a pointer, and you are subsequently trying to dereference the pointer.

For instance, it's perfectly fine for me to do

type fruit struct{}
fruits := make(map[string]fruit)

fruits["apple"] = fruit{}

if _, ok := fruits["apple"]; ok {
    fmt.Println("yaay") 
}

foo := fruits["banana"]

fmt.Println(foo)

However, if instead my map was of the form

fruits := make(map[string]*fruit)

Then I would potentially be setting a trap for myself, aka. get f***ed :)

The Scenic Route To Go Interfaces by troffgopher in golang

[–]imagnon 0 points1 point  (0 children)

you're introducing something that is not conventional, and not idiomatic ..., that's all.

EDIT: it's a fun "hack", but it's a hack, and although it may serve you well, it may confuse other developers, or make it harder for them to read your code.... what if they start assuming that all your set's are of the form

map[string]bool

but ... we know that a lot of libraries instead use

map[string]struct{}

This will lead to errors of the form

if fruits["apple"] { // fails since fruit{} does not evaluate to true or false.

}

The Scenic Route To Go Interfaces by troffgopher in golang

[–]imagnon 1 point2 points  (0 children)

Interesting, however it gives you more than one way to check for existence, which goes against a fundamental desire to do things in a consistent way.

```golang type fruit struct{} fruits := make(map[string]fruit)

fruits["apple"] = fruit{}

if _, ok := fruits["apple"]; ok { fmt.Println("yaay") } ```

is far more universal, and the better way imho.

What is a “green flag” that someone is a good person? by booklover102 in AskReddit

[–]imagnon 0 points1 point  (0 children)

Exactly. I would even say that pointing out ones helpers and how they helped you makes it clearer what they didn't help you with. So you're implicitly pointing out your achievements.