amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
fourier has joined #lisp
ape666 has quit [Remote host closed the connection]
fourier has quit [Remote host closed the connection]
akoana has joined #lisp
nkatte has joined #lisp
frost-lab has joined #lisp
orivej has joined #lisp
Josh_2 has quit [Remote host closed the connection]
rumbler31 has joined #lisp
shifty has quit [Ping timeout: 265 seconds]
Lycurgus has quit [Quit: Exeunt]
mparlaktuna has joined #lisp
rumbler31 has quit [Ping timeout: 265 seconds]
gko has joined #lisp
nkatte has quit [Ping timeout: 272 seconds]
nkatte has joined #lisp
wayneeseguin has quit [Ping timeout: 256 seconds]
Necktwi has joined #lisp
nkatte has quit [Ping timeout: 246 seconds]
nkatte has joined #lisp
aaaaaa has joined #lisp
pillton has quit [Read error: No route to host]
pillton has joined #lisp
johnjay has quit [Read error: Connection reset by peer]
johnjay has joined #lisp
pankajsg has joined #lisp
igemnace has quit [Quit: WeeChat 2.9]
Lord_of_Life_ has joined #lisp
Lord_of_Life has quit [Ping timeout: 246 seconds]
nkatte has quit [Ping timeout: 272 seconds]
igemnace has joined #lisp
pillton has quit [Quit: WeeChat 3.0]
nkatte has joined #lisp
Alfr has quit [Remote host closed the connection]
Alfr has joined #lisp
gko has quit [Ping timeout: 260 seconds]
wayneeseguin has joined #lisp
frost-lab has quit [Ping timeout: 246 seconds]
akoana has left #lisp ["Leaving"]
pillton has joined #lisp
surabax has quit [Quit: Leaving]
<sukaeto>
re: the "switching from vim to Emacs" - I switched to Emacs ~5 years ago after using vim for ~15 years. I just started with vanilla Emacs, installed evil, evil-org, and evil-collections. That was enough to get started, IME
<sukaeto>
I found both spacemacs and Doom to be too opinionated when I looked into them
<sukaeto>
I also feel as though Doom's attempts to make configuring Emacs easier rather make it more difficult
<moon-child>
it seems to me that doom was an attempt to construct a traditional IDE using emacs as a base. Emacs is no less capable of being an ide than anything else, but it somewhat misses the point of emacs; and if you're not going to spend the time to make emacs what you want, then there's not much point in such a tool
<moon-child>
however, it can still act as a 'gateway drug' of sorts
<astronavt>
the main thing i never liked about emacs is how the underlying functions were somewhat "hard coded", whereas in vim the convention is to have an "operator" that operates on a chunk of text and a subsequent "motion" that selects the text to be operated on
<astronavt>
as for lisp support specifically, ive recently started using Vlime and its pretty decent
<astronavt>
the vim plugin side of things is pretty conventional vim, and it comes with its own bundled swank server which i think is nice
nkatte has quit [Read error: Connection reset by peer]
nkatte has joined #lisp
<astronavt>
is it considered bad form to post my lisp question on stackoverflow in this channel?
<astronavt>
not sure how much overlap there is between "people who read the [lisp] tag on SO and people who read #lisp on freenode"
<save-lisp-or-die>
Are there any guix users here who might shed some light on why cffi can't find lisdl2 via (ql:quickload :sdl2) ? In other distros cffi looks in a sane spot, but that spot doesn't seem to be sane by guix's standards.
toorevitimirp has joined #lisp
<save-lisp-or-die>
libsdl2*
EvW has quit [Ping timeout: 260 seconds]
<lotuseater>
save-lisp-or-die: I sometimes had same with NixOS
Bike has joined #lisp
<lotuseater>
I look with fuzzy-find where the .so files are and push the path to cffi:*foreign-library-directories"
Stanley00 has joined #lisp
<save-lisp-or-die>
yeah I tried to cd into /gnu/store/...../profile/lib/ and running sbcl from that directory (cffi looks in the directory where sbcl is started), but that didn't seem to work either. It could have picked the wrong guix profile though. I'll keep at it. Your advice is more or less what I thought I'd have to resort to, but I wondered if there was some
<save-lisp-or-die>
other way.
<lotuseater>
or for example McCLIM didn't find the *truetype-font-path*
<lotuseater>
hm no that's not so good practice
Fare has quit [Ping timeout: 264 seconds]
<lotuseater>
edit your .sbclrc with (pushnew #p"/gnu/store/rest/of/your/path" cffi:*foreign-library-directories*)
<lotuseater>
OR clone the source to local-projects and add the path there directly
<save-lisp-or-die>
I'll give it a shot. I have a feeling that the guix profile I'm using has to match the guix profile where the shared libraries are. I might have to write a script to update the .sbclrc whenever I change profiles.
Fare has joined #lisp
iarebatman has quit [Remote host closed the connection]
Necktwi has quit [Ping timeout: 264 seconds]
igemnace has quit [Quit: WeeChat 2.9]
<sukaeto>
astronavt: that's the thing about evil-mode - it brings vi (the language - what you described as operators and motions) to Emacs
ski has quit [Ping timeout: 240 seconds]
IPmonger_ has quit [Read error: Connection reset by peer]
IPmonger has joined #lisp
ski has joined #lisp
nkatte has quit [Read error: Connection reset by peer]
IPmonger has quit [Ping timeout: 260 seconds]
nkatte has joined #lisp
Necktwi has joined #lisp
frost-lab has joined #lisp
wayneeseguin has quit [Ping timeout: 260 seconds]
kir0ul_ has joined #lisp
kiroul has quit [Ping timeout: 256 seconds]
shifty has joined #lisp
FreeBirdLjj has joined #lisp
rumbler31 has joined #lisp
FreeBirdLjj has quit [Ping timeout: 272 seconds]
rumbler31 has quit [Ping timeout: 265 seconds]
rumbler31 has joined #lisp
Necktwi has quit [Ping timeout: 240 seconds]
aaaaaa has quit [Quit: leaving]
rippa has joined #lisp
Alfr_ has joined #lisp
_jrjsmrtn has joined #lisp
Bike has quit [Remote host closed the connection]
__jrjsmrtn__ has quit [Ping timeout: 256 seconds]
Alfr has quit [Ping timeout: 260 seconds]
<beach>
Good morning everyone!
<phantomics>
Morning beach
libc_so has joined #lisp
saganman has joined #lisp
anewuser has joined #lisp
saganman has quit [Client Quit]
johnjay has quit [Ping timeout: 272 seconds]
anewuser has quit [Remote host closed the connection]
pi2 has joined #lisp
anewuser has joined #lisp
johnjay has joined #lisp
frost-lab has quit [Ping timeout: 264 seconds]
pankajsg has quit [Ping timeout: 240 seconds]
rumbler31 has quit [Remote host closed the connection]
Necktwi has joined #lisp
saganman has joined #lisp
saganman has joined #lisp
anewuser has quit [Remote host closed the connection]
anewuser has joined #lisp
kiroul has joined #lisp
manjaroi3 has joined #lisp
kir0ul_ has quit [Ping timeout: 256 seconds]
nkatte has quit [Ping timeout: 272 seconds]
aartaka has joined #lisp
nkatte has joined #lisp
anewuser has quit [Remote host closed the connection]
anewuser has joined #lisp
torbo has quit [Remote host closed the connection]
zcheng3 has quit [Ping timeout: 240 seconds]
kir0ul_ has joined #lisp
aartaka has quit [Ping timeout: 264 seconds]
anewuser has quit [Remote host closed the connection]
anewuser has joined #lisp
kiroul has quit [Ping timeout: 264 seconds]
manjaroi3 has quit [Read error: Connection reset by peer]
ski has quit [Ping timeout: 240 seconds]
manjaroi3 has joined #lisp
scymtym_ has joined #lisp
anewuser has quit [Remote host closed the connection]
scymtym has quit [Ping timeout: 272 seconds]
anewuser has joined #lisp
saganman has quit [Quit: Leaving]
pankajsg has joined #lisp
ski has joined #lisp
rumbler31 has joined #lisp
pankajsg has quit [Ping timeout: 256 seconds]
rumbler31 has quit [Ping timeout: 265 seconds]
anewuser has quit [Remote host closed the connection]
anewuser has joined #lisp
pankajsg has joined #lisp
pankajsg has quit [Ping timeout: 256 seconds]
pankajsg has joined #lisp
shka_ has joined #lisp
oni-on-ion has joined #lisp
pankajsg has quit [Ping timeout: 246 seconds]
narimiran has joined #lisp
pillton has quit [Read error: Connection reset by peer]
pillton_ has joined #lisp
gioyik has quit [Read error: Connection reset by peer]
gioyik has joined #lisp
pankajsg has joined #lisp
cmatei has quit [Ping timeout: 256 seconds]
aartaka has joined #lisp
anewuser has quit [Remote host closed the connection]
manjaroi3 has quit [Quit: leaving]
anewuser has joined #lisp
pankajsg has quit [Ping timeout: 240 seconds]
andreyorst has joined #lisp
pankajsg has joined #lisp
nkatte has quit [Ping timeout: 260 seconds]
anewuser has quit [Remote host closed the connection]
anewuser has joined #lisp
aartaka_d has joined #lisp
aartaka has quit [Ping timeout: 260 seconds]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
gioyik has quit [Quit: WeeChat 3.0]
andreyorst` has joined #lisp
aartaka_d has quit [Ping timeout: 256 seconds]
jibanes has quit [Ping timeout: 260 seconds]
anewuser has quit [Quit: Leaving]
jibanes has joined #lisp
rippa has quit [Read error: Connection reset by peer]
scymtym_ has quit [Remote host closed the connection]
scymtym has joined #lisp
ggole has joined #lisp
wxie has joined #lisp
aartaka has joined #lisp
jibanes has quit [Ping timeout: 272 seconds]
jibanes has joined #lisp
aartaka_d has joined #lisp
aartaka has quit [Ping timeout: 264 seconds]
Cymew has joined #lisp
orivej has quit [Ping timeout: 272 seconds]
<phoe>
morning
<no-defun-allowed>
Hello phoe.
karlosz has joined #lisp
pankajsg has quit [Ping timeout: 256 seconds]
<beach>
Hello phoe.
<phoe>
hey hi
lotuseater has quit [Remote host closed the connection]
karlosz has quit [Quit: karlosz]
johnjay has quit [Read error: Connection reset by peer]
pi123 has joined #lisp
frost-lab has joined #lisp
pi123 has quit [Read error: Connection reset by peer]
johnjay has joined #lisp
johnjay has quit [Read error: Connection reset by peer]
johnjay has joined #lisp
rippa has joined #lisp
kir0ul_ has quit [Ping timeout: 260 seconds]
notzmv has quit [Ping timeout: 246 seconds]
daphnis has joined #lisp
notzmv has joined #lisp
johnjay has quit [Ping timeout: 246 seconds]
johnjay has joined #lisp
skapata has quit [Remote host closed the connection]
gproto23 has joined #lisp
random-nick has joined #lisp
gproto023 has joined #lisp
frgo has quit [Remote host closed the connection]
gproto23 has quit [Ping timeout: 240 seconds]
ineiros has quit [Ping timeout: 240 seconds]
pve has joined #lisp
gproto023 is now known as gproto23
orivej has joined #lisp
banjiewen_ has quit [Ping timeout: 260 seconds]
banjiewen_ has joined #lisp
DGASAU has quit [Remote host closed the connection]
DGASAU` has joined #lisp
infra_red[m] has quit [Ping timeout: 260 seconds]
infra_red[m] has joined #lisp
hnOsmium0001 has quit [Quit: Connection closed for inactivity]
hendursa1 has joined #lisp
gko` has quit [Quit: ERC (IRC client for Emacs 27.1)]
gko has joined #lisp
hendursaga has quit [Ping timeout: 240 seconds]
<hhdave>
Hi phoe. I just saw your message from yesterday evening (I was afk). I guess posting the job ad page on the lisp reddit would be a good idea, do you think?
<easye>
hhdave: I don't see how you lose by posting to Reddit.
igemnace has joined #lisp
<easye>
A one-time, respectful post linking to your "recruitment pipeline" would be perfectly ok.
frodef has joined #lisp
<frodef>
'morn..
<easye>
There used to be a "Common Lisp jobs blog" sort of thing, but I don't think that has been active over the last couple years.
<frodef>
(defmaro m1 (v1) `(marolet ((m2 (v2) `(form v1 ,v2))))) How do I get v2 into my form?
<frodef>
I mean v1, of course.
<easye>
When you post to Reddit, invariably you will get a couple of the Twitter Lisperati to tweet the link.
<hhdave>
ok, cool - I'll do that.
<easye>
You might get a little slagging about aspects of the post and your company. For instance, Ravenpack's recent job offering was criticized for not posting a salary range.
<easye>
But have a thick skin, and let it ride. Those of us looking for Common Lisp jobs will appreciate it.
<no-defun-allowed>
frodef: I usually use ,',v1
<no-defun-allowed>
On a bad day, I call ,', the "The Bird" operator, because nested quasiquotation is that tedious.
wxie has quit [Quit: wxie]
wxie1 has joined #lisp
<frodef>
no-defun-allowed: thanks! I thought I'd tried that, but I guess my brain just bottomed out.
galex-713 has quit [Quit: No Ping reply in 180 seconds.]
wxie1 is now known as wxie
galex-713 has joined #lisp
<hhdave>
Thanks for the tips easye - appreciated.
pankajsg has joined #lisp
retropikzel has joined #lisp
aartaka_d has quit [Read error: Connection reset by peer]
aartaka has joined #lisp
surabax has joined #lisp
retropikzel has quit [Client Quit]
retropikzel has joined #lisp
<beach>
Hey frodef. Long time no see.
<frodef>
yes, hi beack!
<frodef>
urgh.. beach!
<beach>
frodef: Are you working on something interesting these days?
<frodef>
beach: how is sicl coming along?
rumbler31 has joined #lisp
<beach>
VERY SLOW, but steady progress.
<frodef>
beach: not terribly interesting, I'm afraid.
<beach>
:(
scymtym has quit [Remote host closed the connection]
<beach>
Like I told the #sicl participants, if I were smarter than I am, I would have been able to simplify bootstrapping from the start, but I am what I am, so it is taking me several iterations. But I think it (i.e. the essence of what I need to do for bootstrapping to be understandable) finally makes sense to me.
rumbler31 has quit [Ping timeout: 246 seconds]
<beach>
frodef: So why are you not doing anything interesting? :)
<frodef>
pulling yourself up by the bootstraps isn't supposed to be easy..
<beach>
It definitely isn't. Not this version of it anyway.
<frodef>
beach: well, not interesting in terms of parenthetical technology.
<beach>
Yes, that's what I meant. Otherwise, it would have been off topic. :)
<frodef>
it's more parental technology atm.
<beach>
Ah, yes, I see.
<frodef>
beach: so been a bit chewed up, but hoping/trying to get back into it soonish.
<beach>
That would be great!
iskander- has quit [Ping timeout: 240 seconds]
iskander has joined #lisp
retropikzel has quit [Quit: retropikzel]
retropikzel has joined #lisp
retropikzel has quit [Client Quit]
aartaka has quit [Ping timeout: 264 seconds]
retropikzel has joined #lisp
ineiros has joined #lisp
retropikzel has quit [Quit: retropikzel]
retropikzel has joined #lisp
frgo has joined #lisp
retropikzel has quit [Client Quit]
<flip214>
luis: please provide some feedback. I'm adding JSON support to swank (instead of S-expressions).
retropikzel has joined #lisp
<flip214>
First I send an S-expr to switch to JSON; but while that changes a slot in *emacs-connection*, the read loop (in another thread) already restarts DECODE-MESSAGE, so passing the "current" slot of *E-C* in doesn't work.
<flip214>
I can work around that by doing autodetection in READ-MESSAGE - #\( vs. #\[ use the right function.
<flip214>
Would that be okay?
iskander- has joined #lisp
iskander has quit [Ping timeout: 256 seconds]
zaquest has quit [Ping timeout: 246 seconds]
<flip214>
Or I could define the decoder slot to be a list of decoders that's tried from the end... then I could append the json decoder, and the already-passed in list would become extended in READ-MESSAGE as well
retropikzel has quit [Quit: retropikzel]
retropikzel has joined #lisp
<flip214>
Or READ-MESSAGE gets a function to call to return the decoder function X(
<Posterdati>
hi
<Posterdati>
please help, how can I check for a task alive in lparallel?
<Posterdati>
Thanks
scymtym has joined #lisp
<phoe>
task alive? what do you mean?
zaquest has joined #lisp
<phoe>
you mean if it has already been executed or not?
<Posterdati>
phoe: I did a looping task tha occasionally could exit from loop and thus get executed
retropikzel has quit [Client Quit]
retropikzel has joined #lisp
<phoe>
I don't know if lparallel provides an API for this kind of introspection; AFAIK usually you'd do that by trying to receive-result
<Posterdati>
phoe: if the task is still executing, does receive-result blocks the waiting task?
<phoe>
Posterdati: yes, a non-blocking variant is TRY-RECEIVE-RESULT
<Posterdati>
which is nil if the task's executed
<phoe>
actually check the secondary value
<phoe>
it states if there was something to be received or not
<frodef>
With CL-WHO, how can I emit HTML from a generated sexpr? Like (defun make-input (attributes) (w-h-o (s) (:input ,@attributes) ...)) ?
<no-defun-allowed>
I don't think there is a nice way to pass in an s-expression at runtime.
<frodef>
hm. that's silly.
pillton has joined #lisp
<frodef>
so CL-WHO is purely a "compiler", then.
<flip214>
frodef: EVAL might help.... but yes, it's a compiler basically, so you'll need to build an (anonymous) function and call it to get the text
<no-defun-allowed>
EVALing it is really really slow; I wouldn't do that.
pillton_ has quit [Ping timeout: 256 seconds]
<splittist>
slower than the web?
<Cthulhux>
the web is relatively fast if you use a sane web browser
<Cthulhux>
like w3m or emacs
<no-defun-allowed>
The equation looks more like m times slower than n using your server concurrently, where m is your number of threads and n is your number of concurrent users.
<frodef>
My OCD would never agree with EVAL here ;)
<phoe>
macroexpand
<phoe>
but then, huh, again
<phoe>
you'd need a tree of closures approach
rumbler31 has joined #lisp
vegansbane has joined #lisp
rumbler31 has quit [Ping timeout: 240 seconds]
<no-defun-allowed>
I just whipped up a function to emit the HTML myself.
<jmercouris>
and here is the line: SeedSet S := N \ {P}
<jmercouris>
we are assigning S to N \ {P}
<jmercouris>
what does it mean here to divide???
kingragworm has quit [Quit: kingragworm]
<jmercouris>
is it saying that the SeedSet S is the Neighbors of Point P?
<jmercouris>
ah damn, I posted the whole file, sorry about that here is what I meant to post: http://dpaste.com/93B9DWF5A
<jmercouris>
and in this case, the line in question is line 12
EvW has joined #lisp
johnjay has quit [Ping timeout: 256 seconds]
retropikzel has quit [Quit: retropikzel]
retropikzel has joined #lisp
retropikzel has quit [Client Quit]
retropikzel has joined #lisp
kingragworm has joined #lisp
<random-nick>
jmercouris: \ is usually set difference
<random-nick>
so S is N without the element P
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
<jmercouris>
AH!
<jmercouris>
that makes a lot of sense
<jmercouris>
so I guess the assumption is the Neighbors would typically include the node itself
<jmercouris>
and it must be removed
<jmercouris>
which is obvious
retropikzel has quit [Quit: retropikzel]
<jmercouris>
the difference is that my range-query function already considers this
<jmercouris>
thank you random-nick
retropikzel has joined #lisp
wayneeseguin has quit [Ping timeout: 240 seconds]
nkatte has quit [Remote host closed the connection]
nkatte has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
retropikzel has quit [Client Quit]
retropikzel has joined #lisp
amb007 has joined #lisp
nkatte has quit [Read error: Connection reset by peer]
nkatte has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
jeosol has quit [Ping timeout: 245 seconds]
cosimone has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
retropikzel has quit [Remote host closed the connection]
retropikzel has joined #lisp
dmc00 has joined #lisp
wayneeseguin has joined #lisp
aartaka_d has joined #lisp
iskander- has quit [Ping timeout: 260 seconds]
iskander has joined #lisp
retropikzel has quit [Quit: retropikzel]
retropikzel has joined #lisp
aartaka has quit [Ping timeout: 240 seconds]
retropikzel has quit [Client Quit]
retropikzel has joined #lisp
ljavorsk has quit [Remote host closed the connection]
<pve>
frodef: wasn't there some combination of htm, esc and str that made it work cleanly? Maybe I'm remembering it wrong..
ljavorsk has joined #lisp
jeosol has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
hendursa1 has quit [Quit: hendursa1]
hendursaga has joined #lisp
iskander has quit [Ping timeout: 256 seconds]
<frodef>
pve: I don
<frodef>
't think it could.
iskander has joined #lisp
<frodef>
the cl-who syntax even prevents evaluation where it expects a html keyword. The one reasonable solution i can see (in terms of extending cl-who) would be a magic attribute keyword that evaluates its argument form and inserts it into html.
amb007 has quit [Read error: Connection reset by peer]
<pve>
frodef: oh, ok then
amb007 has joined #lisp
wayneeseguin has quit [Ping timeout: 260 seconds]
tfb has joined #lisp
rumbler31 has joined #lisp
retropikzel_ has joined #lisp
gproto23 has quit [Ping timeout: 256 seconds]
retropikzel_ has quit [Remote host closed the connection]
retropikzel_ has joined #lisp
retropikzel has quit [Ping timeout: 240 seconds]
retropikzel_ is now known as retropikzel
pankajsg has quit [Ping timeout: 265 seconds]
gproto23 has joined #lisp
rumbler31 has quit [Ping timeout: 256 seconds]
wayneeseguin has joined #lisp
retropikzel has quit [Client Quit]
retropikzel has joined #lisp
Josh_2 has joined #lisp
tfb has quit [Remote host closed the connection]
tfb has joined #lisp
dmc00 has quit []
tfeb has joined #lisp
cosimone has quit [Remote host closed the connection]
cosimone has joined #lisp
bitmapper has quit [Quit: Connection closed for inactivity]
gproto023 has joined #lisp
tfb has quit [Ping timeout: 240 seconds]
<jmercouris>
(loop for item = (pop x) do (print item))
<jmercouris>
this will happily keep popping from nil
gproto23 has quit [Ping timeout: 260 seconds]
<jmercouris>
should I use a WHEN in my loop or is there a better way?
<jmercouris>
I meant to say WHILE, not when
<jmercouris>
so (loop while x for item = (pop x) do (print item))
<frodef>
Not sure that
<frodef>
's allowed syntax.
<frodef>
(loop while x do (let ((item (pop x))) (print x))
cosimone has quit [Remote host closed the connection]
<jmercouris>
it is allowed syntax
<jackdaniel>
maybe (map () #'print x) ;?
cosimone has joined #lisp
<jmercouris>
maybe
<jmercouris>
actually no, it canot be
<jmercouris>
becaus I will keep pushing items to X within the loop body on some conditionals
<jmercouris>
s/becaus/because
<jmercouris>
s/canot/cannot
<frodef>
I do suspect it's syntax error...
<jmercouris>
it definitely isn't
<jmercouris>
(defparameter x (list 0 1 2 3))
<_death>
the loop is fine
<jmercouris>
(loop while x for item = (pop x) do (print item))
<jmercouris>
run it yourself if you do not believe me :-D
<frodef>
jmercouris: how so? Seems to me FOR ... is a variable-clause, while WHILE ... is a main-clause ?
bitmapper has joined #lisp
<frodef>
jmercouris: lucky for you Erik Naggum is not with us ;-)
<jmercouris>
I don't know what a variable clause is, so I can't say
<jmercouris>
nor do I know what I mean clause is either
<jmercouris>
I think, based on what I'm seeing here
<jmercouris>
anyways, my question is answered
cosimone has quit [Remote host closed the connection]
<jmercouris>
it seems to be the way to go, thanks everyone
<jackdaniel>
see what for-as-clause expands to
<jackdaniel>
in this grammar
<splittist>
for-as includes for =. This may be one of the LOOP forms the MIT-derived LOOP's accept, but shouldn't. (And therefore may not in future.) (Do I mean MIT?)
<Josh_2>
afternoon
<jmercouris>
good afternoon Josh the 2nd
EvW has quit [Ping timeout: 264 seconds]
<_death>
I messed up.. frodef is right.. at first it seemed fine to me, now it's obviously doesn't (looking at the grammar helped, but I doubt I wrote code like it)
<jackdaniel>
since frodef probably implemented loop from scratch for movitz things like that are very noticeable for him
* splittist
self-thwaps
* jmercouris
enjoys writing loop code
<jmercouris>
this most perverse macro :-D
<jackdaniel>
why perverse? it is a pita to remember the syntax, but when you have it memorized it is easy to use
<jmercouris>
I love pita + gyros
<phoe>
(loop for loop being the source of everything that is wrong and horrible with common lisp do ...)
<jmercouris>
perverse because of its 'unlispyness'
<phoe>
I wait for an angry enough implementer to add this as a syntax extension
<jackdaniel>
someone very accurately pointed out, that lisp is a wonderful for writing dsls and this is a dsl
<jackdaniel>
ergo - very lispy
<jmercouris>
as you wish, for me I am quite fine with it
<jmercouris>
I just know that it makes some other people salty
<jackdaniel>
loop has some flaws (i.e not extensible per standard specification, its syntax could be more grokkable etc)
<jackdaniel>
and it is complex enough to take thousands of line of code to implement (unlike do, which is fairly trivial)
tfeb has quit [Read error: Connection reset by peer]
<_death>
knee-jerk anti loopism ebbs and flows
<jmercouris>
like the river danube
<jackdaniel>
this joke is lost on me, sorry
* jackdaniel
gets back to pixmaps
tfb has joined #lisp
pankajsg has joined #lisp
technobean has quit [Ping timeout: 240 seconds]
ape666 has joined #lisp
retropikzel has quit [Quit: retropikzel]
retropikzel has joined #lisp
saganman is now known as Korone
retropikzel has quit [Client Quit]
cosimone has joined #lisp
retropikzel has joined #lisp
<_death>
hmm, I did find a few such uses in my code.. time to fix
<beach>
(loop until (null x) do (let ((item (pop x))) (print x))
<beach>
Page 13 of the LUV slides by Norvig and Pitman.
dbotton has joined #lisp
<splittist>
print item ?
Korone has left #lisp ["WeeChat 1.6"]
cosimone has quit [Remote host closed the connection]
<phoe>
this seems kinda off unless your list does not contain NILs
cosimone has joined #lisp
<jackdaniel>
null x checks for the list
<jackdaniel>
not its first element
<phoe>
oh wait!
<phoe>
yes, I misread
cosimone has quit [Remote host closed the connection]
cosimone has joined #lisp
<Kabriel>
frodef, _death is it a syntax error because of clause order, so (loop for item = (pop x) until (null x) do (print item))?
<Kabriel>
^ would be fine
<jackdaniel>
Kabriel: from the loop syntax perspective it is fine
<phoe>
Kabriel: will not work on the last element
<jackdaniel>
however you get minus points, because you won't print last x element
<jackdaniel>
say x = (1) , first you pop, so x = (), x is null now, so you do not get to the print clause
<phoe>
(loop with x = '(1) for item = (pop x) until (null x) do (print item))
<phoe>
prints nothing
* phoe
highfives jackdaniel
nkatte has quit [Read error: Connection reset by peer]
<Kabriel>
I see it doesn't print last element.
<jackdaniel>
masz dziesiątkę <;
<Kabriel>
The original question though, is it clause order that make it a syntax error.
cosimone has quit [Remote host closed the connection]
Fare has joined #lisp
<jackdaniel>
yes, error is a strong word - non conforming is better
nkatte has joined #lisp
<Kabriel>
So is it non-conforming to have a variable-clause after a main-clause in any circumstance?
<jackdaniel>
it seems to me that way (mind, that your friendly neighborhood lisp implementation will most likely accept that though)
<nij>
Hello :) I'm reading Graham's /On lisp/. In section 3.4 he talks about functional programming, and some good practice. One of them is the following.
<nij>
"If a function must perform side-effects, try at least to give it a functional interface."
<nij>
What does this mean? A functional interface?
edgar-rft has joined #lisp
<jackdaniel>
it is described later in the book afair - he talks about making it referentially transparent
<jackdaniel>
that is: perform side effects only on its local variables
wayneeseguin has quit [Ping timeout: 256 seconds]
<jackdaniel>
aka: don't modify anything passed to the function nor the global state
<nij>
Oh so "effectively functional"..
<nij>
<jackdaniel>
(and don't depend on external state -- that applies also to closures)
<nij>
It alters variables no one else owns, and returns things no one else can alter.
<jackdaniel>
s/closures/closed over variables/
<jackdaniel>
but I may remember wrong
<jackdaniel>
so keep reading:)
<nij>
:) Thanks
<nij>
It all sounds perfectly neat and natural. Haven't had development experience yet. Dunno what real obstacle I will run into in practice.
<jackdaniel>
having the function result depend only on its inputs helps with debugging
<nij>
yeah
<jackdaniel>
that said, depending on context enables some very useful programming techniques
<beach>
splittist: Yes, sorry, I just copied and modified frodef's code.
gproto023 is now known as gproto23
<jackdaniel>
pg's preference for functional-like programming seems to be more scheme-like than common-lisp-like
aartaka_d has quit [Ping timeout: 256 seconds]
<phoe>
I like this kind of mostly-functional code style myself; it provides lots of benefits coming from the functional style and some benefits coming from imperativity
<beach>
nij: On Lisp has a lot about macros, and macro expanders are a good place for functional programming since 1. They are executed at compile time, so not a performance problem at run time and 2. Macro expanders should not have any side effects on the external environment (usually).
wayneeseguin has joined #lisp
<phoe>
beach: I found point 2 to be more like "macroexpanders should be idempotent with their side effects"
<frodef>
(loop for item = (pop x) do (print item) until (null x)) should work?
<phoe>
frodef: what if your list is '()?
<nij>
I hope I can understand this soon
<nij>
Macros seem too advanced for me now. Yet I will keep reading :)
nkatte has quit [Ping timeout: 272 seconds]
<beach>
nij: the good news is that they are rarely needed.
<phoe>
beach: it's okay for macros to perform side effects as long as these effects are idempotent; interning symbols is the most obvious example
vaporatorius has joined #lisp
<beach>
phoe: Indeed.
nkatte has joined #lisp
<phoe>
while doing stuff like creating files or sending network traffic is usually a big no-no because then you have no control over how many times those are performed
<jackdaniel>
nij: if onlisp is your first programming book (or even common lisp book), I'd rather recommend ansi common lisp, pcl or paip
<phoe>
due to the fact that macros can essentially be expanded at any time any number of times.
<jackdaniel>
minion: tell nij about paip
<minion>
nij: paip: Paradigms of Artificial Intelligence Programming. More about Common Lisp than Artificial Intelligence. Now freely available at https://github.com/norvig/paip-lisp
<jackdaniel>
minion: tell nij about pcl
<minion>
nij: direct your attention towards pcl: pcl-book: "Practical Common Lisp", an introduction to Common Lisp by Peter Seibel, available at http://www.gigamonkeys.com/book/ and in dead-tree form from Apress (as of 11 April 2005).
<jackdaniel>
by acl I mean paul graham book ansi common lisp (it has an excellent set of excercises after each chapter)
frodef has quit [Remote host closed the connection]
<phoe>
I enjoyed PG's ANSI CL book and I can recommend it as long as you disbelieve everything he says about CLOS
<phoe>
which is, paraphrasing, too heavy, too complex
<phoe>
and defstruct is almost always better
<curiouscain>
Make sure to have a go at writing some macros, not just reading about them. There's a step between reading and writing, where the understanding becomes clearer.
<jackdaniel>
it kind of is (but it has big benefits:)
<jackdaniel>
^ clos (not defstruct)
vaporatorius__ has quit [Ping timeout: 264 seconds]
frodef has joined #lisp
frodef has quit [Remote host closed the connection]
<jmercouris>
why would one choose defstruct over clos?
<jmercouris>
other than less physical typing
<beach>
One should not.
<phoe>
pg gives some rationale behind it that did not age very well
<cl-arthur>
structs are quicker in terms of access etc. because they're simpler and have very little expressive power and introspection
<tychoish>
you get different autogetnerated assessors by default and a more compact in memory layout for simple cases (?)
<tychoish>
"pg"
<nij>
Oh thank you :)
<jmercouris>
I don't see how the memory constraints are significant today
<nij>
Do those books have practical exercises?
toorevitimirp has quit [Remote host closed the connection]
<tychoish>
jmercouris: they aren't
<nij>
I had some background in python, and am an emacs user.
<beach>
nij: I am afraid PCL does not.
<tychoish>
except when they are :)
<nij>
I can write some easy elisp functions.
<jmercouris>
well, I can think of some very performant things in which I've chosen structs, but that is because of the way traversing them is handled
<nij>
I don't think I'd have problem understanding what macros are.. just have to go there slowly.
<nij>
The main crux I have now is the lack of motivation of writing some programs.
<jmercouris>
nobody can help you with that
<nij>
Yeah I know xD
<curiouscain>
Do you have things you want to make, but can't be bothered? Or do you have no ideas?
<tychoish>
having a small enough project that's like "tractable for a single human," is often the hard part for me.
<Josh_2>
nij: you should make tiktaktoe
<Josh_2>
ezpz
<jmercouris>
tychoish: I've heard a good project to contribute to is Nyxt
<jmercouris>
the creators are incredibly supportive and welcoming of new users ;-)
<tychoish>
jmercouris: I was literally going to suggest that next
<curiouscain>
Writing a Gemini client is easygoing enough and pretty fun.
<jmercouris>
I agree with Josh_2 tic tac toe is a good program to make
<tychoish>
nij: I'd def look at things like Nyxt or StumpWM (if you're that kind of nerd)
<jmercouris>
there are so many ways to make tic tac toe
<jmercouris>
you could use two dimensional arrays, an object graph, nested lists
<tychoish>
I disagree with team tic tac toe because it feels like an interview question and it never feels worth the time.
<nij>
tychoish: I was into haskell and am a xmonad user xD
<nij>
Maybe I will make a 2D ising model simulator.
<jmercouris>
you could make a multiplayer tic tac toe
<nij>
Sounds pretty fun.
<nij>
But there won'd be interaction then :()
* edgar-rft
makes tic tac with his toes
<jmercouris>
and build it in CLIM, then it would be useful
<nij>
:(
<nij>
<tychoish>
nij: then you are that kind of nerd. stump is fun :)
<tychoish>
edgar-rft: ew
<jmercouris>
on the other hand, '0' calories
<tychoish>
nil
<nij>
What is a gemini client? The term "gemini" has many meanings.
<jmercouris>
(not (eq nil 0))
<curiouscain>
A client for the Gemini protocol
<tychoish>
Gemini is... like modern Gopher
<jackdaniel>
clos is not only defclass vs defstruct kind of excercise, it brings much more - most notably generic functions
<jackdaniel>
and they are a wonderful aid for programmers, but there is no free lunch
<phoe>
nij: gemini is a network protocol that has gained some fame as of late due to being a better Gopher with SSL and such
<jmercouris>
G E N E R I C F U N C T I O N S
<jmercouris>
F U N C A L L O V E R H E A D
<jackdaniel>
jmercouris: ?
<jmercouris>
???
<phoe>
J M E R C O U R I S : P L S S T O P
<jmercouris>
its true, they should be more computationally expensive to funcall
<nij>
Fair. Lemme watch a gemini youtube video later today.
<nij>
As for Nyxt.. I'm a long term qutebrowser user, and am quite happy with it.
dbotton has quit [Quit: Leaving]
<curiouscain>
nij: Also checkout gemini.circumlunar.space all the documentation is there. The spec is quite simple, relatively speaking.
<nij>
How's Nyxt compared with qutebrowser? That it's based on lisp is definitely a big PRO.
<beach>
nij: It was not about being a user, but a contributor.
<byallahyourpfpgi>
qutebrowser is very good, the best
<jackdaniel>
defstruct accessors may generally be inlined, because you can't change a structure layout conformingly
<nij>
byallahyourpfpgi: that's my impression
<nij>
though it still doesn't support plugins of firefox and chrome :(
<beach>
Is qutebrowser written Common Lisp?
<byallahyourpfpgi>
bah, i dont need much
<nij>
I do hope there to be a vim/emacs- like browser that can use all those goodies from the normie world.
<byallahyourpfpgi>
python, beach
<curiouscain>
Qutebrowser is python
<nij>
beach: python :(
<Josh_2>
yikes
<beach>
So then, it's a completely different issue. Contributing to qutebrowser won't be a Common Lisp project for you.
<byallahyourpfpgi>
the webengine is qtwebengine tho
<nij>
I will contribute if I actually use it.
<nij>
To actually use it there should be a reason :S
<beach>
nij: If you contribute to a project, you can make it better than what you are currently using.
<nij>
I'm cursed by qutebrowser and therefore by python..
<byallahyourpfpgi>
i will try nyxt, looks interesting
<nij>
beach: sounds legit
<nij>
I will give it a try :)
<nij>
Which framework does it rely on?
<byallahyourpfpgi>
oh no, it uses webkitgtk
<byallahyourpfpgi>
:(
<nij>
Eg qutebrowser relies on QtWebEngine
<byallahyourpfpgi>
which is chromium
<nij>
Many features I like cannot be added if it still relies on that.
<nij>
byallahyourpfpgi: yes, it has many pros and cons
<nij>
If Nyxt is based on some huge platform that's hard to control.. then it's going to be hard to alter then.
<nij>
s/alter then/alter
andreyorst` has quit [Quit: andreyorst`]
<Josh_2>
It's not like they have much choice
kir0ul_ has joined #lisp
nkatte has quit [Ping timeout: 265 seconds]
gproto23 has quit [Read error: Connection reset by peer]
<_death>
wrt loop what's worse is that I have lots of (loop repeat ... for ...) .. very annoying
<byallahyourpfpgi>
why not recursion for everything :)
<phoe>
that's not really common in CL
<Kabriel>
_death: I frequently use a pattern for reading text files that puts a termination clause in-between variable initialization clauses.
<phoe>
Kabriel: that's non-standard CL, sadly
<phoe>
in standard LOOP, variable clauses must come before body clauses
<phoe>
and that complicates things.
<_death>
Kabriel: I often (but not always) try to avoid WITH in loop
<Kabriel>
_death: sorry, I meant variable-clause, not initialization.
<nij>
Which lisp community has the largest populations as of 2020? Or it is hard to tell?
<phoe>
you mean which dialect of Lisp?
<nij>
Yeah
<phoe>
;; FYI, you stumbled into Common Lisp territory
<byallahyourpfpgi>
emacs lisp
<byallahyourpfpgi>
:)
<nij>
byallahyourpfpgi: What's the second?
<Kabriel>
phoe: I was pining the cleanup work I have.
<phoe>
I would guess clojure? it's pretty famous and hype nowadays
<nij>
phoe: That's my impression.
daphnis has quit [Ping timeout: 260 seconds]
<Josh_2>
pretty sure clojure hype is declining
<phoe>
Kabriel: yes, I understand; still, (loop for ... while ... for ...) is not portable
<byallahyourpfpgi>
<Kabriel "phoe: I was pining the cleanup w"> clojure's the hype
<nij>
Josh_2: That's also my impression too.
<byallahyourpfpgi>
clojure and racket
<byallahyourpfpgi>
one of em
<nij>
Maybe which one is going to help me the most if some day I degenerate myself to work in huge companies..?
<byallahyourpfpgi>
hmm
<beach>
nij: Since there is no widely agreed-upon definition of "Lisp", some people might include languages that some others think don't belong.
<byallahyourpfpgi>
idk any huge companies that use any lisp lol
<phoe>
nij: which community, or which language?
<nij>
phoe: which lisp dialect
<phoe>
I find CL really insightful in my daily job even though I do C/C++/Erlang for a living
<nij>
phoe: Glad to know that.
<phoe>
the language is an eye-opener due to its inherent multiparadigm nature and the fact that it does its best to get out of the way and let the programmer figure out how they want to approach a given problem
<nij>
Why don't people use it?
<phoe>
and then approach it from that point of view without fighting the constraints of the language
<nij>
Is it because it's too easy to use?
<phoe>
nij: wat
<phoe>
I can't say that people don't use it
ljavorsk has quit [Ping timeout: 256 seconds]
<nij>
Most programmers don't use it.
<byallahyourpfpgi>
<nij "Is it because it's too easy to u"> because its too fragmented
<nij>
byallahyourpfpgi: fragmented?
<phoe>
the parens scare a lot of people away. which is kinda sad.
<phoe>
but I'd say a lot of major commercial backing at the moment.
<byallahyourpfpgi>
() and too many dialects
<phoe>
companies are definitely capable of pushing even shitty languages down people's throats when they throw enough money at the problem
<nij>
Maybe it's because it's too easy to abstract?
<nij>
I'm a math PhD student who recently started to pick programming up.
<phoe>
;; looking at you, Apple and Google
<nij>
I can definitely understand the power and the ease of abstractions, once one masters it.
<tfb>
I think it's at least largely because there is corporate memory of the last AI winter.
<nij>
But the price to pay is that
<nij>
while it is easier for those who have learned the abstractions,
<byallahyourpfpgi>
<nij "Maybe it's because it's too easy"> i would lisp really started declining in the 90s due to hype of other langs in the corporate sphere
<nij>
it creates /density [On lisp. Section 4.8]/ for people who haven't.
<nij>
so much density..
<nij>
This is why higher category theory, while on one hand is nice, does not have large community yet.
<nij>
I imagine perhaps lisp has the same curse.
<nij>
It's too easy to make itself easier, thus also too easy to make people think they are easier.
<hhdave>
Apple's Cambridge research lab used to do a lot of things with Lisp, though I think they reckoned the parens would scare away many programmers, so they created Dylan.
<tfb>
Also there is this myth that lisp is 'declining'. I'm pretty sure there is more work being done in and around CL today than there was twenty years ago. And I was there then (and before).
<hhdave>
Jobs cancelled all that stuff though.
<nij>
Perhaps I should ask a more specific question.
galex-713 has quit [Quit: No Ping reply in 180 seconds.]
frgo has joined #lisp
<Kabriel>
_death: why do you mostly avoid WITH?
<nij>
Sure, the fact that lisp eases the process of abstraction does make life easier. But does it really make your programs easier to read, if you haven't looked at it for ten years?
<nij>
You might have to relearn all the abstractions you have created to make it "simpler".
<tfb>
nij: If the abstractions are good, then they're still easy to read. If they're bad, not so much.
<hhdave>
nij: that /can/ be a problem with lisp programs. The language is so mutible and the tempation great. Discretion is advised.
<phoe>
macrostepping is really nice to understand macros if they simply hide away syntax
<nij>
Versus in python say, developers are doomed to use low-level functions.. but that makes life easier cuz one does not have to learn all those new functions.
<hhdave>
macro expanding is your friend :)
<save-lisp-or-die>
I've read some cogent opinions about the mystery of CL's underuse in industry that cite "developer fungibility" as the reason large companies prefer not to use lisp. The reasoning goes something like: it is too easy for a single lisper to invent their own conventions & therefore that lisper is harder to replace.
<phoe>
that makes life hell because you have lots of code that is required to be repeated in many places without the ability to abstract syntax away
zcheng3 has joined #lisp
<phoe>
save-lisp-or-die: the main line of reasoning is, where are the other people then
frgo_ has quit [Ping timeout: 260 seconds]
<hhdave>
phoe: can be very tedious indeed :)
<phoe>
where's the code review that can review these conventions
<curiouscain>
That happens in enterprise-type languages anyway though. Applications with things like n-tier architectures are notoriously awful to go back to after a period of time.
<phoe>
where are the design rules for macro creation and usage
<phoe>
this argumentation is like "we can't use lisp because a single programmer can destroy our codebase"
<save-lisp-or-die>
I agree - the issue is addressed by codified conventions within a single organization.
<phoe>
well do you not have code reviews or design guidelines or something
<phoe>
this doesn't talk poorly about lisp, this talks poorly about your corporate development processes
* phoe
rant off
<save-lisp-or-die>
I completely agree
<save-lisp-or-die>
but I think the argument might still persuade some fearful managers
<phoe>
managers who are fearful enough are already having their fears corporately tended to by Oracle
<phoe>
and, well, they do pay the price for that
<phoe>
but that's already off-topic
* save-lisp-or-die
enjoys warming hands by the fire of phoe's ire
<phoe>
:(
<save-lisp-or-die>
:0 meant to be a warm appreciation for your dedication to lisp!
<hhdave>
nij: I think programming language popularity is a complex thing, often involving much history and culture as well as technical considerations.
<nij>
hhdave: :(
<tfb>
The argument that all lisp projects end up in their own language built on Lisp is very weak: *all* large projects end up with their own language, it's just usually a shitty language built on strings
<nij>
I want to share the nicety of lisp to my IT friends. But all of them are working and are "practical".
<nij>
I find it hard to penetrate thier GTD mentality.
<phoe>
you can only pretend that your large project is not its own language because "it's written in Java, look, we use maven to build it"
<hhdave>
I think you'll find the unfamiliarity of lisp to be a big block with them too.
<phoe>
lisp just makes this much more explicit because you no longer perform new ContextManagerInstantiationManager(...) and instead you (defmanager ...)
kingragworm has quit [Quit: kingragworm]
ski has quit [Ping timeout: 240 seconds]
ski has joined #lisp
andreyorst_ has joined #lisp
retropikzel has quit [Quit: retropikzel]
retropikzel has joined #lisp
<tfb>
phoe: except, you don't use maven. You use some configuration management tool you wrote which uses Jinja2 and three other home-made templating systems to write maven configurations
<tfb>
phoe: and the Java code is also preprocessed by Jinja2 (except you need to use another version of it).
<tfb>
but still 'it's in Java' so that's OK
<phoe>
tfb: yes, very yes
<ck_>
... but no problem you just open Eclipse and use this dialog to build the configuration and then click here and here and 'ok' -- and then just do it again because the first time always crashes
nij has left #lisp ["ERC (IRC client for Emacs 27.1)"]
urek has joined #lisp
retropikzel has quit [Client Quit]
retropikzel has joined #lisp
Cymew has quit [Ping timeout: 256 seconds]
<byallahyourpfpgi>
ok so I'm trying out nyxt
<byallahyourpfpgi>
I expected it to have vim keybinds inside the webpage
<tfb>
(And just to finish my rant, there are lots of configurations you use. They are all slightly different copies of each other. when you find a bug you have to fix it in 248 different places. OK, finished.)
achilles has quit [Quit: WeeChat 2.9]
nkatte has joined #lisp
ljavorsk has joined #lisp
cosimone has quit [Remote host closed the connection]
cosimone has joined #lisp
IPmonger has joined #lisp
retropikzel has quit [Quit: retropikzel]
retropikzel has joined #lisp
technobean has quit [Ping timeout: 272 seconds]
frodef has joined #lisp
nkatte has quit [Ping timeout: 260 seconds]
retropikzel has quit [Client Quit]
retropikzel has joined #lisp
gproto23 has joined #lisp
srji_ has joined #lisp
srji_ has quit [Client Quit]
cosimone has quit [Remote host closed the connection]
cosimone has joined #lisp
<jmercouris>
byallahyourpfpgi: it does
leo_song has quit [Ping timeout: 256 seconds]
andreyorst_ has quit [Ping timeout: 256 seconds]
Lord_of_Life_ is now known as Lord_of_Life
cosimone has quit [Remote host closed the connection]
urek has quit [Ping timeout: 272 seconds]
urek__ has joined #lisp
wayneeseguin has quit [Ping timeout: 256 seconds]
retropikzel has quit [Quit: retropikzel]
retropikzel has joined #lisp
rumbler31 has joined #lisp
andreyorst_ has joined #lisp
narimiran has quit [Quit: leaving]
ljavorsk has quit [Ping timeout: 260 seconds]
retropikzel has quit [Client Quit]
retropikzel has joined #lisp
rumbler31 has quit [Ping timeout: 265 seconds]
cosimone has joined #lisp
andreyorst_ has quit [Quit: andreyorst_]
andreyorst_ has joined #lisp
EvW has joined #lisp
pankajsg has quit [Ping timeout: 260 seconds]
<Kabriel>
_death: that was insightful. Thanks for the read.
Jeanne-Kamikaze has joined #lisp
cer0 has joined #lisp
edmrk has joined #lisp
dusted has quit [Quit: WeeChat 1.9.1]
cosimone has quit [Quit: cosimone]
<Josh_2>
'one function to a function' sounds like a good idea
skapata has joined #lisp
technobean has joined #lisp
<Josh_2>
"Good Lisp coding is like good nutrition" lul
<jmercouris>
sounds is not is
<jmercouris>
these rules are too often taken as absolutes
<jmercouris>
1000 one line functions can be far more difficult to reason about than 5 200 line functions
<Josh_2>
_death: are there other gems in the directory 'usenet-gems'? I get 403'd
<Josh_2>
jmercouris: yes as the author addresses
cosimone has joined #lisp
<jmercouris>
well, the other says a "strict diet"
<jmercouris>
and then contradicts themselves later
<_death>
Josh_2: the main page contains links to them (I need to update it some day)
IPmonger has quit [Quit: ZNC 1.7.5+deb4 - https://znc.in]
retropikzel has joined #lisp
<jeosol>
thansk: subscribed
<phoe>
<3
<jeosol>
had rain this morning, computer tripped off and my runs died. Was able to find the gnuplot issues though, so no entering debugger
<jeosol>
Need to get a UPS pack
emys has quit [Ping timeout: 264 seconds]
mikaelj has joined #lisp
emys has joined #lisp
imode has joined #lisp
srji has quit [Quit: leaving]
mangul has joined #lisp
emys has quit [Ping timeout: 260 seconds]
<Josh_2>
jeosol: what are you doing?
<jeosol>
josh_2: I am running meta-optimization (optimizing and optimizer) and the F(X) for the sub-optimization is very expensive, so it can take weeks. I do a test with a table-look (in the sub)
emys has joined #lisp
MichaelRaskin has joined #lisp
<jeosol>
afterwards, I run the more expensive problem. My last UPS powerpack is dead, so I was taking risk to run the jobs. Unfortunately, rain today caused the power to trip.
<jeosol>
jobsh_2: not sure it's former was clear enough, but it's simpler optimization runs
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
tfb has quit []
<Josh_2>
What do you mean by running meta-optimization? is this a lisp project?
wayneeseguin has quit [Ping timeout: 264 seconds]
Fare has quit [Ping timeout: 264 seconds]
daphnis has joined #lisp
Fare has joined #lisp
ski has quit [Ping timeout: 256 seconds]
<frodef>
what is a decent libary for emitting javascript?
<phoe>
parenscript I guess
<frodef>
thanks
emys has quit [Ping timeout: 272 seconds]
emys has joined #lisp
orivej has quit [Ping timeout: 240 seconds]
<phoe>
minion: memo for pfdietz: I have some people who are interested in your work on random-testing the SBCL compiler and the techniques you used and the effects that it had and the bugs that it uncovered; is there any published code/research that I should link them to?
<minion>
Remembered. I'll tell pfdietz when he/she/it next speaks.
<phoe>
minion: memo for pfdietz: also, if you ever have the time to prepare and speak about it, I would love to listen to this on an Online Lisp Meeting someday (and so would these people).
<minion>
Remembered. I'll tell pfdietz when he/she/it next speaks.
retropikzel has quit [Quit: retropikzel]
srji has joined #lisp
lotuseater has joined #lisp
Bike has joined #lisp
cracauer has quit [Remote host closed the connection]
urek has quit [Ping timeout: 272 seconds]
urek has joined #lisp
h4ck3r9696 has joined #lisp
daphnis has quit [Ping timeout: 264 seconds]
akoana has joined #lisp
wayneeseguin has joined #lisp
cosimone has joined #lisp
ape666 has quit [Remote host closed the connection]
aaaaaa has joined #lisp
karlosz has joined #lisp
h4ck3r9696 has quit [Ping timeout: 272 seconds]
liberliver has quit [Ping timeout: 256 seconds]
ggole has quit [Quit: Leaving]
<jeosol>
josh_2: Apologies as that wasn't very clear. The code is written in CL (SBCL).
cosimone has quit [Remote host closed the connection]
cosimone has joined #lisp
shifty has joined #lisp
<jeosol>
josh_2: Now for the meta-optimization part, some people call it meta-learning (in the machine learning community). I have an optimizer (hereafter sub-optimizer) that I want to use to optimize a problem but this optimizer takes some (tuning) parameters, e.g., a, b, c, d, and the setting can make it performance better or worse
<jeosol>
So now, I push a second optimizer on top of the sub-optimizer (to determine the best parameters for a, b, c,d) while solving the underlying process. It's a very expensive computation
<jeosol>
It's very specific, perhaps, sometime, I will try to see if I can share results/process. But yes, I use CL for everything.
srji has quit [Quit: leaving]
srji has joined #lisp
<Josh_2>
oooooooh
<Josh_2>
CL is epic so I dont blame you for using it for everything
<jeosol>
apart from proprietary third-party (FORTRAN) executable does the more expensive forward F(X) calculations
daphnis has joined #lisp
<Josh_2>
but I assumed (wrongfully) you were talking about code optimization but now I see you mean machine learning it makes a lot more sense
<Josh_2>
Thanks for explaining it!
<jeosol>
josh_2: in my case, I had control for the whole workflow, I just used what was best. The first version from grad school used matlab though, then C++,
<jeosol>
josh_2: yeah, it is the sense of machine learning. I wish I can make my builds faster though. Fare did tell me to look at poiu but haven't been able to make it work
cosimone has quit [Remote host closed the connection]
<jeosol>
josh-2: "best" above was my opinion;
cosimone has joined #lisp
andreyorst_ has quit [Ping timeout: 260 seconds]
EvW has quit [Ping timeout: 260 seconds]
<Josh_2>
jeosol: okay :P
yitzi has joined #lisp
EvW has joined #lisp
<Josh_2>
was quid-pro-quo removed from quicklisp? If so are there any alternatives?
gproto023 has joined #lisp
gproto23 has quit [Ping timeout: 246 seconds]
<jeosol>
josh_2: sorry i am a bit tired ... hence explanation. But overall experience with CL has been good but I got a lot of help here and comp.lang.lisp (earlier)
<oni-on-ion>
what is the namespace for ":keyword" -- CL KEYWORD ?
<no-defun-allowed>
A keyword is in the KEYWORD package, yes.
<oni-on-ion>
kk, interesting
<no-defun-allowed>
In a sufficiently large-scale system, you find that you might use some names for some actions which someone else uses different names for. We would ideally have the users of protocols negotiate their differences, and that would preclude any type-checking.
Inline has quit [Quit: Leaving]
<oni-on-ion>
yeah
<no-defun-allowed>
And in a sufficiently old system, you have old data and new data, which can't be handled with the same grammars and logic. So a good trick would be to stick as much logic in the object that you write to disk, so you'll be sure you can use it later, and update it only if necessary. (This idea really only works in decentralised development, where there isn't one linear progression of worse-to-better.)
<oni-on-ion>
fiddlerwoaroof, do you happen to have any similar notes/articles related to this ? (symbolic programming, lisp1/2, data vs. program separation, etc)
<oni-on-ion>
oh imma read that. but we did have this in UNIX days, programs/binaries. piping and shells in whatever languages (talking with plain text/binary). now we split them into .so/.dll - now we've larger monster programs, and web services =/
miasuji has joined #lisp
dyelar has joined #lisp
<no-defun-allowed>
Also, I dislike the argument that you must know you can do something to do it in dynamically typed languages, when I can happily (make-instance 4) and, sure enough, that's a valid program. It does something -- not anything useful really, but I can handle it, and it is a legal expression in Common Lisp.
kir0ul_ has joined #lisp
Fare has joined #lisp
<oni-on-ion>
about type safety / inference ?
<no-defun-allowed>
With message-passing and doesNotUnderstand: or the like, you definitely cannot tell if an object doesn't understand a message (i.e doesn't call Object#doesNotUnderstand:) without trying it.