libera/#commonlisp - IRC Chatlog
Search
3:49:45
beach
jeosol: Yes, I stopped engaging a long time ago. The only way to try to convince (some) people is to show good work.
3:50:35
beach
jeosol: SICL is making progress, but very slow progress right now. It's just a matter of lack of inspiration. I am not working on anything else very actively right now.
3:51:54
jeosol
beach: I agree, engaging in that discussion is frustrating - so I took advice from the likes of you and others. I can't be trying to convince someone who doesn't understand what I am doing. They say why I don't use python like others , lol
3:53:01
beach
One silver lining is that the people who come here are usually more open minded than the ones you are referring to.
3:53:09
jeosol
Josh_2: my project is something that will be really had to describe as it does a lot of things: Optimization, Machine Learning (limited, but can call scikit-learn libraries via exernal Python scripts, Physics Simulation, ...)
3:53:38
jeosol
seok: haha, I know. Some of the applications don't make sense to even use Python, I mean the latter has it's place
3:54:46
jeosol
beach: You mean lack of inspiration -- hopefully it can come back. I know how that is
3:55:42
Josh_2
I have been slowly chipping at some very boring code, almost done and can go work on something I started a while ago but had to put to one side
3:55:58
Josh_2
Its nice to work on newer projects where there is a lot more freedom in design, thats the fun part imo
3:56:24
jeosol
seok: many people use Python, either for DS/ML/AI work so it's common with many new developers.
3:57:06
jeosol
Josh_2: I agree, I work on different parts of my application depending on how I feel, some parts are bad to work in due to poor initial design - sometimes, I just bite the bullet and go through a day of refactoring work
3:57:15
seok
yeah, python is good when there are prebuilt libraries written in C or something that python is calling from
3:58:19
jeosol
seok: I think that's for most of the ML work, numpy, jax and tensorflow having underlying C or C++ implementation
3:59:29
seok
Deep learing is great for a lot of things but I think it's a bit too overcrowded. I don't like doing things others are doing
4:00:40
beach
jeosol: I am still working on bootstrapping with the goal of creating an executable file, but there are tons of minor things that have to be taken care of as well.
4:00:42
jeosol
seok: haha, that's funny - the different frameworks and architectures that come out everyday makes the area like a joke now. Everyone and their mother is open sourcing language models every day
4:01:56
jeosol
beach: my short coming is that I am not a compiler guy (my usual excuse) but recently finished the algorithms course so I write use appropriate data structures, write better and efficient code
4:02:57
jeosol
it's almost like the space is not much science any more, tweak this, tweak that, get 0.1 % accuracy with massive GPUs (millions of dollars compute time) and then declare victory
4:03:04
seok
I am learning linguistics slowly because I want to try developing a non-nn language parser and meaning representation someday
4:03:44
beach
jeosol: No excuse needed. It's just a matter of taking the time to read the literature. But one has to have the time and the interest in the subject, of course.
4:03:48
jeosol
someone must be working with AI here using CL. I remember a company, mind.ai said they were developing a chat bot using CL NLP
4:05:47
jeosol
beach: I agree with that. I probably be a better coder if try to get deeper on implementation side. Remember when hayley implemented some hash lib (?) in the past - I was reading about hashing and methods to avoid collisions etc
4:11:30
jeosol
seok: I don't have much NLP experience but I got an old CL book on Natural Language Process in Lisp by Gerald Gazdar and Chris Mellish
4:13:07
seok
Well if you know a book like that, I bet you are more knowledgeable than I am in the area
4:14:07
jeosol
Oh no, I just got it out of the shelf now to look at the name and authors. I have not worked with it at all. It was something I am interested in and saw on ebay
4:18:44
seok
I think it requires quite a bit of linguistic knowledge as well if you want to deal with human languages
4:19:21
jeosol
that is true. My initial focus was developing an expert system if I can capture known and use that to call my CL code to do evaluations
4:20:02
jeosol
but I will settle for a proof of concept by using Python as a front stack, and call CL
4:20:51
jeosol
It's more like, medical diagnosis tools in the 80's. Where you go with rules, if this, then that, if that, then this. .. from facts to conclusions
4:22:06
jeosol
well, I just want to use simple prompts. Please tell me input for X, I capture it, ... like that
4:23:42
jeosol
I think it's easy that way. no backtracking to catch errors. If users give a string intead of an int, agent should now and ask for better input. This is probably easy to do with some loop I guess
4:24:47
jeosol
For example, I can say: "evaluate the square of 2" and I should be able to parse it for the function and argument to the function
4:27:05
jeosol
that's true. speech to text for me is way out. Even the text to command. I don't have time to pursue it anymore
4:28:48
White_Flame
I've been wanting to build a solid gofai nlp system for years as well, still designing & reading up
4:29:04
seok
If it's done non-NN way, it means the parameters to generate voice acoustics is known, that means nobody needs voice actors anymore
4:30:53
White_Flame
their goal is to have logical representation of "common sense knowledge"about the world
4:31:44
White_Flame
jeosol: well,it's complicated. :) But certainly lisp and forward chaining systems
4:31:50
jeosol
White_Flame: that's one thing that made me interested in it, but I met a MIT AI person who said Lenat's approach is flawed
4:32:31
jeosol
White_Flame: I imagine it is, and they have been adding to it and extending it. I remember seeing a job posting like 2 years ago
4:33:40
White_Flame
basically they do a lot of inferene work per client they get in order to have it run their work quickly
4:34:18
White_Flame
in terms of finding where the inference gets confused or spins off infinitely looking for answers, an hardcoding modules to help it solve those problems more directly
4:34:55
White_Flame
their knowledge base & ontology of common sense is considered pretty complete by now, iirc
4:36:29
White_Flame
dmiles was the resident cyc expert, he worked for & with cycorp a lot, but I don't see him in here now
4:37:27
White_Flame
but anyway, the more I get into nlp, and all the implicit communication that happens between humans with it, the less I consider it a logical programming problem
4:38:50
White_Flame
so I'm trying to do more modeling of the mind, trying to have it do inductive reasoning and triggering memories of similar things (of any scale) as 2 of the more important bootstrapping facilities it seems to nee
4:41:40
White_Flame
the ultimate description of the "intelligence" I'd like to build is the ship computer from tng/voyager
4:43:02
jeosol
I did interface with him when I was trying to get into the space. I will probably get to the logicmoo discord group again
4:43:24
seok
The problem with "developing the mind" I see which seems to be popular in ML world for a while is that it is congruent with the fundamental philosophical questions
4:44:59
White_Flame
seok: there's 2 ways to word that, one is an emergent mind (ML statistical blub), the other is designing features of the mind
4:49:51
jeosol
White_Flame: this is a very interesting project. How different is it from the approach Miles and his group and working on? And is it possible to crowd fund it, gather a small team, etc
4:50:50
White_Flame
dmiles has his very specific model of the mind as parallel streams of tokenize narrative. I'm not really convinced of that model
4:51:23
White_Flame
but that's common in AI land; everybody has their own vision of what the missing/basic ingredient is
4:53:47
jeosol
mind.ai guys said they are developing a unique and new system, I don't remember the details, but they use SBCL and Lispworks I think
4:54:02
White_Flame
as well as dredging up old papers from the 60s-80s and their respective tools in the fiel
4:55:05
White_Flame
I don't talk about my system much, because I don't think it's useful to make claims about speculative AI projects until they show actual results
4:55:33
White_Flame
been too much of that over the years and it never accomplishes anything positive
4:55:48
jeosol
I have no idea. I suppose perhaps to target certain systems with Lispworks (I am not expert here) where it generates some exes?
4:56:46
White_Flame
seok: NLP is one facet of the AI understanding. this all came about as a tool in service of automated reverse engineering work I've been working on for a long time
4:57:20
jeosol
seok: I suspect that's why. They probably use SBCL where possible for dev and test, and the use Lispworks for that. I only used free Lispworks version long time ago
4:57:23
White_Flame
but I believe organized thought is rooted in language. non-language thinking/understanding exists, but does not scale without language IMO
4:57:48
seok
automated reverse engineering, like parsing major programming language code and interpreting it?
4:58:13
White_Flame
binary reverse engineering, which could also be applied to bytecodes, textual formats, et
4:59:25
White_Flame
they allow humans to do more work, but they don't do the thinking work for the humans
5:00:21
White_Flame
conceptualized, ability to dialogue about it (and learn & receive feedback/changes), and explainable
5:00:49
seok
It's interesting that you've thought that NLP will be a significant tool for binary parsing
5:01:09
White_Flame
it's not, but it's a significant tool for communicating broad information to the machine
5:01:09
Nilby
one would think it should be obvious by now, that for abiliites like language, it's not possible to have >94% person ablity, without having a person. chess, sure. driving, maybe. but language and thinking, you it can only be fake or real, and straddling the line is unethical torture
5:04:45
seok
what test? what is being measured here? how like-human an NLP machine can generate human language?
5:05:43
Nilby
but passing a secondary school test doesn't really make for acceptable language proficiency, as we can observe
5:07:03
seok
that's what I would think: that such test to quantify language ability as a percentage comparison of a human's would be extremely difficult or impossible to produce
5:08:22
White_Flame
there are nlp challenges out there, and code struggles to get over 95% accuracy, even for things like part-of-speech tagging over large corpuses
5:09:02
White_Flame
I think the state of the art is probably like 97% now, but even then that's like 1 in 30 word/phrases/etc are misunderstood
5:09:51
seok
I don't think part-of-speech is difficult, sure there are ambiguous sentences but syntax trees have been around for very long time?
5:11:32
White_Flame
and one of the biggest challenges, where AI/context/common-sense come in are resolving pronouns
5:11:55
Nilby
they will always have trouble with it, because language is deeply dependent on cognition, it doesn't make logical sense to have a person cognition which isn't a person
5:12:01
White_Flame
"The trophy would not fit in the suitcase because it was too big". What is "it"?
5:21:44
seok
It's fascinating how we have made so much progress in some areas of NLP yet made so little progress in others
5:26:47
hayley
White_Flame: You mentioned automated reverse engineering; I've had "interactive tool for de-obfuscating JS" planned for a while, but never made much of an advance on it.
5:28:08
hayley
There's some obvious stuff, like giving variables better names (in my experience, slot names are less frequently obfuscated, oddly enough), and then partial/abstract interpretation and constant folding would be useful too.
5:32:02
Nilby
yes, the difficultly of that shows there's some amount of art and thought, even in JS code
5:34:15
hayley
I disagree with that. It's more evidence that, while there are infinitely many programs that have equivalent semantics, quite few are pleasing to read.
5:36:02
hayley
The only definition I can provide is the lack of obfuscation techniques, which is not a very good definition.
5:39:44
Nilby
in one way, the asm that sbcl spits out, is more "good" at distilling my inention than my source
5:45:39
hayley
One counter-example could be constant folding, if a more complex expression conveys my intent better than a folded (yet still equivalent) expression. A compiler would try to generate code with constants folded, however.
5:46:57
seok
well, the primary motif of eastern philosophy is balance, that there are good and bad sides in everything
5:48:18
seok
There is no determined answer to these questions, but as a programmer we need to make a choice
5:49:00
Nilby
sometimes i look at disassemble, and realize a profusion of macros is just an "add" and that's what i should have wrote, but of course most looking at disassemble is struggle to figure out what it's doing
5:51:09
Nilby
sometimes, especially when i see people here arguing about what is fastest way to do X
10:24:51
beach
I recommend McCLIM for GUI applications, but some people say it doesn't look "modern" enough.
10:25:13
beach
The advantage of McCLIM is that it is written entirely in Common Lisp, so no need to do foreign functions.
10:28:48
contrapunctus
https://jabjab.de:5443/upload/a75f5b15713067434614f6d0c986f536c301cf7e/qKGVUquXiMuRW9zhMi2BLgan8QxSzGOcPDb9nHnT/XOcSmaZYTgGpfGsdZ_fVDg.mp4
10:30:40
contrapunctus
Guest94: you can check out the McCLIM website for screenshots of mature applications made in it.
10:33:14
beach
Guest94: I would not start with a GUI application then. Those are tricky in any language.
10:36:12
beach
That might require some GUI library, but I don't recommend learning an language by starting with a complex application, especially if you are new to programming. Having said that, I know that some people do it that way.
11:14:03
beach
Yesterday I hinted that I was going to avoid lengthy discussions in the channel on topics such as Common Lisp style or how to organize a system. I said that I would perhaps instead create some web pages that summarize how I prefer to do things, and then not discuss the contents further. Here: http://metamodular.com/IRC/modules.html is an example of the kind of page I had in mind.
11:18:48
beach
One lengthy discussion on one topic can easily take longer than it takes to create such a page, so I am hoping to not only avoid the frustration of some of these discussions, but also to simply save time.
11:19:48
beach
I should have said "avoid feeling that I had to participate in lengthy discussion...".
11:21:19
_death
I assumed, like you mention, it's to "avoid the frustration".. by not participating when a conflicting view is shown, the outcome may be analogous to "sulking in a corner"
11:23:37
contrapunctus
beach: nice page. A web post certainly has the advantage that you're able to communicate your preferences clearly (rather than split over a long chat), and it's easier to discover and cite than a chat log (despite the very handy log service on tymoon.eu).
11:24:01
_death
one advantage could be that you can describe potential rebuttals and resolve them in your long form text
11:34:47
jackdaniel
beach: re linked example (cluffer), it seems that it names the system with a keyword :cluffer - asdf internally downcases it and stores system names as strings (not much unlike defpackage), so perhaps #:cluffer or "cluffer" would be cleaner
11:41:29
contrapunctus
Additionally, I was splitting up source files into multiple smaller files the other day, and noticed that the existing resources on the subject of writing system definitions are a bit lacking (I checked cl-cookbook, the ASDF manual, and the "writing libraries" section on lisp-lang.org). beach's post might fill that gap to an extent, although I intend to contribute some improvements to cl-cookbook
11:42:25
jackdaniel
speaking of asdf system names, I think that using a string is better, because usually programmers will expect that strings designated by symbols will be upcased (and that is not the case in asdf, so it goes against expectations)
11:44:21
jackdaniel
I'm sure that your page will grow; I'm mostly saying it as a general remark for others
11:51:53
atgreen
Not to sound ungrateful and demanding, but I just noticed that this is the longest we've been waiting for a quicklisp update in about 5 years. Do any of you have any insight into why? Or is there's anything we can do to help move things along? Or is the CL community just slowing down.. so not much new content?
11:53:29
jackdaniel
you may either open it in a tmux or screen session, or write a service/unit/rc file to start it as a daemon
11:54:01
contrapunctus
lisp123: do you mean how to connect to a running remote SBCL process from SLIME?
12:06:40
atgreen
libffi is like quicklisp in one way... if I stopped releasing it, I'm not sure who would pick it up...
12:08:03
jackdaniel
btw if you are interested in frequent updates, there is a separate quicklisp distribution "ultralisp" that takes packages without any qa directly from repositories
12:09:03
jackdaniel
(https://ultralisp.org/ - it uses the same software quicklisp does but is not as resilent to regressions)
12:39:14
Nilby
jackdaniel: i wonder why they wouldn't use the old cheat of using the clos/loop/format/pprint in lower lisp
12:41:33
jackdaniel
if they were all macros that expand to a language subset then it would probably work, but that's not true; clos requires runtime functionality, the same applies to loop, format and pprint
12:42:06
jackdaniel
if you just use sbcl to bootstrap, then you can't rip these runtime parts and use them after the implementation is bootstrapped (but you may use it during bootstrapping of course)
12:47:42
Nilby
the initial version of all of these were written in pre-CL lisp, with any specific runtime support. of course that's not the best way to do it.
12:57:48
Nilby
this one line help me understand what they're going for in LCL: (defun eval (forms) (lua (lua-call "load" (compile-to-lua forms)) "()"))
13:26:38
White_Flame
hayley: yes, that's why programming tools at that level really requires some real measure of AI, because any good communication with humans requires nearly thinking like a human in order to generate a clear, appropriate, and understandable representation about the user-level semantics that the code is implementing
14:10:04
Bike
is there a way with CFFI's defbitfield/grovel bitfield to handle multiple-bit fields? a "flag" takes up two bits and has four distinct states in my case.
14:10:19
Bike
obviously i could break it into multiple binary fields, but then it doesn't match the C API
14:22:10
_death
like (:foo #x1100) .. cffi:foreign-bitfield-value may work as expected, though cffi:foreign-bitfield-symbols would not.. basically there's no support for such a thing afaik
14:24:11
Bike
yitzi: more or less. the C is like { LLVMDIFlagPrivate=1, LLVMDIFlagProtected=2, LLVMDIFlagPublic=3, LLVMDIFlagFwdDecl = 1 << 2, LLVMDIFlagAppleBlock = 1 << 3, etc } with the etc being more actual flags
14:33:11
yitzi
Bike: I think you could use defcenum and defbitfield separately then combine with translate-to-foreign/translation-from-foreign