289 lines
63 KiB
HTML
289 lines
63 KiB
HTML
|
<!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 you’re 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 you’re a Powershell user and you’re finding that some arguments aren’t 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 what’s 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 you’re 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> — We’d be surprised if you’d get away with this for long given there’s an official API, but it’s always interesting to see how it’s 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 & 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. There’s <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> — Doppler’s 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>
|