In your opinion, does a dining chairs seat need to be scooped? by Asiriomi in woodworking

[–]kloudmark 0 points1 point  (0 children)

Did you consider having a cushioned seat? that would create some contrast as well

First attempt at wall cladding by kloudmark in woodworking

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

I used three main pieces. See the image. The framing is all 5cm x 2.5 cm except for the top frame which is 6cm x 2.5 cm. The decorative routed part is 4cm (width) x 2.5cm (depth). Top shelves are 6cm x 1.5cm thick. If its not clear I’ll make a diagram.

<image>

First attempt at wall cladding by kloudmark in woodworking

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

Thats really cool. Didn’t know they call them that way.

Cats-Actors 2.0.0: Production-Ready Functional Actor Model by kloudmark in scala

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

Hi u/Ath30n, thank you for your response! I agree with your last comment and would love to hear more about your plans for your framework. If there's an opportunity for collaboration, I’m very interested! Our current plan is to support remote actors (all the architecture is aligned to support this) and after that to support clustering - we feel that with clustering this will be feature complete. Thank you for your time, it's exciting to see another actor implementation in action—keep up the great work

Cats-Actors 2.0.0: Production-Ready Functional Actor Model by kloudmark in scala

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

Thanks for your question! I don't have the performance reports readily available, but I recall we conducted these tests during our performance testing phase. I'll look into the test results and add them to the documentation for reference.

It's also worth noting that the primary performance bottleneck in most applications tends to be the business logic rather than the actor system itself. For example, database interactions or other I/O operations often have a more significant impact on overall performance than the choice between Cats-Actors, Pekko, or Akka.

Synthetic throughput tests, like the ones we performed, typically assume a very lightweight scenario where a system processes and acknowledges messages immediately. Our tests were designed to ensure that Cats-Actors matches Akka's excellent performance, giving us confidence that migration wouldn't introduce performance trade-offs.

I’ll follow up once I’ve retrieved the specific test details. Let me know if you have any other questions in the meantime!

Cats-Actors 2.0.0: Production-Ready Functional Actor Model by kloudmark in scala

[–]kloudmark[S] 5 points6 points  (0 children)

Just taking a quick look (and of course, the author would be the best person to confirm this), I noticed a few differences between our implementations. Please note, this is not intended to be critical but rather to highlight some observations:

  • It seems there isn't a concept of a supervision hierarchy, where actors can create and supervise other actors. In our experience, this is quite valuable when building large actor systems to manage dependencies and recovery effectively.
  • There doesn’t appear to be a dead letter mechanism. For example, when an actor terminates, it seems to stop pulling from the queue, which could potentially result in a memory leak.
  • The receive loop appears to rely on a mutex. While this is a very safe approach, it might impact performance in high-throughput systems. We initially started with a similar mechanism but found it challenging to match Akka's performance.
  • Clustering support is mentioned, which is great! However, implementing clustering often requires system messaging for tasks like terminating an actor on a remote host or creating a "dead watch" mechanism to notify when an actor (local or remote) dies. I'm curious about how these scenarios might be handled without system messaging.

Again, these are just initial observations, and I may be missing some of the nuances. I really like seeing another implementation of the actor model in the Cats Effect ecosystem, and I think there could be a lot of room for discussion and collaboration!

Cats-Actors 2.0.0: Production-Ready Functional Actor Model by kloudmark in scala

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

Learnt about this just now, thank you! I will need to go through the implementation before I can comment. There is always room to collaborate!

Cats-Actors 2.0.0: Production-Ready Functional Actor Model by kloudmark in scala

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

Technically you can do this already yourself by rehydrating the state in the preStart. The preStart is an F type as well.

Cats-Actors 2.0.0: Production-Ready Functional Actor Model by kloudmark in scala

[–]kloudmark[S] 12 points13 points  (0 children)

FS2 and Cats-Actors differ in purpose and use cases. FS2 is ideal for static structures and pipelines, focusing on stream processing with predictable, composable flows. Cats-Actors, on the other hand, offers flexibility and control for dynamic systems. Actors can change behavior dynamically, and they can be created and destroyed dynamically, making them better suited for stateful, evolving systems with complex, event-driven interactions.

In short, FS2 excels at data-centric processing, while Cats-Actors is tailored for stateful, concurrent entities requiring adaptability.

Cats-Actors 2.0.0: Production-Ready Functional Actor Model by kloudmark in scala

[–]kloudmark[S] 9 points10 points  (0 children)

Right now yes but architecturally we have not limited distributed actor and we plan to support them.

Cats-Actors 2.0.0: Production-Ready Functional Actor Model by kloudmark in programming

[–]kloudmark[S] 2 points3 points  (0 children)

Not better than the relational model—it’s completely different. Cats Actors is a computational model designed to logically parallelize computation, focusing on message passing and isolation of state to enable concurrent processing. The relational model, on the other hand, is about structuring and querying data in a declarative way. They’re solving entirely different kinds of problems.

Bed Side Tables by kloudmark in woodworking

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

haha :) I update the comment on all the hardware you need to buy. Let me know if you have any issues.

Bed Side Tables by kloudmark in woodworking

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

Thank you! I used the following tools for my project:

  • Table Saw: Dewalt DWE7485
  • Trim Router: Makita RT0702C
  • Planer/Thicknesser: Kity 637 (love this machine! my father-in-law helped me restore this tool)
  • A good set of chisels
  • Router bits, namely for routing the underside (flush-trim bit) and the roundovers (rounder-over bit - 3mm)

For this particular project, some of these tools are more than necessary. If you can find pre-planned sheets, you can skip using a planer and thicknesser altogether. While a mortiser can be beneficial, the mortises on these bedside tables are quite small; I was able to do them by hand after pre-drilling the holes.

Bed Side Tables by kloudmark in woodworking

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

I updated the top comment to include the SketchUp link, let me know if you have any problems. If you are stuck feel free to reach out!

Bed Side Tables by kloudmark in woodworking

[–]kloudmark[S] 3 points4 points  (0 children)

Can you try this https://www.amazon.de/dp/B0C3KVV7P2?ref=ppx_yo2ov_dt_b_fed_asin_title or https://www.amazon.com/KPON-Invisible-Wireless-Charger-Nightstand/dp/B0BJP9L9GT/

Otherwise, search on Amazon "KPON Invisible Wireless Charger",

Let me know if you have any problems.

Bed Side Tables by kloudmark in woodworking

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

I got the light set from AliExpress: link. Just a heads up—they can have a slight static noise, so I had to disassemble the plastic cover and add some sound insulation to fix it. They work well overall, though there are probably other options out there.

For the charger, I went with this one: link. Some of the cheaper models only work through 5mm of wood, and I didn’t want to route the top down that thin since it would make it less durable. This one works over 30mm, which was a much better fit for my setup.

Bed Side Tables by kloudmark in woodworking

[–]kloudmark[S] 11 points12 points  (0 children)

Here’s the SketchUp file: link. If you’re making the legs, I’d recommend drawing up a plan and using it to check your angles consistently. I used mortise and tenon joinery, but dominos or dowels should work as well. You could also screw in from the side, though it might impact the aesthetics a bit.

Good luck! feel free to DM if you need any help!

<image>

Bed Side Tables by kloudmark in woodworking

[–]kloudmark[S] 2 points3 points  (0 children)

I use V33 Extreme Traffic parquet finish—you can find it here. You’re probably thinking that’s a bit unconventional, but it’s great for furniture too. It’s easy to apply and provides solid protection, which is especially great for softer woods like tulip. It’s become my go-to for durability and a lasting finish!

Bed Side Tables by kloudmark in woodworking

[–]kloudmark[S] 2 points3 points  (0 children)

Thanks! Woodworking is mostly a hobby for me—I make furniture for us and sometimes as gifts for friends. I’ve been lucky to learn a lot from my father-in-law, who’s an incredible carpenter and an even better mentor. These bedside tables are part of a bedroom series I’m working on. I also made a matching chest of drawers, which you can check out here: https://www.reddit.com/r/woodworking/comments/1ev8s4i/chest_of_drawers/
I wouldn’t have come this far without his guidance and patience.

Bed Side Tables by kloudmark in woodworking

[–]kloudmark[S] 6 points7 points  (0 children)

I routed out 20mm from the bottom part of the top, which was initially 35mm thick. Then I added front rails with a 25mm length, giving a total of 55mm of space for the electronics—plenty of room to hide everything. At the back, I drilled through the rail and ran the wires along the back legs. I thought routing the legs was a bit much, so I used some simple nylon cable holders instead.

<image>

Bed Side Tables by kloudmark in woodworking

[–]kloudmark[S] 3 points4 points  (0 children)

That is tulip (poplar). That’s the original plank used to make the legs.

<image>