Issue #216 (Currying, Build Tools, Testing/Debugging, Media)
I'm not going to try to even begin to explain it fully myself because I'm just starting to understand it, but here's a quick summary from some resources, which are all linked so you can do more research in case I butcher it.
According to Andrea Zanin's Practical Introduction to Functional Programming:
"Currying is the technique of translating the evaluation of a function that takes multiple arguments into evaluating a sequence of functions, each with a single argument."
He goes on to explain why this is useful:
"Because we are now able to pass the arguments at different points in time; this means that we can use currying to 'construct' a function."
"[C]urrying is a way of constructing functions that allows partial application of a function’s arguments. What this means is that you can pass all of the arguments a function is expecting and get the result, or pass a subset of those arguments and get a function back that’s waiting for the rest of the arguments."
If currying is a new concept to you, then that's probably still pretty confusing. You should definitely check out those two articles, both of which provide plenty of code examples.
Lastly, the comments section of that last article covers the practical use cases for currying which point to an article on cleaner Angular directives with currying and a video presentation on React components.
So there's lots to look over if that's a topic you want to understand better.
Now, for some odd reason I have a huge craving for some naan bread and butter chicken. Not sure why though.
Now on to this week's tools!
Build, Deploy, Task Runners, etc.
Deploy infinitely scalable serverless apps, APIs, and sites in seconds.
webpack plugin to transform your code into emoji ready to be shipped to production.
Rapidly release code with confidence on a modern continuous integration and delivery platform. Offered on hosted cloud, Enterprise, and OS X platforms.
The bundle-buddy utility (a tool to identify bundle duplication across splits) as a webpack plugin.
The popular module bundler is now at version 3+.
Keep your bundle size in check.
A collection of libraries and build tools that make it easy to store your website’s files locally, on your users’ devices, to help with offline websites.
Mission to make cloud computing as easy and accessible as mobile computing.
Testing and Debugging Tools
Enter a URL and this tool will output numerous page speed optimization tips and suggestions. Very comprehensive.
e2e test builder
Chrome extension that allows you to record interactions and perform various assertions. Compatible with Selenium IDE test cases.
Enter a URL (and optionally a comparison URL) to test a site's latency performance.
Why No Padlock?
I recently started switching all my sites over to SSL and this is my go-to tool for finding out why a site still doesn't get the green padlock.
Chrome automation made simple. Runs locally or headless on AWS Lambda.
Update to the old modern.ie. Free remote testing of Microsoft Edge using BrowserStack.
A simple tool to hide encrypted text messages inside JPEG images. But you won't use it for nefarious purposes, obviously.
An image manipulation library with a very specific set of skills. Works as a replacement for Canvas in non-supporting environments.
3D wireframe drawing library for HTML Canvas.
A Tweet for Thought
Eric Hu's take on the different ways to order CSS properties.
Suggestions / Corrections
Made something? Send links via Twitter @WebToolsWeekly (details here). No tutorials or articles, please. If you have any suggestions for improvement or corrections, feel free to reply to this email.
Before I Go...
LOOPY looks useful. It helps build interactive simulations (like flow charts) of complex systems (could be a programming flow or anything really).
Thanks to all for subscribing and reading!