This is a good suggestion. The zeromq addon can run multiple jconsole instances in parallel.
On Fri, Jul 3, 2020, 9:52 AM Raul Miller <[email protected]> wrote: > Hmm... some other possibilities include running this under jconsole > and spinning up an instance of J for each 'p', or some other trick to > show results incrementally (details depend on what you are after). > > Like, you could do (untested): > wd@'msgs' ::]@echo@(0!:111)@". > instead of > 0!:111 ". > > This would not make anything faster, but would not make you wait so > long for the first result to appear on screen. > > Anyways... I'm probably way off base from where you wanted to go, but > these are possibilities that might at some point be useful to you. > > -- > Raul > > On Thu, Jul 2, 2020 at 9:40 PM Raul Miller <[email protected]> wrote: > > > > One approach would be that you saved the result of each 'p' file in a > > corresponding 'o' file. If you want to get fancy you could even make > > it so that if the 'p' were newer the 'o' would be ignored. But > > manually deleting the 'o' would make that unnecessary. > > > > This leaves some details unspecified -- like should you use ". or 5!:5 > > or 3!:1 or map_jmf_ in the process of generating the 'o' files? > > > > But, anyways, if you defined the interface you could use it. > > > > Thanks, > > > > -- > > Raul > > > > > > On Thu, Jul 2, 2020 at 4:48 AM ethiejiesa via Programming > > <[email protected]> wrote: > > > > > > Hey J, > > > > > > Wanted to share this and see what you think. > > > > > > For Project Euler solutions in J, I have a single file and run it like > this: > > > > > > $ ./project-euler.ijs <1> [<m> ..] # output answers to problem > n, m, ... > > > > > > Initially, I had a scheme where all solutions are named like p1, p2, > etc. with > > > the following at the bottom of the script: > > > > > > echo ".&> (#~ 0 = 4!:0) 'p'&,&.> ARGV > > > exit@0:^:(e.~ <@'./project-euler.ijs') ARGV > > > > > > It just straightforwardly tacks 'p' to the beginning of all arguments, > filters > > > out the missing/nonsense stuff, and executes the result. The second > line > > > ensures the script exits when called directly but not when 'load'ed in > the > > > jconsole. > > > > > > Anyway, the above scheme works but execution starts to get slow as more > > > solutions accumulate since it ends up computing *all* p1, p2, etc. > before > > > output. So I wanted to "lazily" evaluate only those solutions > requested on the > > > command line. > > > > > > My first approach was to "lazy load" by making all p1, p2, etc. > strings and > > > evaluating with > > > > > > 0!:111 ".&> (#~ 0 = 4!:0) 'p'&,&.> ARGV > > > > > > However, this strikes me as a bit ugly. It also makes it a bit awkward > to > > > investigate and iterate on solutions when loading into jconsole. > > > > > > So the scheme I came up with is a simple modification of the initial > approach. > > > Instead of p1, p2, etc. we now have [x1], v1, y1, [x2], v2, y2, etc. > (where > > > [x1] means that x1 is optional). Effectively we want to expand the > argument '1' > > > into 'x1 v1 y1' or 'v1 y1' as appropriate and then execute. This is > how I am > > > achieving that: > > > > > > echo ". ,"_1 ,&' '&> |: (#~"1 (0 3 0) = 4!:0) 'xvy' ,&.>/ ARGV > > > > > > It's quite nice how closely this mirrors the original approach. After > the hook, > > > we have a table whose columns encode the executions we want. Finally, > a bit of > > > munging gives the desired result. > > > > > > Thoughts? Is this Good J TM? > > > ---------------------------------------------------------------------- > > > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
