freenode/#lisp - IRC Chatlog
Search
20:48:01
FareTower
most people don't seem to notice... hard to tell whether it's success (seamless experience) or failure (no one cares)
20:49:36
phoe
I never realized how important it is to value people's work until I finally noticed how God damn hard, annoying and exhausting it is to ship working, polished software, as compared to happy hacking.
20:50:53
phoe
Which came with some experience. I had to learn this, valuing people's work, and I had to learn it by hours of bugfixing, coding, listening to people's requests, complaints, whines, praises and weird stuff I'd rather not mention here.
20:51:27
phoe
so, huh, it might sound pretty weird, but I stopped really expecting "normal bread-eaters" to notice how much work it takes to deliver something that works as expected.
20:52:13
phoe
well, a part of my work is that it makes vroom vrrrroooooom sounds. but also that it doesn't explode in all the various configurations for this person, other people, or other circumstances.
20:52:46
phoe
this, and also how much time it takes to bugfix stuff as compared to implementing new features. this ratio only goes higher and higher over time, too.
20:54:11
phoe
so it's pretty damn weird, but, "most people don't seem to notice... hard to tell whether it's success (seamless experience) or failure (no one cares)" - I'd agree with most of it except the last part
20:54:27
phoe
people tend to care, they just rarely have any idea of how the whole process looks like
20:54:53
phoe
even if they understand basic programming, they think that software developers are doing programming, where they are actually doing software development
21:42:56
jmercouris
phoe: I think unless a developer has released a product themselves, they do not know this, as part of a company you are shielded from this by sales people, and other customer facing individuals (support etc)
21:43:35
jmercouris
phoe: That is also why I am hesitant to call myself a programmer, I don't merely program, that is just one step
21:44:58
phoe
jmercouris: by my personal nomenclature, I think it's fine to call yourself a programmer right now. I make a distinction between programming and software development.
21:45:35
phoe
it's like, similar kind of difference like between having sex and being a parent inside a healthy family.
21:45:38
jmercouris
This is of course fine if you are *just* a programmer, but if you are developing software, then you are a software developer
21:45:57
phoe
like, the former is still a part of the latter, but you also get a ton of other work that is semi- and unrelated to programming.
21:46:48
phoe
and one day you can just wake up and there's shit in the middle of the carpet. nobody knows how it happened, nobody knows when it happened, there's just blank stares and avoidant gazes, and all you know is that it's your responsibility to clean it up before guests arrive at eleven o'clock.
21:52:32
jmercouris
I see in lisp manuals a lot of the time syntax that appears at top of pages like this: https://common-lisp.net/project/cffi/manual/html_node/defcfun.html
21:52:40
Colleen
Unknown command. Possible matches: 8, set, say, mop, get, time, tell, roll, help, deny,
21:55:01
aeth
The Wikipedia article I linked to gives two extended forms in its intro, EBNF and ABNF
21:58:38
aeth
(really, they missed an opportunity to literally call it "yet another BNF" because the program's "yet another compiler-compiler")
22:07:43
jmercouris
Anyways, I have the following cffi binding I am trying to get to work, can someone please take a look and see if I made a mistake? It is very short, just 3 forms: https://gist.github.com/acb34aef9e4d784933fe5c593001e3dd
22:39:11
FareTower
I like to do that, too, but I hate to drink alone at which point I drink too slow for the wine bottle not to get bad before I finish it.
23:57:37
throwprans|prans
Why do I need VECTOR-PUSH-EXTEND and couldn't just VECTOR-PUSH deal with it?
0:00:39
White_Flame
yeah, VECTOR-PUSH might have had a number of keyword parameters to do stuff like that, but many of the simpler or lower level standard functions are pretty specific in their use
0:16:14
mgsk
What's the appropriate method of removing a sublist from a list? i.e. `(remove '(1 2 3) '((1 2 3) (4 5 6)))` => ((4 5 6))
0:20:23
White_Flame
no, one of the general information sections says that tests on sequences default to #'eql or something
0:21:43
throwprans|prans
https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node141.html and elements are tested for being eql to that item. (A test other than eql can be specified by the :test or :test-not keyword.
0:24:48
pfdietz
"Since eq is used only rarely in this specification, eql is the default predicate when none is mentioned explicitly."
1:29:15
White_Flame
mukuge: there's #clnoobs, which could be more appropriate. There's a LOT of specifics generally discussed here
1:30:08
White_Flame
eviltofu: if you have potato->make-fries vs yam->make-fries or whatever, it would make sense to have (defmethod make-fries (...) ...) and dispatch on the type of parameter
2:46:45
aeth
White_Flame: You don't dispatch on type with defmethod. There's a difference between class and type. This is mostly noticable when you try to do something with an array.
3:37:30
aeth
jcowan: SBCL is in the language benchmark game (roughly around the speed of Java there) so if someone who knows how to write Chez well wants to, that might give some data
3:43:45
jcowan
there is a port to Scheme, but it only works on chibi and gauche, which are Scheme bytecode interpreters without JIT
7:42:38
eviltofu
The reason I asked is because I have several CLOS classes which I use HAS-xxx to describe them. Has-identity, Has-tags, Has-connections, etc. Then I use composition. So sometimes it gets a bit confusing to use has-identity-identity for accessing a slot.
7:44:26
beach
It looks really strange when you do that in subclasses, for instance (sheet-children pane)
7:44:49
beach
I think it is preferable to have more packages instead, and just don't use the prefix.
7:46:28
beach
Also, the HAS- convention looks strange. A person would be what? has-name-and-address-and-telephone-number-and-social-security-number?
7:47:16
eviltofu
For example when I create a network node class (defclass node (has-identity has-connections has-properties) … )
7:49:58
beach
IDENTITY is strange because you have to shadow it so that it would be the Common Lisp symbol.
7:52:04
beach
(defpackage my-stuff (:use #:common-lisp) (:shadow #:identity) (:export #:identity ....))
7:52:46
beach
It means that there is a symbol named IDENTITY in the MY-STUFF package and that symbol is distinct from COMMON-LISP:IDENTITY.
8:22:33
fiddlerwoaroof
I just realized that I can use (eval-when (:load-toplevel) ...) to make fasls that automatically load their dependencies
8:32:23
fiddlerwoaroof
I guess this eval-when trick isn't very useful, since most lisps don't have a stable fasl format, but it could be useful if you want to ship an application with a bunch of dynamically loaded modules: you'd build a base image with only your application in it and then use that image to compile all the modules to fasl files and put them in a well-known location, you could avoid putting all the module dependencies in your .asd