Files
omnivore/packages/content-handler/test/data/node-weekly-newsletter.html
Hongbo Wu 31bc9fe5be Fix node-weekly newsletter getting forwarded
* This error is caused by a previous rebase conflict and resolving the conflict caused an important line missing
* Revert the change to add CooperPressHandler to the array of newsletter handlers
* Updated the test to get the correct handler from email content to prevent such cases
2022-10-21 09:57:05 +08:00

289 lines
63 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<meta name="format-detection" content="date=no">
<meta name="format-detection" content="telephone=no">
<style>body {
margin: 0; padding: 0; width: 100%; background-color: white; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; text-rendering: optimizeLegibility; direction: ltr;
}
body {
font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;
}
img {
border: 0; outline: none; height: auto; text-decoration: none; max-width: 100%; line-height: 100%;
}
@media screen and (max-width: 600px) {
table[id="main"] {
max-width: 600px !important; width: 100% !important; min-width: 100% !important;
}
.nomob {
display: none !important;
}
.onlymob {
display: inline-block !important;
}
.rightifmob {
text-align: right !important;
}
.som {
max-width: 33% !important;
}
div.footer p {
text-align: left !important;
}
div.footer td {
text-align: left !important;
}
.el-columns .column {
width: 100% !important;
}
}
</style>
</head>
<body style="width: 100%; background-color: white; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; text-rendering: optimizeLegibility; direction: ltr; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; padding-top: 0; padding-right: 0; padding-bottom: 0; padding-left: 0;">
<div id="preview" class="preheader noarchive" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; color: white; font-family: helvetica, arial; line-height: 0px; height: 0px; margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; overflow-y: hidden; padding-top: 0; padding-right: 0; padding-bottom: 0; padding-left: 0;">Plus choosing the best Node Docker image to use, and a way to embed Node and V8 into JVM apps. | </div>
<!--[if (gte mso 9)|(IE)]>
<table cellpadding="0" cellspacing="0" align="center" bgcolor="#ffffff" width="600"><tr><td valign="top" style="width: 600px;" bgcolor="#ffffff"><![endif]-->
<table align="center" border="0" cellpadding="0" cellspacing="0" id="main" width="100%" style="table-layout: fixed; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse; max-width: 600px; height: 100% !important; direction: ltr; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;">
<tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse;">
<div id="content"> <!-- left/right splitbar -->
<table class="el-splitbar" width="100%" cellpadding="0" cellspacing="0" style="border-collapse: collapse;"><tr>
<td width="50%" align="left" style="padding-left: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse;"><p style="font-size: 12px; color: #999999; text-transform: uppercase; line-height: 1.0em; margin-top: 0.8em; margin-bottom: 0.8em;">#459 — October 20, 2022</p></td>
<td width="50%" align="right" style="padding-right: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse;"><p style="font-size: 12px; text-transform: uppercase; line-height: 1.0em; margin-top: 0.8em; margin-bottom: 0.8em;"><a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56obSPDXnoBEjufvIqRCEJUf5Uqg_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiEkDU3SIXWGeoiU60KFhM-2B-2Bxx5yiL8KKbAV6oFceRi8O1gMc3mdwg5D8FaaM3PublaX24iAcVbn99PzxJaPuVrU6xDWbRovw2UgGTIoEI-2BBO-2B0qzi2wv5c6yJTkUGZOcsJ6xGLXO1BO-2BHSbyZMZV4NMw-3D-3D" style="text-decoration: none; color: #20824B;">Read on the Web</a></p></td>
</tr></table>
<table id="together" width="100%" align="center" style="text-align: center; border-collapse: collapse; margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;">
<tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse; margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; padding-top: 0; padding-right: 0; padding-bottom: 0; padding-left: 0;">
<table align="center" style="margin-top: 4px; margin-bottom: 4px; border-collapse: collapse;">
<tr>
<td style="vertical-align: middle; text-align: right; text-transform: uppercase; letter-spacing: -0.2px; font-weight: 500; color: #222; font-size: 0.9em; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; line-height: 1.48em; border-collapse: collapse;">Together with </td>
<td style="vertical-align: middle; text-align: left; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse;">
<a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56r6zTNF2xDv1ApolVrZ4iZ0HiftFJvNFqLdyt1qEIYOmw-3D-3DnmCs_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiE8NENjWQQqAEHbpzhUjH-2Bckj2r35R2Duk7-2FbrQ0LuGQfAPBldpsN7Qx2BrVm2a-2BFlyBXjJOtG89q3W4OYHxWzTrMPn7O5MODZDWI2rIAvBBT7nuLtOzHRyiixX-2BooIGNPoh5jlbPIXUYA7AdsiNLi8w-3D-3D" style="outline: none; text-decoration: none; color: #20824B; border-top-width: 0; border-right-width: 0; border-bottom-width: 0; border-left-width: 0;">
<img src="https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_600,h_145/e_make_transparent/co_white,e_outline:7/vvpdctzacmq3xehpvwps.png" style="max-width: 95px; outline: none; height: auto; text-decoration: none; line-height: 100%; border-top-width: 0; border-right-width: 0; border-bottom-width: 0; border-left-width: 0;" width="95" alt="Memetria">
</a>
</td>
</tr>
</table>
</td></tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0" bgcolor="#6ca629" border="0" style="border-collapse: collapse;"><tr style="max-height: 90px;" width="100%"><td style="width: 100%; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse; margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; padding-top: 0; padding-right: 0; padding-bottom: 0; padding-left: 0;"><img src="https://res.cloudinary.com/cpress/image/upload/v1653576619/lgfqinzbdqttwmhvljxb.png" alt="Node.js Weekly" width="100%" style="max-width: 100%; outline: none; height: auto; text-decoration: none; line-height: 100%; border-top-width: 0; border-right-width: 0; border-bottom-width: 0; border-left-width: 0;"></td></tr></table>
<table width="100%" class="el-fullwidthimage " cellpadding="0" cellspacing="0" style="border-collapse: collapse;"><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse;">
<a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56ra-2BHbYUbZAgq0Awl4wQsazE1bhe-2BpCdYTFO-2BpNDWqk1g-3D-3Dx_-k_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiEywLHI2112PJhYLaCD2-2B4Qi2ns-2B9maxytQrBvMSB-2B8MfIUORT1WVSjPTq-2Bh4G3A3lBW-2Farr-2BCgaLkASB8cs72Etj9NzjvjLjq0RIF-2BRJpD59rWnNLk7xaqY7ME5U1vFkpFBhhj0ekUSlb3782-2B9K-2F8A-3D-3D" style="text-decoration: none; color: #20824B;"><img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/btuiykgloamnvwq81bqh.jpg" alt="" width="640" style="outline: none; height: auto; text-decoration: none; max-width: 100%; line-height: 100%; width: 100%; border-bottom-color: #6ca629; border-bottom-style: solid; border-top-width: 0; border-right-width: 0; border-bottom-width: 3px; border-left-width: 0;"></a>
</td></tr></table>
<!-- normal content section -->
<table width="100%" cellpadding="0" cellspacing="0" class="content el-content " style="color: #222; border-collapse: collapse;"><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse; padding-top: 0px; padding-right: 15px; padding-bottom: 0px; padding-left: 15px;"><p style="text-align: center; font-weight: 500; font-size: 1.5em; line-height: 1.3em; margin-top: 0.8em; margin-bottom: 0.8em;"><a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56ra-2BHbYUbZAgq0Awl4wQsazE1bhe-2BpCdYTFO-2BpNDWqk1g-3D-3DlwD6_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiE0eL0BNqOCtCV6HNY9PPUOyevCTulgFpYrJLPMrODUpo9ZlnK1AD-2Bniu050zhRPUxXdQw09PH0Oa-2FMnEJ6SEksBeVLjWhroT-2FdcjDCYGYJI3JXjG7w6y5Y1P2aKWESeTweor-2BgP5OwCb8PiyEYnvY4A-3D-3D" style="text-decoration: underline; color: #20824B; font-weight: 600;">Node.js 19 Released</a></p></td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" class="content el-md " style="border-collapse: collapse;"><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse; padding-top: 0px; padding-right: 15px; padding-bottom: 0px; padding-left: 15px;">
<p style="margin-top: 0.8em; margin-bottom: 0.8em;">As an odd-numbered release, Node 19 will never become an 'active LTS' version, but sits as the 'current' release that gets all the tastiest new features until early 2023. It then reaches 'end of life' on June 1, 2023. <em>"If youre interested in getting access to features early, Node.js 19 is ready,”</em> says Rafael Gonzaga of the core team.</p>
<p style="margin-top: 0.8em; margin-bottom: 0.8em;">New features this time around include:</p>
<ul>
<li style="color: #222; line-height: 1.35em; margin-bottom: 12px; margin-left: 0px !important;">
<p style="margin-top: 0.8em; margin-bottom: 0.8em;"><strong style="font-weight: 600;">Watch mode.</strong> An experimental <code>--watch</code> <a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56ruxEVXc6zdHvXDjQWO6GWV1hsJF2jnSDVCPPE-2B46-2BEXw-3D-3DGDsQ_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiE85sNToKZbhkQgdcYiNYy09pXE7Mss-2FT-2BWWmPTtE16FZDw-2BBxRWItDkkpGsOs0l85XA7Qp0gH-2Bt0qMBFSdiqHiiwWyPYk8tkl2t-2FxUvceWQ4yFDgDNYGjAHwkbjkPy4W5Dwi-2F8YtQ6t6CA7T24-2Bj2-2Fw-3D-3D" style="text-decoration: none; color: #20824B; font-weight: 600; border-bottom-width: 1px; border-bottom-color: #ddd; border-bottom-style: solid;">Nodemon</a>-esque mode for 'watching' files and restarting the process when imported files change. <em>(<a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56o5GgJdUG7iJcRdGpnWZ0KvXQBk9obJNHL5RxWsre5iZA-3D-3DqTrl_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiEpVnUiEbvkWa5gPeGUckbnl9bUC7BL2PhmnRo275gLDEvN-2FFEfGitBp9n7jRumgwOZAQXI29Up2JuJ2xhXWd5CQAYgr-2F6BF2YHBDEC6NQ1nXPj92WMk5Gg-2BsumDorduRpqNunGZ0-2FvoijqYWTY9i5fg-3D-3D" style="text-decoration: none; color: #20824B; font-weight: 600; border-bottom-width: 1px; border-bottom-color: #ddd; border-bottom-style: solid;">Node 18.11.0 (LTS)</a> also gains this feature.)</em></p>
</li>
<li style="color: #222; line-height: 1.35em; margin-bottom: 12px; margin-left: 0px !important;">
<p style="margin-top: 0.8em; margin-bottom: 0.8em;"><strong style="font-weight: 600;">HTTP KeepAlive is now enabled by default.</strong> It's always been an option but now it's set to <code>true</code> by default. The default duration is 5 seconds.</p>
</li>
<li style="color: #222; line-height: 1.35em; margin-bottom: 12px; margin-left: 0px !important;">
<p style="margin-top: 0.8em; margin-bottom: 0.8em;"><strong style="font-weight: 600;">V8 10.7.</strong> Node bumps up to the latest version of the V8 engine. It's not a big jump but does introduce <code>Intl.NumberFormat</code>.</p>
</li>
<li style="color: #222; line-height: 1.35em; margin-bottom: 12px; margin-left: 0px !important;">
<p style="margin-top: 0.8em; margin-bottom: 0.8em;">The WebCrypto API is now stable (with the exception of Ed25519, Ed448, X25519, and X448).</p>
</li>
<li style="color: #222; line-height: 1.35em; margin-bottom: 12px; margin-left: 0px !important;">
<p style="margin-top: 0.8em; margin-bottom: 0.8em;">Some other dependency upgrades, such as to npm 8.19.2 and llhttp 8.1.0.</p>
</li>
</ul>
<p style="margin-top: 0.8em; margin-bottom: 0.8em;">As things stand, we're in the odd position of Node 18.x and 19.x <em>both</em> being the 'Current' release, but Node 18 begins its role as an LTS release on October 25. More info in <a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56oOd3d9g7syJCuuzhYGU5q0P3DGKSAer-2Flh-2BmEEnII5wA-3D-3DH0Dx_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiEiHRRXVZ11Fq4nkMyyEbbC1wA2pRpHWhC4llcA-2BYJ6q9ueHZ017rEmrt3CV1OmltIU9mtUtBHaGAZR5jSE4aE69XdpM-2F0LdDnoHRUT8GnHy-2BfMNXad5w-2Br1ntIspk30NhtUmq4-2BSMewSushKjXWBdHQ-3D-3D" style="text-decoration: none; color: #20824B; font-weight: 600;">the release policies here</a> and the OpenJS Foundation <a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56qrMesfWVIK5SSGCZQ08d5nHLQmOP4ATLCQxUZOYB3ciw-3D-3D7mDZ_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiE9ONJiDUK-2FDTkiyXGqSRBferEuU50kXhjgqmiycgdeboszCUd5meSODSQD6i94wjUjxydF9vILLHutXJVOrX33LbaUEFZaDkM5ii-2BiUiqkJwoRTA7cN7fDMSrC-2BQDqJfHznVo0Bw4-2Bk1GVBbEuhARxw-3D-3D" style="text-decoration: none; color: #20824B; font-weight: 600;">has extra detail in its release post</a> too.</p>
</td></tr></table>
<!-- normal content section -->
<table width="100%" cellpadding="0" cellspacing="0" class="content el-content " style="color: #222; border-collapse: collapse;"><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse; padding-top: 0px; padding-right: 15px; padding-bottom: 0px; padding-left: 15px;"><p style="margin-top: 0; font-size: 0.8em; text-transform: uppercase; color: #999; margin-bottom: 0.8em;">The Node.js Team</p></td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" class="el-item item " style="border-collapse: collapse; margin-bottom: 4px;"><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse; padding-top: 0px; padding-right: 15px; padding-bottom: 0px; padding-left: 15px;">
<a target="_blank" href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56r6zTNF2xDv1ApolVrZ4iZ0HiftFJvNFqLdyt1qEIYOmw-3D-3DRMCc_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiE41hCIBcXkIer6RlARsr61xFJRVEQg0uvdeFx4QkB9sayXkded6W4yvqCkph-2BCeOuA3AS9pg25IkcniP4slO9Ld-2B5D1RLxw95o1VkwLwniSFUyUA2-2F3VpcbAALDBF8GMNgK4X4-2FHyjD4gfRv7nrJP1g-3D-3D" style="text-decoration: none; color: #20824B; border-bottom-width: 1px !important; border-bottom-color: #ddd !important; border-bottom-style: solid !important;"><img src="https://copm.s3.amazonaws.com/f6a5d26d.png" width="95" height="95" style="padding-top: 12px; padding-left: 12px; outline: none; height: auto; text-decoration: none; max-width: 100%; line-height: 100%; border-top-width: 0; border-right-width: 0; border-bottom-width: 0; border-left-width: 0;" align="right" alt="" class="som"></a>
<p class="desc" style="color: #222; margin-top: 0.8em; margin-bottom: 0; line-height: 1.6em !important; font-size: 15px !important;"><span style="font-weight: 500 !important; font-size: 18px !important; color: #000;" class="mainlink"><a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56r6zTNF2xDv1ApolVrZ4iZ0HiftFJvNFqLdyt1qEIYOmw-3D-3DiAJ-_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiEnTYwb0bfkKt-2BTsRdM05zg1psxx-2B0TUxf-2B5ReFuFSUxaQhVo1mr86cfdMKIPpA-2Bvj5TmeS5N-2By2FMfRISarHe8lYAp3iM-2F2pCCHU89FDlDIbdy8DTU85grvwXdcP0Zj-2BHCC9OH5f1xhfApbr-2BtvTu8A-3D-3D" title="dashboard.memetria.com" style="text-decoration: none; color: #20824B; border-bottom-width: 1px !important; border-bottom-color: #ddd !important; border-bottom-style: solid !important; font-size: 1.1em; line-height: 1.4em;">Memetria: Secure, Scalable, Full-Featured Redis 7 Hosting</a></span> — The latest Redis features, instrumented and scaled with the tools teams need as they grow.</p>
<p class="name" style="color: #aaa !important; margin-top: 4px; margin-bottom: 0.8em; text-transform: uppercase; font-size: 12px; line-height: 1.2em;">Memetria <span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em; border-radius: 2px; background-color: #ff8; color: #997 !important; padding-top: 1px; padding-right: 4px; padding-bottom: 1px; padding-left: 4px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: #eeb; border-right-color: #eeb; border-bottom-color: #eeb; border-left-color: #eeb; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid;" class="tag-sponsor">sponsor</span></p>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" class="el-item item " style="border-collapse: collapse; margin-bottom: 4px;"><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse; padding-top: 0px; padding-right: 15px; padding-bottom: 0px; padding-left: 15px;">
<p class="desc" style="color: #222; margin-top: 0.8em; margin-bottom: 0; line-height: 1.6em !important; font-size: 15px !important;"><span style="font-weight: 500 !important; font-size: 18px !important; color: #000;" class="mainlink"><a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56oiIcmdO2yLfzc-2B2dmuwutChcZrUvs-2FJsMh-2Fbx4RlOp-2Bg-3D-3DjC_V_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiEMbvGDsLC0D1Uxd-2BHK5i6FxjF9-2BDW-2Bm1TOiyFLdO96D4amv1GgN10JVLdZm54hEwMmuudjjakVDPtd4Kfd3pHNl1Nfj1X0YVM-2FkHMmTzl0xGEmk0-2Fc23UENZS-2Fqa-2BYLvjCCfet68lrKA5Slwz-2BqnMQg-3D-3D" title="snyk.io" style="text-decoration: none; color: #20824B; border-bottom-width: 1px !important; border-bottom-color: #ddd !important; border-bottom-style: solid !important;">Choosing the Best Node.js Docker Image</a></span> — If you feel tempted to just throw <code style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: #44cc00; border-right-color: #44cc00; border-bottom-color: #44cc00; border-left-color: #44cc00; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; background-color: #fafffa;">FROM node</code> into your Dockerfile, think again there are other options to consider.</p>
<p class="name" style="color: #aaa !important; margin-top: 4px; margin-bottom: 0.8em; text-transform: uppercase; font-size: 12px; line-height: 1.2em;">Liran Tal (Snyk) </p>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" class="el-item item video" style="border-collapse: collapse; margin-bottom: 4px;"><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse; padding-top: 0px; padding-right: 15px; padding-bottom: 0px; padding-left: 15px;">
<p class="desc" style="color: #222; margin-top: 0.8em; margin-bottom: 0; line-height: 1.6em !important; font-size: 15px !important;"><span style="font-weight: 500 !important; font-size: 18px !important; color: #000;" class="mainlink">▶  <a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56qEpyR0CkDGEzK0tRuGFlSvvWO8Ztem5Ty7OJokEMfauQ-3D-3DGt24_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiECvpY8GWhA5iH5KCmrSjup4rXJ3bXNCQEc61LrXRflOsQgMlzsU73Q6zIKHgsA33IN7O-2FOJVw-2Bt-2BqqguiMxNW096so9eUJ5V9VTD0QNiooeEItxwOhpaF-2F7kIrJp-2BQmv98wUVgdAFuoxruBYE-2FMJahA-3D-3D" title="www.youtube.com" style="text-decoration: none; color: #20824B; border-bottom-width: 1px !important; border-bottom-color: #ddd !important; border-bottom-style: solid !important;">Effortless End-to-End Type-Safety with Phero</a></span> — A demonstration of <a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56o7nEYk0ZLSUtFq-2BAYb91c-2B4dnOuqNDG5GMudFLW-2FUDrw-3D-3Dd4VO_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiEORUVm-2BZJ2XcN22VonQLtBmuAWao9OZYseUY20aANHVf8CDV3rrpRp9Eqh7hgq3klG3d5QoPMoJi1lHWlqqowV6TXKksTN9N9U4gT4hAcRUwDAs107tUxsi2vSTin7TPPK2rAr8NdN-2FX9WWEU8TYD3g-3D-3D" style="text-decoration: none; color: #20824B; border-bottom-width: 1px !important; border-bottom-color: #ddd !important; border-bottom-style: solid !important;">a library</a> providing a type-safe TypeScript-based way to communicate between frontend and backend. <a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56pu57-2FqlCUJj39kXRQgxghrMPmQcqzfjuqdd6mUvMolwA-3D-3DmCHK_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiEErCjJ0vDOOc1JpHffSWIUcUkQ0eEvhX9b9dA9cmmA6SMlrbIfNFdBhOrZKijIOLjV62WLI1hkD9SxdPm5kXKxHZURN-2F0wbYkYUuHnGb7k0fuAwEBCj5lhWmPvk0TOMketN0VM5m1o-2FIuA4aNSTkxGQ-3D-3D" style="text-decoration: none; color: #20824B; border-bottom-width: 1px !important; border-bottom-color: #ddd !important; border-bottom-style: solid !important;">GitHub repo</a>.</p>
<p class="name" style="color: #aaa !important; margin-top: 4px; margin-bottom: 0.8em; text-transform: uppercase; font-size: 12px; line-height: 1.2em;">Jasper Haggenburg </p>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" class="content el-md " style="border-collapse: collapse;"><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse; padding-top: 0px; padding-right: 15px; padding-bottom: 0px; padding-left: 15px;">
<p style="margin-top: 0.8em; margin-bottom: 0.8em;"><strong style="font-weight: 600;">IN BRIEF:</strong></p>
<ul>
<li style="color: #222; line-height: 1.35em; margin-bottom: 12px; margin-left: 0px !important;">
<p style="margin-top: 0.8em; margin-bottom: 0.8em;"><a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56o5GgJdUG7iJcRdGpnWZ0KvXQBk9obJNHL5RxWsre5iZA-3D-3DXRY7_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiEwIwBXpMOErZx-2FqGnNqcQecfKHlhtTIqomF-2FePIShGjHReIDdWcAkCJ6nwLET7n1OZItRIpVN9UKvnmQ5nSahyFl3UHLyX5b-2BaOhkrNypLnq45FWXeCC2C6zSd7J-2FLZTQH91JgT0KaY9ZKKJWsWW7zw-3D-3D" style="text-decoration: none; color: #20824B; font-weight: 600; border-bottom-width: 1px; border-bottom-color: #ddd; border-bottom-style: solid;">Node 18.11.0 (Current)</a> was released last week. It shares Node 19's new <code>--watch</code> feature and Node 18 will become an active LTS release <em>next week.</em></p>
</li>
<li style="color: #222; line-height: 1.35em; margin-bottom: 12px; margin-left: 0px !important;">
<p style="margin-top: 0.8em; margin-bottom: 0.8em;">The OpenJS Foundation has notified us that <a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56qUV-2BSh1TLqu4nUC47bRFmODv9-2F8ge44Nxnet2bo-2B9vCQ-3D-3Dxc2B_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiEMK0qbk8DOZO0rg-2Fn70aUcETXWQawfUrJRDUa-2FG-2BJh6-2FQ8HHBRPcaX3AHpFhlqf07eaxDpaoeTwzl0Fe5krdfkPsO0RgVCHDEueTASGaM4ZPuIhjM-2B6mCvYm8gRLigIGWdS8hiEZHtj9-2FsAYHKPviag-3D-3D" style="text-decoration: none; color: #20824B; font-weight: 600; border-bottom-width: 1px; border-bottom-color: #ddd; border-bottom-style: solid;">there's a big discount on two Node.js courses and certifications</a> until October 25.</p>
</li>
</ul>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" class="el-item item " style="border-collapse: collapse; margin-bottom: 4px;"><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse; padding-top: 0px; padding-right: 15px; padding-bottom: 0px; padding-left: 15px;">
<p class="desc" style="color: #222; margin-top: 0.8em; margin-bottom: 0; line-height: 1.6em !important; font-size: 15px !important;"><span style="font-weight: 500 !important; font-size: 18px !important; color: #000;" class="mainlink"><a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56pgbt-2FySMq6TE09iMZu2f31rvDqLcToe-2F30wzttQjUAzA-3D-3DBjPi_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiE7W2Dr5r4L3sT7m5tNPcmGBoMgsI3-2FKxQEmXnfN2eC3AZyuxc9rY3cQvwR3JALkgz9uSi-2Bd-2FhPUlDFIq387uc2dQbrYlm4CLRbnNPzSE-2BcghrotWXVBAdtEVoie99d3Ea2omPTXNoSBsH-2BwYr8Qm1lQ-3D-3D" title="www.lloydatkinson.net" style="text-decoration: none; color: #20824B; border-bottom-width: 1px !important; border-bottom-color: #ddd !important; border-bottom-style: solid !important;">PowerShell, NPM Scripts, and Silently Dropped Arguments</a></span> — If youre a Powershell user and youre finding that some arguments arent being passed to your Node scripts run through <code style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: #44cc00; border-right-color: #44cc00; border-bottom-color: #44cc00; border-left-color: #44cc00; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; background-color: #fafffa;">npm run</code>, Lloyd explains whats going on.</p>
<p class="name" style="color: #aaa !important; margin-top: 4px; margin-bottom: 0.8em; text-transform: uppercase; font-size: 12px; line-height: 1.2em;">Lloyd Atkinson </p>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" class="el-item item video" style="border-collapse: collapse; margin-bottom: 4px;"><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse; padding-top: 0px; padding-right: 15px; padding-bottom: 0px; padding-left: 15px;">
<p class="desc" style="color: #222; margin-top: 0.8em; margin-bottom: 0; line-height: 1.6em !important; font-size: 15px !important;"><span style="font-weight: 500 !important; font-size: 18px !important; color: #000;" class="mainlink">▶  <a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56r8HVF8il4M7AdNF0iaS22Hww2wbq5ARCcyx3e8SMxYQA-3D-3DEM8X_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiEBtqmX6njGwwn4fsBv5dCE6cKsTlCIxFUhw5oKxZGMrNPRwb4mMR5KJMNVPYqt-2BZKeWHrKAGIObaPPga1hxZPWwiGNghddutMyGqNdHxGq3QWRO1DlnDz8R-2BfX6R94odYC4bi7BcZvpA5VCmP25Yuww-3D-3D" title="www.youtube.com" style="text-decoration: none; color: #20824B; border-bottom-width: 1px !important; border-bottom-color: #ddd !important; border-bottom-style: solid !important;">A Next.js Crash Course</a></span> — There are a lot of such videos, but this is a well recorded and up to date one so it might help you get the lay of the Next.js land if youre just starting out with it. <em>(2 hours 30 minutes)</em></p>
<p class="name" style="color: #aaa !important; margin-top: 4px; margin-bottom: 0.8em; text-transform: uppercase; font-size: 12px; line-height: 1.2em;">Anson Foong </p>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" class="el-item item " style="border-collapse: collapse; margin-bottom: 4px;"><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse; padding-top: 0px; padding-right: 15px; padding-bottom: 0px; padding-left: 15px;">
<p class="desc" style="color: #222; margin-top: 0.8em; margin-bottom: 0; line-height: 1.6em !important; font-size: 15px !important;"><span style="font-weight: 500 !important; font-size: 18px !important; color: #000;" class="mainlink"><a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56pJ8YlJIJ9WvtJBwvcosmZf31RLtinTKHpBKyBhSUvorQ-3D-3D59Oa_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiEi9roa4mmLsgNtqOzeNn01J1YAbtCNH-2B8aloOjPK88QUP7vc4LZx1D8-2B-2FB5yK6nNGPtm0UNeY5OCRmaCPZZz4DJQ3FZOMx0PT6NkCjvx5JGa7EvcYdYvbrIW3nSigx3-2FaNVARy9iDf0LSdGd4Y89Tmw-3D-3D" title="serpdog.io" style="text-decoration: none; color: #20824B; border-bottom-width: 1px !important; border-bottom-color: #ddd !important; border-bottom-style: solid !important;">Web Scraping Google Maps with Puppeteer</a></span> — Wed be surprised if youd get away with this for long given theres an official API, but its always interesting to see how its done.</p>
<p class="name" style="color: #aaa !important; margin-top: 4px; margin-bottom: 0.8em; text-transform: uppercase; font-size: 12px; line-height: 1.2em;">Darshan Khandelwal </p>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" class="el-item item " style="border-collapse: collapse; margin-bottom: 4px;"><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse; padding-top: 0px; padding-right: 15px; padding-bottom: 0px; padding-left: 15px;">
<p class="desc" style="color: #222; margin-top: 0.8em; margin-bottom: 0; line-height: 1.6em !important; font-size: 15px !important;"><span style="font-weight: 500 !important; font-size: 18px !important; color: #000;" class="mainlink"><a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56oZg-2FkiLgU2V8f4woEYibxJHD8uLrNzPXOs1Ag1vo6JFQ-3D-3DzHHQ_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiEb4ODrRNEvsB4u6ffP-2BaP1XqgSFWAga6Slj8yjWtDlzkdrHRHZWYvQB4jtY1dirZvLRoO5bOBJWU-2FOYF-2BVRp9bQLRSzvFYzsJa-2FyZmh7NbOAwC5USrjB2dD9bW53LEQ-2BCNBjeqKZYeIW6OC4EbAU2wQ-3D-3D" title="snyk.io" style="text-decoration: none; color: #20824B; border-bottom-width: 1px !important; border-bottom-color: #ddd !important; border-bottom-style: solid !important;">Your Step by Step Guide to Containerizing Node.js Web Applications</a></span></p>
<p class="name" style="color: #aaa !important; margin-top: 4px; margin-bottom: 0.8em; text-transform: uppercase; font-size: 12px; line-height: 1.2em;">Snyk <span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em; border-radius: 2px; background-color: #ff8; color: #997 !important; padding-top: 1px; padding-right: 4px; padding-bottom: 1px; padding-left: 4px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: #eeb; border-right-color: #eeb; border-bottom-color: #eeb; border-left-color: #eeb; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid;" class="tag-sponsor">sponsor</span></p>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" class="miniitem item " style="border-collapse: collapse; margin-bottom: 4px;"><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse; padding-top: 0px; padding-right: 15px; padding-bottom: 0px; padding-left: 15px;">
<p class="desc" style="color: #5a5a5a; line-height: 1.5em !important; font-size: 0.9em !important; margin-top: 8px; margin-right: 0px; margin-bottom: 6px; margin-left: 0px;"><span style="font-weight: 600; font-size: 1.0em; color: #000;"><a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56pbGJPd9-2Fk9QMCO9UqoTzlbeOrMrbj6gcPiBzVy3BuW8g-3D-3DMHs5_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiEQY9mKcMppAe8QFvMPKT3WKSEU7aO7GXRWkrX4UTIPKvaP7t30qqjsvx7Tj6dz5MV5BDR1m9IjyX0LYtNjEqGMZmomHOfZi0Jn2joYlUro7UkBlPBC-2BChB1aYflkjYpZcmbHbjzL2jJP3ar9ds38xLw-3D-3D" style="text-decoration: none; color: #20824B; font-size: 1.2em !important; font-weight: 400; border-bottom-width: 1px; border-bottom-color: #ddd; border-bottom-style: solid;">Sending UDP Messages without DNS Lookups</a></span>
<br><span class="name" style="color: #bbbbbb !important; margin-top: 4px; text-transform: uppercase; font-size: 12px; line-height: 1.2em;">Herman J. Radtke III</span>
</p>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" class="miniitem item " style="border-collapse: collapse; margin-bottom: 4px;"><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse; padding-top: 0px; padding-right: 15px; padding-bottom: 0px; padding-left: 15px;">
<p class="desc" style="color: #5a5a5a; line-height: 1.5em !important; font-size: 0.9em !important; margin-top: 8px; margin-right: 0px; margin-bottom: 6px; margin-left: 0px;"><span style="font-weight: 600; font-size: 1.0em; color: #000;"><a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56qnkx7zCeqBic9p68wBkQfUE-2BzMKZCr0iiPuvv3WyCOuw-3D-3Dz1E7_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiEQTNbbCohlDVOQmzdJrngdW81lDdWUUXzVPWff4zPdFL7O2WTlvJ-2BHBW1Q0OLzA-2Bai-2B8wLqjgbdqMwAEvbr6PmYGGX80JegH-2Fl5kh-2FI44f-2BIkEc56lCLRw88HBpyJ3BGUtbWvKJK0263ue2bv8m28hg-3D-3D" style="text-decoration: none; color: #20824B; font-size: 1.2em !important; font-weight: 400; border-bottom-width: 1px; border-bottom-color: #ddd; border-bottom-style: solid;">How Wix Uses Threading in Node Apps to Cut Kubernetes Pod Costs</a></span>
<br><span class="name" style="color: #bbbbbb !important; margin-top: 4px; text-transform: uppercase; font-size: 12px; line-height: 1.2em;">Jessica Wachtel (The New Stack)</span>
</p>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" style="border-collapse: collapse;"><tr><td style="height: 6px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse;"></td></tr></table>
<!-- normal content section -->
<table width="100%" cellpadding="0" cellspacing="0" class="content el-content " style="color: #222; border-collapse: collapse;"><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse; padding-top: 0px; padding-right: 15px; padding-bottom: 0px; padding-left: 15px;"><p style="color: #46483d; font-size: 1.4em; margin-top: 14px; font-weight: 600; border-bottom-width: 4px; border-bottom-color: #eeeeee; border-bottom-style: solid; line-height: 1.4em; display: inline-block; margin-bottom: 10px;">🛠 Code &amp; Tools</p></td></tr></table>
<table width="100%" class="el-fullwidthimage " cellpadding="0" cellspacing="0" style="border-collapse: collapse;"><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse;">
<a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56obUL9N28GQk2jDIabY38rWiGYPofllyLLFcoRk-2B6PyWw-3D-3DZwDA_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiEMxB1Ex0Rb9NunayuZXgdiOXJ5q77sbWlJ-2F0LBVwVIwuKxKtNmoRQYO7JObxlRKuFP1wX0FK1s4QJhigO7-2BmaWj58uTiGF1Tc4FtQ8n9QBEippmidDWfpRJGpPoK0yVl4Q2absvQjm7l5xhGvO2qSPQ-3D-3D" style="text-decoration: none; color: #20824B;"><img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ny0bnuedwfudc7fhqojv.jpg" alt="" width="640" style="border-top-color: #dddddd; border-top-style: solid; border-bottom-color: #dddddd; border-bottom-style: solid; outline: none; height: auto; text-decoration: none; max-width: 100%; line-height: 100%; width: 100%; border-top-width: 3px; border-right-width: 0; border-bottom-width: 3px; border-left-width: 0;"></a>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" style="border-collapse: collapse;"><tr><td style="height: 2px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse;"></td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" class="el-item item " style="border-collapse: collapse; margin-bottom: 4px;"><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse; padding-top: 0px; padding-right: 15px; padding-bottom: 0px; padding-left: 15px;">
<p class="desc" style="color: #222; margin-top: 0.8em; margin-bottom: 0; line-height: 1.6em !important; font-size: 15px !important;"><span style="font-weight: 500 !important; font-size: 18px !important; color: #000;" class="mainlink"><a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56obUL9N28GQk2jDIabY38rWiGYPofllyLLFcoRk-2B6PyWw-3D-3DVv04_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiEYJooQOIMS3B1eG259-2BgO711KOnAMlYa4vQ-2BFjil81wOKdBTc-2Bpy5XEmhlSm2qnFiqILBkZwp77Yq-2BJnHdRKzQwQQHUU0WAsYg2fdPMhFz1fSto5-2FclJqiiL-2Fii4J-2FEiXuq0A-2BQfOQP9HvuXI9KUgaw-3D-3D" title="www.caoccao.com" style="text-decoration: none; color: #20824B; border-bottom-width: 1px !important; border-bottom-color: #ddd !important; border-bottom-style: solid !important;">Javet 2.0.0: Embed Node and V8 in Java Apps</a></span> — Lets you spin up V8 interpreters or full Node.js runtimes within JVM-based apps. Theres <a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56qZBRT-2FC8gRDWONKGBZP-2FrlOzhcUwLUeh60If-2Fad1MFaQ-3D-3Dpuu8_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiEmjagHflkwe3kz5g7rZVtxY-2Bsq8pKK60-2BhYFt-2FTKjJA-2Br0ujFC2ySkSjtyQODkd3NJxOEJ07XfGIe-2BDRSStsKnl7a54dJfIZnoLKEvyLv8uyEoDd5XBKVpCSznYme31Q-2BW2IEDUCiybcDFjAGtPsmYQ-3D-3D" style="text-decoration: none; color: #20824B; border-bottom-width: 1px !important; border-bottom-color: #ddd !important; border-bottom-style: solid !important;">a slide presentation</a> to sell you on the idea and demonstrate how the integration works. <em>(The name Javet comes from Java, V, and Eight.)</em></p>
<p class="name" style="color: #aaa !important; margin-top: 4px; margin-bottom: 0.8em; text-transform: uppercase; font-size: 12px; line-height: 1.2em;">Sam Cao </p>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" class="el-item item " style="border-collapse: collapse; margin-bottom: 4px;"><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse; padding-top: 0px; padding-right: 15px; padding-bottom: 0px; padding-left: 15px;">
<p class="desc" style="color: #222; margin-top: 0.8em; margin-bottom: 0; line-height: 1.6em !important; font-size: 15px !important;"><span style="font-weight: 500 !important; font-size: 18px !important; color: #000;" class="mainlink"><a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56pmi-2Foyxl43aHHHBd8Ih7RZN0-2FFTRrhuA2A2W-2BW4nCe2w-3D-3DaqiY_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiEaOinXu-2B4F8eHBhAJ1pAxJmXAdeQJYH6dSqx39Rkgb6xv3uD06e7MQXFuPzjBKRySIAd08x9nmzuPI2po-2B6K-2BggdtQAbL0Gq9-2F4CMnlAhiDRxk-2FrnQe7D9bRTNTwj8llKlbzXk380RUsAtPkI5-2FIyaA-3D-3D" title="github.com" style="text-decoration: none; color: #20824B; border-bottom-width: 1px !important; border-bottom-color: #ddd !important; border-bottom-style: solid !important;">Editly 0.14.0: Declarative Command Line Video Editing</a></span> — Brings Node and FFmpeg together to let you more programatically edit and construct videos instead of wrangling with arcane <code style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: #44cc00; border-right-color: #44cc00; border-bottom-color: #44cc00; border-left-color: #44cc00; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; background-color: #fafffa;">ffmpeg</code> command line options.</p>
<p class="name" style="color: #aaa !important; margin-top: 4px; margin-bottom: 0.8em; text-transform: uppercase; font-size: 12px; line-height: 1.2em;">Mikael Finstad </p>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" class="el-item item " style="border-collapse: collapse; margin-bottom: 4px;"><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse; padding-top: 0px; padding-right: 15px; padding-bottom: 0px; padding-left: 15px;">
<p class="desc" style="color: #222; margin-top: 0.8em; margin-bottom: 0; line-height: 1.6em !important; font-size: 15px !important;"><span style="font-weight: 500 !important; font-size: 18px !important; color: #000;" class="mainlink"><a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56qDmTAnhDeqHG5g4bhdOnOl-2Br9ql0hDRnWc0zkvjvOBag-3D-3DFzJy_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiEwFgMBPol2y4XWfrJGPDuKTB8sPjlanyrhwLnjzAq3uUm2XqJGoJ05wcauSDf9VM1xOqCY4kQSrepo0APylG1GdmOU-2FCBrymMr4HFU-2F0YIQ-2FdogieX3DdViTGMEDWRaCPbN3dru9lEPA7GvF6d4CNKA-3D-3D" title="www.courier.com" style="text-decoration: none; color: #20824B; border-bottom-width: 1px !important; border-bottom-color: #ddd !important; border-bottom-style: solid !important;">Send Email, Push and SMS with Smart Routing, with Just 8 Lines of Code</a></span> — Are you stuck using marketing tools like salesforce to contact your users? Send notifications from right within your application using the Courier API.</p>
<p class="name" style="color: #aaa !important; margin-top: 4px; margin-bottom: 0.8em; text-transform: uppercase; font-size: 12px; line-height: 1.2em;">Courier.com <span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em; border-radius: 2px; background-color: #ff8; color: #997 !important; padding-top: 1px; padding-right: 4px; padding-bottom: 1px; padding-left: 4px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: #eeb; border-right-color: #eeb; border-bottom-color: #eeb; border-left-color: #eeb; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid;" class="tag-sponsor">sponsor</span></p>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" class="miniitem item " style="border-collapse: collapse; margin-bottom: 4px;"><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse; padding-top: 0px; padding-right: 15px; padding-bottom: 0px; padding-left: 15px;">
<p class="desc" style="color: #5a5a5a; line-height: 1.5em !important; font-size: 0.9em !important; margin-top: 8px; margin-right: 0px; margin-bottom: 6px; margin-left: 0px;"><span style="font-weight: 600; font-size: 1.0em; color: #000;"><a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56oi4WBOWKYkFSHAV9UWnU66V2qF9pwTUxOY-2BtVkmsVhqw-3D-3DQqbG_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiEmcF7sRkm-2FtgysFoOOaCMx7ERrB-2FV-2BU9kXphPEkd5FzKU0XWQBCaJ3oPGFJnxLnlywOr-2BAjLFHmoGpmwjOQgV5tSMzfn4k46mR4q8h3VbgkqSu5-2B9xfKf1-2BzkRu-2B7NPLVHMb1y-2FzDWwGxXVAz6XbEjg-3D-3D" style="text-decoration: none; color: #20824B; font-size: 1.2em !important; font-weight: 400; border-bottom-width: 1px; border-bottom-color: #ddd; border-bottom-style: solid;">lady-gg: Simple TypeScript gRPC Client</a></span>
<br><span class="name" style="color: #bbbbbb !important; margin-top: 4px; text-transform: uppercase; font-size: 12px; line-height: 1.2em;">Mish Ushakov</span>
</p>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" class="content el-md flat" style="border-collapse: collapse;"><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse; padding-top: 0px; padding-right: 15px; padding-bottom: 0px; padding-left: 15px;">
<ul style="padding-left: 0; margin-left: 0px; list-style-type: none; list-style-position: inside;">
<li style="color: #222; line-height: 1.35em; margin-bottom: 12px; margin-left: 0px !important;">
<p style="margin-top: 0.8em; margin-bottom: 0.8em;"><a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56qOeR8dkPkAQ0Jc3M1LXMsC2n-2B4DdaMaRDxoanihfYO4Q-3D-3DlftC_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiEHpVuV0GjA3o-2BrwQOX0yXSY3B5t4FT9Hc3pZG70HAX-2BIVsZwXerWCC7PBmaQEbu-2FnK9MczZAUIomrs50pGNGJkpiQ233VQn1njoXpwSh3W9Dd-2BnVr4l8cVJLI9Yf9FRcQq5YhDrHkNmBLtUka9LlxzQ-3D-3D" style="text-decoration: none; color: #20824B; font-weight: 600; border-bottom-width: 1px; border-bottom-color: #ddd; border-bottom-style: solid;">Awilix 8.0</a><br>
↳ Inversion of Control (IoC) container for Node.</p>
</li>
<li style="color: #222; line-height: 1.35em; margin-bottom: 12px; margin-left: 0px !important;">
<p style="margin-top: 0.8em; margin-bottom: 0.8em;"><a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56rvyEVtR04BspjpessX7NIiAFfQ-2FNALchpdiWJ9GoGxPg-3D-3DAzJx_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiEEGs-2FbNKfalgc1llqVE3T47xA8AMsJvDfWz8SHuluBer7ZwbLAnGKohGXwU4EqODaDd9gBUEiuInU8o2JJLg8jyCoSPsqdoo-2Bo3IS-2FYjaJFNq84QO33QKs-2Bm9ojOMUeB40b0HjTrK0V8UHLlSvzKiBA-3D-3D" style="text-decoration: none; color: #20824B; font-weight: 600; border-bottom-width: 1px; border-bottom-color: #ddd; border-bottom-style: solid;">Nx 15.0</a><br>
↳ Smart, fast and extensible build system.</p>
</li>
<li style="color: #222; line-height: 1.35em; margin-bottom: 12px; margin-left: 0px !important;">
<p style="margin-top: 0.8em; margin-bottom: 0.8em;"><a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56rf0Y-2FoqotQ2mSPow42EISzYgNxsQXct6G8q7K8DEHQPA-3D-3DRgnU_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiERFHUm1paIHDjg5a7FnrOZZjbGb7mCWra1LOKrLsF6FvXb0h-2BnY7PAHXfSKeURuF7QxPIbufWEEZHSbmnUTK8mmrIcQP6VAksbqED6gED426rmi-2F-2Bq5K9pfnc2XzGDzRJ4DeVx4g-2BBw9HfBlsLO14bA-3D-3D" style="text-decoration: none; color: #20824B; font-weight: 600; border-bottom-width: 1px; border-bottom-color: #ddd; border-bottom-style: solid;">Nightwatch 2.4</a><br>
↳ End-to-end testing framework, now with improved component testing support.</p>
</li>
<li style="color: #222; line-height: 1.35em; margin-bottom: 12px; margin-left: 0px !important;">
<p style="margin-top: 0.8em; margin-bottom: 0.8em;"><a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56pgNlYuMEBloKyCCGedODriBujo6avReiHzL6GJEVoEvA-3D-3DtBzD_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiEfo20fupbQYUe8XDME2riwHic86vKaZD3HH96n49T-2FlC3N4PtncOiGyu2lrzEJaPZJ4-2BBx96O2a5pGwY5ZEOhhJX-2BZ4eLGEfBTiuY45RRsQZi9NfektirJd7sYicWxhYGRVGpyWXm6a-2BEZq9Gtm23xA-3D-3D" style="text-decoration: none; color: #20824B; font-weight: 600; border-bottom-width: 1px; border-bottom-color: #ddd; border-bottom-style: solid;">lowdb 4.0</a><br>
↳ Simple to use local JSON database.</p>
</li>
<li style="color: #222; line-height: 1.35em; margin-bottom: 12px; margin-left: 0px !important;">
<p style="margin-top: 0.8em; margin-bottom: 0.8em;"><a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56qQk-2BpW7foBNGey3rLzMuDo62zZWbrczt015Bj1WlNDBQ-3D-3Dm_3Q_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiEsvu6H9oknetn8jsJ2NuiZQd55Mea4qpyKMLbDkN-2BvTC-2FBd-2BWdFatd2Xrl-2BRFWG77QEtsRvdmm8717A0xsHaVh6tNDkLpo6aSpcmVSbIPOX5ook72haTTqHSXZO-2BHmgmhRwEpbRLMMMqVZkapq2gSMA-3D-3D" style="text-decoration: none; color: #20824B; font-weight: 600; border-bottom-width: 1px; border-bottom-color: #ddd; border-bottom-style: solid;">Prisma 4.5</a><br>
↳ Next-generation ORM. There's <a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56qQk-2BpW7foBNGey3rLzMuDo62zZWbrczt015Bj1WlNDBQ-3D-3Dzxz3_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiEjYQc5ZwzDq6kBdevLrTkqLe1i3-2BTFdcCZxtr66gQyhRf-2BpynzjpmMMtda3K7MVyvOhoQG4k4KqM-2FwzqcxtIoNHfF-2F3kvn73uKwg2z88wcmD0RTrbjCK1CTtcw6qGZ7KMo7GGbkR-2FT3ju57ULscV0AA-3D-3D" style="text-decoration: none; color: #20824B; font-weight: 600; border-bottom-width: 1px; border-bottom-color: #ddd; border-bottom-style: solid;">a lot new here.</a></p>
</li>
<li style="color: #222; line-height: 1.35em; margin-bottom: 12px; margin-left: 0px !important;">
<p style="margin-top: 0.8em; margin-bottom: 0.8em;"><a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56rSNyns-2FbWD08foeryG3PRyYFxJow9Y-2FQxDypnkYk9RxA-3D-3DQqJ4_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiEfFX6mz7iCRhL8yCQ2Y7vvv5MBMI-2BSSvYTXJf4BBNL8m-2F5w7VbqSEblu4KLM0cpHtYT9h96A-2Fq-2FkS7ajK-2BnI6iHYTYyY9mzuG5jOFIz563u-2Ftu1RxaPaI5gzf7M-2FduSlja8cPcz8z-2B9bww-2FxpBYibDA-3D-3D" style="text-decoration: none; color: #20824B; font-weight: 600; border-bottom-width: 1px; border-bottom-color: #ddd; border-bottom-style: solid;">PSD 0.3</a><br>
↳ Zero-dependency PSD/Photoshop file parser.</p>
</li>
<li style="color: #222; line-height: 1.35em; margin-bottom: 12px; margin-left: 0px !important;">
<p style="margin-top: 0.8em; margin-bottom: 0.8em;"><a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56qk1TR1e5JGImoRII3FmCcfLMz14acCxyGpPNCcSSCeFg-3D-3D6S8P_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiED-2FFw5PhVn2VvXv5tuIgwfjRpdamvTvVOw3guLR3fUWKFse57-2BDwa-2BZay0G8uZBhzL5yF5iiPKHG1-2FbXLhCC2vaXisfDfVUb2euWpE769d93Lap8NPUHBvm6iC7LgnfcFKcaiYkh4mXIFdoB8ONURlQ-3D-3D" style="text-decoration: none; color: #20824B; font-weight: 600; border-bottom-width: 1px; border-bottom-color: #ddd; border-bottom-style: solid;">fdir 5.3</a><br>
↳ Performance-oriented directory crawler and globbing library.</p>
</li>
<li style="color: #222; line-height: 1.35em; margin-bottom: 12px; margin-left: 0px !important;">
<p style="margin-top: 0.8em; margin-bottom: 0.8em;"><a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56rvrBGWXh8OvpamaF-2F9XMSlJHqCP4LlTvUqxgT-2BRA7vrw-3D-3DbaYf_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiEbZGielvStiDu5-2BXJ4OTyxG-2BNgh-2Fx70o5ouvVAZEExNV2xLG7Q2rvu1h0VfEIh4VAADpnbn0m4y-2Bhh8xVuySBV8bL5rz25sdMElmQmu8DRiL8sR3WKzRrbRBAWF-2BB3KeFndvfWxJTUwojd8AlucJIXQ-3D-3D" style="text-decoration: none; color: #20824B; font-weight: 600; border-bottom-width: 1px; border-bottom-color: #ddd; border-bottom-style: solid;">google-translate 2.0</a><br>
↳ Consume Google's <em>Translate API.</em></p>
</li>
<li style="color: #222; line-height: 1.35em; margin-bottom: 12px; margin-left: 0px !important;">
<p style="margin-top: 0.8em; margin-bottom: 0.8em;"><a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56pqtvru3vdBpFR9D5FHRZdjLjVCbzNTC6R5tpIZaf77WQ-3D-3D8dq9_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiEgqafHY6jFbdTSvNleP6DWWCt4KFWx-2F41A-2BwoIA5LJA2-2FX32uUZpYZTIxnqs77b2IDe0HWMFiZ2ItWb4p25-2F-2B2y8v6L1QEXV-2Bg9d-2Bp7hfqWawGJnRkvqUFBfpg0og6ijGcMgIvH4i3rWQkRVjKgTmQg-3D-3D" style="text-decoration: none; color: #20824B; font-weight: 600; border-bottom-width: 1px; border-bottom-color: #ddd; border-bottom-style: solid;">Mercurius 11.1</a><br>
↳ Implement GraphQL servers with Fastify.</p>
</li>
<li style="color: #222; line-height: 1.35em; margin-bottom: 12px; margin-left: 0px !important;">
<p style="margin-top: 0.8em; margin-bottom: 0.8em;"><a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56riH7Sj-2BEdAeaoRtj7QagB2G8aO8QqwKJkSIhJ96LGiGA-3D-3DI6w2_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiEwmQ4-2FnGqIgbgzSx0ws5zCsrkxFSbWG8rUm5Lnx4jCJsEvlO-2BRHt0nYEf8B6Sol6shjB3b7EmGk-2Bk1njKf3tu1RhXs6g9cVnqfhB8ISfhPwdDStqDRVQQCcsuOHtbLOpxEgx8Nbz6Ia-2FfxHPVaw7-2F2Q-3D-3D" style="text-decoration: none; color: #20824B; font-weight: 600; border-bottom-width: 1px; border-bottom-color: #ddd; border-bottom-style: solid;">Mongoist 2.5.6</a><br>
↳ MongoDB driver built with <code>async</code>/<code>await</code> in mind.</p>
</li>
<li style="color: #222; line-height: 1.35em; margin-bottom: 12px; margin-left: 0px !important;">
<p style="margin-top: 0.8em; margin-bottom: 0.8em;"><a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56p-2Bvcoz4gSZMRw1zLNJmqpVZZpuFsV-2FeU0Qpx5T6NarKQ-3D-3D0k4f_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiEo4tWAkAnpPnGfOF-2FxNkDvuN7BJXTYUf8CxreuKsPc-2BYBXOFS6jSek5B9jso99JKhwS6-2FGJNrodiS5f88AEhyRnTm-2B5UD4HzTauv7UWZh6-2F4TeICFUR8T9hratmCeqPT9f61CRjaQqNrBGa91ROKg0Q-3D-3D" style="text-decoration: none; color: #20824B; font-weight: 600; border-bottom-width: 1px; border-bottom-color: #ddd; border-bottom-style: solid;">Mojo.js 1.7</a><br>
↳ Web framework inspired by Perl's Mojolicious.</p>
</li>
</ul>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" class="el-subtable " style="background-color: #faffe6; margin-top: 15px; border-collapse: collapse;"><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;">
<!-- normal content section -->
<table width="100%" cellpadding="0" cellspacing="0" class="content el-content " style="color: #222; border-collapse: collapse; margin-top: 0 !important;"><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse; padding-top: 0px; padding-right: 15px; padding-bottom: 0px; padding-left: 15px;"><p style="font-weight: 600; font-size: 1.05em; border-bottom-width: 4px; border-bottom-color: #ddeebb; border-bottom-style: solid; line-height: 1.6em; display: inline-block; margin-top: 0.8em; margin-bottom: 0.8em;">💻 Jobs</p></td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" class="miniitem item " style="border-collapse: collapse; margin-bottom: 4px;"><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse; padding-top: 0px; padding-right: 15px; padding-bottom: 0px; padding-left: 15px;">
<p class="desc" style="color: #5a5a5a; line-height: 1.5em !important; font-size: 0.9em !important; margin-top: 8px; margin-right: 0px; margin-bottom: 6px; margin-left: 0px;"><span style="font-weight: 600; font-size: 1.0em; color: #000;"><a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56qasaHBl0gs3SJ3vQnAMnJPU9aLvIxnDyLU79p-2B357hKQ-3D-3DUK0T_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiE9EG-2FlsMwSwzyj-2FLYV-2BOpCArV8KTUQMFghaDDivuU1JkIx7DA2-2FPKV5N6wl3-2BEpVv-2B0dnopBh1oMKWw4fvhotgaNkLd-2B3Mj3KBTQPBvRDNSJkZtmFxN5NrNgl67kyA09TFnW1NOdXRDrEFvWniM30wA-3D-3D" style="text-decoration: none; color: #20824B; font-size: 1.2em !important; font-weight: 400; border-bottom-width: 1px; border-bottom-color: #ddd; border-bottom-style: solid;">Doppler - A SecretOps Platform Built by Developers for Developers</a></span> — Dopplers looking for Sr. Full-Stack Engineers to help shape the future of security devtools. TypeScript, React, Express, and Go, <a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56oSKY6DSK7ZLDxi40W6JInpRJP4scWVGwujayUkTEfTng-3D-3DIJw4_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiEbGvTYlQYJ8HAB-2FAFzp7QyFLv8yUn0YwGp1ugvsWb5tCEeW5TzrwvZkTs2yfYyBD7uDeIhEnR53wDbnTJYCOdAth8jiciYetIA25F4MKNEMMDwBJUP8nZg6q7GrK1EaLvo8lmq4KieLIiKbBovNHaGA-3D-3D" style="font-size: 1.0em !important; text-decoration: none; color: #20824B; font-weight: 400; border-bottom-width: 1px; border-bottom-color: #ddd; border-bottom-style: solid;">apply here</a>.
<br><span class="name" style="color: #bbbbbb !important; margin-top: 4px; text-transform: uppercase; font-size: 12px; line-height: 1.2em;">Doppler</span>
</p>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" class="miniitem item " style="border-collapse: collapse; margin-bottom: 4px;"><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse; padding-top: 0px; padding-right: 15px; padding-bottom: 0px; padding-left: 15px;">
<p class="desc" style="color: #5a5a5a; line-height: 1.5em !important; font-size: 0.9em !important; margin-top: 8px; margin-right: 0px; margin-bottom: 6px; margin-left: 0px;"><span style="font-weight: 600; font-size: 1.0em; color: #000;"><a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56qaMsAShSLTzDOWuV-2FcVV7pRu4mvi82funiiImPN7jlsQ-3D-3D0hXk_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiEkoE7xVBorVeUpPXPHEhhga9ZIqhLuS5gW088J84nNV9kNrKsk3TLBHqmJ9WEqKhK2D1l6PXO9DLG6xJC-2FU8ZtcUxJFCVX8DWL-2Fb4yuQaH6gdKaNXrL4OEw8KACiH4Z3FLqvpGFY5WCiQ3UGR8D-2FLeA-3D-3D" style="text-decoration: none; color: #20824B; font-size: 1.2em !important; font-weight: 400; border-bottom-width: 1px; border-bottom-color: #ddd; border-bottom-style: solid;">Find Tech Jobs with Hired</a></span> — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers.
<br><span class="name" style="color: #bbbbbb !important; margin-top: 4px; text-transform: uppercase; font-size: 12px; line-height: 1.2em;">Hired</span>
</p>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" style="border-collapse: collapse;"><tr><td style="height: 10px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse;"></td></tr></table>
</td></tr></table>
<table width="100%" cellpadding="0" cellspacing="0" style="border-collapse: collapse;"><tr><td style="height: 20px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse;"></td></tr></table>
<table class="footer noarchive" width="100%" cellpadding="0" cellspacing="0" style="border-top-width: 3px; border-top-color: #dddddd; border-top-style: solid; border-collapse: collapse;"><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; border-collapse: collapse; padding-top: 10px; padding-right: 15px; padding-bottom: 10px; padding-left: 15px;">
<p style="line-height: 1.3em; margin-top: 1em; margin-right: 0; margin-bottom: 1em; margin-left: 0;"><strong style="text-transform: uppercase; font-weight: 600;">Got a link for us?</strong> Reply and tell us. We can't include everything but we'll look at anything you send. <em>Thanks!</em></p>
<hr style="width: 60px; margin-left: 0; border-right-width: 0; border-bottom-width: 0; border-left-width: 0; border-top-width: 2px; border-top-color: #ddd; border-top-style: solid;">
<p style="margin-top: 1em; margin-right: 0; margin-bottom: 1em; margin-left: 0;"><strong style="text-transform: uppercase; font-weight: 600;">Sponsorship:</strong> Email <code><a href="mailto:kristina@cooperpress.com" style="color: #000; text-decoration: none;">kristina@cooperpress.com</a></code> for details.</p>
<hr style="width: 60px; margin-left: 0; border-right-width: 0; border-bottom-width: 0; border-left-width: 0; border-top-width: 4px; border-top-color: #6ca629; border-top-style: solid;">
<p style="font-size: 12px; line-height: 18px; margin-top: 1em; margin-right: 0; margin-bottom: 1em; margin-left: 0;">Published by Cooper Press Ltd.<br>Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom</p>
<p style="font-size: 0.9em; margin-top: 1em; margin-right: 0; margin-bottom: 1em; margin-left: 0;"><a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56qPJxxKJ5QkQnu5plIhQMd7jm32aQFaVAX6ptRkyjULJQ-3D-3DeWxs_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiEEPl0SEXF91axrqwEC2oBokLdmWqeOCIIC537mbhMHd-2B0VxNs62uasjPHaU1IknHbyEINnqxjMM2VkFxwYVLb2ZlxFysQ5V7v2sJTZf-2FO1pD7TIGQPb5AsrYBQ8MbWmMj-2B58LRKsXz9dY5SE2F3h-2BBA-3D-3D" style="text-decoration: underline; color: #20824B;">Cancel your subscription</a> or <a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56r2VS7bq5YsZ1xZ3760ZmCZ6VWi-2FtTs5RRBqRDcte3dGA-3D-3DgMfl_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nyFE700vlj1-2FK27spZiPEiET-2Br9lddSxpGdW9pWgz1d5SMPt-2Fe3KQ4OmuqL7LJ4-2Fym2nXyQmuI0D1VkdJOW0df79l2GB0wXm7PR4Ac8i2itGyhK7zdrCusB7Fpou3pttBGEBmNDadBBwdczIlxUrEGgaPqavyN8bvx-2FzpCnFCTlKg-3D-3D" style="text-decoration: underline; color: #20824B;">change your address.</a></p>
</td></tr></table>
</div>
</td></tr>
</table>
<!--[if (gte mso 9)|(IE)]></td></tr></table><![endif]-->
<div id="footer" class="noarchive">
</div>
<!-- hey --><img src="https://nodeweekly.com/open/459/4f439e0f78" width="3" height="1" alt="n" /><!-- hey --><img src="https://u25184427.ct.sendgrid.net/wf/open?upn=VbY9PHrcT8wDX1sMvxaoDeFrnDggj0GS9qRxnZZ16E2kKWMv-2F0YoFNKe2ljrs6sKFjImwUy-2Fv-2F2cQdrb32UmSMoveT2xLj6qPsQWtfVmgGO2pRHfMPPUN7ty1sWIEPM8pd-2B8-2BaYYf-2F-2BzLw3biwQf4dnvS6hIWDsNTyMCJs3BqiZTMgikR-2BDVanVA0ig7GTNtppSdLc0DO7AtD-2FhU-2F2QBtXmajObwto-2BVJM-2BbIezjuB4-3D" alt="" width="1" height="1" border="0" style="height:1px !important;width:1px !important;border-width:0 !important;margin-top:0 !important;margin-bottom:0 !important;margin-right:0 !important;margin-left:0 !important;padding-top:0 !important;padding-bottom:0 !important;padding-right:0 !important;padding-left:0 !important;"/></body>
</html>