libera/#commonlisp - IRC Chatlog
Search
11:23:46
Guest50
hello, I could use some eyes on a simple ironclad encryption test. https://plaster.tymoon.eu/view/2910/raw?password
11:26:07
flip214
Guest50: my guess is that cipher is modified during encryption... you might need to copy it for decryption
11:27:33
flip214
Guest50: also, the ciphertext will be rounded up to the cipher block size, won't it? so 7 bytes ("testing") are too small?
11:30:13
Guest50
flip214 I haven't read anything about the ciphertext rounding up, but I'll look into it. If that's the case then plaintext needs to be 16 bytes min?
11:33:41
Guest50
from my understanding (which is marginal) there would be no padding since this is an aes cipher with a ctr mode
11:34:37
phoe
if the length of the ciphertext is not an exact multiple of the key size then there will be some padding nonetheless, AES operates on blocks of data of predefined size
11:34:38
flip214
yeah, but the counter gets incremented per cipher block and not per byte, so you'll need whole cipher blocks?
11:35:57
phoe
for aes-256 you need 32 bytes of data per block, so for 7 bytes you'll likely get a plaintext that looks like #x(01 23 45 67 89 ab cd 00 00 00 00 00 00 00 00 00)
11:44:41
Guest50
would I need to check the length of the encrypted data to see if its a multiple of the key size and remove any extra bytes?
11:46:44
phoe
or include a message length in your plaintext, and then truncate the decrypted output to size
13:15:47
chrnybo
My server process, written in Lispworks, holds too many file descriptors. Guess I'm sloppy when closing them. Can I map from the TID (thread id) listed by unix' lsof to something useful within the lisp to help me locate the error?
13:21:25
chrnybo
Feels like submitting a ticket to support while certain that the problem sits in my chair.
13:42:25
rotateq
beach: Even for all the incoming company support? ^^ Okay than one real advanced sorcerer employed for that may be cheaper.
13:44:01
chrnybo
I suppose a sufficiently advanced GPT-n may well keep me entertained with adequate support replies.
15:06:00
phoe
who would be up for helping me with that in exchange for my eternal thanks, a mention in the book, and an ebook copy once that thing is done?
15:06:58
phoe
yes, and what's broken, and what isn't working, and what's badly written, and what's missing
15:32:34
semz
split-sequence declares (ftype (function (&rest t) (values list unsigned-byte)) for its functions. Now type declarations for public interfaces are tricky because in general violating them is undefined behavior, but this one is safe, isn't it? Afaict there is no way to violate it.
15:59:08
utis
what does one do if one wants to call a macro with different arguments? it seems that (dolist (x '(foo bar)) (macro x))) doesn't work, since `x' is not evaluated.
16:08:28
_death
I think a manual macrolet form is generally bad style.. it often just makes it more difficult to read the code
16:09:36
_death
the thinking often goes "I don't want to write this again", but it should be "Will it be harder to read?"
16:14:15
semz
macrolet can work wonders sometimes but often an inline function does the job better in my experience
16:23:06
beach
utis: I haven't been following the discussion, but in that last link, the macro is used only once, so it doesn't seem to serve any purpose.
16:24:53
_death
instead of the double reverse, you can do (append propp (list char)) .. then compare this and simply having two defmethod forms.. if needed, you can define an auxiliary function to reduce
16:27:20
beach
_death: I wasn't commenting on what utis wants. Just the fact that in the code of the link, the macro appears in a single call.
16:33:44
dbotton
Does anyone know of a page some place with lots of Common Lisp quotes? I'd like to have a little tip box appear on my tools start up
16:56:17
Guest74
beach: I think you're the only person I've seen talking about a cl desktop environment. do you have your thoughts written down anywhere?
16:56:36
Guest74
or more specifically anything about multiple desktops/workspaces which is what I'm working on now.
17:07:19
Guest74
Well, I'm only working on a desktop environment, so just desktop stuff. That ones pretty much OS stuff.
17:29:37
jackdaniel
technically speaking clim specification includes abstractions from genera called "silica", that is a windowing substrate. that includes a frame manager that may be used as a wm
17:30:50
jackdaniel
as of desktop thing, as I understand it, it is a universe of interconnected applications and utilities that share data and semantics - I gather that frames and presentations could be arranged to constitue such universe
17:32:18
jackdaniel
I'm not saying that you should jump at that and write clim-desktop if you don't want to, just pointing out that the assertion was incorrect
17:33:18
etimmons
jackdaniel: I got really confused for a moment. I recently learned of another system called doors: https://github.com/Lovesan/doors
17:34:07
phoe
as if the only openings from a building were doors and windows; where's (ql:quickload :chimneys)!?
17:36:00
Guest74
jd: I'll leave that to the clim people. I just said 'i dont see how' wasn't asserting anything.
17:36:39
Guest74
I would prefer a protocol that is agnostic about the things it deals with. So people could include stuff written in other languages.
17:37:26
Guest74
you would think stating how I see things would be my opinion of what I know, not an assertion about the reality of things.
17:37:50
jackdaniel
I would think that if you state opinion you at least believe that it is true. stop playing word games
17:38:56
Guest74
it is HOW I SEE THINGS. which is obviously contingent on what I know, not on my opinion. But this has absolutely nothing to do with a desktop environment.
17:39:48
jackdaniel
simple "ack, I was wrong" would suffice - one you state opinion and someone shows that it is incorrect that is the most honest thing to do
18:40:07
etimmons
Josh_2: what are you trying to do? There's a lot of options to with-temporary-file, so it's not clear an example would be super useful
18:40:36
Josh_2
Chirp seems to only accept a file as an input for uploading to Twitter, I have the binary data itself
18:40:51
Josh_2
so I just want a quick and easy way of creating and deleting a temporary file for use by Chirp
18:48:17
etimmons
Josh_2: Assuming you need a pathname, I think something like this should work: https://plaster.tymoon.eu/view/2913#2913
18:51:10
etimmons
with-temporary-file creates the file for you and gives you both the stream and pathname to it (if you ask for them)
20:11:26
_death
what does git integration mean? also, if I have a medley image and I want to update, what should be done? (hopefully there's a document explaining it, since I'm not sure it's on topic)
20:22:13
dbotton
How do I find what directories will be searched for projects by users when I do (ql:quickload :my-proj)?
20:23:46
dbotton
As I plan on generating projects I'd like to see if some way to see what is available dynamically
20:25:06
White_Flame
there's (ql:list-local-projects) for the paths, and (ql:list-local-systems) for just the names
20:25:35
White_Flame
but those obv don't include the ones in the dist, which since they automatically download, doesn't make a distinction for what's cached
20:25:54
etimmons
It's complicated. In addition to ql:_local-project-directories_, ASDF has asdf:_central-registry_ and the source registry
20:28:02
etimmons
I'd suggest defaulting to something like ~/common-lisp or ~/quicklisp/local-projects and letting the user override it if they have a different setup