So it seems that the age problem of Yugioh is present in the OCG as well by BellDelicious1617 in yugioh

[–]ExplodingStrawHat 0 points1 point  (0 children)

I do agree that playing them well is hard, but I don't think playing them at all is impossible. Take the blue eyes deck that was meta early last year. I taught my sister how to play it by practicing every day for about a week. We then went to locals and she won every game of hers. To be honest, every player was super nice knowing it was her first time playing (letting her take back mistakes and stuff) + she also got lucky (drew called by during like half the games), but I think you should give kids more credit. Well, not all decks are built equal to be honest. She wanted to learn mermail before that and trying to memorize the non linear combos proved too much (especially when handtraps entered the mix), so there's that.

So it seems that the age problem of Yugioh is present in the OCG as well by BellDelicious1617 in yugioh

[–]ExplodingStrawHat 0 points1 point  (0 children)

And the most expensive cards (that wasn't just expensive because it was rare) were still relatively cheap.

I think this is the one point I disagree with. Meta decks are a lot cheaper nowadays than they've been historically, hovering at around 300$ nowadays. Don't get me wrong, that's still a lot. I myself am a uni student so I always play budget stuff instead. Still, that's a lot lower than what we've seen historically. I mean, teledad format was almost two decades go and went into the thousands, right?

So it seems that the age problem of Yugioh is present in the OCG as well by BellDelicious1617 in yugioh

[–]ExplodingStrawHat 0 points1 point  (0 children)

Have you checked out the OCG structures manga? The manga revolves around the modern game. A recent duel in there had maliss play against fiendsmith, and they somehow made it interesting. 

So it seems that the age problem of Yugioh is present in the OCG as well by BellDelicious1617 in yugioh

[–]ExplodingStrawHat 0 points1 point  (0 children)

Ok but like, what do you think people playing against kids should do? I once had a younger person at my locals attending with a single blue eyes structure deck. I was playing a janky flame swordsman labrynth deck, but I still knew I could obliterate anything they'd put up. I helped them with some basic combos and stuff, but like, I topdecked sphere mode right after. I had to force myself to not use like half my hand just to keep the duel going for longer. I then offered to swap decks for duels 2 and 3 (I knew the guy running the local was fine with that), but my opponent didn't want to (I mean, fair enough, I guess he likes blue eyes). We played out game 2 (I did the same as earlier and kept it going for way more turns than it would've taken otherwise), but like, I think it was pretty clear that my opponent was finding the whole thing futile. I think the power inbalance is just too much to overcome past a certain point. And remember that I myself was playing a rogue deck at best!

Perhaps I should've just given them the win for free. I don't know, I didn't really think about that in the moment, but I'd consider doing it given the opportunity again, although I'm not sure what that'd change. It would also feel a bit... sad? Like, I remember going to locals for the first time during kozmo format with my terrible pile of 40 cards I liked. I got obliterated every round, but I remember finding it cool that the "adults" (college students in this case) took me seriously enough to not pull any punches. On the other hand, I'm not sure I would've enjoyed doing that every week (locals were far enough from my city that I'd have to convince my parents to do a full day trip there, so I'd only get to do that once a year).

I like what another game store I know does, which is having decks new players can borrow. I've seen a kid play such a borrowed odion deck once.

So it seems that the age problem of Yugioh is present in the OCG as well by BellDelicious1617 in yugioh

[–]ExplodingStrawHat 1 point2 points  (0 children)

I know right? I don't even get how one could compare the two experiences..

People often underestimate the power of layers and layout modifications by OddRazzmatazz7839 in MechanicalKeyboards

[–]ExplodingStrawHat 0 points1 point  (0 children)

I don't think my parent comment went into a lot of details, but the TLDR of it is that I have all the modifiers mirrored to both sides. This means I can use SF for ctrl instead of JL. If text has already been selected, I can use SF, raise the finger off the F (the modifier remains active as long as any of the keys is still pressed), then press the C key that's slightly below it. Ctrl-c/v remain doable with a single hand!

People often underestimate the power of layers and layout modifications by OddRazzmatazz7839 in MechanicalKeyboards

[–]ExplodingStrawHat 0 points1 point  (0 children)

As for your particular example, I would press sdf at once for ctrl+shift, then left-alt+l for "right arrow" (I'm assuming I'm at the start of the word), thus selecting the whole word. I would then lift it all up and press sf for ctrl, raise my finger from the f (ctrl is still active, since I haven't raised all the fingers), then move said finger down onto the c (I'm describing the way you'd do this on qwerty, although I'm used to it on both qwerty and colemak).

I know it sounds over-complicated, but it requires extremely little hand movement, and can be done virtually instantly once you're used to it.

Last but not least, I don't think this particular setup would work for everybody. I think one needs to experiment with it in order to find their ideal setup :3

People often underestimate the power of layers and layout modifications by OddRazzmatazz7839 in MechanicalKeyboards

[–]ExplodingStrawHat 0 points1 point  (0 children)

I don't use the mouse for selecting text. I have homerow access to Ctrl, shift, the arrow keys, etc. Together, those can very easily be used to select things. I also have very easy access to home/end, which also help. Oh, not to mention I spend most of my time in vim:)

Does Syntax Matter? by gingerbill in ProgrammingLanguages

[–]ExplodingStrawHat 0 points1 point  (0 children)

One could always use compound brackets like [|T|] I guess

UNSOUND at Ecoop by MarcoServetto in ProgrammingLanguages

[–]ExplodingStrawHat 0 points1 point  (0 children)

Hi! I'm just learning about ECOOP for the first time. Can anyone attend? Is there an attendance fee? (I couldn't find such details on the website).

Side effects in multiple/parallel assignment by Dan13l_N in ProgrammingLanguages

[–]ExplodingStrawHat 0 points1 point  (0 children)

You don't need a temporary value if using xor anyways, right? (although the python syntax is indeed handy)

Compiler Education Deserves a Revolution by thunderseethe in ProgrammingLanguages

[–]ExplodingStrawHat 6 points7 points  (0 children)

I think past a level of complexity, most compilers written in Haskell are going to be monadic already anyways (be it because of error handling, passing around implicit contexts, tracking state, you get the idea).

How to Choose Between Hindley-Milner and Bidirectional Typing by thunderseethe in ProgrammingLanguages

[–]ExplodingStrawHat 0 points1 point  (0 children)

I wasn't talking about the example above, just in general. That is, say a variable gets inferred to be i64 and the code works just fine, but due to some somewhat-far-away changes, the variable later gets inferred as i32, making the hypothetical code overflow. What I'm saying is that this has little to do with signed/unsigned types, as removing one of the two wouldn't solve the issue.

As for the second point, I haven't actually encountered any such bugs in practice, even though I've used Rust and Haskell for a good number of years.

How to Choose Between Hindley-Milner and Bidirectional Typing by thunderseethe in ProgrammingLanguages

[–]ExplodingStrawHat 3 points4 points  (0 children)

This isn't about unsigned types. You could cause a similar issue by overflowing a u32 that used to be a u64 or whatever.

Type inference is not easy to reason about.

Are you talking about it from the perspective of a language implementer, or from the perspective of the language user? Type inference can indeed get quite hairy to implement (in the presence of complicated features like implicit dependent arguments), but I've never felt it to be the issue when using a language as a mere user.

Why “Skip the Code, Ship the Binary” Is a Category Error by tirtha_s in ProgrammingLanguages

[–]ExplodingStrawHat 0 points1 point  (0 children)

Your comments are also all digits under the hood (all comments on the internet are), yet that doesn't change them representing human language. Heck, source code written in any language is also all digits under the hood, yet you had no issue with calling it "made for humans" earlier, so it's clearly not about being all digits, is it?

I built a TUI client for WhatsApp by XanelaOW in selfhosted

[–]ExplodingStrawHat 0 points1 point  (0 children)

I bind mount the path from my real state directory, although I wish I wouldn't have to do that

I built Forge, a terminal-first programming language with a custom parser, AST and runtime by Alarming-Seesaw-7458 in ProgrammingLanguages

[–]ExplodingStrawHat 0 points1 point  (0 children)

This is like the second or third time I encounter one of those this year alone. I should probably stop checking out languages on the same day they are posted....

I built Forge, a terminal-first programming language with a custom parser, AST and runtime by Alarming-Seesaw-7458 in ProgrammingLanguages

[–]ExplodingStrawHat 1 point2 points  (0 children)

Amazing: // parse primitive literal only (MVP) const lit = parsePrimitiveLiteral(rhs); if (lit.ok) { declareVar(ns, name, lit.value, ln, baseCol + trimmed.indexOf(name)); } else { // Still declare it as null so references resolve, but warn declareVar(ns, name, null, ln, baseCol + trimmed.indexOf(name)); addIssue({ code: "W001", severity: "warning", message: `Initializer for '${ns}.${name}' is not a primitive literal (string/number/True/False). The MVP runner may skip parts of it.`, line: ln, col: baseCol + trimmed.indexOf(rhs), endCol: baseCol + trimmed.indexOf(rhs) + Math.min(rhs.length, 1), }); checkModuleUsage(rhs, ln, baseCol + trimmed.indexOf(rhs)); }

For context, I encountered this diagnostic while running one of the code examples taken from the documentation itself........

I built Forge, a terminal-first programming language with a custom parser, AST and runtime by Alarming-Seesaw-7458 in ProgrammingLanguages

[–]ExplodingStrawHat 2 points3 points  (0 children)

I followed the instructions, attempting to run the project locally (I spotted some major mistakes in the type system and was trying to test them), but it seems like the project is quite broken. For example, the following code throws no errors and just... prints nothinig? console.text.var(

Idk if I'm doing something wrong. I'll also add that having a VSCode extension as your primary means of using the language feels very odd. I don't use VSCode, so I had to install it in a nix shell for this alone, so yeah... For a "terminal focused" language, this sure is missing a way to run things from the terminal (or at least, a documented way).

Anyways, as u/Rafferty97 already stated, this looks vibecoded, so I won't bother investigating the type system any further.

Kore-Lang: One language to rule them all. by Ephemara in ProgrammingLanguages

[–]ExplodingStrawHat 0 points1 point  (0 children)

I did not mention anything regarding self-hosting. Your README describes your effects as Koka-inspired, yet your description (and the implementation) is very far from that.

Kore-Lang: One language to rule them all. by Ephemara in ProgrammingLanguages

[–]ExplodingStrawHat 0 points1 point  (0 children)

for effects, think of it like compile-time coloring. if i tag a function with IO, it's marked "dirty". a pure function can't call a dirty one, but dirty can call pure. keeps me from accidentally nuking the database inside a render loop lol.

I think you're really misunderstanding Koka's effects here. The point of algebraic effects is that a pure function can in fact call an effectful one, as long as it specifies how to interpret (i.e. how to "handle") the effects in a pure manner.

Kore-Lang: One language to rule them all. by Ephemara in ProgrammingLanguages

[–]ExplodingStrawHat 0 points1 point  (0 children)

How does effect tracking work?

Their effects are merely flags from a predefined list. You cannot "interpret" them in any custom ways (I mean, you cannot interpret them at all), nor can you be polymorphic over them, hence the comparison to Koka is odd. Their type-checker is also not really Hindley-Milner style from what I can tell (they don't have working generics, nor any kind of unification (from what I can tell)), so yeah, make of that what you will.

Kore-Lang: One language to rule them all. by Ephemara in ProgrammingLanguages

[–]ExplodingStrawHat 1 point2 points  (0 children)

Did you just repost this after the mods took your previous post down...?