<patrixl>
I've used Radiance extensively, other accompanying libraries I've made the most use of also are:
<patrixl>
cl-strings, dexador (like drakma, for http requests), ironclad
<patrixl>
yason for json parsing/emitting, spinneret for handling html, plump for xml/html parsing...
<vms14>
ty patrixl
<vms14>
I was just going to use spinneret
<vms14>
tried cl-markup, but meh
<vms14>
and It's not the first time I found a lisper who does not like cl-who for some reasons
<patrixl>
oh yeah I tried a few.. started out with cl-who at first, used r-clip as well, for now I settled on Spinneret
<vms14>
why spinneret won?
<patrixl>
cl-who is alright, I think it's when you want to do more complex things that you start writing macros, so might as well use something like spinneret that can help out
<vms14>
I've looked at cl-css, it's fine. Also looking at Shinmera's LASS library which seems much nicer
<patrixl>
basically I wanted to define my own "tags" so simplify my code and remove a lot of repetitions
<patrixl>
so it was either write a bunch of macros with cl-who, and learn a bunch of lessons over time leading me to rewrite my macros.. or use spinneret that already has gone through that process lol
<vms14>
patrixl: do you have some website running?
<patrixl>
nothing public no
karlosz has joined #lisp
<patrixl>
only internal company stuff
asdf_asdf_asdf has quit [Read error: Connection reset by peer]
<mfiano>
Edi Weitz doesn't even like cl-who, and he wrote it.
<mfiano>
He goes as far as to recommend alternatives in his book, Common Lisp Recipes. He told me I should use them in email correspondence
<mfiano>
That's because it's ruricolist's project, and he wrote and uses serapeum everywhere, which has almost 40 dependencies itself
<patrixl>
I see.. right I do remember reacting like that too but then moving on
<patrixl>
and thinking "40 deps isn't as bad as any npm package" and then berating myself for thinking like that
<vms14>
xD
<aeth>
What's going to become my utility library has essentially no dependencies except for alexandria and maybe a few more.
<patrixl>
nice
<aeth>
You have to do some really fancy stuff to need a library for utils
<aeth>
And in that case, just spin it off as a threading lib or something
<aeth>
For CSS, well, CSS is much harder than HTML because it has this weird regexp-like language for selectors
<mfiano>
javascript has more dependencies because they have libraries for the most basic of tasks. there are such things as 1-line libraries. In a way this is better, but it does result in downloading the whole internet for a trivial project. I am of the opinion that utility libraries are rather useless when they bring in so much functionality that you don't need. Just copy what you need into your project and move on.
<mfiano>
It's lighter, and less chance for breakage after updates
lucasb has quit [Quit: Connection closed for inactivity]
<aeth>
I thought I had a feature list, then I realized each feature has features, and I shelfed my CSS selector DSL for another day... again.
<patrixl>
I still just write my CSS by hand.. and some simple JS as well...
<aeth>
Well, I allow strings as selectors and always will because there's a good chance I'll accidentally leave features out
<aeth>
And some might prefer the weird regexp-style mini-language CSS uses
<vms14>
patrixl: why not cl-css or lass?
<patrixl>
my css was simple, didn't see the point of going through those yet
<patrixl>
just write it in a static file, move on with my life lol
<vms14>
I was thinking in not use any html generator atm
<vms14>
so same for css
<aeth>
what are you trying to do?
igemnace has joined #lisp
<vms14>
I wanted to make a forum to practice, but I'm going to make a simple QA website
<vms14>
questions/anwsers website like stackoverflow or quora
<vms14>
I want to practice with microdata and I saw it's very easy to put microdata for a qa page
<vms14>
google should show the answered question in a more visible way using microdata, stackoverflow uses microdata, quora does not
ralt has quit [Quit: Connection closed for inactivity]
<vms14>
a forum has more needs than what I thought, I'm using phpbb as example to see what a forum should have. I see it uses templates for html with some little dsl inserted in it
<vms14>
It seems to be an interesting exercise to create a forum, but I'm really aiming to create a forum creator
<vms14>
should be a good step for then creating a website creator, a forum has more specific stuff, so it should be easier
<aeth>
phpBB offers a lot more than you probably need to offer for an initial first attempt at a web app
<aeth>
Start with the absolute basic, required functionality
<vms14>
aeth: yes, but it serves as a good example and I can look at their features and steal them slowly
<vms14>
s/ir//
<vms14>
I've started with basics which was just create post create users and render posts
karlosz has quit [Quit: karlosz]
leb has joined #lisp
<aeth>
Running a forum (or wiki or whatever) on the Internet isn't really about the visible feature set, it's about the invisible issues that are practically mandatory, like moderation tools and anti-spam measures.
<vms14>
well, a QA site seems to be very easy stuff
<vms14>
just questions and answers, and categories
<vms14>
it's like the minimum base of a forum
<vms14>
so seems a good start
<aeth>
It does, however, require (practically) all of the hard things that a forum requires.
<vms14>
aeth: what you mean?
<aeth>
If you just have a submit box on the Internet, bots will flood it. Especially if it's known software like MediaWiki or phpBB, but I assume it will apply to custom forums as well.
<aeth>
Look at lisp paste for an example.
<aeth>
That had to shut down.
<vms14>
yes, I cannot think about security atm
<aeth>
I'd just make it require an account to post, and have no registration at all.
<vms14>
so manual registration for every user?
<aeth>
If you want others to use it, you could have an IRC bot here give people a secret registration link. Security by obscurity, nobody's going to think to use an IRC bot.
<vms14>
like write a mail to have an account?
<aeth>
Or, yes, manually add them.
<aeth>
Otherwise you're going to have to think about how to combat spam accounts far too much and that'll be all you think about.
<aeth>
(I was a wiki admin once, a long time ago)
<vms14>
yes, people like to fuck around
<vms14>
I won't worry about this atm or I'll do nothing
GloriaReed has quit [Ping timeout: 276 seconds]
<vms14>
I won't think even in sqlite injection and scaping html
<vms14>
just have it working and then worry about
<aeth>
Escaping HTML is easy, just do a quick substitution of <, >, and &.
<vms14>
and for sql injection, what characters I need to care about?
<vms14>
I just know -- and ;
SN_ has joined #lisp
<vms14>
I suppose I should take out words like where, etc
edgar-xxx has joined #lisp
mange has quit [Ping timeout: 240 seconds]
edgar-rft has quit [Read error: Connection reset by peer]
red-dot has quit [Read error: Connection reset by peer]
SN_ is now known as red-dot
doublex_ has joined #lisp
doublex has quit [Read error: Connection reset by peer]
semz has quit [Ping timeout: 264 seconds]
mange has joined #lisp
Oladon_wfh has quit [Ping timeout: 260 seconds]
analogue_ has joined #lisp
analogue_ has quit [Remote host closed the connection]
analogue has quit [Read error: Connection reset by peer]
semz has joined #lisp
<no-defun-allowed>
That's not a good way to avoid injection.
<no-defun-allowed>
Because then if you have a name like John Where, you now store John. That sucks.
<no-defun-allowed>
I think any SQL libraries in CL with a s-expression syntax (or most SQL libraries in any language with some special function) will escape for you though.
SystemXProc has quit [Remote host closed the connection]
SystemXProc has joined #lisp
ebzzry has joined #lisp
ebzzry has quit [Remote host closed the connection]
lavaflow_ has joined #lisp
lavaflow has quit [Ping timeout: 265 seconds]
nowhereman has quit [Ping timeout: 276 seconds]
schjetne has quit [Ping timeout: 276 seconds]
slyrus_ has quit [Ping timeout: 276 seconds]
andrei-n has joined #lisp
schjetne has joined #lisp
enrioog has joined #lisp
hhdave has joined #lisp
enrio has quit [Ping timeout: 268 seconds]
ralt has joined #lisp
nowhereman has joined #lisp
Oladon1 has quit [Read error: Connection reset by peer]
nowhere_man has joined #lisp
nowhereman has quit [Ping timeout: 245 seconds]
jonatack has quit [Ping timeout: 276 seconds]
mn3m has joined #lisp
Cymew has quit [Quit: Konversation terminated!]
ebzzry has joined #lisp
Cymew has joined #lisp
maxxcan has joined #lisp
ebzzry has quit [Read error: Connection reset by peer]
enrioog has quit [Ping timeout: 265 seconds]
ebzzry has joined #lisp
jonatack has joined #lisp
kajo has joined #lisp
longshi has joined #lisp
orivej has quit [Ping timeout: 276 seconds]
schjetne has quit [Ping timeout: 240 seconds]
pritambaral has joined #lisp
ebzzry has quit [Remote host closed the connection]
schjetne has joined #lisp
nostoi has joined #lisp
maxxcan has quit [Quit: maxxcan]
Necktwi has joined #lisp
flazh has quit [Ping timeout: 240 seconds]
flazh has joined #lisp
Cymew has quit [Ping timeout: 246 seconds]
phoe has joined #lisp
<phoe>
Hey #lisp.
flazh has quit [Ping timeout: 246 seconds]
<phoe>
I remember that some time ago I was working on some code that split paragraphs of text into chunks that are no more than N characters in length. I don't have that function anymore though.
<phoe>
The requirement was to only split by spaces, so words aren't snapped in half.
<phoe>
Basically a manual line breaking function.
<ebrasca>
phoe: Hi
<flip214>
phoe: so, basically, (POSITION #\Space string :from-end T :end line-len) and cut off there, rinse and repeat?
<phoe>
flip214: yes, something like that.
<flip214>
what should happen with too-long words?
flazh has joined #lisp
<flip214>
what should happen with multiple spaces at the line-end? continue the next line with spaces?
<phoe>
flip214: coalesce multiple whitespaces into one, and too-long words should be broken up as-is; if the line width is 80 and a word is 90, then we break that into 80 and let the 10 overflow to the next line.
<phoe>
Gosh, I have become so rusty when it comes to Lisp. (Pun not intended.)
akovalenko has quit [Read error: Connection reset by peer]
Cymew has joined #lisp
nowhere_man has quit [Ping timeout: 240 seconds]
nostoi has quit [Quit: Verlassend]
schweers has quit [Ping timeout: 250 seconds]
cosimone has joined #lisp
vlatkoB has joined #lisp
milanj has joined #lisp
<Shinmera>
phoe: What is your question?
schjetne has quit [Ping timeout: 265 seconds]
<phoe>
Shinmera: I remember that this problem was solved before, maybe two or three years ago, and I was discussing it on #lisp. Does anyone remember it and/or have the code that was posted then?
<Shinmera>
Ah. I do not remember nor have the code. I have my own version of this primitive line breaking in Trial, and will be working on a Proper™ solution sometime soon.
<phoe>
Shinmera: please share your code for that
<pjb>
What about: (com.informatimago.common-lisp.cesarum.string:string-justify-left "abc de ghi jk lmno pq" 7) #| --> "abc de
<Shinmera>
There's also the Halftone sample application in Quicklisp
pritambaral has quit [Read error: Connection reset by peer]
<p_l>
ugh, qt+libs download process exploded CCL
<Shinmera>
oh dear
<Shinmera>
you sure it exploded and isn't just downloading slowly?
<p_l>
pretty sure 0x18 is not an address that should be referenced
<Shinmera>
oh. yes.
<p_l>
I'm in kernel debug
pritambaral has joined #lisp
<p_l>
exploded in foreign code, looks like cl+ssl
<Shinmera>
yeesh. I think it's just doing a drakma download and zip extract. Nothing too weird there except perphaps cl+ss-- ahh.
<Shinmera>
you can download the archives manually, I suppose.
zcid has joined #lisp
schjetne has joined #lisp
<flip214>
p_l: which cl+ssl version are you using?
<p_l>
flip214: whatever is in current quicklisp - I literally just grabbed quicklisp.lisp on this machine
<p_l>
macOS 10.14, CCL 1.11 (from app store)
schjetne has quit [Ping timeout: 276 seconds]
<p_l>
openssl from homebrew (formula openssl@1.1)
ljavorsk has quit [Ping timeout: 245 seconds]
EvW has joined #lisp
ljavorsk has joined #lisp
cosimone has quit [Quit: Terminated!]
ljavorsk has quit [Ping timeout: 250 seconds]
milanj has quit [Quit: This computer has gone to sleep]
milanj has joined #lisp
pfdietz has quit [Remote host closed the connection]
EvW has quit [Quit: EvW]
jonatack has quit [Ping timeout: 250 seconds]
<p_l>
I'm thinking of ugly patching qt+libs to use run-program from uiop
bitmapper has joined #lisp
schjetne has joined #lisp
vlatkoB has quit [Remote host closed the connection]
milanj has quit [Quit: This computer has gone to sleep]
zdm has joined #lisp
ggole has joined #lisp
vlatkoB has joined #lisp
ljavorsk has joined #lisp
<thijso>
What are the options for Qt on Lisp? I'm currently working with EQL5 (well, the android port EQL5-Android), and just now saw CommonQt mentioned (which I remember trying a long time ago, but didn't manage to really get working). Is that it, or there more avenues?
<Shinmera>
That's it.
<bitmapper>
hmm
<thijso>
Are there big pros/cons to either?
<Shinmera>
Commonqt is SBCL/CCL/ECL, but Qt4 only.
<thijso>
As I'm working on an android thing now (and maybe in the future iOS), that would be a requirement. Does CommonQt run on android?
<thijso>
Guess I should just try...
<bitmapper>
how would i convert a nested list like (1 ((2 3) 4 (5 (6 7 8)))) into (1 ((2 3) (4 (5 (6 (7 8))))))
<Shinmera>
thijso: I don't think Qt4 will, so no
<bitmapper>
basically take any sublist that is length > 2 and make it into a list with the next item
<thijso>
thanks, Shinmera
<thijso>
saves me time wasted trying. ;)
<Shinmera>
My condolences about having to deal with mobile though
<Shinmera>
I don't suppose you considered MOCL and native UI an option?
<bitmapper>
thijso: there's also lambdanative if you are ok with scheme
<thijso>
Heh... it's actually not that bad. Or, it wasn't until I thought to update some versions, and ended up in a broken state and unable to build any working apps anymore...
<thijso>
Well, MOCL is not free, right? Or is that another one I have in mind?
<Shinmera>
It is not.
<thijso>
bitmapper: nah, think I'll stick with CL
<bitmapper>
cool
ljavorsk has quit [Ping timeout: 264 seconds]
<bitmapper>
i prefer cl too :)
EvW has joined #lisp
<bitmapper>
been messing with shen lately though
<thijso>
Actually, I ended up with EQL5-android because that gave me CL on android. The only Qt part I use now is a blank text field where I dump output... ;)
<Shinmera>
thijso: Seems a bit overblown for that.
<bitmapper>
how is that related?
<pjb>
bitmapper: it teaches you how to write a function to convert a nested list like (1 ((2 3) 4 (5 (6 7 8)))) into (1 ((2 3) (4 (5 (6 (7 8)))))).
kajo has quit [Ping timeout: 246 seconds]
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
orivej has joined #lisp
dddddd has joined #lisp
grewal has quit [Ping timeout: 245 seconds]
frgo_ has joined #lisp
grewal has joined #lisp
milanj has joined #lisp
frgo has quit [Ping timeout: 264 seconds]
metallicus has joined #lisp
red-dot has joined #lisp
malaclyps[m] has quit [Ping timeout: 240 seconds]
phoe has quit [Ping timeout: 250 seconds]
Duuqnd has quit [Ping timeout: 265 seconds]
munksgaard[m] has quit [Ping timeout: 240 seconds]
phoe has joined #lisp
munksgaard[m] has joined #lisp
malaclyps[m] has joined #lisp
toorevitimirp has joined #lisp
<thijso>
Shinmera: yeah, it is, but eventually I'll be using more of Qt to build a (minimal) UI for my app of course. I'm currently still working on underlying libraries that I need for my app to even function...
<thijso>
I've looked into some examples in ecl that show how to run CL on android, but it looked like it only did it by some byte-compiler stuff, not by actually creating cross-compiled libs and using those
cosimone has joined #lisp
<thijso>
I'd like to figure out how to do that, though. Just have an NDK shell that loads up a Lisp loop or whatever and runs CL code from cross-compiled libs
<thijso>
But, as I already have a system that works (or, at least, I *had* one), I'm focussing on that
<thijso>
for now
leb has joined #lisp
lambda-smith has joined #lisp
ljavorsk has joined #lisp
kajo has joined #lisp
doublex has quit [Read error: Connection reset by peer]
doublex has joined #lisp
keep-learning[m] has quit [Ping timeout: 250 seconds]
keep-learning[m] has joined #lisp
Bike has joined #lisp
leb has quit []
ljavorsk has quit [Ping timeout: 250 seconds]
longshi has quit [Ping timeout: 252 seconds]
pfdietz has joined #lisp
metallicus has quit [Remote host closed the connection]
cosimone has quit [Quit: Terminated!]
<p_l>
thijso: I think EQL is the only game in town for Qt on mobile
lxbarbosa has quit [Ping timeout: 276 seconds]
<p_l>
MOCL + gui in code native for platform is another
kajo has quit [Quit: From my rotting body, flowers shall grow and I am in them and that is eternity. -- E. M.]
clothespin_ has joined #lisp
igemnace has quit [Ping timeout: 240 seconds]
leb has joined #lisp
clothespin has quit [Ping timeout: 276 seconds]
<p_l>
Shinmera: it appears that manually downloading the binaries worked
<Shinmera>
Well, at least something.
<p_l>
or at least, commonqt and qtools compile and load
<phoe>
Shinmera: have you considered setting up Travis CI for auto-building qt-libs and friends?
<phoe>
Or any other CI, for the matter?
<p_l>
that's after running the command you gave
nckx has joined #lisp
<Shinmera>
Looks like the auto-replace doesn't do its job for that library, then
<Shinmera>
You'll have to manually change it with install_name_tool
<p_l>
oh, and I had to link the libs to dynamic linker's fallback path ($HOME/lib) because some stuff couldn't find each other even earlier
<Shinmera>
phoe: I have waste so many hours with debugging these shitty ass CI environments that I have completely given up on CI that isn't on my own machines.
<Shinmera>
phoe: So, I have considered it, but won't deal with it.
<phoe>
Shinmera: understood.
drot_ is now known as drot
ebzzry has joined #lisp
Oladon_wfh has joined #lisp
clothespin_ has quit [Ping timeout: 276 seconds]
zdm has quit [Remote host closed the connection]
<p_l>
got CCL's kernel to explode after replacing paths around, in FIND-QCLASS
reppie is now known as x[LGWs4x4i]uG2N0
<Shinmera>
:/
<p_l>
doing one more trick that I hope will work
<p_l>
compiling from source after using qt4 from a certain custom homebrew tap
ravenousmoose has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
hiroaki_ has joined #lisp
salinasc has joined #lisp
papachan has joined #lisp
cosimone has quit [Remote host closed the connection]
cosimone has joined #lisp
longshi has joined #lisp
jprajzne has quit [Quit: jprajzne]
jprajzne has joined #lisp
<pfdietz>
Lycurgus: ansi-test has a simple 'make-random-element-of-type' function. It's quite useful for testing various CL built-ins, and has found lots of bugs in various implementations.
jprajzne has quit [Client Quit]
jprajzne has joined #lisp
teeeay has quit [Quit: WeeChat 1.9.1]
cosimone has quit [Remote host closed the connection]
cosimone has joined #lisp
gxt has joined #lisp
<Xach>
D/win 3
anewuser has quit [Read error: Connection reset by peer]
orivej has joined #lisp
scymtym has joined #lisp
clothespin has quit [Ping timeout: 240 seconds]
anewuser has joined #lisp
benjamin-l has joined #lisp
jprajzne has quit [Quit: jprajzne]
jprajzne has joined #lisp
anewuser has quit [Ping timeout: 268 seconds]
jprajzne has quit [Client Quit]
jprajzne has joined #lisp
benjamin-l has quit [Ping timeout: 268 seconds]
raghavgururajan has joined #lisp
karlosz has joined #lisp
akoana has joined #lisp
sebboh has joined #lisp
hiroaki_ has quit [Ping timeout: 265 seconds]
<sebboh>
Does anyone know of a CL implementation of something like guix or nix?
<pjb>
quicklisp would be the closest.
papachan has quit [Ping timeout: 240 seconds]
<LdBeth>
why you want a link farm in cl?
<sebboh>
LdBeth: funny you should mention that, I am specifically curious about whether or not the next such tool will use symlinks in that way... theres-got-to-be-a-better-way.gif?
<LdBeth>
just get everything in hackage consistent.gif
<sebboh>
Maybe some filesystem-snapshot-mount-point-abstraction thing, eh?
ltriant has joined #lisp
<sebboh>
LdBeth: bit of a language barrier there for me
<LdBeth>
so you're not haskell user
<sebboh>
never could find the ∴ on my keyboard. :P
<LdBeth>
the reason why people develop package mngrs like nix is because haskell is the language that has most of the libraries are not compatible with each others
<LdBeth>
well you could get similar probs in C++, but most of the time this problem doesn't exists in CL
<sebboh>
LdBeth: I think we have different use cases. I'm sick of graphviz breaking...
doublex has quit [Ping timeout: 240 seconds]
vms14 has quit [Remote host closed the connection]
<LdBeth>
well, I just build a minimal version of graphviz not producing raster imgs but postscript/svg
<LdBeth>
then I use other tools like ps2png
<sebboh>
hm that would solve all the renderer problems! Nice. But, I've had build problems with layout stuff too
<edgar-rft>
∴ is the sign for blind people here
sjl_ has quit [Ping timeout: 276 seconds]
<LdBeth>
∴ is the sign for blind people here
doublex has joined #lisp
<LdBeth>
for gentoo users the only problematic case is python :P
wooden has joined #lisp
wooden has quit [Changing host]
wooden has joined #lisp
<pjb>
sebboh: you map it with xmodmap, or type C-x 8 RET THEREFORE RET
LiamH has quit [Quit: Leaving.]
<LdBeth>
symbols beside those used in APL are useless!
<sebboh>
the latter, yes. bind that to some sequence.. But that would reveal that there's more than one thing I don't understand about haskell. :P
<sebboh>
(or maybe it would reveal that I know you can type 7-bit clean ascii in haskell always and not be limited in anyway because the glyph feature is like.. basically macro expansion or something?)
doublex_ has joined #lisp
doublex has quit [Read error: Connection reset by peer]
<LdBeth>
ligatured OTF fonts?
raghavgururajan has quit [Read error: Connection reset by peer]
doublex_ has quit [Read error: Connection reset by peer]
doublex has joined #lisp
longshi has quit [Ping timeout: 264 seconds]
schjetne has quit [Ping timeout: 265 seconds]
clothespin has joined #lisp
nxtr has joined #lisp
Oddity has quit [Ping timeout: 265 seconds]
cosimone has quit [Remote host closed the connection]
cosimone has joined #lisp
schjetne has joined #lisp
Nomenclatura has joined #lisp
nxtr has quit [Remote host closed the connection]
cosimone has quit [Remote host closed the connection]
cosimone has joined #lisp
Bike has quit [Quit: Bike]
hiroaki has joined #lisp
<phoe>
Shinmera: "foo bar" is wrong with uax-14
ravenousmoose has joined #lisp
ravenousmoose has quit [Ping timeout: 264 seconds]
karlosz has quit [Quit: karlosz]
ralt has quit [Quit: Connection closed for inactivity]
<phoe>
or rather, it isn't a bug, uax-14 is working as intended
metallicus has joined #lisp
cosimone has quit [Remote host closed the connection]
<phoe>
it's just me who doesn't have a use case for uax-14-like behaviour
cosimone has joined #lisp
salinasc has quit [Ping timeout: 240 seconds]
salinasc has joined #lisp
metallicus has quit [Remote host closed the connection]
hiroaki has quit [Ping timeout: 265 seconds]
hiredman has quit [Ping timeout: 245 seconds]
hiredman has joined #lisp
cosimone_ has joined #lisp
cosimone has quit [Read error: Connection reset by peer]
orivej has quit [Ping timeout: 240 seconds]
mindCrime has quit [Ping timeout: 250 seconds]
asarch has joined #lisp
<asarch>
One stupid question: any function to get prime numbers?
<_death>
ironclad:generate-prime
<asarch>
Thank you!
<asarch>
Thank you very much _death :-)
quazimodo has joined #lisp
<_death>
np.. btw, ironclad should also export modular-inverse, since it's a useful operation
<pjb>
_death: nope.
Bike has joined #lisp
<pjb>
_death: you want ironclad:generate-safe-prime, or com.informatimago.common-lisp.arithmetic.primes:compute-primes-to
salinasc has quit [Remote host closed the connection]
<asarch>
Another stupid question: how can I install com.informatimago.common-lisp.arithmetic.primes?: (ql:system-apropos :com.informatimago) -> ; No value