freenode/#lisp - IRC Chatlog
Search
8:07:35
shrdlu68
Hypothesis: no critique of a programming language can ever be taken seriously as a scholarly work.
8:37:04
shka_
shrdlu68: well, this is how it is, but I even named my blog "for more humane computing"
9:54:47
zigpaw
Speaking about language choice, yesterday I was looking at a live stream of someone who wrote a GUI application using Power Shell script, and kept data in CSV files. One of my first thoughts was - how much pain can we cause to ourselves. On the other hand he wasn't working as software developer so as far as I am concerned I was quite happy he was d
9:58:20
jackdaniel
I've seen far worse solutions for data storage than storing it in csv (and some of them required quite a sophisticated knowledge)
10:03:06
jackdaniel
so I think that csv is a sane choice for really small projects, then comes sqlite and then database which is more suited for bigger quantities of data
10:06:25
heisig
My preferred choice of storage is objects in Lisp images. The reasoning is that life is too short to spend it with data serialization and deserialization.
12:44:08
dim
having 2GB of data in main memory is easy nowadays, even on a laptop, so that's not any problem for an application to solve, what's complex is accessing the single/shared data set in read and write operations from concurrent activities, and that's when transactions and ACID and whatnot get to be meaningful
12:45:07
dim
as soon as you support more than one client doing even an INSERT concurrently, then you need to think in terms of transactions and serialisation, and then database, even if that's for a 2kb of data
13:11:53
pfdietz
If you want to treat lisp programs as objects, an image based system becomes more convenient. Reader hacking in Common Lisp, like the preprocessor in C, makes it hard to represent the program.
13:12:14
pfdietz
I suppose ordinary macros do too to some extent, although not at the level of character-based syntax.
13:13:22
pfdietz
One thing I had to get used to moving from Interlisp to Common Lisp was comments were no longer sexprs.
14:28:05
pfdietz
The interesting (to me) question: what are the things that are done to programs? Compiling and running them, for sure, but what else? These would affect language design.
14:33:27
jackdaniel
(hm, I hope it wasn't rethorical question, that would be silly of me to answer it)
14:34:27
pfdietz
I think listing use cases for programs as things to be manipulated would be very interesting.
14:34:35
jackdaniel
in less narrow sense: sharing runtime (we could look for instance at irc as a single program shared between peers)
14:39:22
pfdietz
Off the top of my head: verification and other kinds of static analysis, diffing, refactoring, test generation, documentation extraction, generation of human-readable explanations of program behaviors, instrumentation (and other aspect-like changes).
14:41:12
jackdaniel
maintaining development-related information (i.e program could host its own source code, issues, wiki, documentaiton), so if it hosts its own code – merging two program forks
14:43:47
pfdietz
Anyway, the program manipulation API affects language design, and I think it would make sense to make it more explicitly defined.
15:20:49
zigpaw
jackdaniel: have you looked at Elixir doc tests? I think that is also quite a neat idea that could add to your great list above.
15:25:21
jackdaniel
I'm familiar with the concept nad I find it really messy to mix: function body, documentation and unit tests in the same block with a weird syntax
15:31:42
jackdaniel
having it all accessible from one place (with help of the editor) makes more sense, but they shouldn't be lumped together in text
17:30:38
dim
thanx Xach... I have this project in mind that seems quite simple to begin with, and I'm wondering if Heroku and then Python would make it so much easier for me, because the goal is not the write the code but to host a user available service…
17:31:33
dim
or, if I don't find an existing platform that implements my ideas, I could also subcontract this part, but I'd rather than something that is known to be worry free and scaling easily
17:32:08
dim
I want to have to deal with as few moving parts as possible myself, that's not where the added value is in that project
17:47:54
fiddlerwoaroof
dim: my impression of Heroku is that it gets really expensive once you move past the "hobby project" stage
17:49:07
fiddlerwoaroof
Anyways, if hosting options are flexible, deploying docker containers to some managed kubernetes provider or to AWS ECS/Fargate might be good option
17:49:25
fiddlerwoaroof
Also, if the language choice is flexible, there's Clojure things like Datomic Cloud.
18:06:30
dim
fiddlerwoaroof: yeah agreed Heroku can get quite expensive when you get lots of traffic, I'm not sure I will get that though
18:07:12
dim
fiddlerwoaroof: Clojure looks like a decent lisp from what I've seen before, but this project isn't a good opportunity to discover a new language from scratch
18:38:13
aeth
What I'd do is set up a private gitlab repo and deploy from that. Maybe sftp in a build of the recent SBCL
18:47:55
fiddlerwoaroof
So, I'm not really a fan of containers, but the nice thing about containers is that they standardize your execution environment
19:09:15
fiddlerwoaroof
I've managed to make redistributable images using CFFI's static linking features
19:09:53
fiddlerwoaroof
e.g. this _should_ work on any linux that supports the relevant GLIBC symbol versions: https://github.com/fiddlerwoaroof/daydreamer/releases
19:10:39
fiddlerwoaroof
To dump the image, you do this: https://github.com/fiddlerwoaroof/daydreamer/blob/master/build.lisp#L39
19:10:53
fiddlerwoaroof
My environment setup is all here: https://github.com/fiddlerwoaroof/daydreamer/blob/master/clone-all-the-things.sh
19:22:38
dim
fiddlerwoaroof: would you be interested in contributing a build process for static pgloader images?
19:36:22
fiddlerwoaroof
Maybe, if I can find some time. The complicated thing is that, as far as I know, it only works on sbcl and you need to build sbcl specially