libera/#commonlisp - IRC Chatlog
Search
4:42:06
Bike
«I remember once going to see him (Ramanujan) when he was lying ill at Putney. I had ridden in taxi-cab No. 1729, and remarked that the number seemed to be rather a dull one, and that I hoped it was not an unfavourable omen. "No", he replied, "it is a very interesting number; it is the smallest number expressible as the sum of two [positive] cubes in two different ways."»
4:46:39
Arathnim
Speaking of which, mcclim doesn't load from quicklisp any more. For me, at least. Complains that swank isn't a package, so it probably isn't loaded.
4:52:32
Bike
that's pretty unusual, the former should just do the latter if you already have mcclim around.
4:53:58
Arathnim
The first time I tried loading from quicklisp, it worked, but all attempts after that fail with the same error.
4:54:44
Arathnim
Error finding package for symbol "SWANK-REQUIRE": The name "SWANK" does not designate any package.
4:56:54
jackdaniel
Arathnim: hang on, I'll run sbcl in the separate (clean of local-projects and cache) account
4:58:26
Arathnim
Thanks, this is quite an odd bug. It looks like it might have more to do with quicklisp than mcclim.
5:02:23
jackdaniel
Arathnim: can't reproduce it, I have a fresh dists version though (#<SYSTEM mcclim / mcclim-20160628-git / quicklisp 2016-06-28>)
5:02:54
jackdaniel
I've tried to load it as a first system on clean sbcl instance with no prior quicklisp usage etc
5:35:01
beach
If you have more than one pane layout in the frame definition and try to switch between them.
5:36:39
jackdaniel
OK, I think that we'll have to create a separate issue for that problem with a clear explanation
5:37:32
beach
Make a frame with two panes and have two layouts. And write a command to switch between them.
9:05:07
VitoVan
beach: It is copied from pyautogui, "A cross-platform GUI automation Python module for human beings".
9:09:05
beach
There should be a space before the first opening parenthesis in a group, in particular between the name of a function or a macro and its argument list.
9:09:20
jackdaniel
ah, automated managament of mouse and keyboard – sounds like a potentialy useful feature
9:10:25
beach
VitoVan: Sometimes you have a blank line after an ABBREV top-level form, sometimes not.
9:11:40
beach
VitoVan: In X-MOVE, you do nothing if X or Y is NIL. That is not typically how one programs.
9:13:02
beach
VitoVan: In order to be helpful to your client, you should signal an error if they are not number. Doing nothing will mask defects in client code.
9:15:20
jackdaniel
https://www.cs.umd.edu/~nau/cmsc421/norvig-lisp-style.pdf this is very nice read about Lisp style (I like it a lot)
9:16:56
beach
VitoVan: There is no particular reason to make x-mouse-up and x-mouse-down macros. Macros should only be used when the evaluation rule of functions is not possible.
9:19:34
VitoVan
beach: I make x-mouse-up macro for making `key (button 1) (x nil) (y nil)` => ,@args
9:24:17
beach
In particular, with-dw is used only once so by making it an abbreviation, you have more code than if you remove it.
9:25:03
beach
You can use completion in order to avoid typing full names if that is the problem you are trying to solve.
9:25:59
jackdaniel
ie I'm more likely to use let* over destructuring-bind, because it's name is shorter
9:27:05
VitoVan
beach: I am reading <On Lisp> recently, the author said: "A program, like printed text, is easiest to read when it contains no more than about 70 characters per line. We begin at a disadvantage when the lengths of individual names are a quarter of that."
9:27:07
jackdaniel
yes, I'm not defending with-dw or whatsover, just saying that such macro (abbrev) may be very useful, ie to rename destructuring-bind to dbind
9:28:33
beach
VitoVan: There is some truth to that, at least when it comes to the number of characters per line.
9:28:41
edgar-rft
VitoVan: That's probably the reason why nobody can remember his crypticism-obsessed variable and function names.
9:29:09
beach
VitoVan: But you should be a bit careful with the style of Paul Graham. It often does not correspond to what the community is practicing.
9:30:00
VitoVan
beach: I am new to Lisp, and the only book I ever read (not finished) is <On Lisp>, seems I need to read more~
9:32:03
specbot
compute-applicable-methods-using-classes: http://metamodular.com/CLOS-MOP/compute-applicable-methods-using-classes.html
9:34:32
VitoVan
beach: I've updated the gist, https://gist.github.com/VitoVan/abeeb79da01298855692153f1830360e
9:35:38
VitoVan
beach: I wonder what if I just name the macro with-default-display => with-dd ? Should I do this?
9:36:57
VitoVan
beach: I use to program in Java a lot, and hate the long-function-names like this one: AbstractJsonpResponseBodyAdvice
9:37:44
beach
VitoVan: Sure, but that is because it is visually difficult to parse when they use CamelCase.
9:40:06
VitoVan
beach: I have updated the gist, and removed the abbrev. https://gist.github.com/VitoVan/abeeb79da01298855692153f1830360e
9:40:13
ggole
It's nicer to read a long name than to try to guess wtf a short one stands for, that's for sure.
9:45:26
VitoVan
beach: updated once again, https://gist.github.com/VitoVan/abeeb79da01298855692153f1830360e
9:47:00
beach
Thanks! I am sure other #lisp participants would do the same. I just happened to be around and not too busy.
9:49:54
VitoVan
I've had the answers I need from #lisp many times, this is a wonderful place, I hope someday I can be helpful here.
10:23:06
VitoVan
jackdaniel: This really fit my appetite, https://www.cs.umd.edu/~nau/cmsc421/norvig-lisp-style.pdf
10:37:21
phoe
e.g. many comments in code can now be elsewhere because we have versioning systems and issue debates can take place outside of the source code
12:06:08
prole
I know common lisp, but for scripting, there is a lot outthere: scheme, shsc, guile, eshell...
12:10:25
knobo
I forgot if we have a good library to encode/decode html strings: "<&" => "<&" etc...
12:32:01
knobo
hmmm. looks like every other programming languages have a library for that.. Maybe I can find a c library and use cffi
12:45:39
prole
jackdaniel: this is what I was searching for. thanks a lot. Starting a script with SBCL is so slow...
14:26:28
dto
hi. the New England Lisp Games Conference was a success. video 1 here, other videos to follow and will be linked from this page. https://www.youtube.com/watch?v=1VyTd_Wf0qA
14:30:59
dto
there will be three more tech talks and then a mini tournament of people playing 3x0ng :) for a total of five episodes over the next couple days.
14:39:13
beach
I am fine thank you. I am on to something; fast, maintainable, and portable sequence functions!
14:44:13
beach
I have been working on this problem for years now. I already had "fast" and "portable", but the code was not maintainable. Now I know how to do it, provided the compiler to use is "sufficiently smart", so that it does constant propagation also of arguments to EQ. The SBCL compiler definitely seems to work.
15:04:49
impaktor
Too bad with the retarded kids in the background. Guess I'm spoiled with audio quality.
15:05:20
dto
i thought the wireless mic system did well in picking up an intelligible voice in some pretty extreme circumstances
15:07:54
impaktor
So, as someone who is interested in getting into Cl and SDL, forgive my stupid questions, but is there some reason to not use CL-SDL2?
15:08:36
impaktor
I'm seeing there are many options for moving sprites around. I had planned to look at CL-SDL2.
15:09:38
dto
impaktor: CL-SDL2 is a good default choice in my opinion. SDL2 is the current mainstream SDL. the accessory libraries (MIXER, TTF and so on) are now well supported.
15:10:53
dto
LISPBUILDER-SDL targets SDL 1.2, which is legacy but still widely used and supported. the LISPBUILDER bindings haven't bitrotted, but it doesn't have a current maintainer. i've made a fix or two
15:12:32
impaktor
dto: Using CL-SDL2 I can update the program through the REPL while it's running, or is that where CEPL comes in?
15:32:22
beach
waterdrop: The compiler can do lots of optimization if the lexical variables are known at compile time.
15:32:38
waterdrop
beach: I see. So basically eval executes in the global environment because making it execute with lexical scope would be really time costly?
15:32:50
beach
If you allow EVAL to access lexical variables, many such optimizations become impossible.
15:33:52
beach
waterdrop: The Common Lisp language was designed so that it would be possible, using the compiler technology of the day, to generate very fast code.