<div dir="ltr">Happy New Year to all of you and thanks for all the thoughtful replies.<div><br></div><div>This thread has multiple themes so speaking to each individually:</div><div><br></div><div>a.  Testing</div><div><br></div><div>Regarding my poor attitude towards TDD... :)  I have been trying to take everyone's comments to heart and have been attempting to get that black background stuff off of drracket for my pong program!!</div><div><br></div><div>I have made some progress but I did want to ask a few pragmatic questions:</div><div><br></div><div>a1.  Do people *truly* go for 100% coverage i.e. *truly* get rid of all the black background stuff?</div><div><br></div><div>a2.  One kind of funny question - I attempted to add a test of my main function - which calls big-bang - esp. since drracket's showing the black background on that.  Something like this:</div><div><br></div><div>(check-expect (main initial-world) expected-world)</div><div><br></div><div>(define (main world)</div><div>    (big-bang world</div><div>            [name "Pong World"]</div><div>            [on-tick handle-tick]</div><div>            [to-draw draw-pong-world]</div><div>            [on-pad handle-key-down]</div><div>            [on-release handle-key-up]</div><div>            [on-mouse handle-mouse]</div><div>            [stop-when quitting? draw-goodbye]))</div><div><br></div><div>But my fears were realized when check-expect calling that truly pops up the window and runs the program for real!!  Which I guess makes perfect sense.  But - is there a way to avoid that?  Seems like somehow I need some kind of "headless" way to test big-bang...  </div><div><br></div><div><div>a3.  I also have quite a few of these "setter"/"updater" type of functions for copying a structure but setting one of it's values.  Here's one for an example:</div><div><br></div><div><div>(define (pong-world-set-ball world ball)</div><div>  (make-pong-world</div><div>     (pong-world-status world)</div><div>     ball</div><div>     (pong-world-left-paddle world)</div><div>     (pong-world-right-paddle world)</div><div>     (pong-world-left-score world)</div><div>     (pong-world-right-score world)))</div></div><div><br></div></div><div>Any tips on how you'd approach testing these type of functions?  </div><div><br></div><div>b.  Poor performance of my pong game on Raspberry Pi (running linux)</div><div><br></div><div>I just now stumbled on this article about <a href="http://www.reddit.com/r/programming/comments/1hryxt/racket_on_raspberry_pi_the_importance_of_being/">racket's JIT not being enabled by default on the pi.</a></div><div><br></div><div>And aside from that I've learned it's known that graphics intensive programs struggle on raspberry pi under X Windows.  They're working on a new graphics system <a href="http://www.linux.com/news/embedded-mobile/mobile-linux/721510-raspberry-pi-gains-graphics-speed-as-wayland-replaces-x">"Wayland"</a> to solve the problem.</div><div><br></div><div>And looking closer at the top command while running my pong program racket was consuming like 30-40% cpu but X windows was using the remaining 60-70%!</div><div><br></div><div>If anybody's interested in Pi-like devices I should clarify that I'd had better luck with less cpu intensive racket demos I've tried.  e.g. <a href="http://docs.racket-lang.org/gui/windowing-overview.html#%28part._.Creating_.Windows%29">racket gui</a> demos seem to run well for me on the pi.</div><div><br></div><div>Lastly too I should mention I just got this <a href="http://ameridroid.com/products/odroid-c1">raspberry pi competitor</a> and the pong game does run pretty decent on that (both in racket and in chrome with the whalesong version).</div><div><br></div><div>c.  Whalesong</div><div><br></div><div>Mattias sorry to hear the Whalesong version didn't work for you.  When I read your note I tried it on more devices I have and I have to say it's working pretty well for me I think the only time I saw problems was e.g. on an android tablet where I tried to use the older stock android web browser instead of like chrome or firefox.</div><div><br></div><div>What device and browser were you on I wonder?</div><div><br></div><div>Also if anybody's interested I was able to add support for on-release pretty easily to Whalesong and my change was just merged into <a href="https://github.com/soegaard/whalesong">Jens Axel Søgaard's fork</a></div><div><br></div><div>d. Moby</div><div><br></div><div>Hi Emmanuel it's cool your doing stuff with Moby I'm interested but a little bit confused as I google on Moby so many references say Whalesong is meant to replace Moby?  </div><div><br></div><div>But my bigger question is I'm having trouble following exactly what the architecture of Moby is/was?</div><div><br></div><div>It says it was targeting android but I also see javascript mentioned, yet I also see it uses an apk?  So is/was it a phonegap type of an approach?  i.e. A native app that used a web view wrapper to execute javascript?</div><div><br></div><div>Or was it truly a java port of the racket VM?  You said it uses "the old bytecode interpreter" so maybe I'm misunderstanding about it being javascript?</div><div><br></div><div>Sorry for writing too much maybe I should have split this thread up...</div><div><br></div><div>Darren</div><div>       </div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div>   </div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jan 1, 2015 at 7:10 PM, Emmanuel Schanzer <span dir="ltr"><<a href="mailto:schanzer@bootstrapworld.org" target="_blank">schanzer@bootstrapworld.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Just to clarify: what I’ve got is a re-do of <i>Moby</i>, not whalesong. All the generated code still runs on the old bytecode interpreter. You’re definitely not going to get anything close to good runtime performance from my compiler. <div><br></div><div>(However, Whalesong and Moby share a <i>lot</i> of runtime code, and the world-events section of both are nearly identical. My mouse-event code should be practically copy-and-pasteable into Whalesong...)<span class="HOEnZb"><font color="#888888"><br><div><div><br><div>
<div>Emmanuel Schanzer<br>-----------------------------<br>Bootstrap Program Director<br><a href="tel:617-792-2438" value="+16177922438" target="_blank">617-792-2438</a><br><a href="mailto:schanzer@bootstrapworld.org" target="_blank">schanzer@bootstrapworld.org</a><br><br></div></div></div></div></font></span></div></div><br>____________________<br>
  Racket Users list:<br>
  <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
<br></blockquote></div><br></div>