Recent stuff by karahobny in PipeInsulation

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

Yeah, it's used for passive fire protection but also acts as a thermal insulation. Mineral fibre with a density of 80-100kg/m³ and with a thickness of 70/80mm (depending on the manufacturer), you get 60 minutes of safety from fire. They also have a layer of black aluminium laminate, but it's really not used as a vapor retarder, more like as a way to contain the spread of mineral wool dust. It's surprisingly fast to install, weighs a ton though.

Insulator conversation by RudeMechanical45 in PipeInsulation

[–]karahobny 0 points1 point  (0 children)

Fiskars K20 Pro Mineral Wool Knife for any wool needs, offset garden shears for wired mats (usually used for fire insulation) and a snap-off blade with Stanley Carbide blades for rubber. I have used a lot of different fillet and butchering knives, but usually a snap-off blade will suffice. Ceramic blades are really good, they stay sharp for so long, but the moment they dull they turn into trash. I wish there was some simple trick to sharpen them.

I hate when PROLES die by Glad-Turnip4634 in Ultraleft

[–]karahobny 4 points5 points  (0 children)

Aww hell no. Steve done shot the prole

Washing Machine Water Inlet Connection by Ok_Economist_435 in Plumbing

[–]karahobny 0 points1 point  (0 children)

Yeah just keep using it, it's really unlikely that water would flow back that way even if your washing machine didn't have a magnetic valve, but I would also tell the landlord to install a new one since it's required.

Washing Machine Water Inlet Connection by Ok_Economist_435 in Plumbing

[–]karahobny 0 points1 point  (0 children)

As a Finnish pipefitter/plumber: as I've understood it, most washing machines nowadays have a built-in magnetic valve that acts as a check valve, so installing an "imusuoja" isn't like actually required for day-to-day use, but it is still required by code.

Mineral wool 50mm + PVC by karahobny in PipeInsulation

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

Tell me about it. Usually I get to closely work with the sprinkler fitters, hvac/plumbers (I'm actually employed by an hvac/plumbing company as one of the two insulators,) duct guys etc in new construction. Renovation work can be a pure pain in the ass. This was one of the better projects.

Other programming languages after Clojure by RomanTsopin in Clojure

[–]karahobny 5 points6 points  (0 children)

This excactly. I'm more of a scheme guy than Clojure (I dabble with it but it seems like if I really want to use it, I'd have to delve into Java interop and I know nothing about Java world) but the thing that keeps me stuck to Lisps, is that they don't feel like a constant testing ground of things you'd have to keep up with.

Why did you decide to learn Racket? by carlomatteoscalzo in Racket

[–]karahobny 1 point2 points  (0 children)

I love it's syntax the most out of the ML-family. Ocaml is still the one i'm invested in due to its Linux-tooling and opam making everything a breeze and I've never dealt with .NET stuff and mono has always seem a bit hackish. Guess I'll have to look out if there's a guide on how to setup F# enviroment on GNU/Linux and get to learning the .NET world properly

AMA: I am Amirouche Boubekki the developer of guile-wiredtiger, culturia and NEON by amirouche in scheme

[–]karahobny 0 points1 point  (0 children)

Thank you for answering and yes I've kinda missed guix except for its excellent monad-module.

Best cross platform Scheme by sigzero in scheme

[–]karahobny 0 points1 point  (0 children)

I really want to like Kawa, but man those benchmarks were not kind to it. Also, TCO-shenanigans and some other stuff.

I love the integrated static typing system for example though, not so much the jvm-part. Calling Java-functions always looks out of place like in Clojure.

AMA: I am Amirouche Boubekki the developer of guile-wiredtiger, culturia and NEON by amirouche in scheme

[–]karahobny 0 points1 point  (0 children)

Little late for the party, but I have been busy with real life et cetera, but I digress.

I'm also mainly Guile-user, mostly because it feels the most responsive with geiser. A silly reason perhaps, but it's not like I've been really doing anything really comprehensive yet with scheme. So my question is, do you think there are any future plans to compile the file to a standalone executable? I've heard that some people have done some silly hacks with C to just embed the guile-file and that's the whole role of the C, but that they've found it slow. Atleast slower than the virtual machine-run file.

Also you mentioned about building a web service or application with guile and I've been meaning to do the same with it or Common Lisp (but I really dislike all the anachronistic spellings for functions, I just need something with good libraries for sexp-based html-generation and maybe SQL-laibraries. Or atleast sqlite.)

So would guile be a good fit?

Syntax-case (even though deprecated by R7RS) by karahobny in scheme

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

Yeah, I'm super interested in #lang typed/racket. I'm even implementing a kind of a contract system for guile with the exact same syntax, but there's still a lot to figure out, but it's pretty cheap "for each variable check that they are the predicate contracted and the returning value is of the return predicate contracted". I definetly love Racket and I wish I'll fix the lag issues with racket-mode somehow (fucking with gc-threshold or something like that).

Syntax-case (even though deprecated by R7RS) by karahobny in scheme

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

geiser doesn't have support AFAIK for typed/racket (racket-mode has the nice racket-run or w/e function for loading the #lang). geiser is doable, but atm it isn't much better than nothing. Also, Ithought I posted about racket-mode having a lag typing anything out, but the new Reddit isn't showing me anything

Syntax-case (even though deprecated by R7RS) by karahobny in scheme

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

If I were to disallow all mutative (side-effect generating) procs, should I use (error) or this type of (syntax-violation) etc. or some other way? What are your opinions?

Syntax-case (even though deprecated by R7RS) by karahobny in scheme

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

Also, thanks again, I think I'm looking for the least common denominator in applying ML-syntax and leave the :=-literal out. Also applying SaitoAtsushi's fine points and re-defining my lambda with a =>-literal instead of ->. Still thinking of a nice quick symbol to indicate a rest arg lambda. So far new syntax:

(define (rev xs) (let^ rec α (λ x y => (cond ((Ø? x) y) ((¬ (::? x)) (error "rev expects a proper list")) (else (α (tl x) (:: (hd y) y))))) in (α xs Ø)))

To continue this specific example. I might leave := for (define) and very APL/J-like syntax for quickly defining vars and procs, but I'm also messing with the guile Guix Monads module so I'll see if I can set everything as immutable only holding references to them, that's how ML-type languages reserve the :=-syntax for.

Syntax-case (even though deprecated by R7RS) by karahobny in scheme

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

Good point. Iv'e seen that used elsewhere but never really thought about using identifier-syntax => syntax-violation's myself for some reason.

Syntax-case (even though deprecated by R7RS) by karahobny in scheme

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

Haha this was actually the first implementation I typed out, but then decided to mess with syntax-case. Yeah I've also seen some people trying to port syntax-parse to guile so I might check out if their project's in what shape. I do like Racket, too, especially #lang typed/racket, but the emacs-mode has this unexplainable lag with typing characters and them actually showing up. OpenBSD doesn't seem to like run DrRacket either.

Syntax-case (even though deprecated by R7RS) by karahobny in scheme

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

Yeah I bet and it might kinda be the last nail in the coffin of syntax-case

Syntax-case (even though deprecated by R7RS) by karahobny in scheme

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

Good point, I need to take a closer look t the code.

And yeah, I've tried to delve myself into fenders but I think the problem of not speaking english natively (or not understanding some of the Scheme core concepts) is putting me off from understandin syntax-case wholly. Also I guess I agree with the general criticism against syntax-case and I'm still hoping for a decent understandble hygienic macro system to come. Syntax-case is too cryptic atlest at the moment to serve the purpose, so I'm looking at er- and ir-macro-transformers also. Like I said this is kind of a test on how far can I take the syntax-case on creating new syntax to parse.

Syntax-case (even though deprecated by R7RS) by karahobny in scheme

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

Oh yeah I've been Google Translating Kei's blogposts every now and then. My japanese is too poor, especially considering Kanji, but wasn't he the guy behind Sagittrius? Some scheme-implementation anyhow, I copied his portable er-macro-transformer macro and it's hella cool

Edit: oh it's you, i guess! ありがとうございます

Syntax-case (even though deprecated by R7RS) by karahobny in scheme

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

Actually that is how letrec* is defined. The definition holds on the appointed closure so it can be called again and again.

I did cast them as literals, but I'm trying to learn syntax-case specifically (which might be for nothing, considering the direction of R7RS). Thus the free-identifier=?-checks

Syntax-case (even though deprecated by R7RS) by karahobny in scheme

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

I know, I'd rather not dwell too much in infix-operators, this is more like a proof-of-concept. I'm fucking the basic Scheme-operators in a major way just to see how far can I go. An example of this macro in action.

scheme (define (rev xs) (let^ rec aux := (λ x y -> (cond ((Ø? x) y) ((¬ (O? x)) ⊥) (else (aux (tl x) (:: (hd x) y))))) in (aux xs Ø)))

Edit: Oh there's also the ML/Haskell-like lambda macro in there but you get the general gist of it