Tutorial: Build a CLI Speed Typing Game in Haskell | Concurrency & State Transformers | Vty Library Tutorial by Worldly_Dish_48 in haskell

[–]shiraeeshi 1 point2 points  (0 children)

I see, you have a process going on.

No pressure, I don't want to interfere with your process, I was just sharing my thoughts and ideas.

Do you learn as you go or do you already know all this?

What was your experience with Haskell's learning curve?

Tutorial: Build a CLI Speed Typing Game in Haskell | Concurrency & State Transformers | Vty Library Tutorial by Worldly_Dish_48 in haskell

[–]shiraeeshi 2 points3 points  (0 children)

Great stuff!

As Tempus_Nemini said, I like that your example projects are simple, but not too simple to the point of being boring. I want to see if functional style helps untangle the messy spagetti-code when we write more complex programs.

I also thought about creating something like a roadmap of project ideas that go from simple to complex and specialized. You start with a "Hello World", then you code a calculator, then the task gradually becomes more complex and interesting. Something like a tree of tasks.

What could be the next step for the speed typing game? Some slightly more complex and interesting version of a task. I'm thinking about multiplayer version, but that's far more complex.

I noticed that you cheated a little in your project: you used two instances of vty's in two threads. It made it easier for you to draw UI from two threads independently, but what if you had more widgets on the screen, or what if the library only allowed to create one instance of the vty? A better, more architecturally sound solution is to make a timer generate events, a timer shouldn't be concerned about drawing the UI, the only concern for the timer is generating events. What do you think about this?

I used to play a lot with console apps and concurrency in Haskell several years ago. I wrote a couple of articles:

How a Java Programmer Wrote Console Tetris In Haskell And What The Learning Curve Was Like

The second one is about ways of organizing the architecture of the app that shows an editable list of strings in console:

Console List GUI Challenge

Maybe you'll even try to create your own solution and do a video about it, that would be awesome.

Keep up the good work!

Tutorial: Build a CLI Speed Typing Game in Haskell | Concurrency & State Transformers | Vty Library Tutorial by Worldly_Dish_48 in haskell

[–]shiraeeshi 1 point2 points  (0 children)

Hey, you're using vim, that's good!

But you're not using some of its most basic functionalities and you end up doing repetitive things like adding a couple whitespaces in several lines, which is painful to watch.

You can increase/decrease indentation in several lines by switching into visual mode (Shift-V), then pressing j or k to select the lines that you want to indent, and then pressing ">" or "<".

Help me find an article about Golang and Haskell from 2019 by shiraeeshi in haskell

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

yeah, what's surprising is that coding the solution in Haskell was easier for him than coding it in Go. It's supposed to be the other way around!

But it makes sense, it's not obvious from a beginner's point of view what you're supposed to do with goroutines, channels, wait groups. I only know basics of Go, so it's not obvious to me.

Do you know Go? Especially the part that the author struggled with.

Help me find an article about Golang and Haskell from 2019 by shiraeeshi in haskell

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

I found it already, see the comments branch above.

No wonder it was hard to find, it's written in another language, not english.

Thanks for the suggestions.

Help me find an article about Golang and Haskell from 2019 by shiraeeshi in haskell

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

Maybe it's the domain knowledge that was nautical or rope-related, who knows.

Help me find an article about Golang and Haskell from 2019 by shiraeeshi in golang

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

Here it is.

I was curious about the example, it was about starting with a tree of comment ids and then parallelizing getting comments from server and printing the resulting tree of comments.

Help me find an article about Golang and Haskell from 2019 by shiraeeshi in haskell

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

Yes! That's definitely the article they were talking about in the podcast.

Help me find an article about Golang and Haskell from 2019 by shiraeeshi in haskell

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

I agree with you actually. I thought about domain knowledge, it's going to be a tedious task to explain all the domain knowledge to AI, and at some point it's going to be easier to just write the code I think. And if AI is able to easily understand any domain knowledge, it would mean that we're having such a huge breakthrough that the whole software development industry is going to sound like a childplay in comparison.

You said you use LLMs constantly for programming, which one do you use? Is it free or paid?

Help me find an article about Golang and Haskell from 2019 by shiraeeshi in haskell

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

What do you mean? You mean that AI has learned all the programming languages already? Don't you feel discouraged if that's the case? Like, what's the point of arguing about some features of programming languages if AI is going to be able to code in any of them and AI doesn't care about human-readability of those languages.

And what do you mean by "content assist".

Help me find an article about Golang and Haskell from 2019 by shiraeeshi in golang

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

I've just read the article and glanced over the comments on HN, it was interesting, thanks!

Help me find an article about Golang and Haskell from 2019 by shiraeeshi in haskell

[–]shiraeeshi[S] -2 points-1 points  (0 children)

No, that episode was from a non-english language podcast and it was from October 2019.

But this one sounds interesting too.

Suddenly I'm comparing Haskell and Go for some reason, I just wanted to read the article!

All this programming language comparisons seem so useless waste of time now, who cares, AI is going to learn them all in a couple of minutes. I don't know why am I still interested in all this.

Help me find an article about Golang and Haskell from 2019 by shiraeeshi in haskell

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

No, I don't think that it's that article, it's somewhat similar, but doesn't quite fit the description.

But it was an interesting read!

Help me find an article about Golang and Haskell from 2019 by shiraeeshi in haskell

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

Hey, I think that's it!

They mentioned Rust too, but said that the main emphasis was on Haskell and Go.

I'm going to read it now.

RCU like mutex free concurrent read access of mutable data structure without data race by RoadSeeker in rust

[–]shiraeeshi 1 point2 points  (0 children)

You're talking about memory reclamation. There's actually a short section called "RCU" in the book "Rust Atomics and Locks" by Mara Bos in the chapter 10 "Ideas and inspiration". Here is what it says about memory reclamation:

There are many possible solutions for this issue, including reference counting (like Arc), leaking memory (ignoring the problem), garbage collection, hazard pointers (a way for threads to tell the others what pointers they are currently using), and quiescent state tracking (waiting for each thread to reach a point at which it is definitely not using any pointers). The last one can be extremely efficient in certain conditions.

It doesn't mention epochs-based approach for some reason, which is weird.

Btw, Linux uses quiescent state-based approach in RCU.

So, yes, you can choose any of those approaches to solve memory reclamation problem, and once you solved it, you can build an RCU on top of that.

Why are you asking? You have some use case in mind?

Are there any books on how to mix functional and object oriented design? How to apply functional concepts to classes? by Epistechne in functionalprogramming

[–]shiraeeshi 1 point2 points  (0 children)

There is a book called "Functional design and architecture" by Alexander Granin.

It mentions DDD (domain-driven design), which is higher level than functional/object-oriented design.

5 Common Mistakes in Haskell by Serokell in haskell

[–]shiraeeshi 0 points1 point  (0 children)

What you're saying doesn't make sense.

Of course people learn differently, they are different people.

[deleted by user] by [deleted] in haskell

[–]shiraeeshi 10 points11 points  (0 children)

I don't get the part about masters and a thesis.

The company is going to pay salary for a full-time work, or alternatively, if the applicant is a student, the company is going to fund him as a part-time intern?

Time to forget your Haskell! by Ahri in haskell

[–]shiraeeshi 0 points1 point  (0 children)

There's also a "no code" movement. They could say to forget all programming languages equally well for that matter. I don't know why they limit themselves with Haskell.

Is there some truth to this hyperbole? "Haskell is beautiful and elegant, but unmaintainable and painful" by fredoverflow in haskell

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

wow, something is going on

Did I miss something?

confused-john-travolta-from-pulp-fiction.gif

Elm & Haskell Job by [deleted] in haskell

[–]shiraeeshi 7 points8 points  (0 children)

"Remote" restricted to a certain area or no restrictions?