- Node.js -

Italian conference - V edition

October 22nd 2016 - Desenzano (BS)

A quick chat with Mathias Buus Madsen

Mathias Buus Madsen While waiting to announce the final line up, let’s have a quick chat with Mathias Buus Madsen, who’s going to hold the “P2P File sharing workshop” at Nodejsconf 2016

Mathias, also known as @Mafintosh, is a danish Node.js hacker from Copenhagen, Denmark. He wrote a lot of open source modules (currently more than 200 modules on npm).

He has been working on BitTorrent creating various mad science projects including Peerflix, a streaming BitTorrent video client.


Hi Mathias,  could you give us a quick introduction about your workshop?

My workshop is about learning how to write applications in Node.js that share files using P2P techniques over local networks and even the internet. Similar to last year where I taught a workshop about P2P in general you’ll learn through a bunch of small, iterative exercises how P2P file sharing actually works and how you can start developing your own using various Node.js modules. We’ll even cover how you can get your file sharing applications working in the browser as well. I promise it’ll be a lot of fun!


What should the attendees expect from the workshop?

They should first of all expect to have a fun day filled with JavaScript. They are also gonna leave the workshop with a better fundamental understanding about how P2P file sharing systems like BitTorrent work in general. After the last workshop I did a couple of devs have been writing other p2p systems afterwards so hopefully people will feel inspired to do this again.


What worries you the most in the IT industry?

It definitely worries me than there isn’t easier ways for open source developers to get funded to work full time on open source work. Open source is major part of why Node.js is an incredibly successful platform. I hope that in the future we’ll see more direct initiatives from public funders or the EU to directly support non-profit open source development without drowning them in paperwork.


What’s your current music album on repeat?

I listen to a lot of varied music, especially while I’m working. I tend to cycle between hip hop, electronic music and classical music. My current goto electronic playlist is on my soundcloud.


Who is/are your tech heroes?

I’m not sure I have tech heroes but plenty of other developers definitely inspire me. Following Dominic Tarr’s work was a big part of why I started to get more and more interested in P2P systems: github.com/dominictarr


What are the best books/resources about Node.js and JavaScript in general?

I haven’t read a lot of books about JavaScript/Node.js although I’m sure there are plenty of good books out there. In my opinion one of the best learning resources out there is simply Github. Find some small projects that you like and start reading through their source code and look in their package.json file to find the dependencies they use. Following js devs there can also be a great resource to learn about new stuff by simply watching what they publish. I like to follow people on Github that write great modules. You can see my entire list here on Github.


How do you find the time to contribute to the open source?

I’m very lucky to be working on the Dat project which is funded by a couple of American non-profit foundations. This makes me able to work and contribute to open source full time. Before doing that I’d just write a lot of code in the weekends. I actually relax a lot when writing code as well.


You come to Italy very often to speak at conferences, what are the things you love most of this country?

This is the easiest of all the questions and answerable with a single word: Food. Also all the Italians I know are incredible friendly and it’s always a great place to visit.


One thing you love of JavaScript, and one thing you hate?

I love how easy it is to get a program running in JavaScript. All you need to do is create a index.html page, add a script tag, and paste some snippet in there and you’re going. No need to install any additional programs as computers already come with browsers installed. I’m not sure I hate anything about js but there certainly are frustrating parts. Predicting js performance can be surprisingly tricky and unintuitive. I wish that part was easier, especially for newcomers to js.

What’s your setup (laptop, OS, editor, etc.)?

I use the new 12’’ Macbook, running OSX. I like to use Sublime Text because that editor has decent default configurations (I don’t like making custom settings in general). I like to travel and work remotely most of the time so it’s important for me to have a portable computer. In addition to my laptop I carry multiple extra batteries so I can charge my laptop while I’m on the go.


What’s your favourite ES2015 feature?

Is this the one that was called ES6 before? In general I’m very old fashioned when it comes to the features I use. I’m not a huge fans of adding multiple ways of doing the same thing to language. I also don’t want to compile my JavaScript before publishing to npm as that makes it a lot harder for contributors to make contributions.

Having said that I like the new template strings! They are great for doing frontend templates without having to use JSX and other compilers. They are also widely supported by browsers now which makes them super easy to use and deploy.


And what about ES2016?

I’d love to see 64 bit integers added to JavaScript. That’s basically the only feature I’m missing from js today. Last time I checked that wasn’t in ES2016 which disappoints me a bit.


Thanks for the quick chat Mathias, can’t wait to see you on stage at next Nodejsconf Italy 2016!