IRC channel logs

2017-05-26.log

back to list of logs

<daviid>is it possible and how to launch a comand from guile and (a) nowait (b) that would remain alive even if guile quits?
<daviid>I need to launch gthumb, evince ... nowait, stay alive ...
<daviid>I'm trying this:
<daviid>(system "eog foo.png &")
<daviid>it seems it returns immediately, but the repl is still locked
<daviid>in geiser, in a terminal it's fine, so i guess it will work in a large program too, let's try
<spk121>daviid: try (when (zero? (primitive-fork)) (close (current-input-port)) (close (current-output-port)) (execl "/usr/bin/gedit" "gedit))
<spk121>oops, missed a quote. (when (zero? (primitive-fork)) (close (current-input-port)) (close (current-output-port)) (execl "/usr/bin/gedit" "gedit")
<daviid>spk121: I will, but the above (system "cmd args &") works, thought your approach is cleaner maybe?
<daviid>spk121: tx, have to run, bbl
***ertesx is now known as ertes
<webshinra_>hello world
<webshinra_>I'have got a «good practice» tips to ask you
<webshinra_>I'm still using guile for the gameplay part of my game engine and I'm beggining to use «seriously» Goops
<webshinra_>(I mean, trying to have a good arch with it)
<webshinra_>And, reading the manual about method, I find the fact that they are outside class, a really good conceptual thing
<webshinra_>but, here is my problem, where am I supposed to put them if I want to avoid cyclic depedency ?
<webshinra_>let's imagine I have a class <A> and e class <B> in two different module file
<webshinra_>If I have a method (pwet (foo <A>) (bar <B>) #f)
<webshinra_>I feel like I should not put it in the A module but neither in the B one
<webshinra_>but, where?
<amz3`>fwiw in python I had the same issue, and I eventually dediced to put both class in the same module
<webshinra_>hum
<webshinra_>I find that idea really unsatisfying :D
<webshinra_>ATM I would prefer it the creation of a module specialize for such association
<webshinra_>but it sound like namespace implementation {} in c++ and that's not really satisfying.
<webshinra_>Hum, yes, nesting the module seems to be the only good solution I can find
<rekado_>sneek: later tell daviid I tried to build guile-gnome with Guile 2.2 but this fails with type errors in “gnome-vfs-port.c” (e.g. gnome-vfs-port.c:62:11: error: dereferencing pointer to incomplete type ‘scm_t_port {aka struct scm_t_port}’)
<sneek>Will do.
<dsmith-work>Happy Friday, Guilers!!
<amz3`>\\o/
<OrangeShark>happy friday
<amz3`>it's absolutly a joy to read something as fruitful as https://lambdaisland.com/blog/25-05-2017-simple-and-happy-is-clojure-dying-and-what-has-ruby-got-to-do-with-it
<amz3`>the second half is all about how important it is to make the community welcoming for the beginners
<amz3`>regarding this, I have to say that the "read SICP" mantra is getting old. It's not enough funny, it's rather be book and nowdays people don't have the patience to "learn the good way" before being able to build something that spark joy
<amz3`>like me
<amz3`>writing a meta-interpreter is fun for me today, but not 10 years ago
<OrangeShark_>amz3`: rust has a blog post about trying to grow their community as well
<OrangeShark_>amz3`: https://blog.rust-lang.org/2017/02/06/roadmap.html and https://blog.rust-lang.org/2017/05/05/libz-blitz.html
<amz3`>tx OrangeShark_
<amz3`>I pushed to 'azul' repository my nano small chatbot, and put it online at http://chatbot.hyperdev.fr/
<amz3`>I am considering adding features or doing a video
<amz3`>bbl
<janneke>here i thought after merging the elisp branch guile was 100% elisp compatible...saddened to hear it's not the case and its well known by #emacs
<OrangeShark>what issues does guile still have?
<janneke>OrangeShark: (mapcar '1+ '(0 1 2))
<janneke>ice-9/boot-9.scm:251:17: In procedure #{1+}#:
<janneke>ice-9/boot-9.scm:251:17: Wrong type to apply: #{1+}#
<dsmith-work>but but but
<dsmith-work>'1+ is a symbol
<janneke>dsmith-work: elisp legacy --> until we're bug-for-bug compatible, we'll be maintaining two (at least) lisp within GNU
<dsmith-work>I guess I'm just used to the cleanliness and regularity of Scheme
<janneke>so sad how RMS saw that ~30 years ago...it takes more than 2 generations...
<paroneayea>o/
<janneke>hey paroneayea
<paroneayea>hi janneke
<catonano`>amz3`: that article is very interesting, insightul. I have been an absolute beginner with Clojure
<catonano`>amz3`: but SICP is a pearl. Maybe not for the absolute beginner. But it's a pearl
<catonano`>it's not only about the metacircular interpreter
<catonano`>it's about calculus, object orientation, graphics
<catonano`>it's about thinking
<catonano`>it is even about the math notation (how to express ffntions in the mathy sense using the lambda calculus)
<catonano`>it's an irreplaceable portal into the grand scheme of things
<catonano`>that said, it's absolutely true what he observes about interactions in the clojuure community and about the tooling
<paroneayea>SICP is great, and I encourage everyone to read it
<paroneayea>but!
<paroneayea>maybe what amz3` means is (and whether it's what amz3` means, I agree) SICP shouldn't be the "introductory path" to learning Guile / scheme
<catonano`>I have been playing with Hoplon (sort of a Common Lisp Enterprrisey framework for thhe web) and I can conffirm that it's a thought journey
<paroneayea>it should be there for you, and we should encourage people to explore it
<paroneayea>but it shouldn't be a requirement
<paroneayea>and it should be possible for people to be up and running and doing cool things in a very short period of time
<catonano`>paroneayea: fully agreed
<catonano`>paroneayea: but SICP is an incredible contribution not only to computer science but to culture in general
<janneke>i know i stranded somewhere in excersize 2.something...a friend of mine got even to 2.further
<catonano`>an attempt to asses guile scheme on this scale (metric) would be interesting
<janneke>ten years later, i continued reading * 5.3:: Storage Allocation and Garbage Collection
<janneke>
<janneke>:-)
<paroneayea>janneke: :)
<catonano`>I find the tooling for guile is even harsher than the tooling for clojure, for example
<catonano`>the community is way smaller too, so maybe it's not a completely ffair comaparison
<paroneayea>yes, and clojure is a much smaller than ruby / python / modern js
<catonano`>right
<paroneayea>if you're in guile land right now, it's a lovely place to be but
<janneke>yeah, that's unfair, we got 30+ years of emacs to sort out :-D
<paroneayea>you will have to be ready to help write a lot of things that aren't here yet
<paroneayea>janneke: are you saying once we get elisp integrated we'll just use all the emacs tooling? ;)
<catonano`>paroneayea: right. One thing I miss is something like Grimoire
<paroneayea>ACTION thinks about all our string operations happening in buffers ;)
<janneke>*lol*, why not paroneayea ?
<janneke>tbh, we could do with some more bold system level architecture vision or so
<janneke>my init is guile, my windowmanager is emacs/elisp -- go figure
<janneke>not to say civodul and guix aren't bold enough...
<catonano`>Grimoire: https://www.conj.io/
<paroneayea>guile needs to grow, and is, but there's clearly plenty more room
<janneke>yup
<janneke>not really complaining, the past years have only been better and better
<paroneayea>we can challenge ourselves to do better and be constructively critical, and should, without it being complaining :)
<catonano`>paroneayea: sure, I am just thinking out loud
<janneke>yeah, and we have a truly amazing eh team? that radiates exactly that attitude
<paroneayea>I love being part of Guile's community.
<paroneayea>I'm sure things will get even better :)
<paroneayea>I am hoping I can help make it a more exciting place for web development and etc too
<janneke>exactly that, me too!
<paroneayea>which I think is something that will be helpful, and is at least something I know how to do mostly
<paroneayea>but I am excited to see a lot of things happening
<paroneayea>and I'm glad that we've sort of agreed on guix as a package manager :)
<catonano`>one point where the Guile (Guix ? ) community outshines the clojre one is in curtness. The Guix/guile community is a bit more chatty and empatic
<janneke>:-)
<catonano`>it's a pleasurable bunch
<janneke>catonano: i wrote patches for Emacs GUD and Guile to work together...
<janneke>that was just before i learned about Geiser and the repl
<catonano`>janneke: Emacs GUD ?
<janneke>yep
<janneke>it got integrated in Emacs, but my patches for gnu-style error messages did not land in guile yet
<catonano`>I had to search that, I didn't know what Emacs GUD is ;-)
<janneke>ah, a beardy (m/f) c/c++ developer would know
<catonano`>is there a GNU style even for error messages ? o_O ? You people are something ;-)
<catonano`>yes, the format of the stack traces, the colored terminals... they seem subtle things but are not so subtle. Recently Rekado observed how Guix shhould spill its guts out so readily. That's an interesting observation. That's about user experience
<janneke>yeah, but guile (or at least its predecessor SCM) predates that and is one of the few remaining GNU applications not to conform :-/
<catonano`>ehm.. should NOT
<janneke>L
<janneke>?
<janneke>ah yes, should not...i see, sure
<catonano`>Guix shold _not_ spill its guts out so readily. That's what I meant. I missed the "not"
<janneke>yeah, we'll get there, i'm sure --priorities ;-)
<catonano`>I managed to do some step debugging of Guile code. Thhen I let some time pass and now I don't remember what I did :-/
<catonano`>janneke: yes, I see a tension toward that
<catonano`>amz3`: the SICP is not introductive material, that's right. That's an argument for te academia, not for the world at large
<catonano`>being costructive is a skill. It's not to be taken for granted. It equires restraint and dedication
<catonano`>I have been waaaay less constructive than I am now. It took me a while
<catonano`>those patches of mine that have been acepted in Guix: that's the first time in my whole life that some contribution of mine makes its way in an established project
<rekado>I really like when this happens and you slowly become a regular contributor to a project.
<rekado>whether that happens depends a lot on the existing community
<janneke>community and contributing seems to be much underrated
<janneke>i think it's amazing when people get together to build great works
<catonano`>rekado: right. The point I was trying to make is that the Guile/Guix community is the first one to elicit such a result from me :-)
<sirgazil>ACTION is clueless. I have an `all-packages` procedure that returns all Guix packages when imported in a REPL or a top-level program, but when I call the same procedure in a haunt website, it returns an empty list...
<catonano`>sirgazil: a naive question: did you import all the namespaces containing packages, in your haunt website ?
<catonano`>rekado: I had tries some years earlier, with less success
<rekado>catonano`: it was the same for me!
<catonano`>rekado: really ? :-)
<rekado>the Guix+Guile communities were the first were I really felt welcome.
<amz3`>sirgazil: welcome back, what do you think about printing some tshirt for gnu hacker meeting?
<catonano`>in fact I have been subscribed to the Guile dev and Guile user mailing lists for years
<sirgazil>amz3`: Thanks :) When is that GHM?
<amz3`>sirgazil: 25-27 August 2017 https://www.gnu.org/ghm/
<catonano`>amz3`: sirgazil I want to make a reservation for a ew o such t-shirts !
<amz3`>I never contributed anything subtantial to anything. I find it really hard, it because of me, I don't ant to commit to a project.
<amz3`>I won't say that guile community is less or more friendly than python or javascript community because it's not the case
<sirgazil>catonano`: Yes about the me importing guix modules that define packages (http://ur1.ca/qxf92).
<sirgazil>amz3`: I think I can print some Guile and Guix shirts before that.
<amz3`>in my experience, getting feedback is really hard. In Python I never had feedback, and in javascript recently i got a few replies to a message I posted on one (out of hundreds) forums
<amz3`>sirgazil: that would be very nice
<happy_gnu>hello :)
<happy_gnu>how can I save a file to be guile
<amz3`>given the size of guile community, I think it still requires "hard skin", but no more no less than other communities I know of
<sirgazil>amz3`: I heard your going into space. Send unmaned vehicles first, not people :)
<happy_gnu>I just save them in emacs with no extention
<sirgazil>happy_gnu: .scm
<catonano`>amz3`: python´s and javascript's communities are very large. I think it's physiological
<happy_gnu>sirgazil: hey thanks :) do you know how can I make guile the default so emacs knows to run guile?
<sirgazil>happy_gnu: that part I don't know :)
<amz3`>the thing with is that Guile is a smalll community with powerful tools, the chance to have an impact is much bigger than the sea of different framewroks found in Javascript or the pletora of machine learning libraries in Python
<amz3`>still things take time...
<paroneayea>heya sirgazil!
<sirgazil>happy_gnu: You were learning from HtDP, right? I think you could enjoy the How to code course with Gregor Kickzales.
<sirgazil>paroneayea: o/
<happy_gnu>sirgazil:I am using SICP :)
<amz3`>happy_gnu: did you install geiser mode for emacs?
<happy_gnu>I did first course of edex of gregor with drracket
<sirgazil>happy_gnu: That's too hard if you are just starting, imho. But if you understand SICP, then great.
<happy_gnu>amz3`: yes :)
<amz3`>sirgazil: yes you are right
<happy_gnu>sirgazil: yes it is hard, I've been stuck with pascal triangle
<happy_gnu>but I think I got it
<happy_gnu>I am writing the code now
<happy_gnu>I hope it works :/
<sirgazil>happy_gnu: :)
<amz3`>happy_gnu: if you have geiser installed it should recognize .scm files as scheme files and maybe ask you about which scheme you use, simply answer guile
<happy_gnu>the only problem I have is I don't know how to ask for the list of numbers and how to make them print in each line so it looks like a pyramid
<amz3`>1
<amz3`>2 3
<amz3`>4 5 6
<happy_gnu>yes something like that jaja
<amz3`>something like that ^
<happy_gnu>yes :P
<amz3`>that requires some thinking...
<paroneayea>happy_gnu: you don't have to have it print like that. but if you were going to, you'd need to adjust it ahead of time to how many items the last row would have
<paroneayea>which is made trickier because
<paroneayea>41508
<paroneayea>takes up more than
<paroneayea>5
<happy_gnu>:/ for now i will conform with a simple list like (1 1 1 1 2 1 1 3 3 1.. etc)
<paroneayea>happy_gnu: but, you don't need to actually do that printing to do the exercise, though it could be a fun exercise
<happy_gnu>or maybe ((1) (1 11) (1 2 1) (1 3 1))
<paroneayea>happy_gnu: there you go, use that with ,pretty-print :)
<amz3`>happy_gnu: do you know 'iota' procedure?
<happy_gnu>ok let me finish and I'll share you the code so you guys tell me what you think :) hopefully it will work
<happy_gnu>amz3`: I don't :/
<amz3`>happy_gnu: I think you need it
<amz3`>happy_gnu: try at the repl (iota 42) with different values for 42
<amz3`>each elment is list give the number of element in the related level of the pyramid starting at the top
<amz3`>for instance (iota 3) return (0 1 2) you can convert that to (1 2 3) with (map 1+ (iota 3))
<amz3`>then you have (1 2 3) which describe the number of elements in each level in the pyramid
<amz3`>happy_gnu: I would use a named-let to do that, maybe you can do otherwise
<amz3`>happy_gnu: anyway paste your solution
<amz3`>bbl
<happy_gnu>amz3`: ohh that is really good
<sirgazil>happy_gnu: do you laugh in Spanish? "ja ja ja"? :)
<sirgazil>amz3`: I'd like to explore waterbodies on Earth with unmanned vehicles, but after finishing the Guix website update I'm working on :) (seriously)
<happy_gnu>yes sirgazil I am mexican :)
<happy_gnu>I usually laugh in spanish :P
<sirgazil>¡Ah! Bienvenid@ a la comunidad de Guile :)
<catonano`>are you working on a Guix website ?
<catonano`>sirgazil: ^
<catonano`>ah an update
<sirgazil>catonano`: Yes. I'm implementing the design proposal I sent before.
<sirgazil>The design is pretty much done, but I had to wait for Guix API to be available for guile 2.2. So I was working with dummy packages.
<catonano`>sirgazil: wonderul ! Thanks !
<sirgazil>:)
<catonano`>ok, I'm tired. I'll fall asleep in a short while ;-)
<happy_gnu>yeah!! it works
<happy_gnu>kinda :P
<happy_gnu>I am not sure how to improve it
<happy_gnu>probably with amz3` suggestions
<happy_gnu>this is my code http://paste.lisp.org/display/347548
<happy_gnu>it is producing a 0 at the end, not sure how to get rid of it :/
<happy_gnu>
<happy_gnu>sirgazil: ahh gracias :) tu de donde eres?
<sirgazil>happy_gnu: Valle de Aburrá, Suramérica.
<happy_gnu>sirgazil: ohh :D great!!
<happy_gnu>I am happy I was able to do this pascal triangle
<happy_gnu>I didn't understand anything on how to do it :/ I had to learn a lot of math to do it
<catonano`>happy_gnu: :-)
<happy_gnu>I went to wikipedia I didn't understand the formulas, even the letters, so I read about matematical notation, then I read about pascal triangle and combinatory
<happy_gnu>after like 3 days on trying to understand how pascal triangle works I was able to do it :/
<happy_gnu>Do not laugh of me :P
<happy_gnu>paroneayea: how does pretty-print work?
<happy_gnu>ohh never mind I am reading documentation now, sorry :)
<paroneayea>:)
<happy_gnu>paroneayea: i have lots of parentesis :/
<happy_gnu>is wrong :/ but I have no idea how to get rid of them
<happy_gnu>I used (list ) to create lists
<happy_gnu>but anyway I am happy :) I thought this was impossible
<paroneayea>happy_gnu: maybe you want to use cons!
<paroneayea>rather, cons
<paroneayea>! was for emphasis, not part of procedure name :)
<sirgazil>Does the link in Guile's manual to "the specification of SRFI-64" work for you? I land in the same page of the link when I click it.
<sirgazil> http://srfi.schemers.org/srfi-64/srfi-64.html
<sirgazil> https://www.gnu.org/software/guile/manual/html_node/SRFI_002d64.html#SRFI_002d64
<sirgazil>It works in Lynx. It may be Firefox then? Anyways...