lnug / speakers

Open an issue to submit a talk
https://github.com/lnug/speakers
43 stars 7 forks source link

Native implementation of curl in node #162

Closed Chinrank closed 4 years ago

Chinrank commented 5 years ago

Abstract

Over my last holiday I started a project I am quite enjoying. It is an implementation of the functionality of curl written done purely in node. It presently is nothing close to done, but you can do some basic curl stuff with it (e.g. make multipart form data posts to some url, pipe responses to files, handle http and https proxies (provided they support the connect header) to do requests over to http or https, recursively follow location headers, set headers, etc.).

There's presently some vague ftp ideas that are not at all done.

The rather bigger challenge I was working on last time I was doing my project was to establish an ssh connection, (which on account of doing everything from scratch will make a number of assumptions about the server it's connecting to).

I'm hoping to over the next month or so get it all done nicely.

Overall it's a pleasant way to learn some details of networking, starting to write an ssh client in particular requires manually writing the packets as per the ssh protocol which has been a reasonable education in how that sort of things works. It has also been good for me to appreicate how excellent node is, it really does seem to provide nice apis for everything you want.

About me

I'm a former mathematician who over the last 9 or so months has turned programmer, I currently work as a developer mostly working with JavaScript. I mostly like doing algorithms and stuff and have only recently begun to learn the broader aspects of programming. I really love doing things from 'scratch' (in the sense of just using the stuff provided by the language) as I find it quite insightful.

Ankcorn commented 5 years ago

Sounds very interesting. It would be great to work out how to turn this concept into a talk.

Disclaimer I work with @chinrank

admataz commented 5 years ago

my first reaction was... but why? but also... this is a fantastic topic for a talk. we love crazy sience - and I like approach to learning from the inside out - and I think it would be great to hear what you learned about node and more generally with this project.

I think the challenge for turning this into a really good talk will be to give it an engaging narrative/storyline - tell the story of the idea, the challenge and obstacles and personal achievements - along with some live demo of the code.

Can we tentatively put you in for May? - would that give you enough time?

Chinrank commented 5 years ago

That's great news! Thank you very much! That should be more than enough time, it will be rad.

hewIngram commented 5 years ago

This sounds super cool @Chinrank - can't wait to hear more!

admataz commented 5 years ago

@Chinrank - just confirming - you are scheduled for next month (22nd May) 🎉 - if you want to add any more specific info in your bio/about section - this is what will go out to our website, meetup page and email newsletter (name? twitter?)

Chinrank commented 5 years ago

Cool, that's perfect. I think I'm happy with my bio/about as is.

admataz commented 5 years ago

@Chinrank - I need your name for security on the door tonight! can you email me: adam@admataz.com

How are things looking for your talk? All good?

details of the venue:

CONDÉ NAST
ADELPHI BUILDING
1-11 JOHN ADAM ST
WC2N 6HT

I will be there with other organisers from about 6:15pm getting a few things set up - people start arriving around 6:30 and we plan to start with talks after a brief intro and welcome at 7pm

If you have any issues - please call me: 07757234443

See you there!

Thanks

Ankcorn commented 5 years ago

The video is live! https://www.youtube.com/watch?v=PpYxByBv1Xk

Thanks again @Chinrank awesome talk!

admataz commented 4 years ago

Now also in the LNUG channel: https://youtu.be/cBH2L2LDRek 🎉