Blog

tinytest2JUnit: report your tinytest results in the CI

tinytest2JUnit: report your tinytest results in the CI Introduction “Lightweight is the right weight” is the motto of packages adhering to the tinyverse principle. One of the packages following this principle is the tinytest package, a zero-dependency unit testing framework. It is a nice alternative to the heavy-weight testthat testing framework, which (at the time of writing and including its recursive dependencies) has a dependency footprint of 30 packages!

Continue reading

ShinyProxy 3.1.0

ShinyProxy 3.1.0 Last year we released a major update of ShinyProxy, bringing High Availability, Scaling, App parameters, improved integration with Kubernetes and much more. Today’s release goes even further, bringing Pre-Initialization, Container sharing and even a new container backend. Along with these major features, the release is packed with numerous small improvements. ShinyProxy is a novel, open source platform to deploy Shiny apps for the enterprise or larger organizations. Nevertheless, ShinyProxy is also an excellent choice for deploying a handful of apps in smaller organizations.

Continue reading

ShinyProxy 3.0.0

ShinyProxy 3.0.0 Today we release version 3.0.0 of ShinyProxy, providing improvements on all aspects of using and deploying ShinyProxy. ShinyProxy is a novel, open source platform to deploy Shiny apps for the enterprise or larger organizations. Nevertheless, ShinyProxy is also an excellent choice for deploying a handful of apps in smaller organizations. While ShinyProxy is generally used to host Shiny applications, it has always been designed with the idea to host any application that can be packaged into a Docker container.

Continue reading

Spreadsheets and robust backends: a love story?

The source of every data science project is a dataset or even multiple. In general, scientists prefer to share data using a spreadsheet. This allows to quickly explore, enter and modify data. Software developers on the other hand, prefer to build around properly designed schemes and backends that ensure data integrity. Whoever wins this battle decides where the data is stored: in a type of spreadsheet file or in some kind of database.

Continue reading

Complete monitoring stack for ShinyProxy on Kubernetes

Introduction For some time now, ShinyProxy is able to export metrics using Prometheus. After releasing this feature, we provided a dashboard for Grafana to visualize these metrics. Although this provides a good basis to build a monitoring setup around ShinyProxy, it does not provide insights in logs or resource usage of individual apps. To fill this gap, we are publishing a GitHub repository containing a comprehensive monitoring set up for ShinyProxy on Kubernetes.

Continue reading

New nonlinear least squares solvers in R with {gslnls}

Introduction Solving a nonlinear least squares problem consists of minimizing a least squares objective function made up of residuals $g_1(\boldsymbol{\theta}), \ldots, g_n(\boldsymbol{\theta})$ that are nonlinear functions of the parameters of interest $\boldsymbol{\theta} = (\theta_1,\ldots, \theta_p)'$: $$ \boldsymbol{\theta}^* \ = \ \arg \min_{\boldsymbol{\theta}} \frac{1}{2} \Vert g(\boldsymbol{\theta}) \Vert^2 $$ In the context of regression, this problem is usually formulated as: $$ \begin{align} \boldsymbol{\theta}^* & \ = \ \arg \min_{\boldsymbol{\theta}} \frac{1}{2} \Vert \boldsymbol{y} - f(\boldsymbol{\theta}) \Vert^2 \\ & \ = \ \arg \min_{\boldsymbol{\theta}} \frac{1}{2} \sum_{i = 1}^n (y_i - f_i(\boldsymbol{\theta}))^2 \end{align} $$

Continue reading

Rotating log files in Rust, and reassembling them for inspection

Context Open Analytics is working on a huge data processing pipeline in the context of high-content imaging. The latest work to this end is a new product that will work in conjunction with Phaedra as part of the pipeline which now covers much more ground than before. The entire backend of this new component is written in Rust and consists of several web servers. Proper log rotation has been a focus as of late, since it is critical to be able to keep on top of things in this massive processing pipeline.

Continue reading

ShinyProxy 2.6.0

ShinyProxy 2.6.0 Today we release version 2.6.0 of ShinyProxy which includes over forty improvements. ShinyProxy is a novel, open source platform to deploy Shiny apps for the enterprise or larger organizations. Nevertheless, ShinyProxy is also an excellent choice for deploying a handful of apps in smaller organizations. While ShinyProxy is generally used to host Shiny applications, it has always been designed with the idea to host any application that can be packaged into a Docker container.

Continue reading

Serverless Fan-Out in Vaccine Research

Serverless Fan-Out in Vaccine Research Discovering new vaccines involves intensive data science: the 3D structure and shape of viruses need to be matched to the 3D structure of hundreds of thousands of proteins that can potentially bind on the virus surface. We will not go into the multiple challenges this problem poses from a methodological point of view, but focus on how to deal with the hundreds of thousands of proteins that enter the arena.

Continue reading

Kustomize Best Practices

Introduction In recent years, Kubernetes has become a renowned solution for orchestrating cloud-independent infrastructure. Open Analytics supports the data analysis process end to end. This includes infrastructure that underpins the data science platforms we build. Since we exclusively work with open technology, it should come as no surprise that we adopted Kubernetes early on in our technology stack. As Kubernetes rose in popularity and maturity, it became an essential backbone to deliver fully open-source data science platforms.

Continue reading