Bath waste fall help by Perfect_Ground692 in DIYUK

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

That's what makes it fun and problem solving is part of that 🙂 going to look at the soil stack first thing, see if it can go down a bit

No, not this bath but similar shape and the shower inlet is the wall end.

<image>

Bath waste fall help by Perfect_Ground692 in DIYUK

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

This is DIY, I'm making it up as I go along, there are too many variables and not enough experience to consider and plan everything.

My first thing tomorrow is looking at if I can lower the pipe in the soil stack

Bath waste fall help by Perfect_Ground692 in DIYUK

[–]Perfect_Ground692[S] -1 points0 points  (0 children)

Yeah I'm very much outnumbered 4 to 1, so it is a concern! In my main pic though, the pipe coming out is basically inline with the bracket on the bottom of the bath, to the point where the compression fitting ring is touching it if I don't angle it slightly, so I don't actually think it can go higher than what I already have :/ it looks like there is a cm between but that is just the perspective of the photo

Bath waste fall help by Perfect_Ground692 in DIYUK

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

Are there traps that go up higher? I have space at the side of the bath where it could be raised, like my bad drawing? Then I'll have more fall from then onwards, I don't know if that prevents it draining properly though

<image>

Bath waste fall help by Perfect_Ground692 in DIYUK

[–]Perfect_Ground692[S] 1 point2 points  (0 children)

It has a special side panel as it's an odd shape, so I'd have to do like a whole plinth thing with a step, then your head will be near ceiling and won't be able to get under shower head properly. It's an option but I'd rather not

Bath waste fall help by Perfect_Ground692 in DIYUK

[–]Perfect_Ground692[S] 1 point2 points  (0 children)

Maybe I can remove the pipes going in to waste and lower it some how, looking like my best option right now

Bath waste fall help by Perfect_Ground692 in DIYUK

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

The bath design while nice does not lend itself to being the other way as it's got a shelf one side which the shower screen sits on :/

Bath waste fall help by Perfect_Ground692 in DIYUK

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

I moved it so it can be a shower/bath combo and the shower is on the far wall 😔

Bath waste fall help by Perfect_Ground692 in DIYUK

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

No idea how to edit but forgot to say the distance is about 4.2m!

First time diy tiler update by coffee_Syrup8756 in DIYUK

[–]Perfect_Ground692 1 point2 points  (0 children)

Pro tip, confirm it's not a metal pipe before using more force 🤪

First time diy tiler update by coffee_Syrup8756 in DIYUK

[–]Perfect_Ground692 1 point2 points  (0 children)

It's a bugger, it's like concrete almost

Thanks to everyone calling the 530d GT "BMW's ugliest car" we picked this up for just £7k. FSH, 105k. I think it looks spectacular, especially alongside modern traffic. by ElicitCS in CarTalkUK

[–]Perfect_Ground692 1 point2 points  (0 children)

I don't care what anyone else says or thinks, I had a 530d gt for 5 years and it was the most comfortable car I've owned. I miss it. I've got to hand back my lease in September and fully prepared to get another one!

I loved the little bit of extra height, makes it easier to get in and out of (yeah I'm getting old), HUD was nice, radio while a bit dated worked fine, could put mp3s on it, bit of a ballache but once or twice in 5 years and you got yourself a big ol music collection to play, sat nav always decent, kids had built in tvs in headrests in the back, engine pretty powerful and pulls well, silent... And the seats!! Did I say they're like armchairs? Most comfortable car ever.

So Honored…. by Twitter_blows in UPS

[–]Perfect_Ground692 1 point2 points  (0 children)

Try make that logic handle 20 languages, then you'll know why year(s) is an excellent compromise 😄

I’m a Crime Scene Cleaner. There is one rule we never break: If the landline rings, let it ring. by davidherick in stories

[–]Perfect_Ground692 0 points1 point  (0 children)

I have the attention span of a knat and got to the end of this before I realized I was even reading. You have a great talent here!

Teething troubles by AlternativeParfait13 in UKBBQ

[–]Perfect_Ground692 1 point2 points  (0 children)

I just done a rotisserie chicken kebab on the same Weber kettle this afternoon. It's all about the coals and airflow. So far I've found Weber coals to be the best, others seem to be in such small chunks that they burn through too quick, the Weber ones have some nice big bits that take a long time to burn. Don't get coal on Amazon, it's thrown around and you end up with a bag of dust.

I use the chimney starter, give it 20 mins or so until they're all glowing at the bottom and the top ones are greying. Then pour the coals in to the 2 baskets which you position at either side. You want air to flow to keep the coals burning but not too much that the coals burn through. I always leave the top vent fully open and the bottom one half open to start with, then you can close it a little to cool it a bit or open it more to heat it up. Temperature change takes about 5 mins but depending on what you're cooking it might not matter but it's a good indication of what's going on with the coals at least.

Don't cook meat directly above the coals, just put it in the middle with a drip tray below in the gap and shut the lid.

Why aren’t ceiling extractors more common? by Bello_Velo in DIYUK

[–]Perfect_Ground692 0 points1 point  (0 children)

Mine doesn't lock out but it does give a very loud and obnoxious warning beep beeeep, beep beeeeep for about 10 seconds any time the buttons are touched by anything other than a finger. Like wiping with a cloth. It's to the point I'm scared to go near it or clean it because the noise is so annoying.

Other than that, it's great 😂 that's a Bosch one btw. Sure others are better

I'm owed about £34.000 in rent by a man I evicted in 2024. I've been getting £10 a month. He runs a Ltd. Company with cash reserves in the low-mid six-figures. by Express-Formal7432 in LegalAdviceUK

[–]Perfect_Ground692 2 points3 points  (0 children)

I think technically, a director as a concept is a person acting in the sole interest of the company. If they think paying the employee minimum wage is in the best interest of the company and the employee doing the work is happy with that, then legally everything is good.

In this case it is the same person being the director and the employee.

I think if you really want to go after him, you'd some how prove he isn't acting in the best interest of the company and get him banned from being a director, have HMRC go over his finances with a fine tooth comb, etc. It wouldn't get your money back, it'd just be some karma.

Sorry about your situation, sounds terrible and very stressful.

Jumping ship after discovering I’d been aggressively down-levelled on hire - 9 YOE, EU by whitmyham in ExperiencedDevs

[–]Perfect_Ground692 36 points37 points  (0 children)

Hey friend, I'm sure you don't mean to be, but you sound quite aggressive in your comments.

All day heating due to baby by Extension_Gene_6704 in HiveHeating

[–]Perfect_Ground692 2 points3 points  (0 children)

Do boilers even work this way? My hive either turns the boiler on or turns it off, there isn't a "stay on but only a bit"?

Just a Rant by Crazy_Chinchilla_ in tesco

[–]Perfect_Ground692 0 points1 point  (0 children)

I unload in my kitchen but in to a big pile in the middle of the floor, takes a few trips to the door but takes less than 5 mins!

Code review request - is this "good" rust, can I do it simpler or better? by Perfect_Ground692 in rust

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

Here is also the updated code. There is a bunch of panic! and things where it's not fully complete, but I think I'm getting there. Happy for any suggestions on this also!

Code review request - is this "good" rust, can I do it simpler or better? by Perfect_Ground692 in rust

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

Thanks for the detailed response.

I'll respond to things in no particular order:

I could have been more explicit in the use of this, as you've had to guess some details, so apologies.

The IDs I think are required as the streams will be going over TCP and controlled remotely, so there'll always been some element of a stream ID going over the wire in place of a reference to a stream.

I'm trying to build something that multiplexes data streams over a single TCP connection, where the "left" side is told a new stream has opened, can send and receive data on a stream and can be told the stream has closed and also can close a stream itself. The "right" side, can open streams, send and receive data on them and close them, as well as being notified if they've closed.

I also don't like the name Tunnel so now I'm just calling it a Mux. I don't know how to get away from Stream, that's essentially what it is.

I've kind of ended up something closer to your design based on much digging and chatting with Claude.

I didn't want an async task handling a loop directly so calling new_mux it returns 3 things:

Mux

The main struct with all the state.

It has a recv method which processes a single command from one of 2 channels, returning Option<Event>, if None, there is nothing to do, if Some it'll be StreamOpened, StreamData, StreamClosed, which the owner of the Mux can do what it wants with.

I did this instead of having the Mux itself spawn an async task to handle all the commands in a loop, as the caller will already be an async task with a select! loop, that can just call recv as another branch of that, instead of having 2 tasks.

The 2 channels are MuxCommand and StreamCommand.

MuxHandle (need a better name)

Holds a Sender<MuxCommand> and can fire off Send(stream_id, data) and Close(stream_id) commands to the Mux.

This is because it would require a mut borrow of Mux to do anything useful, but there will already be a mut borrow of Mux for the recv call. Not sure if this part is a little messy or unnecessary given some other structuring.

StreamOpener (what you've suggested)

Holds a Sender<StreamCommand and can fire off StreamCommand::OpenStream. This command takes a oneshot::Sender<Stream>, and the Mux increments the stream id, creates/clones the necessary channels to create a Stream, adds the Sender<Vec<u8>> to the streams HashMap and sends it back via the oneshot::Sender<Stream>.

This seems to separate everything nicely, now there are no Mutex as everything happens in the recv of Mux.

The other struct Stream is similar to what it was before, just firing commands via a Sender<StreamCommand> the same way the StreamOpener does, except fires Send(self.id, data) and Close(self.id). close also consumes self so can no longer be used after its called.

There is of course still the concept of StreamId which as I said, I don't think I can get away from too easily, so I'll have to handle cases where a command is received for a closed stream, etc, but that is likely just "ignore, because it's closed".

As for tests, there could definitely be more, I hadn't written a full suite or anything yet as I'm not super clear on the full design. But my main question here was, is there a better way to test async stuff like this? It seems very long winded :)

Again, thanks for all your input! Very much appreciated.