Prosperous Software Movement
Bringing sustainable funding to public goods by revenue-sharing towards dependencies
Bringing sustainable funding to public goods by revenue-sharing towards dependencies
At Kariba Labs, we believe deeply in the power of open source software. That is why we are building Open Source Observer (aka OSO), an open source tool for measuring the impact of open source projects. In order to achieve our goal of making open source better for everyone, we believe that OSO needs more than just open source code. We are committed to being the most open and reliable source of impact metrics out there. We will achieve this by committing the OSO project to the following practices:
Open source software: All code is developed using permissive licenses (e.g. MIT/Apache 2.0)
Open data: All collected and processed data will be openly shared with the community (to the extent allowed by terms of service)
Open infrastructure: We will open up our infrastructure for anyone to contribute or build upon our existing infrastructure at-cost.
Choosing how to add localization to your application can be a complicated decision, because there are so many options out there. From code-based frameworks to third-party services that automatically rewrite your HTML, there is no silver bullet for localization. At Plasmic, we have been exploring the many options to better inform how we can support localization for our own application. Many tutorials assume you want to already want to use a code framework, like react-i18next, but that has implications for your team’s workflow. In this blog post we will survey different localization techniques you may be considering for your React application and discuss some of the trade-offs.
In this blog post, we will show you how to implement personalization using Next.js middleware. Traditionally, personalization was implemented on the server, which may incur many hundreds of milliseconds of latency before the user receives the content. With Next.js middleware and static site generation (SSG), we can serve rich personalized experiences entirely from the edge (i.e. CDN), resulting in significant performance improvements for your website and improved experiences for your users.
In this blog post we will show you how to implement A/B testing using Next.js middleware, first introduced in Next.js 12. When compared to other A/B testing frameworks, this method more easily fits into your existing developer workflows and inherits all of the performance benefits of Next.js, including static site generation (SSG). You’ll see that A/B tests don’t have to be onerous for either your users or your developers — every Next.js site can easily make measurable progress this way!
In this guide, we will show you how to build a video player web application with Plasmic, a visual builder for React. While many Plasmic users use it to build landing and content pages, Plasmic is actually a powerful UI builder for apps of any complexity, allowing you or your design team to rapidly iterate on rich web applications.
In this guide, we will show you how to build a crowd-sourced Pokemon Pokedex, by connecting Supabase, an open source Firebase backend alternative, with Plasmic, a visual builder for the web. While many users leverage Plasmic to quickly launch and iterate on landing pages, in this tutorial we’ll show just how powerful Plasmic can be as a general-purpose visual builder for React, which can be used to design and implement fully featured read-write applications.
After a long 2.5 years of training to get to our H3 rating, we thought it would help to share our journey and what we wished we knew when we first started; advice that could have helped us finish in <1 year. Of course this is our limited opinion, so take it all with a grain of salt and get advice from other pilots you trust.
These are the things I wish I had known before deciding to go to grad school. Obviously take these with a grain of salt, as they just represent one man's opinion.
I love writing. I miss that aspect of working in research. You see the slightest thread of an insight, and then just keep pulling on it through reading related work, writing, and iterating, until you've formed a coherent thought to share with the world. Not everything I write is equally insightful (or coherent) to others, but I always enjoy the writing process nonetheless. In academia, writing took the form of technical papers that might only see the light of day on Arxiv. Nowadays, my preferred medium is blogging, but without dedicating time to writing, it just doesn't happen.
The AutoDapp project aims to automatically convert any existing web or mobile application into a decentralized application (DApp) by changing just a single line of code, starting with Discourse and MediaWiki. This blog post outlines a high-level approach to instantly decentralize popular applications by interposing on the SQL connection between its web server and database. With the unified effort of the open source community, we can accelerate the advent of the decentralized future for millions of users -- this is what we’re calling our “One Million” mission.
In this blog post, I'll show you how to setup a Yubikey with both signing and authentication keys. As a driving example, I'll describe how to use a Yubikey to sign your git commits and authenticate via SSH with GitHub. Of course you can reuse this guide to authenticate with any other SSH server as well.
"Time is the most valuable thing a man can spend." Theophrastus
With only so much time on this world, it's in our best interest to use it wisely. Even with best intentions, I often find myself feeling like I could have spent my time better. These thoughts typically fall into one of three categories:
Have you ever had that awkward moment with a PhD student, where someone asks:
How much longer until you graduate? Do you know what you'll do after school?
The student hesitates to answer, or worse, bolts in the other direction. For the majority of people who will never get their PhD, I'll give my explanation for the reason why. Disclaimer: this opinion will be heavily biased towards PhD's in computer science and may not apply to other fields.
In this blog post, I'll show you how to configure a Docker-based personal server, running each service in a separate Docker container. Modern devops tools have made it easier than ever to run your own server and for anyone with basic familiarity with Linux, it's worth a try. In this tutorial, we'll use Gitlab as a running example.
One of my first projects at MIT was at the Media Lab, where we were exploring self-sufficient technologies. My advisor, Richard Fletcher, and I wanted to build a completely self-sufficient printer for use in developing countries.
For years, my website was a single gigantic HTML file. Adding content and making edits felt a lot like stacking Jenga blocks a mile high. While that was fun in many ways, it is 2015 and it is time to move to some form of automated system like Jekyll.