freenode/#lisp - IRC Chatlog
Search
10:06:02
beach
And there is of course my favorite example where Emacs indents a LET binding as if it were a form.
10:40:14
dim
so your quarrels about how to properly indent Lisp code... I wish I could still find that funny ;-)
10:43:23
dim
more seriously I tend not to care much and am ok/happy with Emacs defaults most of the time, the SLIME navigation, debug, and tracing facilities are way more important to me than the indenting of the code
10:44:17
dim
that said I have some expressions in the vein (put 'bind 'common-lisp-indent-function (get 'let 'common-lisp-indent-function)) in my cl config for Emacs
10:54:02
beach
dim: What is that you like about SLIME's debugging facilities that you don't have for other languages?
10:55:23
dim
beach: you'll laught at me for that being really the basics, but I love the fact that you can interactively try any function in the REPL and have the “advanced” tracing UI too
10:55:58
dim
the REPL isn't specific to slime, it's quite more powerful in lisp than any other language I've been playing with in the past, apart from Erlang maybe
10:57:16
dim
doing Python, when you have e.g. a small parser to read query timings from a subprocess stdout, and want to just try that function, it's cumbersome, in lisp you just play at the REPL, and if you wonder about what happens when you run the whole program, just trace it!
10:57:32
beach
I definitely won't laugh at you. I am just interested, because I have seen several times in this channel people saying that SLIME is the best IDE, all languages included.
10:59:38
beach
So for instance, I still don't know how to use SBCL to set a breakpoint at any place in the code, run the program until it stops, and then step by expression.
11:00:28
dim
breakpoints... I don't know, I just edit the code with a (break) at the right place, then C-M-x and run my test again in the REPL
11:03:55
dim
basically, half of the people in there use advanced debugging facilities, the other half are like “just add a printf here and there, and think hard”
12:43:32
ludston_
Which implementation of common lisp has a stepping debugger that works intuitively? I haven't gotten sbcls to work either.
13:04:59
Xach
ludston_: I don't know from personal experience, but I've heard the debugger experience on allegro is very good.
13:05:56
Xach
I have used allegro a bit, but never delved deeply into the debugger; I mostly used slime's interface instead.
13:24:40
flip214
Shinmera: when regenerating the ELS webpages you might want to clean up the "../static/proceedings/2017.pdf" and similar links
14:11:10
jmercouris
a way to print up to column x filling with characater? e.g. I want to print "fish" and then however many spaces necessary to make it equal to 10 columns or something
14:12:53
jmercouris
Xach: Cool, thank you, can you also tell me where I may find the other control strings in the CLHS?
14:21:50
phoe
jmercouris: https://www.hexstreamsoft.com/articles/common-lisp-format-reference/clhs-summary/#subsections-summary-table is a summary of it
14:22:56
jmercouris
I spent like 10 minutes leafing through clhs sections to find the ~T operator, I completely understand why you are working on the ultraspec
14:45:12
jmercouris
dlowe: so you wrote another search backend? why don't you publish it to the extensions wiki
14:46:33
jmercouris
Ah, must be nice to be browse the utopianet where all websites accept simple arguments :D
14:48:01
jmercouris
dlowe: I'm just messing with you, I have to shamelessly promote whenever possibe is all :D
14:49:33
Xach
Let me be clear: if you promote the project by berating people for using a "plebian browser", you should not stay here.
14:52:27
jackdaniel
I think it is enough to note, that sarcasm is not welcome here (nor aggressive advertising) and let's move to lisp topic ;-)
14:53:53
dim
jmercouris: I think a proper answer here would be “sorry, I didn't realize it could be taken as offensive and that was not my intention”
14:55:18
jmercouris
dim: I would say that if I could imagine a scenario in which it could be construed offensive, I didn't say something completely unknown, it even has a knowyourmeme page
15:01:43
foom
BTW, next time, if you leave out the "if anyone at all was offended" in the middle of your apology, it would seem more sincere. It's clear that someone was offended, as per discussion above.
15:03:29
dlowe
I'll even start - I think the CLIM backend using cl-charms is brilliant and could really work for climacs or some other CL editor.
15:05:03
jackdaniel
and half of the things will be of course broken (font-size, rendering non-rectangular regions etc)
15:14:06
pjb
dlowe: won't happen, for the same reason as a CL clone of linux won't: the device drivers!
15:14:42
pjb
dlowe: nah, I'm just being pessimistic. It could be written easily since it's just a userland library, and the data files are available and with a public format.
15:14:46
flip214
Shinmera: I meant that you might want to change the link now visible as "../static/proceedings/2017.pdf" to be called like "Proceedings 2017" instead. (The text between <A> and </a>.)
15:19:58
p_l
node.js people put together a termcap/terminfo parser as part of blessed library and use that
15:36:09
beach
dim: How it reassuring that half of the developers don't use good tools? To me, it is very disturbing.
15:37:04
beach
flip214: I don't think that will work, because I want to be able to edit code even though the package has not been created yet.
15:52:08
pjb
beach: remember, every 5 years, the programmer population doubles. Which means that there are basically 50% of -5 year newbies.
15:52:43
shrdlu68
The biggest challenge with writing a curses library in CL is controlling the terminal mode.
15:52:53
dim
beach: paraphrasing the book (which is real good, you would enjoy it), or rather what I recall about it, the more important tool you need is good thinking, the rest just helps with that
15:53:18
pjb
shrdlu68: of course, some CFFI will have to be involved (unless you use clisp of course).
15:54:31
beach
dim: Yes, but the corollary is that if your thinking is already good, it would be foolish to decline the use of tools that may save a lot of time and energy.
15:56:00
beach
pjb: CS teachers are almost 100% newbies. And I can explain that some day if you like. It has to do with the career path of a typical CS teacher.
15:57:25
dim
beach: of course there's something to what you're saying, then there's also the learning curve and investment and triaging the good tools in the myriad of available ones, etc
15:57:52
beach
pjb: In fact, ironically, the typical CS teacher is unfit to teach undergraduate classes (because those classes are general, and they don't have any experience with the general stuff), but they are qualified to teach the masters courses, because they are supposed to be about their research specialty.
15:58:10
dim
CS education is about culture and how to think, in my view, not about how to become a good worker who knows a given toolset
15:58:43
beach
dim: Yeah, tell that to the software industry, and see where they would turn instead to get qualified employees.
16:00:11
beach
dim: Also, tell that to my colleagues worldwide, who are convinced that what industry wants is what industry needs.
16:00:18
TMA
dim: it depends on the school -- some CS uni programmes are more trade school than science
16:01:10
beach
TMA: He is right though. They really shouldn't be called CS. And of course they aren't in most countries.
16:04:36
dim
industry is also famous for wanting to hire juniors, fresh out of school, with low salary because they don't have any experience, but with the same skills as professionals with 2 to 5 years of exeprience
16:05:20
dim
IOW I think the industry perfectly realises that you don't know how to do your job when you're just out of school, and learning that takes a good 2 to 5 years, and that's normal and expected; it's just that nobody wants to be paying for that
16:05:44
dim
but to go from there and say that the public schools should be paying for that is not good thinking in my book
16:08:00
beach
That's a political decision similar to other decisions about industry subsidies. I don't have a problem with that.
16:08:01
beach
What I have a problem with is that my colleagues worldwide truly believe that industry is so good that they actually know what they need, so when the express some desires, these colleagues rush to satisfy them, rather than doing the research to figure out what industry actually needs, and teach that instead.
16:09:47
dim
what about training people to be smart and capable of learning new technologies by themselves thanks to a very solid theoretical background, and then letting them figure out what their employer/customer need?
16:10:34
beach
That is a possibility. It requires a PhD, which industry then won't hire because it is too expensive, and it won't give them what they want (and think they need).
16:11:19
beach
And this is on topic, because in my opinion, industry needs people who know Common Lisp. But industry doesn't know that, because the decision makers in industry don't have sufficient education, experience, and knowledge to know that.
16:11:22
dim
I'm not too sure about that requiring a PhD as opposed to the years of PhD training currently being almost the only ones where we are used to treat students as being smart and capable young adults
16:13:20
beach
In my opinion, most masters students are incapable of reading and understanding research papers, make a literature search, and such. And that is something that is required to determine what a particular employer needs, simple because it is rare that the employer work smack in the specialty of the employee.
16:15:22
jmercouris
beach: are most of the things an employee needs to learn for a job available in the scientific literature?
16:15:43
jmercouris
It is my opinion that most of the things people spend learning are internal processes, programs, culture, things like that
16:17:57
beach
jmercouris: You are right. But I am not discussing what is needed for a job. I am saying the exact opposite, that many employers focus on their internal culture, which is usually very primitive, and they don't know that they could make way more money by doing things differently.
16:19:12
jmercouris
there are sometimes unions of companies that share knowledge with each other, these focus on a "community" of knowledge
16:19:25
jmercouris
I'm trying to remember the term for it, I think it is something like "open innovation network"
16:19:59
jmercouris
I wouldn't know as I've never participated in such a network, but I beleive that they are supposed to serve a different purpose
16:20:20
jmercouris
something about amortizing the cost of developing expensive new technologies, and combining different technologies and patents to produce new products
16:20:33
beach
So we currently have this vicious cycle, where decision makers in industry are using primitive techniques and tools, so they want employees who master those, so they go to the university and require those tools. And my colleagues believe them and teach those tools, thereby maintaining the industry at a very primitive level.
16:20:48
TMA
I think that learning common lisp made me a better programmer even though I never use it in any employment-related work
16:22:25
jmercouris
possibly a very influential book or some "successful company" pitching it, so there can be many copycat companies
16:22:25
beach
If current CEOs make decisions that could be made by a spreadsheet program, they should be replaced by one.
16:23:08
jmercouris
if they make a decision based on some difficult to measure criteria, the shareholders will be at their neck when it goes belly up, regardless of the reason
16:26:42
jmercouris
that's why I also mentioned "copycat" companies, who just kind of steal ideas and attempt to apply them to their company
16:30:23
beach
While there are startup companies and small companies that can make lots of money without being technically very advanced, and instead have good ideas about the market, I am convinced that most developers work for biggish established companies where innovation is not the most important.
16:30:25
beach
Instead, what they need is to improve productivity to keep up with competition. That is where it is important to evolve with new tools, better developer knowledge and experience, etc. And this is failing miserably in most companies. I say that because I have not seen a single such company with a good strategy for improving productivity.
16:32:37
jmercouris
beach: innovation is very important in big companies, at least any with any staing power. when we see an incumbent corporation not innovating it is usually because they are working on commodity product, or there is not replacement technology in the pipeline
16:32:52
jmercouris
the reality is that the market will change, always, for every product, it is not enough to simply improve throughput overtime
16:33:19
jmercouris
even something as simple as "salt" has a market that has changed dramatically in terms of distribution throughout time
16:33:19
flip214
beach: ah, right. well, if the package isn't even defined yet, you won't need any special-case handling, anyway!
16:35:02
TMA
innovation is dangeorous in biggish companies -- it is not predictable; yet it is vital; the solution is to have a specialized department where there are smart people herded with the hope that they will produce something of value every now and then
16:35:38
jmercouris
TMA: That is just one of many strategies, another I talked about is an open innovation network which can reduce the risk, allow for patent sharing among companies etc
16:36:14
Xach
I was thining idly today about how implementations could extend CL in ways that would not be used by existing programs, and the triple colon sprung to mind...
16:36:20
jmercouris
additionally, since technology follows the S-shaped curve, a company need not invest in a technology right away, it's not a bunch of people sitting in labcoats hoping that stuff happens, usually they shoot off some piece of existing research with an expected goal
16:36:31
TMA
except that the innovation shall never touch processes running outside the innovation pen (at least not too substantially)
16:37:05
jmercouris
TMA: Beach: If any of you are interested in innovation practcies, with respect to operational efficiency, I have a good reccomendation
16:39:00
jmercouris
beach: It is a book about the topic, there are specific chapters that I think you'd find pretty interesting
16:40:21
TMA
jmercouris: I am interested in way too many things I shall not be (== do not fit my job description), why not another?
16:40:37
jmercouris
beach: https://www.wiley.com/en-us/Operations%2C+Strategy%2C+and+Technology%3A+Pursuing+the+Competitive+Edge-p-9780471655794
16:40:49
jmercouris
long URL, but the book is called "Operations, Strategy, and Technology: Pursuing the Competitive Edge"
16:41:15
beach
Here is one of my favorite stories (from a few years back). We were planning to develop some collaboration with a big consulting company, so I suggested my services. I said "give me a program of say 30kLOC of C [that's what they were using], and I will make a free audit, the result of which will be recommendations for new tools, training for the developers, etc."
16:41:16
beach
The manager said "no thank you". I am assuming he was not interested in knowing how his productivity could be improved, or (stated differently) how bad it really was.
16:42:48
flip214
beach: you could have produced a 1000 line rewrite in CL with all the features, to ask "want to know how to do that?"
16:42:54
jmercouris
beach: A lot of people are afraid of change, with change comes risk, with risk comes getting fired :D
16:43:34
beach
Here is another: I was consulting for a company who had written an application in C++, but when they got to testing, they introduced one bug for every bug the fixed. A large part of the problem was memory management, freeing objects that were still used.
16:43:35
beach
So I suggested a radical solution, namely to include the Boehm/Wiser GC. The project manager told me "I prefer that my programmers clean up the objects that they allocate, rather than having a GC do it for them".
16:45:19
beach
But it was unfixable because of the architecture they had decided upon, long before I was called in to help.
16:46:16
warweasle
beach: My favorite story was a project where they were measuring productivity by lines of code. One week I halved the lines of code. They were so upset I offered to put them back in.
16:50:12
flip214
beach: jmercouris: no, but the recommended book is (used) available for $8+$4 from amazon.com in the US.
16:56:47
beach
Scott McKay is on the ELS program committee. Maybe he will show up this year. He occasionally does.
18:31:08
sukaeto
my company has a handful of them, we get payed more than we would if we were professors
18:32:02
sukaeto
that being said, there are people on my team whom I know make more than I do because they've been in industry for longer than I have and also only have undergrad degrees
18:33:34
jasom
sukaeto: on the other hand, after my Dad got his PhD, he had more than one job interview end with "We don't hire people with PhDs"
18:36:44
sukaeto
jasom: I've gotten that too. I was even told by one company that they were looking for someone with more experience for an entry level position! As if being from academia meant you had negative work experience!
18:39:32
sukaeto
I know another guy with a PhD who works for a company that generally has a disdain for people from academia (he only got in there because of another guy who knew him and lobbied hard for him)
18:39:50
sukaeto
from what I know about that company and their engineering practices, I wouldn't want to work there.
18:40:01
jasom
I think that "PhDs can't code" probably stems from the fact that many places use general CS knowledge as the gateway to hiring, and obviosly, if two people have equally bad coding skills, the one with the PhD will have better general CS knowledge
18:40:28
sukaeto
it's probably not fair to extrapolate from that one example to every company that refuses to higher people with terminal degrees, but it does make me wonder.
19:10:45
TMA
there was a joke told before the fall of the eastern bloc: a professor learned that factory workers have higher wages than professors. He dressed down and applied. After several months there was an annoucement that those that will attend evening high school will get a raise. He went there, math exam question: compute the area of a circle. He did not remember the formula, so he derived it using integrals, but the result was -pi*r^2. He looked at it baffled when there c
19:12:02
TMA
... there came a hint from another student: "you have swapped the limits of the integration."
19:13:55
TMA
the sad part is that the wage disparity was real then -- the educated were not the "preferred" [[in a sense it is still the case, because of the model of financing universities here]]
19:21:06
dTal
A mathematics professor and their student are eating lunch in a cafe. The professor laments that regular folk just aren't educated or interested in mathematics. While he's in the toilet, the student gets an idea. He calls over the waitress, slips her $5, and says "In a minute, I'm going to ask you a question. I want you to answer 'one third ex cubed'." The waitress agrees.
19:22:58
dTal
The professor returns from the toilet and the student says, "You know, you're wrong about people. I bet you $20 that our waitress can do at least basic calculus." The professor scoffs and readily agrees to the bet. So they call the waitress over.
19:23:53
dTal
The student says to the waitress, "We were wondering if you could settle a question for us. Could you by any chance tell us the integral of ex squared?"
19:26:18
Bike
that was my fingers being misaligned with the contacts of my electromechanical data input device
19:28:19
jackdaniel
beach: phoe: guess what I found today in clim-inspector sources? (one of the top lines)... "(define-modify-macro togglef () not)" ^_^
20:20:24
__rumbler31
when I need to quote something that would otherwise make escaping natural quoting rules insane, I used it once
20:21:06
__rumbler31
it made integration a little tricky, because the package has to be loaded before code that depends on it can be loaded and at the time I didn't know how to automate that without opening up the repl and doing them one at a time
20:21:53
__rumbler31
I used it to house an xml document representing an android framework on a string, without having to escape all the "
20:56:25
razzy
hi, is there a way to crawl in functional program and display a topology of nested functions??
20:59:20
jmercouris
razzy: if you can generate an AST you can also generate a tree showing the nested functions
21:05:27
jmercouris
abstract syntax tree, it is an intermediate representation of a piece of code that has been parsed
21:06:45
jmercouris
anyways, the wiki page is pretty good for this concept actually: https://en.wikipedia.org/wiki/Abstract_syntax_tree
21:08:01
jackdaniel
if yes, could you name three special operators and why they are not ordinary macros?
21:08:48
jackdaniel
no, it is designed to make you realise something (and prevent you from wasting time, or at least to estimate effort more accurately)
21:09:11
jmercouris
don't worry, I won't venture to build one for Lisp, I've spent enough wasted time trying to implement languages :D
21:10:15
jmercouris
jackdaniel: it feels more like a challenge due to a manner of phrasing than a friendly suggestion at introspection is all, there seems to be some communicaiton barrier between us. I'll henceforth always assume your intent is positive
21:10:22
jmercouris
because it turns out to be so more often than not, and I am just misunderstanding
21:12:54
razzy
yop, AST is what i mean :]. it shine when you do have purely functional code. you could notice bad behaviour from one look at topology :].
21:13:41
Bike
implementations can provide information about what functions are called by a given function
21:13:59
Bike
they sort of have to know, for linking reasons, and you can sometimes get the information from like slime-list-callers
21:17:33
jackdaniel
(because you never know if it has some sneaky special operator in ext package and which is used in expansion of standard macros)
21:17:35
dim
razzy: have a look at https://www.informatimago.com/develop/lisp/ I think it contains helpful bits you might need here
21:20:43
Bike
well, you can use swank/backend:who-calls and such and put that information together into whatever graph you like
21:25:16
Bike
do you need to do it from source, or is having the actual functions in the image okay? because if it's the latter i'd really rely on the introspection tools
21:39:14
jmercouris
I seem to remember sometime ago there was a discussion about the origin of the mach kernel in apple, I found a handy diagram here: https://en.wikipedia.org/wiki/Darwin_(operating_system)#/media/File:Unix_timeline.en.svg