Berty, Zuccnet, and Python ML
The Browser is the world's favourite curation newsletter, selecting five fascinating pieces of writing each day on strange and varied topics, from the origins of Cornish nicknames to the history of Kodak's Brownie camera. We completely ignore the news, and promise to find you fun things to read while your code is compiling. We are also proudly powered by OSS from Ghost.org. Console readers can get 20% off your first year by using the code CONSOLE20 at checkout.
Berty is a secure peer-to-peer messaging app that works with or without internet access, cellular data, or trust in the network.
language: Go, stars: 3062, watchers: 112, forks: 115, issues: 77
first commit: January 31, 2021, last commit: July 14, 2018
best-of-ml-python is a ranked list of awesome machine learning Python libraries. Updated weekly.
language: Python, stars: 3909, watchers: 198, forks: 484, issues: 2
last commit: January 28, 2021, first commit: November 29, 2020
Zuccnet is end-to-end encrypted Facebook Messenger via the command line.
last commit: January 22, 2021, first commit: June 30, 2015
If you’re interested in posting a help wanted ad for your project to thousands of open-source developers, send an email to email@example.com
An Interview With Part Of The Berty Team
The following interview is a selection of questions and answers from some of the Berty developers: Manfred, zôÖma, and Jorropo. You can read all three interviews in full here.
Being the founder of the project, I’ll ask you, Manfred, what is your background?
Manfred - 2007-2011: I created and directed the security laboratory in my school, Epitech; it was my first community experience and the first time I got paid for doing what I loved to do.
2010-2012: various phases: freelancing, creating a company with my best friend, creating another one with 5 co-founders; my first entrepreneurial experiences.
2012-2016: I closed everything from the previous phase: my best friend joined a VC fund, I joined Iliad, a French telco group, where I did hardware R&D. After 1 year in that group, I raised money there and created a new project: Scaleway.com. At the time, it was the first cloud computing service using only hardware (no virtualization), using the server we created – which was, itself, the smallest in the world at that time, smaller and more powerful than Raspberry Pi. That was my first intrapreneurial experience.
2016-2018: I left the Iliad group and started working on Wulo.fr, a non-profit alternative to Uber; first solo-entrepreneurial and first non-profit experience.
Since 2014 -> open-source addict, coding every day, always having some side projects.
Since 2015 -> consulting: auditing startups for VCs (tech due dils) + advising some startups.
Since 2018 -> Berty, my main project.
My most common stack -> Go, Docker, gRPC, Sqlite
Did you get a lot of pushback when trying to fund Scaleway as an intrapraneur? If so, how did you convince them to proceed with the project?
Manfred - I had a very good reputation in the top management, they knew I was working hard and that I used to federate people around a project. My N+1 helped me prepare the business plan, and the president of the group challenged me on various parts, like "can you hire the initial team in less than 1 month”, and so on. I said yes. When we settled on the details, they gave me the money, introduced me to various people to get help (legal, accounting, strategy, the "team that finds names", etc). They preferred to protect me from the politics, etc, so I had dedicated offices for my first 15 employees, instead of sharing it with other teams from the group in order to have the smallest amount of constraints during the MVP phase.
If you could dictate that everyone in the world should read one book, what would it be?
Manfred - Steal Like an Artist by Austin Kleon
zôÖma - The Hacker Ethic and the Spirit of the Information Age by Pekka Himanen
What are you currently learning?
Jorropo - The Tor protocol. I’m thinking about re-implementing a client in Go due to limitations of Tor on iOS. Basically, CTor was made with some expectations about the environment (one Tor = one process) and how it’s gonna be used (socks proxy, IP listeners) – and this isn’t really true in Berty. So, our Tor integration is not quite at the level of quality where we can claim to others (like to IPFS, for example) that it can be used and works fine.
If I gave you $10 million to invest in one thing right now, where would you put it?
zôÖma - We would secure funding for the NGO Berty Technologies in the next few years, recruit reinforcements, and maybe do some crazy projects to promote privacy, to make our grandmothers understand what we're doing.
What sort of crazy projects?
An NGO could use this type of creation, and video content, to raise awareness among the general public.
Why was Berty started?
Manfred - Cryptography and P2P allows us to create distributed applications, and also, Centralized applications are often criticized – so, there will be some good distributed alternatives to government products. A messaging app is one of the most obvious choices to start with. I believe in a future where every big commodity will still have their Govt version with their advantages and constraints + a distributed version. Cryptocurrencies are a good example, I believe in a similar future to that with services other than money exchanges.
And another reason is because it’s a huge pleasure for me to work on something super technically challenging.
Are there any overarching goals of Berty that drive design or implementation?
Manfred - Basically it’s the sum of: Mobile Devices + Distributed + Can work without the Internet + Massively Asynchronous + Multi-Device/Platform + No Blockchain + High-level of privacy (including metadata)
We wrote a summary here.
What tradeoffs have been made as a consequence of these design goals?
Jorropo - No centralised server for storing messages. Messages are stored on your phone and sent directly to your contact. You can use a centralised server as this allows others to download messages when your phone isn’t running, but this is optional and you can run your own if you choose to.
What is the most challenging problem that’s been solved in Berty, so far?
Manfred - The Berty Protocol – it allows us to create “groups” that reply to the previous question. The “groups” are the most central thing in Berty, i.e., there is a group for the devices of the same user.
Jorropo - Porting Tor to iOS. This probably took 1 month of work from me and one of my co-workers. Basically, this comes down to poor error reporting from the usual C toolchain.
We were having random crashes at startup if Tor was enabled. The final answer was that our project got OpenSSL from 2 places: the podfile of React Native, and the Tor build. So the linker got really confused, and instead of telling us that something was wrong, it was creating a Frankenstein monster of both versions of OpenSSL.
Do you think any of your projects do more harm than good?
Manfred - Nope, because early on I stopped trying to make everyone happy. To avoid going crazy, I just quickly define my own limits and use these. At Wulo, I was often borderline when communicating against Uber. However, since I was criticizing them and at the same time proposing an alternative I felt this was fine. Also, I was not criticizing the people or even the initial idea of Uber, but what the company kept doing to real humans, it was very easy for me to never regret being insolent.
Jorropo - I’ve heard this argument many many many times before. About Tor or cryptocurrencies or Telegram or Signal, not yet for Berty though. Like “do you think about the terrorists?”. But, I think it’s such a negligible part of the user base of such services that it’s not my problem. Just see how often Tor is in fact used to browse the world wide web, how many of the Bitcoin transactions are done through regular wallets, without even using Tor.
What is the best way for a new developer to contribute to Berty?
Manfred - We try keeping this page up-to-date.
Basically, for now, you can help by contributing to the code, participating in discussions, reviewing our code, reviewing our protocol, and translating our content to various languages.
We are actively working on the next phase, which will be the open-beta, where we will need a lot more help to get as much feedback as possible, plus getting people to talk about the project in their circles.
Where do you see Berty heading next?
Manfred - The current main goal is to release in public.
The next goal is to focus on having a good SDK for other apps that want to be offline-first, P2P and privacy-friendly.
The final goal is to cede control of the only centralized thing, the codebase. For this we will set up a DAO.
Where do you see software development heading next?
Manfred - Today we have full-time, interns, and freelancers. Tomorrow we will have individual contributions and bounties.
Do you have any suggestions for someone trying to make their first contribution to an open-source project?
Manfred - Ahah, one of my favorite topics. I often help people make their first contributions. You can check out my thoughts on the subject here.
zôÖma - Never be afraid of making mistakes, or looking like an idiot. Lots of idiots do great things in open source communities, and lots of geniuses make stupid mistakes. Don't stress by throwing yourself in the water. You'll discover that your contributions are always welcome.
Manfred gave a little conference talk on this subject at the festival we founded last year, Paris P2P Festival.
Jorropo - Just do it! That may be a simple advice but don’t be scared, the biggest risk you are taking is receiving job propositions (yes, this is actually very common). Nobody will shame you because you made some bad code (you will actually probably learn a lot reading some code reviews that people submit to you).
Like what you saw here? Why not share it?
Or, better yet, share Console!
Also, don’t forget to subscribe to get a list of new open-source projects curated by an Amazon software engineer directly in your email every week.