IRC channel logs


back to list of logs

<amz3>daviid: what do you think can be good example to serve as an illustration of goops use?
<amz3>Right now I think to use a robot in room that interact with flowers, computer, drawer...
<amz3>rendered as ascii
<amz3>A) ^
<paroneayea>on too
<paroneayea>as davexunit pointed out, it's hard to get on there without being "hip new web dev thing"
<amz3>daviid: B) I'm building a hypergraph db, it's a composition Atom linked together like molecules. There is different kind of Atom, and I'd like to use goops to have access to inheritance. The thing I don't have a solution for is that I want to allow Atom to dynamically change type aka. I don't want to store the type of the Atom in the Atom, and instead that my program guess the type based on its attributes
<amz3>using match
<amz3>daviid: forget about B), I will use somekind of match on the attribute assoc to determinte the correct type
<amz3>(but this sound overkill)
<daviid>amz3: I don't think goops is a good approach to solve your B quizz, iiuc. about the A example quizz, i think a real programming example would be better, like: when is it that i can use goops and that it truely helps. I have no quick anser, and not good at tutorial but I'm about to upload Grip, and Grip-Clutter extensively use goops, for good reasons I think, maybe you can snif there, will et you know, it's going to be within the next
<daviid>few days
<amz3>I though about clutter, the problem is that I'd like to not have dependencies
<amz3>maybe I'll revise that rule
<daviid>amz3: yes, I ment to inspire you to write something simpler which just need guile ...
<amz3>about B) how should I do inheritance without goops?
<daviid>yu don't want a tutorial to ask a user to install guile-cairo, g-wrap, guile-gnome, guile-cutter and grip :) [which is too bad really because geiser and guile-clutter [grip-clutter] is a must for a user to play with. of course the guix folks will soon package all that! :)
<amz3>I was thinking about using guix
<amz3>thanks for geiser suggestion, I will add that for sure
<amz3>the tutorial will be biased toward what I think are the basics and how to do it
<amz3>I will put a disclaimer and pray the reader to sort things that seems not interesting like emacs and guix ;)
<daviid>amz3: wrt B, correction, i just checked that you can indeed change the class of an instance using goops, not 'just' redefining a class but changing the class of an instance [I've never used that feature] so you may try to model/prototype something using goops
<daviid>i don't get the new magit i think :) i staged, then hit 'c' and that does open a commit buffer anymore, but a commit-popup ...
<daviid>ah, it's 'add log entry' [which does not have a shortcut?]
<wleslie>(display (car greetings!))
<nalaginrut>morning guilers~
***adhoc_ is now known as adhoc
<taylan>Gauche doesn't error on (let ((1 2)) foo) O_o (it doesn't change the value of 1 though)
<civodul>rebinding "1" would be even more fun tho :-)
<taylan>that would be very fun indeed...
<taylan>ACTION adds Gauche to collection of R7RS implementations used to test his R7RS libs. next target: Kawa
<amz3>héllo :)
***Shozan is now known as SHODAN
<paroneayea>whoa William Byrd followed me on twitter
<paroneayea>I guess I really shouldn't promote twitter
<paroneayea>I wonder if he read the sussman blogpost though.
<davexunit>that's cool!
<davexunit>oh hey, turns out he follows me too.
<davexunit>forgot about that ;)
<davexunit>I guess if you tweet about Scheme enough...
<davexunit>they introduce me at conferences as "Dave Thompson, profilific tweeter"
<paroneayea>I tried to write a smart minikanren program that's about "if you tweet about scheme enough william byrd follows you" but I failed
<paroneayea>guess I need to go back to The Reasoned Schemer!
<paroneayea>presto appendo
<taylan>ACTION adds Kawa to his collection of R7RS implementations. that makes: Chibi, Gauche, Kawa, Larceny
<davexunit>paroneayea: hehehe
<nalaginrut>ACTION just use Guile to control a robot car via bluetooth
<nalaginrut>it's worth to post something to the blog later
<davexunit>nalaginrut: please do!
<davexunit>I'm curious of the details
<nalaginrut>and worth to polish the serial control module to be a dependent lib
<nalaginrut>well, seems I have to make some video too
<davexunit>I want to learn more about these kinds of things and electrical engineering through writing Scheme programs
<nalaginrut>we'll use it in a hackathon competition next three days
<nalaginrut>one of my directions is to control hardware with Scheme as possible ;-)
<nalaginrut>I believe people don't have to use C in embedded area, of course, some essential issue needs C&asm, it's unavoidable
<nalaginrut>I mean, in the future
<nalaginrut>I hope there could be a highly-optimizing Scheme AOT compiler for performance restricted hardware, Guile is not suitable in this case, but it's reasonable to implement such compiler with Guile
<davexunit>wingo wrote some sort of GC from AVRs awhile back
<davexunit>in Scheme, of course.
<nalaginrut>IIRC he once was mumbling on the twitter about GC, kind of like "GC or realtime GC, it's a problem"
<amz3>cool nalaginrut
<amz3>can you send me an ice-cream quickly ;)
<nalaginrut>no hurry, I'll release it after the hackathon
<amz3>are you the only to code in guile in the hacklab? or your fellow hacker do scheme too?
<amz3>I ask because I don't join any hacklab because they all have already their tools and interest that don't match mine
<amz3>I don't want to join a hacklab to do python or C++
<nalaginrut>well, if you spend more than 3 years to sell Scheme to these guys, they may want to try ;-)
<nalaginrut>the problem is that most people has difficult to think in FP way, then they will hate lisp/scheme
<nalaginrut>but it is just in the beginning, they will be delighted if they passed this phrase
<nalaginrut>obviously, most people are not patient enough to pass it...
<amz3>I figured that learning a programming language is more difficult that I remember
<amz3>even if know several language, I know none as much as python
<amz3>And i'd like know scheme as well as python, tho there is more stuff in scheme to learn
<amz3>I mean scheme has more stuff documented
<nalaginrut>I confess learning Scheme is not easy for me in the beginning, you have to use it frequently
<nalaginrut>or you go back to think in C
<nalaginrut>anyway, more practices is universal methodology in most area...
<amz3>I do only guile these days, even i'm not very productive
<amz3>I try hard not to drop to the "textbook way of learning" but I think I will need to
<amz3>I think I will start reading reasoned schemer, always think about it. Last night, I dream of riding a hippo, it must be sign
<nalaginrut>I rarely use other languages now, only if I have to, because I can use Scheme to mimic any feature in other languages I want
<nalaginrut>there's the ancient Kungfu philosophy indicates that there must be one kind of Kungfu is general enough to hold all things
<nalaginrut>everyone in Jianghu is pursuing it...and I think I got it
<amz3>I don't believe in the mantra which says there is one true way, it's against my philosophy, that said I recognize than some kungfu do better than others
<nalaginrut>I didn't say it's the only true way
<nalaginrut>to save my time, I have to find a general enough one, but it doesn't mean others are bad
<amz3>This makes me think about ordinal logic:
<amz3>I agree, you did not say that, you made me think about that ^^
<nalaginrut>after all, PLT is still in development, there can't be a final answer now
<nalaginrut>programing language theory
<nalaginrut>I don't think Lisp/Scheme is the final answer, but it's a good way to go
<nalaginrut>I respect the diversity, and enjoy it
<nalaginrut>but I found a good way to hack the diversity in computer, it's Scheme
<nalaginrut>I have to sleep now
<nalaginrut>see you tomorrow
<zacts>^ mark_weaver too, I saw this on today
<amz3>it was posted on HN too
<amz3>I asked a while back about how to implement coroutines using call/cc
<amz3>the accepted answer almost work as is in Guile
<amz3>it does support restarting the coroutine, but for some reason, if you restart the coroutine without values, it restart with the last returned value
<davexunit>zacts: I was one of the people in that conversation.
<daviid>amz3: I uploaded grip's code, and grip-clutter is here: then you may look at apple, box and toolbar [.scm], the later has a good exmple of redefining a method [set-gravity in this case] at subclass level. I do not pretend it is good for a tutorial as it is though, it's too big of course and rather complex for a beginner, but feel free to use what ever might be good for you, if
<daviid>amz3: i would look here as well:
<amz3>thx :)
<amz3>I was looking for it anyway
<amz3>that said I'm fuzzy right now, so it won't be right away