IRC channel logs

2016-07-17.log

back to list of logs

<janneke>this gives #f: (procedure-source (lambda (x) x))
<janneke>what am i missing?
<jmd>janneke: Well, (lamba (x) x) is not a procedure source
<janneke>jmd ah, hmm. do you have an example of procedure-source not returning #f?
<jmd>Let me see ...
<jmd>I usd it once before ...
<janneke>i was mostly hoping it would show the source of a lambda like above,
<janneke>or at least the location the lambda was defined
<jmd>Yeah actually I thought that should work.
<ijp>janneke: having source is more of an exception than a rule
<ijp>eventually we'd like for source to be kept in a strippable section of a .go....
<janneke>ijp: except maybe for the eventually-bit, that sure sounds very nice
<janneke>would it be very hard to see a more friendly/useful file:line than, e.g., ice-9/eval.scm:338
<amz3>héllo :)
<galex|713>amz3: Hi :)
<amz3>what are you up to galex|713 ?
<amz3>what's up?
<amz3>I think i'll try to create a blog engine in 5 minutes... and next week I'll do the internet in 30...
<galex|713>amz3: x)
<amz3>yeah, it seems like if a language can not do a blog engine in 5 minutes, it's not worth looking into it
<amz3>I recognize that 5 minutes, is kind of short...
<galex|713>I did it in 4
<galex|713>*with bash
<galex|713>But I had experience x)
<galex|713>and anyway what is a blog engine? :) most of time it’s a bdd -> html translator
<amz3>there's a few quirks like handling auth and stuff
<galex|713>auth?
<amz3>authentification
<amz3>setting the cookie
<amz3>I'm not confortable doing that in guile
<galex|713>Eventually I can understand for openid, but most of blogs I knew didn’t use cookies and it were way more simplier
<galex|713>Maybe otherwise using client-side TLS certificate
<galex|713>that would have some meaning
<galex|713>Or HTTP auth method
<galex|713>(even I dunno if it’s good enough)
<amz3>no i won't use HTTP auth method
<galex|713>Why?
<amz3>because it's not good enough, nobody use that nowdays
<amz3>I mean that nobody use that today
<amz3>everybody use some kind of secure cookie
<galex|713>.htaccess stuff use it
<galex|713>cookies are horrible
<amz3>why?
<galex|713>because they’re used for so much stupid stuff
<galex|713>And they’re not specific enough for auth
<galex|713>So I prefer client-side cert: simplier, better, more secure, more stable
<amz3>hmm... what is client side cert?
<galex|713>you know, when you use TLS, you use asymetric crypto
<galex|713>then the server has a cert
<galex|713>but: the client too
<amz3>I don't know that kind of auth scheme
<galex|713>some CAs use it to auth their registrants
<amz3>sorry but do you have an example app/framework that use that auth scheme?
<galex|713>^---
<galex|713>free SSL certs providers
<amz3>I will try to build a simple blog with a classic auth scheme
<galex|713>Like this one: https://www.startssl.com/?app=1
<amz3>actually i will do as I would do using a framework like Django to create a blog in 5 minutes
<galex|713>I hate frameworks: either they produce bad and encumbered code, either they can produce good-code with lot of layers added and at the end it’s not worth
<amz3>I'm not sure I understand what you mean. Using cookies requires to use SSL/TLS to avoid someone intercepting the cookie
<amz3>SSL/TLS is anyway a requirements, I don't think you can do auth without TLS
<galex|713>yes but it’s just like a password stored and given by the browser (except it can be less secure too)
<galex|713>But you can also use public key to auth
<galex|713>Also that’s good because we have way to convert PGP keys into X509 certs, as well as SSH keys
<galex|713>So you can check it’s the same person with this method too
<amz3>But that would require to auth the user everytime they visit a page
<galex|713>that’s also what you do with a cookie
<galex|713>and « auth » just mean « look at the certificate », doesn’t mean to do anything special
<amz3>yes, the point of the cookie, if it's transfered in a secure manner is to allow to auth the user without requiring them to enter their password
<amz3>I'm not sure how auth works with pub keys
<amz3>never heard of it
<galex|713>yeah but password is old stuff, you have either to remember them, either to use one different password for each person and then to change it it’s not secure, and then nobody can refer to you to give some else people a way to auth you, etc.
<galex|713>pubkey auth is way more powerful
<ijp>if you're using https the classic auth would also be securly transferred
<ijp>the principles are the same
<amz3>galex|713: sorry but i think you are dreaming again, nobody use SSH pub key to do auth on the web
<galex|713>yeah but you have to generate a random password (most people doesn’t) and store it encrypted (most people doesn’t)
<galex|713>amz3: no but people use TLS pubkey, and me, I could convert PGP to both SSH and TLS/X509
<galex|713>and you can still provide tutos for doing so
<ijp>for a really basic blog I wouldn't bother with auth, and use a different method for supplying posts
<ijp>not like anyone else needs to login
<galex|713>+1
<galex|713>anyway most blogs I know didn’t even use an auth system
<galex|713>Or at least only OpenID, and that’s the only stuff needed
<galex|713>And you can install it separately
<amz3>outside static blogs, all blogs require auth
<galex|713>no, I know dynamic blogs who just ask nickname
<galex|713>and then trust users
<galex|713>and most of time it worked
<amz3>yeah, but this is would not be a fair comparison against the competition
<galex|713>in terms of simplicity it is for me
<amz3>Of course, for a blog you can avoid to use auth, avoid to use database, avoid the use of something like markdown, but it would not be a fair comparison...
<galex|713>I did that for a dynamic blog engine supporting nested comments
<galex|713>And it worked
<amz3>This is apple to orange comparison. The point is not building a blog to use, but building a blog to compare the way of building webapps in Guile with other languages
<galex|713>it would work even better using hurd and its xmlfs x)
<galex|713>ahhh, webapps are a different thing
<galex|713>They’re the essence of web 2.0
<galex|713>Of that horrible, terrible, nasty web 2.0
<galex|713>Probably the worst stuff on the whole internet
<amz3>I don't think so. browsers are very powerful way to convey an idea.
<galex|713>what?
<amz3>what is not good is the web being centralized, but this is not a problem with browsers but with the web
<amz3>zeronet for instance use a webbrowser to render website hosted on P2P network
<galex|713>DOM maybe is, CSS layout engine maybe are, but js is horrible, cookies are horrible, TLS/X509/DNS have most of their usage broken, and XML is absolutely horrible
<galex|713>Also HTTP is horrible too
<amz3>I'm not using XML
<galex|713>web is xml/sgml, without xml/sgml it’s not web
<galex|713>And sgml is even worse than xml
<ijp>xml is verbose, but it's fine
<galex|713>sgml are the same problems of xml without the advantages
<ijp>better specified than all the rest by a long way
<amz3>agree, xml can be put to good use
<galex|713>it’s not only verbose (that’s fine, you can parse it simply even with TeX), it’s complex, not powerful, take a lot of storage, is inefficient, and people don’t like it… even for markup it’s suboptimal
<galex|713>Only as an ecosystem it has sense, but people even stopped to use XSLT
<galex|713>So the only stuff that make XML worth is CSS
<amz3>CSS is broken in many ways
<galex|713>amz3: CSS *implementation*, along with the dynamic&async nature of js, is the only attractive stuff on the web
<amz3>let's build a new browser VM without all those bugs :)
<galex|713>the only problem is CSS is hardly (yet it is) turing-complete, not extensible, not configurable, not understandable, etc.
<galex|713>amz3: yeah, let’s implement DOM in guile x)
<ijp>css+html maybe, but not on its own
<galex|713>supporting XML, SGML, JSON, and sexps of course
<ijp>someone already did implement a dom in guile
<galex|713>ijp: ah yeah?
<galex|713>I thought it weren’t (like “one of the stuff lacking in js”)
<galex|713>where?
<ijp> http://www.nongnu.org/sdom/ probably broken
<galex|713>No really what we need is something as flexible and extensible as TeX, but as featureful and dynamic as css+js
<galex|713>And I wonder if lisp/guile isn’t the better way to do it
<galex|713>ijp: why broken?
<amz3>fun
<galex|713>amz3: if we can merge CSS and TeX features in guile, I’m sure that would be the most powerful UI ever invented
<ijp>galex|713: because it's a safe assumption for most software that hasn't been released in five years
<amz3>look there's still no stable release
<galex|713>ah yeah
<galex|713>at least it’s some codebase
<amz3>I started to port, flexbox to guile, but was discouraged by the ambigious license
<galex|713>flexbox?
<galex|713>Let me recall… it’s a WM right?
<galex|713>or maybe was it fluxbox
<amz3>flexbox is like the do-it-all layout algorithm that emerged from the w3c
<galex|713>algorithm?
<amz3>it's said to be more interesting to use flexbox that constrained layout algorithm
<amz3>yes
<galex|713>what does it do?
<amz3>it's layout algorithm, it's allows to place elements on a page
<amz3>to control the flow of elements vertically and horizontally
<galex|713>Web UI is powerful but like quite untidy, especially it look like it’s not as consistent/precise of TeX
<galex|713>The perfection of TeX is needed
<amz3>ACTION is afk
<galex|713>We need to make columns everywhere
<galex|713>Also to have stuff semantic/modular enough to be accessible
<galex|713>ACTION is going aways
<amz3>ahah `accept' is thread safe!
<janneke>ACTION "almost" has define-syntax going in mes...it appears there's still a silly closure bug
<amz3>janneke: what is mes?
<janneke>amz3: my pet-project to address guile/guix boostrapping -- https://gitlab.com/janneke/mes
<amz3>sorry, for the dumb question, but isn't mes kind of GNU epsilon?
<janneke>what is GNU epsilon, i remember it used guile for boostrapping
<amz3>AFAIU it's a language with very small kernel that you can build upon other languages
<janneke>amz3: ah, okay
<amz3>they say nothing about trusted binaries
<janneke>i want to build upon assembly, and want the `a language' to be a lisp
<janneke>ie, build a minimal lisp to bootstrap a c compiler
<amz3>my initial advice would be to talk about this project to GNU epsilon maitainer. AFAIK epsilon first persona is lisp too, but it's written in C... you know better
<amz3>...
<janneke>amz3: ok, remember reading the project description and decided it was something completely different :-/
<janneke>*i remember
<amz3>I sent a mail to epsilon ml, maybe the maintainer we just ask me to go away but at least I'll know better
<amz3>it is interesting to know what his plan regarding trusted binaries
<janneke>amz3: thanks!
<amz3>yw!
<cmhobbs>anyone know if 2.0.12 is in debian repos yet or should i install it from source?
<cmhobbs>er, i guess there's guix, too
<janneke>cmhobbs: 18:54:21 janneke@banaan:~
<janneke>$ whohas guile-2.0 | grep sid
<janneke>Debian guile-2.0 2.0.11+1-10+b1 18K all http://packages.debian.org/sid/guile-2.0
<janneke>
<janneke>...still at 2.0.11
<efraim>why have I never heard of whohas?
<efraim>does it run faster than apt-file?
<amz3>the new documentation template is hyper nice ;)
<amz3>I prefer noto serif as font tho
<janneke>efraim: whohas only list packages, does not search into
<janneke>it does no caching, fetching urls live...speedwise ymmv
<jmd>ls -l
<ijp>bin/ cat_pics/ cat_picks2/
<amz3>can some explain me why this program with threads http://paste.lisp.org/display/320678 doesn't seem to execute the thread handlers as specified by the documentation
<amz3>please
<janneke>amz3: is sleep okay to use on threads?
<amz3>why not,
<amz3>?
<janneke>okay
<ijp>amz3: works for me
<ijp>wait, nvm
<amz3>ijp: does it display that 'thread ~a is quitting...'
<amz3>the problem is that siaction handler is executed on 'killall USR1'
<amz3>that handler will cancel-thread all threads
<ijp>I think you just misunderstand what the handler is
<ijp>it's for exceptions afaict
<amz3>my understanding is that cancel-thread throws an exception inside each thread
<amz3>which is catched by the thread handler
<ijp>wheredoes it say that
<ijp>the cleanup handler seems to be different from the handler in call-with-new-thread
<amz3> https://www.gnu.org/software/guile/manual/html_node/Threads.html#index-cancel_002dthread
<amz3>I think that in the procedure definition "call-with-new-thread thunk [handler]" handler is the cleanup handler
<ijp>and I said I think they are different
<ijp>easy way to test it, try calling thread-cleanup on the thread directly
<amz3>correct
<amz3>it says there is no thread cleanup on the threads
<amz3>AFAIT there is no way to set the cleanup thread proc
<ijp>there is a setter in the module
<ijp>set-thread-cleanup! (right below cancel-thread)
<amz3>right! sorry!
<ijp>hmm, could be a race there
<amz3>what do you mean?
<ijp>probably not likely
<amz3>in theory, I have multithread database server up and running!
<amz3>I say, in theory because all this seems a bit too easy
<amz3>even if throw away some stuff, it still look too simple to be real
<amz3>at the same time my solution is simple!
<amz3>meh...
<amz3>Still I'm happy ;)
<janneke>yay!
<galex|713>yay happiness \\o/
<amz3>:)
<amz3>good night #guile!