The University of Waterloo School of Computer Science (SCS) recently undertook a project to provide several hundred TB of redundant, multi-building distributed high-performance storage for SCS users and infrastructure use. The first part of this talk will recount the non-linear trajectory of the project from the formulation of goals through to the delivered Ceph system.
The design of this system allows for the modular addition of services utilizing the storage. The first such service, SCS Nextcloud, provides a DropBox-like functionality across all popular client platforms. We will give details of a high-availablity implementation of Nextcloud built using haproxy and containers.
Doug Moen will tell us about Curv, a 3D modelling language he is developing for making art using mathematics. Jonathan Fritz will tell us about his work on Mattermost, an open-source alternative to Slack.
Curv is an open source 3D solid modelling language, oriented towards 3D printing, procedurally generated art, and mathematical visualization. It's a pure functional language where geometric shapes are first class values, and are constructed by transforming and combining simpler shapes using an unusually rich collection of operators.
Instead of polyhedral meshes or other boundary representations, Curv represents shapes as pure functions (Function Representation or F-Rep). This is a volumetric representation, where a function maps every point (x,y,z) in 3D space onto the properties of a shape. This representation is powerful, supporting a wide range of shape operators, and is a good match to the volumetric nature of 3D printing.
F-Rep is well suited to being directly rendered by a GPU. To achieve this, Curv code is compiled into GPU shader programs or compute kernels.
Mattermost is an open source alternative to popular enterprise chat applications like Slack, HipChat, and Microsoft Teams. It can be used on the web, your desktop, or your mobile device. The project is MIT-licensed, with an enterprise version available for paid customers that need additional functionality.