Adding anchors to our Shiny button observer

In my previous post, I demonstrated a JavaScript / jQuery event handler that waits for button clicks and sends the id of the button that was clicked to a single observeEvent() in Shiny. In this post I’m going to improve that code while also extending it to include anchor tags (<a id="xxx">). Anchor tags are typically used to create links and include an href attribute that holds the URL of the linked document.

Continue reading “Adding anchors to our Shiny button observer”

One observer for all buttons in Shiny using JavaScript / jQuery

One of the profound limitations of Shiny is the way it supports buttons. Buttons are based on a function called actionButton(). When a button is clicked, Shiny reports the click on input$button_id. Every button has to have a unique id, which means that each button also has to have its own observer to watch for a click. But what if you want to do something like this:

Continue reading “One observer for all buttons in Shiny using JavaScript / jQuery”

Adding RStudio to an Amazon Lightsail Instance

Today I decided to try adding the RStudio Server to my Amazon Lightsail instance. There are three steps to this – downloading and installing the software, opening up port 8787, and adding a user with a password who can log in to the server.

Continue reading “Adding RStudio to an Amazon Lightsail Instance”

How to get Shiny on the server and JavaScript in the browser talking to each other

On our server we’re programming in R with a variety of add-on packages, primarily Shiny. Users, on the other hand, are all viewing our site using browsers, which run the programming language JavaScript. This article is about how to use a Shiny command to send a message to the user’s browser, telling it to run a JavaScript function. I’ll also include how to get that JavaScript function to send a message back to Shiny (it will appear as a reactive in the input$ list).

Continue reading “How to get Shiny on the server and JavaScript in the browser talking to each other”

Installing and configuring a database engine like MySQL or MariaDB on Amazon Lightsail

So many choices! In previous blogs I’ve talked about the traditional LAMP stack, in which the “M” stands for the open-source MySQL database engine. I barely understand the details, but somehow Oracle now owns MySQL. There’s still a free open-source version, often referred to as the community edition. Some open-source developers weren’t happy about the Oracle switch, however, and “forked” the MySQL code into a new project called MariaDB.

Continue reading “Installing and configuring a database engine like MySQL or MariaDB on Amazon Lightsail”

How to connect to Amazon Lightsail with PuTTY, FileZilla, WinSCP, and HeidiSQL

Connections from your own computer to your instance on Amazon Lightsail are made using SSH keys rather than passwords. Here are some tips for setting up connections between some useful Windows programs and your instance.

Continue reading “How to connect to Amazon Lightsail with PuTTY, FileZilla, WinSCP, and HeidiSQL”

How to send email from R with the help of Amazon SES and mailR

Now we have a LEMRS stack. How about adding email? Amazon’s Simple Email Service seems anything but simple when you confront its voluminous documentation, so here’s a tl;dr version for a relatively simple set-up with R. One of the big attractions here is that if you’re already running an Amazon instance, you can send thousands of emails every month at no additional cost. Otherwise, it’s 10 cents per thousand emails. You may find it worthwhile to sign up for Amazon Web Services just for the ability to send email.

Continue reading “How to send email from R with the help of Amazon SES and mailR”

How to configure nginx and shiny-server for a LEMRS stack

My last post included an Amazon Lightsail launch script to set up an instance with a LEMRS (Linux / EngineX (nginx) / MySQL / R / Shiny-Server) stack. This time we’re going transfer files into the instance, including new configuration files for nginx and shiny-server, start both of them up, and see how they work.

Continue reading “How to configure nginx and shiny-server for a LEMRS stack”