An open-source way to connect a home or small office network to an internal one.
At my organization, we’ve deployed Kubernetes on a bunch of rented bare metal servers. We’ve come up with an architecture that uses modern IPv6-only networking (with interfaces to the IPv4 internet), doesn’t require overlay networks, and in general is fairly lean and hence quite simple to administer.
A question that is often brought up in tech companies, is whether or not to use cloud for hosting your service applications (typically for SaaS vendors). Let’s do a high-level analysis, and look at the benefits and costs of using the cloud.
This is my personal style guide on how to write Scala programs that scale in terms of developers. It’s a distillation that contains the essence of observations I’ve had over many years, working with teams of different sizes and backgrounds, from Scala pros to complete newbies.
All these guidelines are given with the ultimate goal of making development fast and fun, for yourself, and for you in six months and other people working with you.
Go to update all your repositories. Do not pass GO, do not collect $200.
Git is designed as a system of numerous independent commands that all start with git. Some well-known examples are git commit, git rebase, git merge etc. Have you ever wondered how you can extend the git suite with your own?
A categorization of the stability of software in open source projects.
This site has been moved to Hugo.
In B.C. (before Corona) we presented a domain-specific language and a compiler for secure multi-party computation (MPC). The compiler targets a state-of-the-art backend that specializes in low-level numerical computations. While the DSL helped to focus on the critical MPC domain, for a practical system we needed a way to easily connect with the outside world. This would enable us to compose multiple MPC programs as well as intertwine them with business logic.
At Inpher, we have built a domain specific language (DSL) for modelling privacy preserving computations. This DSL is targeted at cryptographers who are not necessarily familiar with Scala at all, yet it is written entirely in Scala 3! In this talk, I will present some of Scala 3’s new features that were used to make the DSL powerful while keeping it very user friendly. I will share some experiences we’ve had as early adopters of Dotty, as well as some lessons learned while introducing the DSL to complete newcomers of the language.
Move over data analytics, secure machine learning is here. As privacy becomes an increasingly important concern, so does the need to analyze data securely. Secure multi-party computation (MPC) is a promising solution that helps different entities collaborate in training ML models, while also keeping their data private.
For applications to truly scale, we need to implement models in a high-level language, abstracting away the low-level MPC details: we need a compiler!
An essential requirement for writing programs that scale is to have constructs to model concurrency in an understandable, safe, and efficient manner. This talk presents an overview of various such models available in Scala, and their impact on program structure and complexity. It then explores a way to model concurrency with less complexity with an implementation of Communicating Sequential Processes (CSP), heavily inspired by goroutines, scala-async and Clojure’s core.async.
Building a DIY quadrotor. This talk gives an overview of all steps necessary in building a drone from the ground up, with off-the-shelf parts from the hardware store and hobby electronics. It describes the evolution of Project Condor, presents its software architecture from base station to on-board flight stack, and summarizes engineering tradeoffs.
Suite of projects related to engineering and navigating a quadrotor.
project website