• Delay a Grails controller’s response

    Sometimes, for testing or development, you need to slow down an ajax response from the server. In the Grails framework, to delay a controller’s response, do the following: In the action you want to delay, insert: Thread.sleep(5000) as in: def index() { Thread.sleep(5000) … do some work… render … some response } where 5000 is more

  • Nginx Cheat Sheet

    Test and restart an nginx configuration change. The reload will not happen if the test fails. sudo nginx -t && service nginx reload or, on a bitnami image: sudo nginx -t && sudo /opt/bitnami/ctlscript.sh restart nginx   Redirect all subdomains to the top level domain. ie: http://www.mydomain.com -> http://mydomain.com In your DNS management system, you’ll more

  • Insert HTML after every Nth comment: use the “end-callback” argument

    I did not find any examples of using WordPress’s “end-callback” argument for “wp_list_comments”. It is documented by WordPress here. Here is an example of how to use it in child-theme code to add custom HTML after each top level comment. This example preserves comment hierarchy, ie: nested replies. In your child theme directory, create a more

  • Virtual Box Tips

    Mount a shared folder on a linux (Debian) guest: Make sure you have already installed the Virtual Box Guest Additions. Set up a ‘transient’ folder via the Virtual Box GUI (Devices > Shared Folders) In a terminal window in the linux guest, run: sudo mount -t vboxsf name_of_shared_folder_in_VBox ~/directory_in_guest_os/

  • How to use reserved characters in a URI

    If you have to encode a reserved character (such as ‘/’ or ‘@’) so that it can be passed in a URI path, you may need to encode it twice: Example: const ticker = ‘@SMC/2018’, encodedTicker = encodeURIComponent(encodeURIComponent(ticker)), uri = `https://someexample.io/${encodedTicker}/load`; See also: “When to Encode or Decode” if you like to be confused.