Don't miss the interesting videos at the bottom of this post!
We were happy to celebrate the milestone of having a first community contributed importer by Dima. A work in progress, but still, it is a big step for us and the community and very encouraging.
In the mean time we have been working hard on improving the developer journey. A new documentation system has been designed and is being implemented based on Hugo with three levels of documentation for a global overview, code flow and references. More improvements are coming to help make the code more accessible.
We had two workshops to better operate in a self-governing democratic environment. In the first workshop, we practiced how to use roles and have conversations about changing a role, giving feedback about the role and how to ask for authority and take authority to fulfill a role.
In the second workshop we practiced saying no, communicating difficult news and confessing own failures. We learned that mistakes actually don’t cause problems, but not addressing them does. We also talked about a need for a safe space at work that enables you to share what is going on without the need to communicate it yet. We noticed that there is still much space for improvement regarding that topic in our organization, which leads to something we will work on in January.
This year some of us have organized a super fun holiday quiz! We're all remotely joining in. Some fun questions have been asked and some data shared. We don't know what to expect, but this is exactly why it is going to be lots of fun! We'll share our experience next time.
Progress on the schema refactor is general good, but we're falling behind the schedule a little bit in a crunch towards the holidays. There are many moving parts right now and so we're practicing our motto "slow is smooth and smooth is fast". The clarity on the following design decisions is now being worked out in code in the iOS application, the pod and pyIntegrators.
Design choices we accepted:
- The schema is data not code
- The front ends receive the schema from the Pod the same way they sync other data
- We use one SQL table per primitive data type (sting, int, etc.)...
- And a table for edges, handled similar to GraphQL, but we will allow for extra edge properties
- We have a repository with the base schema, which is minimalistic as… (next bullet)
- Integrators define their own additions to the schema
- The base schema and additions have the same format, which is diff-friendly to make it easy to track changes and manage conflicts
- The Pod knows which integrators are installed and merges corresponding schema additions with the base schema
- The Pod inspects schema additions and reports issues
- We have some central integrator repository (plugin store) where we check for conflicts between integrators
Design choices in progress:
- Do we want schema additions to extend existing items, or create new items (that inherit from currently existing ones)?
- How do we manage inheritance? (Use traits? Use single or multiple inheritance?)
It's exciting to see this last major refactor towards a new milestone of stability and forward compatibility.
The iOS application is in the middle of a major refactor to implement the new schema specification. A large portion of the code base is being refactored/rewritten to change from RealmDB to SQLite. This has brought an order of magnitude speed improvement to the import of the demo database (from 2s+ to 100ms). In the process the setup screen has received a visual and UX update. Below are not the latest updates, for that you have to try the app. For the alpha testers: a new version was released today!
We are moving to the browser application and use it as the main application because of its platform independence: the requirement for using xcode and the simulator is not a great onboarding experience. The browser application is basically a port of the iOS app and about one or two cycles behind, so in the next few months we will bring it up to speed. An interesting side-effect of this will be that the live updating preview next to the developer tool will become usable.
The WhatsApp integration is now in the final stages of becoming operational in the browser application.
This first video is super fun. Harry Halpin is a great story teller, talking about why earlier attempts to a distributed web failed. One way to interpret the story is that community driven development trumps discussions at a standards authority.
That led to this great talk by Juan Benet. Especially of interest to Memri is this last part where he says "We don't know what the browser of Web3 ought to be." and "We don't have good usability yet." That's a pretty good description of the role Memri is trying to fill.
Expanding the team
We are going to publish some job/role descriptions on the website soon. As a preview, we are looking for the following. Feel free to send information to firstname.lastname@example.org
- Senior Product Designer
- Swift/SwiftUI Engineer
- DevOps / Systems Engineer