Instead of analyzing how it failed, I think it will be easier to modify the code for running multiple instances. Perhaps left as an exercise for the reader.
01.06.2014, в 10:21, "'Pascal Jasmin' via Beta" <[email protected]> написал(а): > I don't know how gl_paint works, but it appears to callback into j code. The > timer calls gl_paint. When you launch a 2nd copy of the shader demo, only > one copy will update at a time. When you hover the mouse over the other > window, it snaps to a rotation that the other window would have continued to. > That suggests that it is a gl_paint "single data stream" issue, where it is > class (locale) level data rather than "form instance" data. You can also > keep the mouse focused on one, but give keyboard input to the active window, > switching animation to the active window until you twitch the mouse, and also > removing any doubt that only a single glpaint stream exists. > > Though very weird, I guess it is to be expected as a result of not creating > form instances. I have no idea how form instances would react to the gl > commands, but do know that the timer code in the demo would break for lacking > the handling that Joe initially brought up as necessary. > > > ----- Original Message ----- > From: Raul Miller <[email protected]> > To: Beta forum <[email protected]> > Cc: > Sent: Saturday, May 31, 2014 9:22:23 PM > Subject: Re: [Jbeta] shader demo > > Is it that the timer is not working, or that paint events are stalled? > > Here's a clock program, under jqt: > > require'plot' > N=:0.01*i.629 > O=: [: j./ 1 2 o./ ] > delay=:6!:3 NB. "sleep" > clock=: [: plot (O N),N*/~0.07 0.11 0.15(*O) 2r24p1 2r60p1 > 2r60p1*_3{.6!:0 bind '' > > delay@1:@clock^:9e99'' > > That works fine, initially. But if the window loses focus, it stops > updating. But if you use jbreak to regain control you should see a > final update which indicates that it continued to update. > > Now... this is not using the timer. But I think it does indicate the > kind of problem you can get into, isolating display update issues. > > Thanks, > > -- > Raul > > > On Sat, May 31, 2014 at 5:53 PM, bill lam <[email protected]> wrote: >> I don't see why form timer will not work when a form does not have input >> focus. You can verify this by running shader together with another demo at >> the same time. >> >> I am unfamiliar with opengl or shading language. Perhaps you can help to >> write a more impressive demo. Thanks. >> >> 01.06.2014, в 0:01, "'Pascal Jasmin' via Beta" <[email protected]> >> написал(а): >> >>> >>> >>> regarding the shader demo, I guess its related to gl_paint only working >>> with active window rather than any bug in the timer code? >>> >>> I will note that its extremely unusual to intend for a form's timer event >>> to get suspended on losing focus, and I'd suggest the demo would be more >>> impressive to see multiple spinning cubes. >>> >>> >>> >>> ----- Original Message ----- >>> From: bill lam <[email protected]> >>> To: 'Pascal Jasmin' via Beta <[email protected]> >>> Cc: >>> Sent: Saturday, May 31, 2014 10:27:45 AM >>> Subject: Re: [Jbeta] [Jprogramming] opportunity to show off jhs or qt >>> >>> I disagree. It would be written differently if intended to run multiple >>> instances. >>> >>> I have difficulty to follow your timer example, in contrast, >>> Joe's is more readable to me. ymmv. >>> >>> Сб, 31 май 2014, JBeta написал(а): >>>> There is a bug in the shader demo. When you launch 2 instances only the >>>> window with mousefocus gets timer events. >>>> >>>> >>>> Thanks to Joe, here is a class that allows "formless timers". It can be >>>> coinserted into another locale (renaming new if name conflict). kill >>>> works without needing stop. the stop,resume,kill verbs can be copied into >>>> a " real form" locale, as long as it holds/sets a form variable, and >>>> probably provide more reliable way to stop/resume timers from multiple >>>> form instances. >>>> >>>> cocurrent 'timer' >>>> create =: 3 : 0 >>>> form=: 'a', (> 18!:5 '') >>>> wd 'pc ' , form >>>> resume y >>>> >>>> ) >>>> stop =: 3 : 0 >>>> >>>> wd 'psel ' , form >>>> wd 'ptimer 0' >>>> ) >>>> resume =: 3 : 0 >>>> wd 'psel ' , form >>>> wd 'ptimer ', ": y >>>> ) >>>> kill =: 3 : 0 >>>> wd 'psel ' , form >>>> wd 'pclose' >>>> codestroy '' >>>> ) >>>> timerexample =: 3 : 'smoutput (> 18!:5 '''') ,'': '', ": (6!:0) ''''' >>>> loc_z_=: (,&'_'@[ ,&'_'@, ":@>@])"1 0 >>>> >>>> new =: 3 : 0 >>>> '' new y >>>> : >>>> o =. y conew (> 18!:5 '') >>>> if. 0=#x do. x =.'timerexample' loc o end. >>>> ('a', (> o), '_timer__o') =: 3 : (x , ' ''''') >>>> o >>>> ) >>>> >>>> a =. 'smoutput (> 18!:5 '''') ,'': '', ": (6!:0)' new_timer_ 5000 >>>> b =. new_timer_ 6000 NB. uses locale's timerexample >>>> (overridable) as callback >>>> >>>> >>>> kill__a '' >>>> stop__b '' >>>> resume__b 3000 >>>> kill__b '' >>>> ________________________________ >>>> From: Joe Bogner <[email protected]> >>>> To: Pascal Jasmin <[email protected]> >>>> Cc: "[email protected]" <[email protected]> >>>> Sent: Saturday, May 31, 2014 5:46:51 AM >>>> Subject: Re: [Jprogramming] opportunity to show off jhs or qt >>>> >>>> >>>> >>>> You can use 'wd psel' to set the current form instance which is then used >>>> by 'wd ptimer 0' >>>> >>>> NB. run two timers >>>> NB. works on j802 beta from 5/28 >>>> wd 'pc c' >>>> wd 'ptimer 1000' >>>> >>>> c_timer =: 3 : 'smoutput@:<''c'';(6!:0) ''''' >>>> >>>> wd 'pc d' >>>> wd 'ptimer 1000' >>>> >>>> d_timer =: 3 : 'smoutput@:<''d'';(6!:0) ''''' >>>> >>>> wd 'psel c' >>>> >>>> wd 'ptimer 0' NB. stop c >>>> >>>> wd 'psel d' >>>> >>>> wd 'ptimer 0' NB. stop d >>>> >>>> wd 'psel c' >>>> wd 'ptimer 1000' NB. resume c >>>> >>>> >>>> determined from source: >>>> http://www.jsoftware.com/download/j802/qtide/jqt-source.tar.gz >>>> >>>> A tip I used while testing is to use f8 to paste from keyboard. This keeps >>>> the output from interfering with the input >>>> >>>> >>>> >>>> >>>> >>>> On Sat, May 31, 2014 at 12:26 AM, Pascal Jasmin <[email protected]> >>>> wrote: >>>> >>>> >>>>> >>>>> skipping the pshow command, >>>>> >>>>> I can get both of your timers to run, but can only get one of them to >>>>> stop. It appears as though >>>>> wd 'ptimer xx' affects the most recent wd 'pc X' command, so for >>>>> instance, this sequence of commands: >>>>> >>>>> >>>>> c_timer =: 3 : 'smoutput@:<''c'';(6!:0) ''''' >>>>> >>>>> d_timer =: 3 : 'smoutput@:<''d'';(6!:0) ''''' >>>>> wd 'pc c' >>>>> wd 'ptimer 6000' >>>>> NB. runs as expected >>>>> wd 'ptimer 0' NB. stops as expected. >>>>> wd 'pc d' >>>>> wd 'ptimer 6000' NB. runs only d >>>>> wd 'pc c' >>>>> NB. still runs only d >>>>> wd 'ptimer 6000' NB. will run both on independent timers >>>>> >>>>> wd 'timer 0' NB.only stops C >>>>> wd 'pc d' >>>>> wd 'timer 0' NB. still d won't stop. >>>>> >>>>> erase 'd_timer' NB. stops d >>>>> >>>>> using pshow and pclose doesn't change the result. >>>>> >>>>> it turns out that I can get my object instance timers to also run, but >>>>> have the same problems stopping them... except its worse due to >>>>> difficulty setting timer off. >>>>> >>>>> a =. 6000 conew't' >>>>> b =. 7000 conew't' >>>>> runs both ok. >>>>> stop__a '' NB. stops b... the last pc command. >>>>> kill__b '' NB. runs ok apparently. But does not stop a timer >>>>> >>>>> cannot run stop__a '' or kill__a '' effectively. erase 'a' does nothing. >>>>> Quitting J is easiest, even this direct command fails >>>>> >>>>> kill_0_'' >>>>> |pclose : no parent selected: wd >>>>> >>>>> though this works: (where 0 is first locale...one part of smoutput) >>>>> erase 'a0_timer_0_' >>>>> >>>>> _________________________ >>>>> From: Joe Bogner <[email protected]> >>>>> To: Pascal J <[email protected]> >>>>> Sent: Friday, May 30, 2014 11:20:26 PM >>>>> >>>>> Subject: Re: [Jprogramming] opportunity to show off jhs or qt >>>>> >>>>> >>>>> >>>>> [off list] >>>>> >>>>> Hey Pascal, did you try the code that I posted with multiple timers? That >>>>> worked for me... I didn't run yours but perhaps it's something with the >>>>> locales... Just wanted to check first to see if you were successful with >>>>> a more basic implementation of multiple timers >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> On Fri, May 30, 2014 at 11:00 PM, 'Pascal Jasmin' via Programming >>>>> <[email protected]> wrote: >>>>> >>>>> thank you Bill and Joe, with new version it works. Also wd 'pshow' is >>>>> not necessary. >>>>>> >>>>>> multiple timers may not work though. >>>>>> >>>>>> cocurrent 't' >>>>>> create =: 3 : 0 >>>>>> ('a', (> 18!:5 ''), '_timer') =: 3 : 'smoutput (> 18!:5 '''') ,'': '', >>>>>> ": (6!:0) ''''' >>>>>> wd 'pc ' , 'a', (> 18!:5 '') >>>>>> resume y >>>>>> ) >>>>>> NB. a_timer =: 3 : 'smoutput (> 18!:5 '''') ,'': '', ": (6!:0) ''''' >>>>>> stop =: 3 : 0 >>>>>> wd 'ptimer 0' >>>>>> ) >>>>>> resume =: 3 : 0 >>>>>> wd 'ptimer ', ": y >>>>>> ) >>>>>> kill =: 3 : 0 >>>>>> wd 'pclose' >>>>>> codestroy '' >>>>>> ) >>>>>> >>>>>> a =. 4000 conew 't' NB. will start timer >>>>>> >>>>>> stop__a '' NB. will stop timer >>>>>> >>>>>> a >>>>>> ┌─┐ >>>>>> │1│ >>>>>> └─┘ >>>>>> >>>>>> ] b =. 4000 conew 't' NB. will start new timer ... replacing old. >>>>>> ┌─┐ >>>>>> │2│ >>>>>> └─┘ >>>>>> NB. you will see that only timer from b runs. resume__a 2000 will >>>>>> run the timer from b. This error will repeat if you create a 3rd >>>>>> instance. Only timer from last instance runs, even though they all have >>>>>> different "forms" a1 and a2. stop__a '' will stop the timer even if >>>>>> only b is running. >>>>>> >>>>>> a1_timer__a '' NB. a1 comes from using the locale number for >>>>>> variable a >>>>>> 1: 2014 5 30 22 28 48.138 >>>>>> >>>>>> a2_timer__b '' NB. a2 comes from using the locale number for >>>>>> variable b >>>>>> 2: 2014 5 30 22 29 17.594 >>>>>> >>>>>> If you kill either a or b, then resume__a 3000 will fail, as both >>>>>> "forms" are killed. >>>>>> >>>>>> resume__a 3000 >>>>>> |ptimer : no parent selected: wd >>>>>> >>>>>> >>>>>> Perhaps this is related to my poor understanding of how to run multiple >>>>>> copies of a form? >>>>>> >>>>>> >>>>>> >>>>>> ----- Original Message ----- >>>>>> From: Joe Bogner <[email protected]> >>>>>> To: [email protected] >>>>>> Cc: >>>>>> >>>>>> Sent: Friday, May 30, 2014 9:21:00 PM >>>>>> Subject: Re: [Jprogramming] opportunity to show off jhs or qt >>>>>> >>>>>> Pascal, you need to update to the latest. >>>>>> >>>>>> Engine: j701/2011-01-10/11:25 >>>>>> >>>>>> Library: 8.02.06 >>>>>> >>>>>> Qt IDE: 1.1.2/5.3.0 >>>>>> >>>>>> Platform: Win 32 >>>>>> >>>>>> Installer: J802 install >>>>>> >>>>>> InstallPath: c:/users/joe/j802 >>>>>> >>>>>> >>>>>> >>>>>> This works on the latest >>>>>> >>>>>> >>>>>> NB. run two timers >>>>>> >>>>>> NB. works on j802 beta from 5/28 >>>>>> >>>>>> wd 'pc c' >>>>>> >>>>>> wd 'pshow' NB. shows empty form >>>>>> >>>>>> wd :: empty 'ptimer 1000' >>>>>> >>>>>> >>>>>> c_timer =: 3 : 'smoutput@:<''c'';(6!:0) ''''' >>>>>> >>>>>> >>>>>> wd 'pc d' >>>>>> >>>>>> wd 'pshow' NB. shows empty form >>>>>> >>>>>> wd :: empty 'ptimer 1000' >>>>>> >>>>>> >>>>>> d_timer =: 3 : 'smoutput@:<''d'';(6!:0) ''''' >>>>>> >>>>>> >>>>>> >>>>>> This worked on the previous >>>>>> >>>>>> >>>>>> >>>>>> NB. worked previous j802 beta >>>>>> >>>>>> wd 'pc a' >>>>>> >>>>>> wd 'cc g opengl version 2.0 flush' >>>>>> >>>>>> wd 'pshow' NB. shows empty form >>>>>> >>>>>> wd 'set g timer 1000' >>>>>> >>>>>> a_g_timer =: 3 : 'smoutput@:<''a'';(6!:0) ''''' >>>>>> >>>>>> >>>>>> wd 'pc b' >>>>>> >>>>>> wd 'cc g opengl version 2.0 flush' >>>>>> >>>>>> wd 'pshow' NB. shows empty form >>>>>> >>>>>> wd 'set g timer 1000' >>>>>> >>>>>> b_g_timer =: 3 : 'smoutput@:<''b'';(6!:0) ''''' >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> I was stuck on it too >>>>>> >>>>>> >>>>>> >>>>>> On Fri, May 30, 2014 at 9:12 PM, 'Pascal Jasmin' via Programming < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> Engine: j701/2011-01-10/11:25 >>>>>>> Library: 8.02.06 >>>>>>> Qt IDE: 1.1.1/5.3.0 >>>>>>> Platform: Win 64 >>>>>>> >>>>>>> >>>>>>> ----- Original Message ----- >>>>>>> From: bill lam <[email protected]> >>>>>>> To: "[email protected]" <[email protected]> >>>>>>> Cc: >>>>>>> Sent: Friday, May 30, 2014 8:12:21 PM >>>>>>> Subject: Re: [Jprogramming] opportunity to show off jhs or qt >>>>>>> >>>>>>> what is your JVERSION ? >>>>>>> >>>>>>> 31.05.2014, в 8:03, "'Pascal Jasmin' via Programming" < >>>>>>> [email protected]> написал(а): >>>>>>> >>>>>>>> the shader demo works. cube rotates, etc... >>>>>>>> >>>>>>>> when I try those 3 lines from the base locale (jqt802 console session), >>>>>>> the error shown occurs. >>>>>>>> >>>>>>>> >>>>>>>> ----- Original Message ----- >>>>>>>> From: bill lam <[email protected]> >>>>>>>> To: "[email protected]" <[email protected]> >>>>>>>> Cc: >>>>>>>> Sent: Friday, May 30, 2014 8:00:24 PM >>>>>>>> Subject: Re: [Jprogramming] opportunity to show off jhs or qt >>>>>>>> >>>>>>>> did the cube rotate? did you test on the latest j802/jqt beta? >>>>>>>> >>>>>>>> 31.05.2014, в 7:48, "'Pascal Jasmin' via Programming" < >>>>>>> [email protected]> написал(а): >>>>>>>> >>>>>>>>> from base, >>>>>>>>> >>>>>>>>> wd 'pc a;' NB. or 'pc a' >>>>>>>>> wd 'pshow' NB. shows empty form >>>>>>>>> wd 'ptimer 2000' >>>>>>>>> |ptimer : parent command not found: ptimer: wd >>>>>>>>> >>>>>>>>> >>>>>>>>> a_timer_base_ >>>>>>>>> 3 : 'smoutput@:(6!:0) ''''' >>>>>>>>> >>>>>>>>> is this something related to base locale? >>>>>>>>> >>>>>>>>> shader demo works ok. >>>>>>>>> >>>>>>>>> >>>>>>>>> ----- Original Message ----- >>>>>>>>> From: bill lam <[email protected]> >>>>>>>>> To: "[email protected]" <[email protected]> >>>>>>>>> Cc: >>>>>>>>> Sent: Friday, May 30, 2014 6:40:53 PM >>>>>>>>> Subject: Re: [Jprogramming] opportunity to show off jhs or qt >>>>>>>>> >>>>>>>>> You didn't even create a form. To recap, a form is created using wd >>>>>>>>> cmd >>>>>>> eg >>>>>>>>> >>>>>>>>> wd'pc foo' >>>>>>>>> >>>>>>>>> the locale of a form is the current locale when that wd'pc foo' is >>>>>>> executed. >>>>>>>>> >>>>>>>>> 31.05.2014, в 0:49, "'Pascal Jasmin' via Programming" < >>>>>>> [email protected]> написал(а): >>>>>>>>> >>>>>>>>>> sorry for previous message, was running timer and not ptimer. >>>>>>>>>> >>>>>>>>>> It does not appear as though you can get a timer into an arbitrary >>>>>>> locale by just doing wd 'pc a' there. The form has to be visible, or >>>>>>> needs >>>>>>> an initial show? >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> ----- Original Message ----- >>>>>>>>>> From: 'Pascal Jasmin' via Programming <[email protected]> >>>>>>>>>> To: "[email protected]" <[email protected]> >>>>>>>>>> Cc: >>>>>>>>>> Sent: Friday, May 30, 2014 12:23:37 PM >>>>>>>>>> Subject: Re: [Jprogramming] opportunity to show off jhs or qt >>>>>>>>>> >>>>>>>>>> Nice, thank you. >>>>>>>>>> >>>>>>>>>> You can also use a timer in any arbitrary locale (I think) >>>>>>>>>> >>>>>>>>>> a_timer_ =: show_base_ >>>>>>>>>> wd_a_ 'timer 2000' >>>>>>>>>> >>>>>>>>>> or >>>>>>>>>> >>>>>>>>>> aa =. conew 'a' >>>>>>>>>> wd__aa 'timer 2000' >>>>>>>>>> >>>>>>>>>> acts a little weird with just one plot window, but that might be plot >>>>>>> related? >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> ----- Original Message ----- >>>>>>>>>> From: bill lam <[email protected]> >>>>>>>>>> To: 'Pascal Jasmin' via Programming <[email protected]> >>>>>>>>>> Cc: >>>>>>>>>> Sent: Friday, May 30, 2014 11:19:17 AM >>>>>>>>>> Subject: Re: [Jprogramming] opportunity to show off jhs or qt >>>>>>>>>> >>>>>>>>>> Oh sorry! I thought ptimer was documented but not yet. Basically >>>>>>>>>> it is very simple, if your form id is 'foo' then the name of the >>>>>>>>>> timer callback verb is 'foo_timer' in the form's locale. Each form >>>>>>>>>> has its own timer. wd'ptimer xx' will start or stop timer attached >>>>>>>>>> to the current form. Unlike the old wd timer, form timers will not >>>>>>>>>> break existing code. In qt shader demo, the cube is rotated by a >>>>>>>>>> form timer. >>>>>>>>>> >>>>>>>>>> Пт, 30 май 2014, jprogramming написал(а): >>>>>>>>>>> good news about wd 'timer' for forms. A wishlist would include a >>>>>>>>>>> way >>>>>>> for minimal library load for jconsole support. >>>>>>>>>>> >>>>>>>>>>> I don't see it mentioned here though >>>>>>> http://www.jsoftware.com/jwiki/System/ReleaseNotes/J802 >>>>>>>>>>> >>>>>>>>>>> I did see that the timer qt demo app has been updated, but its hard >>>>>>> to understand without a "qtdemo form" >>>>>>>>>>> >>>>>>>>>>> there is no mention of wd 'ptimer' here: >>>>>>> http://www.jsoftware.com/jwiki/Guides/Window%20Driver/Command%20Reference >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> ----- Original Message ----- >>>>>>>>>>> From: bill lam <[email protected]> >>>>>>>>>>> To: [email protected] >>>>>>>>>>> Cc: >>>>>>>>>>> Sent: Friday, May 30, 2014 10:08:14 AM >>>>>>>>>>> Subject: Re: [Jprogramming] opportunity to show off jhs or qt >>>>>>>>>>> >>>>>>>>>>> sleep will halt current thread, not a feature of jqt. One can >>>>>>>>>>> use wd'timer' to fire event. Furthermore J802 introduce form timer >>>>>>>>>>> for each form, see high-lights. >>>>>>>>>>> >>>>>>>>>>> Пт, 30 май 2014, Raul Miller написал(а): >>>>>>>>>>>> I made the hour hand be a 24 hour hour-hand. To make it the more >>>>>>> typical 12 >>>>>>>>>>>> hour hour-hand, change 2r24p1 2r60p1 2r60p1 to 2r12p1 2r60p1 >>>>>>>>>>>> 2r60p1. >>>>>>>>>>>> >>>>>>>>>>>> And the window freezing issue is a "feature" of jqt. To avoid that >>>>>>> issue >>>>>>>>>>>> with current versions of jqt, always close (or position) the plot >>>>>>> window >>>>>>>>>>>> before starting the clock. >>>>>>>>>>>> >>>>>>>>>>>> Thanks, >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> Raul >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Fri, May 30, 2014 at 4:43 AM, Jan-Pieter Jacobs < >>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Nice! >>>>>>>>>>>>> I tried your code in JQT (on windows 8), some remarks: >>>>>>>>>>>>> >>>>>>>>>>>>> The hour hand is pointing about the exact oposite direction it >>>>>>> should. >>>>>>>>>>>>> Somehow, switching windows also causes the plot window to freeze, >>>>>>> and J to >>>>>>>>>>>>> become unresponsive >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Jan-Pieter >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> 2014-05-30 3:18 GMT+02:00 Raul Miller <[email protected]>: >>>>>>>>>>>>> >>>>>>>>>>>>>> Here's another approach (beware of email induced line wrap in >>>>>>> definition >>>>>>>>>>>>> of >>>>>>>>>>>>>> show): >>>>>>>>>>>>>> >>>>>>>>>>>>>> N=:0.01*i.629 >>>>>>>>>>>>>> O=: [: j./ 1 2 o./ ] >>>>>>>>>>>>>> delay=:6!:3 NB. "sleep" >>>>>>>>>>>>>> >>>>>>>>>>>>>> show=: [: plot (O N),N*/~0.07 0.11 0.15(*O) 2r24p1 2r60p1 >>>>>>> 2r60p1*_3{.6!:0 >>>>>>>>>>>>>> bind '' >>>>>>>>>>>>>> >>>>>>>>>>>>>> show@delay@1:^:9e9'' >>>>>>>>>>>>>> >>>>>>>>>>>>>> I think this should work with both jqt and the j602 ide. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>> >>>>>>>>>>>>>> -- >>>>>>>>>>>>>> Raul >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Thu, May 29, 2014 at 1:39 PM, David Lambert < >>>>>>> [email protected]> >>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> http://rosettacode.org/wiki/Draw_a_clock#J >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> The next author need only replace the draw dyad, or rewrite the >>>>>>>>>>>>>>> contribution. >>>>>>>>>>>>>>> x is the current session time, y is the session time when the >>>>>>>>>>>>>>> verb >>>>>>>>>>>>>> starts. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> round=: [: <. 0.5&+ >>>>>>>>>>>>>>> PICTURES=: u:16b2190+i.4 NB. arrows >>>>>>>>>>>>>>> draw=: [: smoutput PICTURES ((|~ #)~ { [) [: round - >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>> ---------------------------------------------------------------------- >>>>>>>>>>>>>>> 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 >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>> ---------------------------------------------------------------------- >>>>>>>>>>>> For information about J forums see >>>>>>> http://www.jsoftware.com/forums.htm >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> regards, >>>>>>>>>>> ==================================================== >>>>>>>>>>> GPG key 1024D/4434BAB3 2008-08-24 >>>>>>>>>>> gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3 >>>>>>>>>>> gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3 >>>>>> >>>>>> >>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> ---------------------------------------------------------------------- >>>>>>>>>>> For information about J forums see >>>>>>> http://www.jsoftware.com/forums.htm >>>>>>>>>>> ---------------------------------------------------------------------- >>>>>>>>>>> For information about J forums see >>>>>>> http://www.jsoftware.com/forums.htm >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> regards, >>>>>>>>>> ==================================================== >>>>>>>>>> GPG key 1024D/4434BAB3 2008-08-24 >>>>>>>>>> gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3 >>>>>>>>>> gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3 >>>>>>>>>> ---------------------------------------------------------------------- >>>>>>>>>> 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 >>>>>>>>> ---------------------------------------------------------------------- >>>>>>>>> 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 >>>>>>>> ---------------------------------------------------------------------- >>>>>>>> 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 >>>>>>> >>>>>> ---------------------------------------------------------------------- >>>>>> 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 >>> >>> -- >>> regards, >>> ==================================================== >>> GPG key 1024D/4434BAB3 2008-08-24 >>> gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3 >>> gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3 >>> ---------------------------------------------------------------------- >>> 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 > ---------------------------------------------------------------------- > 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
