tag:blogger.com,1999:blog-1777990983847811806.post6755162546887642874..comments2024-03-16T16:29:29.582-07:00Comments on Haskell for all: Model-view-controller, Haskell-styleGabriella Gonzalezhttp://www.blogger.com/profile/01917800488530923694noreply@blogger.comBlogger14125tag:blogger.com,1999:blog-1777990983847811806.post-84652125351621681372017-04-10T10:06:13.738-07:002017-04-10T10:06:13.738-07:00Yes, beyond garbage collection I'm maintaining...Yes, beyond garbage collection I'm maintaining a cache and handles to GPU memory that each require some degree of manual management. <br /><br />I did consider using a free monad as the underlying monad of the network, but I wanted to keep the FRP network singularly concerned with game logic. However, since the acquisition/release of assets is tied so closely to the scene transitions prescribed by the game logic, I see the error in my thinking. I should simply push the effectful parts as far out of the game logic as possible, rather than all the way out of the network.Anonymoushttps://www.blogger.com/profile/09571638159854249554noreply@blogger.comtag:blogger.com,1999:blog-1777990983847811806.post-60851228049282188652017-04-08T22:44:05.060-07:002017-04-08T22:44:05.060-07:00What do you mean by unloaded from memory? Is this...What do you mean by unloaded from memory? Is this something beyond just being garbage collected?<br /><br />You also don't have to constrain yourself to exactly this model. I'd suggest using a free monad to mock out external interactions so that you have more flexibility in terms of how you interact with the outside world.Gabriella Gonzalezhttps://www.blogger.com/profile/01917800488530923694noreply@blogger.comtag:blogger.com,1999:blog-1777990983847811806.post-11719280699031679952017-04-07T09:17:57.420-07:002017-04-07T09:17:57.420-07:00Hey, long time reader here. I've been working ...Hey, long time reader here. I've been working on ironing out a principled approach to game development, and I remembered this post. I've had some success using almost precisely this abstraction, the only difference being the pure model is an FRP network. However, I'm having issues with changing information required by the model. Namely, images, audio, etc that must be loaded from disk / unloaded from memory dynamically in response to the state of the network. Since you mentioned a more general abstraction I've been trying to make the conceptual leap myself, but I'm not quite seeing it. Any assistance would be greatly appreciated. Thank you.Anonymoushttps://www.blogger.com/profile/09571638159854249554noreply@blogger.comtag:blogger.com,1999:blog-1777990983847811806.post-46676716493015005492015-05-30T12:46:15.375-07:002015-05-30T12:46:15.375-07:00Oh, glad to here that it's not abandoned, good...Oh, glad to here that it's not abandoned, good luck with it and I'll be waiting for the announcementQrilkahttps://www.blogger.com/profile/14856370078919907461noreply@blogger.comtag:blogger.com,1999:blog-1777990983847811806.post-19183984856856553132015-05-30T12:36:15.081-07:002015-05-30T12:36:15.081-07:00Just a tiny bit of progress. I'm almost done ...Just a tiny bit of progress. I'm almost done with the book outline. The hold up was that one section of the book will be related to the `turtle` library, which I wanted to release first. I will announce more when I begin working on the book in earnest.Gabriella Gonzalezhttps://www.blogger.com/profile/01917800488530923694noreply@blogger.comtag:blogger.com,1999:blog-1777990983847811806.post-50232225726951651082015-05-26T14:58:00.537-07:002015-05-26T14:58:00.537-07:00More than year have passed since this blogpost - i...More than year have passed since this blogpost - is there some progress on the book?<br />It would be wonderful if it would be available for preoder :)Qrilkahttps://www.blogger.com/profile/14856370078919907461noreply@blogger.comtag:blogger.com,1999:blog-1777990983847811806.post-10311235030776868662014-05-14T15:56:20.388-07:002014-05-14T15:56:20.388-07:00Renamed repo: https://github.com/cmahon/mvc-exampl...Renamed repo: https://github.com/cmahon/mvc-examples.gitcmahonhttps://www.blogger.com/profile/02643369051539558938noreply@blogger.comtag:blogger.com,1999:blog-1777990983847811806.post-84576662279120774122014-04-30T15:15:17.307-07:002014-04-30T15:15:17.307-07:00I will write the book over the next couple of year...I will write the book over the next couple of years. I have most of the material I need now.Gabriella Gonzalezhttps://www.blogger.com/profile/01917800488530923694noreply@blogger.comtag:blogger.com,1999:blog-1777990983847811806.post-69196625609947991072014-04-29T05:56:31.358-07:002014-04-29T05:56:31.358-07:00This might help anyone having trouble getting the ...This might help anyone having trouble getting the SDL example to run on OS X. <br /><br />https://github.com/cmahon/Haskell-MVC-Examplescmahonhttps://www.blogger.com/profile/02643369051539558938noreply@blogger.comtag:blogger.com,1999:blog-1777990983847811806.post-60292116099316577352014-04-28T09:07:04.543-07:002014-04-28T09:07:04.543-07:00I'm intrigued by your book, I think it would d...I'm intrigued by your book, I think it would do a great deal to unify the base knowledge of haskell designers. It sounds like an early phase, is this more like something in the next decade or could we expect it within the next couple years? Very interesting!Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-1777990983847811806.post-25128349376678139262014-04-28T08:44:07.656-07:002014-04-28T08:44:07.656-07:00This comment has been removed by the author.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-1777990983847811806.post-91410585733545451522014-04-26T09:52:56.262-07:002014-04-26T09:52:56.262-07:00Yeah, this doesn't support dynamically changin...Yeah, this doesn't support dynamically changing inputs or outputs, but it does support a dynamically changing model. That is something that `pipes` does well.<br /><br />I do agree with the sentiment that this is not fully general, but I wanted to get the simple idea out there first before I progressed to more general ideas.Gabriella Gonzalezhttps://www.blogger.com/profile/01917800488530923694noreply@blogger.comtag:blogger.com,1999:blog-1777990983847811806.post-4298961059347511722014-04-26T09:43:41.708-07:002014-04-26T09:43:41.708-07:00As mentioned in the conclusion, this is a limited ...As mentioned in the conclusion, this is a limited version that is not designed "to handle changing numbers of inputs and outputs over time." I think you are talking about important principles, but I think dynamic linkages between m, v, and c would satisfy some of them.Anonymoushttps://www.blogger.com/profile/00380593834900043397noreply@blogger.comtag:blogger.com,1999:blog-1777990983847811806.post-32646884946842755492014-04-26T00:30:41.043-07:002014-04-26T00:30:41.043-07:00I love theorical explanation.
But I have doubts a...I love theorical explanation.<br /><br />But I have doubts about scalability and reusing.<br /><br />If M is pure then, all IO actions must come from C. A big restriction (I think). C, only should provide information about complete MVC workflow, not information required by M (this information may change over time and requirements). In other words, M need IO to decouple their behavior with C (and V for output results [no view outputs]).<br /><br />In other words, you are mixing abstraction IO (all MVC as a big piece) with specific IO (M, V and C as independent pieces).<br /><br />(A example problem with that: you can't change M without adjust C and/or V)<br /><br />(Thank you for your posts!)<br />(I'm waiting for your book ;)salfumanhttps://www.blogger.com/profile/01740371957443086720noreply@blogger.com