[IETF 101] tls 1.3 – building the next-generation of https web apps
TLS 1.3 Champion
As core team members of hackers.mu, we have had huge responsibilities on our shoulders. But being a technology champion meant so much more. We had to not only work on our projects, but also mentor and help out other members as well as participants.
We invited multiple communities to join us in this grand adventure. Our valued friends from the IETF Africa. (read more on my three part blogpost on IETF Africa/Africa Internet Summit here)
Together with Loganaden, Pirabarlen and Nitin, we joined forces to do our best for the smooth running of this hackathon.
Hackers.mu presentation in London (Video Summary below)
The hackers.mu team members present were:
Muzaffar Auhammud – httperf
Core Team (Champions)
I had initially started a bit slow, as I was working on other projects in parallel. Everyone was already deeply immersed in their projects, we could see PRs and code merges flying right from the first day.
We were working together as one big family, helping each other out debugging each other’s code!
It was incredible, people were reviewing code on a Saturday ! They were even actively merging the code with thanks !
I assigned myself a project called Mercurial. Back in the DOTA days, my favourite hero used to be Mercurial The Spectre. So yeah, I had no idea what it was about.
When i started to read about it, I felt a deep connection with this Open Source Initiative. I knew that even after the hackathon, I would still be using it.
What is Mercurial?
Mercurial is a source code management tool.
What’s in a name?
Mercurial uses a set of commands starting with hg.
Yes Mercury(Hg) –> Mercurial
Source-code Management tool?
Git, svn, mercurial all of those are scm.
How is it different from git?
Unlike git, Mercurial is decentralised!
Yes, with git, all your code is sitting down at github.com
With mercurial, you can self host your code on your own server.
yes I was coming to that. The commands are quite similar to git.
git clone = hg clone
git add = hg add
git pull = hg pull
git push = hg push
git diff = hg diff
git commit = hg commit
git reset –hard = hg revert -a
(yeah! I got you there :D)
Diving into the code
Before diving into code, I like to get familiar with the project. That is why I don’t rush. I test the app thoroughly and like to understand how it works. How are requests and connections made. How is the handshake done, use the app, push some code, clone some repos. Yes, done it all.
On the first day of the hackathon, I ran into issues with one of my machines so I had to recompile from source again. I thus made a little script for automating the process and shared it with all, just in case others ran into the same issues. A 30 minutes tedious work was transformed into a 5 minute walk 😀 . You can check the repo here: scripts repo
On the next day, I started to dive and dig deeper, compiling dependencies and stuff from source along the way. I then noticed some incompatibilities between Mercurial and python 3.x
I had to switch back to python 2.7 and do everything all over again as it’s a different world out there. After fighting my way through, testing a million times. I was fully satisfied with the results, it worked as expected.
I then went ahead and submitted the patch to the upstream project.
The future – Contributing
Take a good hard look at tls 1.3. The future is now. Help up make more applications tls 1.3 compliant !
You can read more about tls1.3 in the ietf draft here.
To the IETF Organising team for having us as Technology Champions!
To all hackers.mu team members and participants. We hope the experience has been fun for everyone. It was for me 🙂