freenode/#clim - IRC Chatlog
Search
8:33:38
flip214
think of a sudoku GUI.... if I have some constant defined to 3 (the typical sudoku case),
8:34:47
flip214
should I do these from a tabular layout? or have them created via #. in the (:panes ...) of define-application-frame?
8:35:35
flip214
have a single pane there that uses my own function to draw? this has the disadvantage that I'd have to receive and parse mouse clicks, and determine the correct cell from the coordinates, etc.
8:36:23
flip214
not sure what the best way would be ... right now I'm thinking about #. in (:panes ...) and (:layouts ...)
8:37:39
beach
Each presentation would then have an underlying object that would be recovered automatically when clicked upon.
8:39:07
flip214
beach: thanks for the hint... grepping for grid gives me Documentation/Guided-Tour/simple-spreadsheet.lisp, which sounds good.
8:42:48
flip214
beach: yeah, I already saw that. I'm not sure whether I want to put buttons, input fields, or something else in each cell location...
8:45:36
beach
I have a minimalist Sudoku. Do you want me to give it to you, or do you want to figure this out for yourself?
8:49:29
flip214
but since the space of possible solutions is so big, and personal time so limited, having others provide suggestions is very valuable...
8:49:31
beach
And I had a group of students work on an algorithm for constructing grids. It was amusing, because it would use the various strategies that humans use in order to make sure the grid could be solved using such strategies. Different sets of strategies gave different levels of difficulty.
8:50:25
flip214
yeah, that's what I'm afraid of... doing such a thing "by hand" involves quite a big solution tree to investigate by its own.
8:51:38
flip214
I'll try to put my solver/explainer into your code, perhaps you're interested in it later on.
8:53:24
flip214
yeah, right. solves step-by-step and explains why some cell must contain some number.
8:54:00
beach
Excellent! If we join forces we have all three aspects: A GUI, a solver/explainer, and a grid creator.
8:55:01
beach
I have some additional code in a different place. I should try to merge it into the newly created repository.
8:55:32
flip214
there are quite a few different sudoku.lisp in the various subdirectories... is there one that I should take?
8:56:53
beach
Oh, I am confused. I must have either failed to create a repository because I had one, or I did something else wrong.
8:57:59
flip214
no problem.... take your time sorting that out, I'll have to leave for Family time anyway.
9:17:04
beach
flip214: You know what we should do? We should come up with a protocol for the grid. That way, we can experiment with different ways of implementing its graphic layout, and we can write solvers etc. independently of the way it is ultimately presented.
9:19:20
flip214
ie. the total area is still a 9x9, but the ranges are horizontal/vertical, and a connected 9-cell range
9:21:02
flip214
If I can store more data persistently (like possible values for a cell), the next solving step would be accelerated, of course...
9:21:55
flip214
so, as long as there's a button that calls my function with the 9x9 array, I'll just return the new array and an explaining message
9:22:19
flip214
although it would be nice to be able to colour the cells involved in this step, so that the reason is easier to see
9:24:41
flip214
but this is just a normal layout, where rows and colums are moved around. nothing special.
9:27:40
beach
My hunch is that it is possible to come up with solvers etc that only take into account the fact that an elementary cell belongs to three different (say) aggregates.
9:28:11
beach
Again, my hunch is that the rest is just a matter of organizing the elementary cells visually.
9:29:37
beach
flip214: Thanks for broadening my views. It will give me something to think about when I am bored with my work.
10:09:19
flip214
beach: yeah, exactly. My solver takes the 3 different sets of cells that one cell belongs to, and derives new knowledge from that.
11:13:43
nyef
I play a variant with irregularly-shaped subregions and instead of the grid being seeded with numbers, there are *more* subregions of varying sizes marked with the total of all the digits inside.
11:54:57
nyef
Unfortunately, Linux tends to be completely useless at getting files off an Android device, or I'd be able to share a screenshot. /-:
11:59:44
beach
flip214: Thanks. I don't think I will study it right away. I need to get some real work done today.
12:08:35
flip214
nyef: use ADB... or the gnome-virtual-filesystem and mtp... or let android display its storage as a block device...
12:11:03
nyef
flip214: mtp has, in my experience, never worked right. The block device thing hasn't been available since mtp came in. And I don't have an android devkit installed.
12:27:01
flip214
well, bluetooth? wlan and HTTP upload? do you have a terminal app and bash, so that "cat file > /dev/tcp/other-host/port" would do a simple TCP transfer?
12:46:37
beach
reg_: That is not as easy as it sounds. It needs some customization that is related to the implementation that runs it.
12:47:25
beach
Otherwise, you can get a SICL prompt that uses Cleavir and some of the host if you follow the instructions in the README.
12:53:28
beach
That REPL is very incomplete. You can't expect to run arbitrary code with it. But you can try out simple things. Loading a file such as sbcl.lisp very likely will not work, and it doesn't make much sense either.
12:56:59
beach
OK, let me ask you this instead: when you say you want to compile and run Cleavir, what do you expect it to produce when it runs?
12:59:16
beach
Since Cleavir is a "compiler framework", i.e., a library that needs a fairly large amount of customization from the implementation running it, it can't really be "run" independently of such an implementation. Perhaps the best solution is to use Clasp. Then you get to use Cleavir with each interaction.
12:59:31
reg_
(cleavir-hir-interpreter:interpret-hir (cleavir-sbcl-environment::compile-cleavir '(lambda () (+ 32 10))))
12:59:53
reg_
after having run (ql:quickload '(cleavir-generate-ast cleavir-ast-to-hir cleavir-hir-interpreter))
13:01:14
beach
oleo: package names are global, so one has to be very careful not to introduce conflicts.
13:05:47
beach
No, I mean, HIR code executes in a run-time environment that contains lots of stuff like standard functions, classes, metaclasses, etc.
13:07:03
beach
reg_: Clasp is the only existing more-or-less complete Common Lisp system using Cleavir.
13:07:59
beach
reg_: There is no such thing as generic low-level code in Common Lisp. Everything executes relative to a huge run-time environment.
13:29:00
flip214
nyef: /dev/tcp is a virtual directory, provided by bash for redirections. not visible via ls etc.
13:45:45
nyef
flip214: Lovely. God forbid someone put an _actual_ /dev/tcp device or directory in their system.
13:53:19
nyef
Under the circumstances, I'm suspecting that bash has rather badly overstepped its bounds in the unixoid notion of "small, sharp tools".
13:58:49
flip214
more often than not there was neither bsd-netcat nor gnu-netcat installed, and I needed to transfer some data around.
14:02:00
nyef
Oh, I'm not even going to try to deny that it's useful, I'm just saying that it's badly out-of-scope and not _discoverable_.
14:02:31
nyef
Oh, and that it potentially conflicts with something that could happen in the filesystem.
14:10:33
nyef
(Except, of course, some systems already use UNC filespecs, so it'd have to be something _else_ that doesn't collide the filepath namespace.)
14:15:30
nyef
I had the bash manpage open last week, but I was looking for information on the command-line history mechanism.
18:38:14
nyef
Hunh. There exist PCI-to-NuBus adaptors. Going to have to keep my eye out for one of those, for a couple of reasons. (-: