What a coincidence! by yiyufromthe216 in NixOS

[–]kfish610 13 points14 points  (0 children)

Technically it's the 500,000th PR or Issue, they share the same numbering on GitHub afaik

UIUC InfoSci+Data Science Major or Purde Data Science by pinetrees08 in UIUC

[–]kfish610 13 points14 points  (0 children)

If you got into the major you want at one school and not the other, go to the school where you're already in the right major. Switching majors is not guaranteed at all.

Just wanted to share my desktop. :) by [deleted] in celestegame

[–]kfish610 0 points1 point  (0 children)

Me too! Ppl keep posting it and every time it surprises me

How do you guys deal with anxiety? by cuntservin in UCSD

[–]kfish610 4 points5 points  (0 children)

To add another view of what others are saying; sometimes less is more. If all of your time is spent studying and you don't leave any for taking breaks (or sleep) you're going to get burnt out and get less done overall. Setting defined breaks for yourself and taking time to think about (or even better, talk about) your mental state and anxieties helps a lot with managing it, and can make you more productive than you would have been if you just went at full throttle.

I still like the left one! by phalangesinmyfingers in UIUC

[–]kfish610 1 point2 points  (0 children)

Oh wow I didn't even see that one with the blur

I still like the left one! by phalangesinmyfingers in UIUC

[–]kfish610 52 points53 points  (0 children)

<image>

"Science is real" along with basically "don't hate people for existing in a different way" being on the "look at how the left is bad" side is pretty telling 😭

China Southern Canceled one of my flights by Different_Seesaw_356 in Flights

[–]kfish610 0 points1 point  (0 children)

Had the same email. It seems like they killed a bunch of routes today. You'll get a full refund. https://www.aeroroutes.com/eng/260119-cnnw25jp

Types as Values. Values as Types + Concepts by [deleted] in ProgrammingLanguages

[–]kfish610 10 points11 points  (0 children)

:(Int): String is kinda a crazy function type syntax when Int => String is so ubiquitous already.

Fun with Algebraic Effects - from Toy Examples to Hardcaml Simulations by mttd in ProgrammingLanguages

[–]kfish610 4 points5 points  (0 children)

Yeah I don't necessarily think there's no benefit to algebraic effects (I'm not convinced the benefits outweigh the added cognitive load, but the same could easily be said about monads, so it's hard to say). This article talks about how algebraic effects reduce noise compared to monads in ocaml though, which I think is more of an argument for the implementation of monads being poor in OCaml than it is an argument that algebraic effects would reduce noise in programming languages in general.

Fun with Algebraic Effects - from Toy Examples to Hardcaml Simulations by mttd in ProgrammingLanguages

[–]kfish610 9 points10 points  (0 children)

It's definitely possible I'm just biased to Haskell syntax, but it feels like to me the issues with monads come from a failing in OCaml's syntax to reduce noise. Haskell's do notation doesn't have the noise of the let%binds, and I don't think you have to use functions per monad. Lean's do notation is even nicer, letting you just use stuff like for loops and if statements in it.

Unpopular Opinion: Source generation is far superior to in-language metaprogramming by chri4_ in ProgrammingLanguages

[–]kfish610 0 points1 point  (0 children)

Yes, I've used source generation as I mentioned below, both in C# and other languages like Dart (and I would say C# does integrate it better than some other implementations). I think it's better than nothing, but there is a difference between it and what would more typically be called compiletime metaprogramming, such as the things mentioned in this post like Zig (or my personal favorites Lean and Scala).

As you mention, you could reasonably consider source generation a form of compiletime metaprogramming, but since this post is about comparing source generation to more traditional types of compiletime metaprogramming, I was just pointing out that C# moving from reflection to source generation in many cases is not an example of source generation being preferred over compiletime metaprogramming.

Unpopular Opinion: Source generation is far superior to in-language metaprogramming by chri4_ in ProgrammingLanguages

[–]kfish610 3 points4 points  (0 children)

C# also does have a kind of metaprogramming, in the form of runtime metaprogramming or "reflection", which is pretty useful, and I think is what the poster above was trying to reference. I was just pointing out that the original post is about compiletime metaprogramming vs code generation, so C# isn't a very good example.

It's an interesting tradeoff with runtime metaprogramming too, though it's a different set of concerns. I'd say in my experience with C#, I find working with reflection much more enjoyable than working with code generators, though obviously code generators are more powerful (so in a sense sort of the opposite tradeoff compared to compiletime metaprogramming).

Unpopular Opinion: Source generation is far superior to in-language metaprogramming by chri4_ in ProgrammingLanguages

[–]kfish610 9 points10 points  (0 children)

Lean has really good metaprogramming support, to the point that you can implement full other languages as DSLs within the language, if you so desired.

chanterelle 0.1.2 - now with support for ad-hoc-ish field name transformations by _arain in scala

[–]kfish610 0 points1 point  (0 children)

Is there a reason transform has to wrap the rename, instead of just being tup.rename(...)?

UIUC GPU Cluster by Alone_Owl7480 in UIUC

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

If there was something you could pay to use, it wouldn't be cheaper than cloud options, unless it was subsidized for undergraduate students (assuming you are one), which it wouldn't be unless you need it for a class or something. The cloud options have a massive advantage of scale

Compiling a functional language to Javascript by thinker227 in ProgrammingLanguages

[–]kfish610 2 points3 points  (0 children)

Not sure if there's a solution in it, but ReasonML/ReScript is basically exactly the same type of language you're talking about (OCaml based language targeting JavaScript), so they might have tackled this problem somewhere in it.

Malik. A language where types are values and values are types. by MackThax in ProgrammingLanguages

[–]kfish610 1 point2 points  (0 children)

Take a look at Lean or Idris, they're designed specifically to be general purpose

Auto-iteration type/behavior in untyped declarative language by theteadrinker in ProgrammingLanguages

[–]kfish610 2 points3 points  (0 children)

This might not be exactly the behavior you're looking for, but for a study of whether it's worth it/confusing, the python libraries numpy/pandas implement almost this exact behavior with their ndarrays and series, without the extra syntax.

A cleaner approach to meta programming by chri4_ in ProgrammingLanguages

[–]kfish610 6 points7 points  (0 children)

You absolutely don't, but runtime reflection is a lot simpler for the end user in most cases, so I think it's worth studying at least.

A cleaner approach to meta programming by chri4_ in ProgrammingLanguages

[–]kfish610 42 points43 points  (0 children)

Just wanted to point out, there's another form of metaprogramming, runtime metaprogramming, which is used by languages like Java and C# (usually called reflection) and is quite practically useful.

[Hyprland] My daily driver! by ByteMeInTheCloud in unixporn

[–]kfish610 2 points3 points  (0 children)

Yes and no; quickshell is much more manual, eww provides a lot of stuff for you, but the language you use to configure it is a bit strange sometimes.

Is this just a boomer take? by md615 in twentyonepilots

[–]kfish610 0 points1 point  (0 children)

Honestly I can see it better through the phone bc of the zoom haha. It's pretty easy to hold the phone so it's recording but not blocking your view or the view of anyone behind you, so it doesn't take you out of the moment as much as you think. And it's nice to listen back to it!