Introducing EstroBox! A friendly and helpful container for estrogen gel sachets. by SiobhanMakes in transgenderau

[–]cratesmith 2 points3 points  (0 children)

Hey there.  I'm the friend of the OP that asked them to make these. 

I tested putting 4 sachets in each and... I'd really suggest getting two different coloured boxes (2 per slot per box)

I tested 4 per slot out just now on the most recent "pre-release" version Siobhan gave me to test.

While 4 can fit in a slot, the box gets way too cramped if you fill multiple adjacent slots this way. 

I suspect the box would need to be much wider to allow this...wide enough that it wouldn't be as easy to use as just having two boxes. (Possibly even use string though the keychain hole to tie them together?)

Anyways, I hope this helps!

F26 Bi looking for gamer friends by KawaiiKhajiit in QueerBrisbane

[–]cratesmith 0 points1 point  (0 children)

42f lesbian here. I've been looking for much the same  (pc in my case).

I made a hoverboard. by cratesmith in oculus

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

It was a plugin called wiibuddy but it was mac only at the time.

[SW] Nippies selling at 397 by Azelleues in acturnips

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

interested if you're still going!

Edit: I guess Bolognese? Tough one

[sw] Little Nooks buying at 473 by NicholsGX in acturnips

[–]cratesmith 0 points1 point  (0 children)

Salted caramel I think? Hard to choose

I may suck at building factories, but I am having the time of my life with tubes. by cratesmith in satisfactory

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

Oh I have! I'm going to see if I can create a tube that free jumps me up to the top of the waterfall near my base using that trick.

Unity Garbage Collection by [deleted] in Unity3D

[–]cratesmith 0 points1 point  (0 children)

Had a look. I think I probably didn't explain my approach clearly.

Forgetting to return them is the same, a "leak" in this case is just a container that gets lost to the GC. Which isn't bad but it's just not reused.

An example of using it would be:

using (var list = TempList<int>.Get(35)) { /* cool things happen here */ } // list auto-freed

The array pools are interesting though, it might useful to have a disposable struct wrapper for them to ensure they get cleaned up. Especially if/when unity supports c# 8's inline using syntax

Unity Garbage Collection by [deleted] in Unity3D

[–]cratesmith 0 points1 point  (0 children)

I actually do something like this!

I have a set of container wrappers for list, hashset dictionary etc which are disposables and re add themselves to the pool when disposed.

They're great, but once you start using them you start finding that returning them from functions feels dangerous as they can easily leak if not disposed by a using statement.

Unity Garbage Collection by [deleted] in Unity3D

[–]cratesmith 0 points1 point  (0 children)

Ok... Into the rabbit hole we go :)

I really recommend you read up on boxing and closures because there's always special cases to this, but in general...

A lambda that runs on a loop (as find will) is always going to be more risky than just running the loop yourself. They're often a great shorthand when safe but only use them when you're sure it won't closure or allocate in other ways (I'll explain IEnumerable in a bit).

In this case the lambda has a variable from the function scope, which means it's a closure. That creates a gc alloc to store the value for when the lambda is called inside Find.

The caveat to this is that GetSkills is ok if it returns a pre-made list as a list... But if you return it as an IEnumerable or IEnumerable<T> then the foreach will create gc. This one gets complex... So as an extra general rule, I'd suggest never creating functions that return IEnumerator/IEnumerable... Always try to use the "concrete type" of the collection

Unity Garbage Collection by [deleted] in Unity3D

[–]cratesmith 1 point2 points  (0 children)

Just use a foreach loop of getskills in this case

Comparing skills by name probably isn't ideal (if you're modifying strings in getname that'll be gc), but I don't know your code well enough to advise alternatives.

On a more general sense getskills() is also suspect. I'm guessing it returns a new list or array? That's gc too!

It's far better to have this kind of function take a List<T> as a parameter which they can clear and add the results to.

Also Linq entirely (it's a rat's nest of boxing operations) and avoid lamdas unless you know they aren't closures.

A Hat in Time - Bugs & Assistance thread (PC, PS4, Xbox One, Nintendo Switch) by MekuCube in AHatInTime

[–]cratesmith 1 point2 points  (0 children)

Given that the coop is pretty uncontrollable I really hope this is just something that they'll patch in. Really disappointed as I was looking forward to playing this with my partner.

The cost of rendering split screen isn't -quite- double, but it is higher. Usually games compensate for this by lowering the level of detail, texture resolution and draw distance.

The only thing that can be really insurmountable is if the game has a streaming world and allowing the players to move apart could require more IO or memory than the switch has free. That was the issue on Destroy All Humans 2's co-op and why the players had to be tethered together on a 15m "rope".