freenode/#clim - IRC Chatlog
Search
9:56:42
jackdaniel
reb: here is the issue (filled oh my over a year ago): https://github.com/McCLIM/McCLIM/issues/827 with a very valuable comment from |3b| ; if you have some input regarding device units please put it there
9:57:30
jackdaniel
there is also an older post of mine: https://common-lisp.net/project/mcclim/posts/Sheets-as-ideal-forms.html and it discusses units (I'm aware that there are a few inaccurate statements - at least from the perspective of my current knowledge about clim)
9:58:35
jackdaniel
as of what clim specifies and what we have now: clim specifies backend-dependent device units as a default (but you can specify other, like '(30 :character) or '(20 :inch)
9:58:36
beach
ikrabbe: I was mainly joking. But I was also suggesting that jackdaniel should feel lucky that there are qualified people offering to help out. There are fewer such offers for SICL, at least for now.
9:59:17
jackdaniel
but such definition of a default unit is not useful - taking a borderline example: 30 device (horizontal) units are 30 columns on the terminal backend
9:59:56
jackdaniel
that's why I want to settle on something slightly tied to the real-world measurement resembling a pixel
10:00:56
jackdaniel
(here's where either a point (1/72 inch) or a device independent pixel (1/90 inch) comes into play)
10:02:03
jackdaniel
from technical perspective: we have access to monitor dpi in the backend (you can query i.e pixels and inches of the screen against the graft), so we could use that for the font dpi, but currently it is stored in a variable as previously hinted
10:02:19
ikrabbe
jackdaniel: I find all these documents and approaches to coordinate transformations disturbing, as the general problem is well known and solved. I think its more gaining to care about other topics, once a general tranformation is defined. Real world pixel can very on a vast range for different devices.
10:02:59
jackdaniel
I've spent some time in studying various approaches and I don't think that the problem is well known and solved, but maybe I didn't study hard enough
10:03:00
ikrabbe
One of the best discussions on coordinate translation is in the TeX system I guess, which is outstanding by using only integer coordinates.
10:03:39
ikrabbe
Its just easy to get things wrong, when transforming coordinates. The theory is very simple.
10:04:23
jackdaniel
the issue we are tackling is how to map "ideal" applications onto physical devices like a screen, a console, a web page or a sheet of paper
10:04:57
jackdaniel
(for example - what units the coordinate system of this abstract ideal sheet has)
10:06:48
ikrabbe
I once worked for the german SuperRTL, where we wrote mangement software for mobile websites for children. The result was, that you cannot always define a layout for any device, no matter how you choose your units. It is far more important to define a useable look & feel for the user.
10:09:33
ikrabbe
The choice of units is only important, if you want to communicate the coordinates as numbers, which is sometimes funny withy clim / lisp, having things like 4278 / 9
10:10:26
ikrabbe
I guess the problem must be somewhere between compose-space for single-child panes and compose-space for spacing panes
10:12:06
ikrabbe
Core/clim-core/panes/composition.lisp:247:(defmethod compose-space ((pane single-child-composite-pane)
10:12:06
ikrabbe
Core/clim-core/panes/composition.lisp:1012:(defmethod compose-space ((pane spacing-pane) &key width height)
10:25:34
jackdaniel
https://github.com/McCLIM/McCLIM/commit/25ac2add427c99541eb6cf09bbe886da8cc16bcf
10:28:29
jackdaniel
so, regarding the project of yours (for devops) - do you have any interesting screenshots?
10:33:27
ikrabbe
not yet. My status with clim is still learning, so I'm trying some things. Also lisp is quite new to me. I concentrated first on command lines that can be nested to compose remote commands in a transparent way, as in `("/usr/bin/ssh" ("-l" ,user ,system ("bash" "-c" ("grep" ,progname "/var/log/messages" "|" "awk" ("{ print $5}")))))))
10:35:15
ikrabbe
but I found your console-io tutorial on turtleware today, which seems also usefull, though I privately seldom use terminal codes (hanging in a dumb plan9 rc terminal window)
10:52:48
ikrabbe
but anyway, I guess through the logic stability of lisp code, your tutorial hack might be far more stable, than most php, C# oder java modules ;)
10:56:27
ikrabbe
I could already start a live as a fairy teller, about funny things I stumbled across. Currently for example the PHPMailer admin interface is unable to write a configuration for our password-less internal mail router. You need to fix the configuration either by hand or with a cli tool that comes with PHPMailer. (just as a quick example)
10:58:03
ikrabbe
but still I don't have a valid text-margin until I re-calculate and set it, I guess...
10:58:45
jackdaniel
margins may be either relative to their corresponding edge of the boundign rectangle of the sheet or have absolute coordinates
13:00:47
reb
jackdaniel: I tried changing *dpi* but did not notice any change. It could be that I needed to restart my session, however. I did not try that. Is it currently possible to modify example code, such as ex1.lisp, to use inches instead of pixels when specifying pane size with the CLX backend?
13:33:26
jackdaniel
re specifying size: currently the space parser won't recognize :inch, but you may say (to specify the size as 10inch) do
13:34:45
jackdaniel
when you deal with standard-extended-output-streams (like the application pane), you may also specify :character and :line
13:55:02
reb
Thanks very much. I'll try things along those lines. Long term, I'd bet that display resolution generally increases to the limits of the human visual system. At some point device independent pixels will seem really old fashioned as a means of specifying sizes.
13:56:26
jackdaniel
sure, that's why something resembling a pixel but tied to the real world size would be optimal as a default
14:40:12
jackdaniel
speaking of exciting hacks: http://turtleware.eu/static/paste/3337104a-showoff.webm
14:40:52
jackdaniel
this website is a frame manager (and I'm running there menu test example from clim demos)
14:43:06
jackdaniel
the frame manager subclasses the hunchentoot acceptor and the protocol class frame manager
14:43:24
jackdaniel
but there is more in the store (not ready to show it actually, but I'll get there)
14:44:51
fitzsim
will this eventually be "transparent", like if I write a McCLIM applicaton that works on X11, I'll be able to also deploy it this way with a few extra steps?
14:46:24
beach
jackdaniel: May I send the link to my favorite coauthor? She is using a web site for her research stuff, and this would be a much better solution.
15:03:46
jackdaniel
it is still rather a device for exploring how I could stretch the frame manager metaphor
15:04:17
jackdaniel
I don't think that it is currently very useful except for maybe invoking named/menu commands of an application
15:04:42
beach
I understand, but her project really cries out for something like this, and I wanted to let her know so that she can adapt her future strategy.
15:07:44
jackdaniel
(but I'm quite proud of menu navigation; usually people use javascript for that)
15:14:25
alanz
jackdaniel, I have been idly wondering whether the techniques used in clog could help for clim in the browser. As I understand it there is a webrtc link from the browser to the lisp image, all the heavy lifing happens in the server, but UI updates are fast
15:17:14
alanz
What I meant is very hand-wavy, if you understood anything at all its good. My main point is without javascript, I think it is possible to make a good, responsive ui. Especially for single-user on-the-machine cases
15:18:20
alanz
I am trying to write a clim app that needs to show images. I would love to be able to just say "display the image at file location X in pane Y"
15:18:29
jackdaniel
in the ideal world where this project is finished round and square I imagine that there is a handler version (along with js-less one) which uses javascript and websockets for 2-way communication
15:19:37
alanz
jackdaniel, I am hoping that you build up some momentum with what you are doing, so that becomes a reality
15:20:30
alanz
jackdaniel, it does, but it loads the image in to the lisp image, turns it into a pattern, and then displays that. But its *very* slow