251 lines
54 KiB
HTML
251 lines
54 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 Node 16.18.0, an IP info database, turning cron expressions into English, and 2FA with Twilio. | </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;">#458 — October 13, 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-2FNpSIs56o0z9xhskaXR4aYohHPLtwRHfml_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5ouN4IH56AfszUQpxY-2FQ233kp0bjSZhBBVWAB43dgKumQkDW-2BxDFnQIUpvhmEgzSJq-2FMRG00GM7fkZVuPU-2BX8cdg8AGRHUU9Qhw6W67XEMkJVygTdm70Mo9ypNi8N33hgmhM3F6un9s7p1K1Gq-2FunslA-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-2FNpSIs56o-2FofL8qV45mZXO-2Bx2UGhMR-2BEL2eksQgpS5LzPvvH6WGg-3D-3DmCKP_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5o5YIrPGfS0ao-2FM0-2B8PZ0ZaLDd-2BnWtY2qWqIuVb8z0pGBtRWChQEglZvFwt8-2BefVEhdDaOOlTJaQlkAX15gZ-2FVV4RHO99DrEzUaXVAk8dwx7iH16kzSiJif2EMiH-2FCQCRfHyrrdEQnwB0VD-2BvFANLd3A-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_110/e_make_transparent/co_white,e_outline:7/lnopbsxefrqqsjq14fvr.png" style="max-width: 90px; 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="90" alt="Userfront">
|
||
</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-2FNpSIs56r33X99p56c-2BoQkXyvZyCSjTZLSGaJeDgRqxp4BHT6TVg-3D-3DltCD_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5oRZFTEd8tagj1xrExh63vc2fsMxtPBIvBloEnVsPDJDrHJade5bgD5Erq-2BohGpLWflXsRD6G1rKR4ZcrTC8NKlRIZS39NoNHuZi-2Fbc3kySv5bggDbcdEUA1rEfwqlUrKwQfsp3VWqQ9ryFuLkpH43zw-3D-3D" style="text-decoration: none; color: #20824B;"><img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/j5xkf1n4v2tmwakegtkq.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>
|
||
|
||
<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-2FNpSIs56r33X99p56c-2BoQkXyvZyCSjTZLSGaJeDgRqxp4BHT6TVg-3D-3D7AsA_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5ohDVd7ZsmGx0b8o3hOJp83xLWGawB5-2BDej6ckpFx9APA8duJGxBh6ha1Xyz34b30EfRIQWt1WNcfxVG60b6nVJUkao7vuf8CxGtkeJ8vcR0Yp-2FYbxCuxhmKl81SmcZrCTSNppRAt8xw1HSCgXv8RSbg-3D-3D" title="www.npmjs.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;">njt: Quick Navigation to npm Package Resources</a></span> — Provides a rapid way to jump to various destinations related to npm packages (such as a project’s homepage, repo, issues, or even a package cost estimation). You can install it for use in your terminal, as a Chrome or Firefox search, via VS Code’s command palette (via <a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56ryfaycpSzGGyqxNwqw9LCBSYTzJhiY5AB9bYedO1sl-2FQ-3D-3DBDcJ_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5oIYoXE2ib3Xc4aHgoXzXzxx-2FaaHJex-2BWecilx3pK25Nq8XZfYCQn5inqyT2ThP8WIg6A3rkPTGrD8oA4kUqbNBuOJ1p6tke1Kl8Xz540OlpyrHbsxKHQAP6qiCau97XSOdvQk-2BLBBkGmR0Q0jwpkmzg-3D-3D" style="text-decoration: none; color: #20824B; border-bottom-width: 1px !important; border-bottom-color: #ddd !important; border-bottom-style: solid !important;">LaunchX</a>) or you can even <a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56o9M1A10Mvfwp8mxNz3W1wgGS-2FnFRV6K4tM3fUDh9wLwg-3D-3DCLJ4_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5oKcpCWa-2Fp7I5oop-2B-2FyxZKDNfETJ5f0wepxNValAMQqs3-2FFfm1ifhZ6Op7cPZ6AUohGvlZSvHpkyQ1OzwrnZRs5NLWnTppseUMrrWFtpHvLvDq-2FSunmkkUaHgMYmJbjQrWKfNH9fCrpTpuPM-2FdkG35dg-3D-3D" style="text-decoration: none; color: #20824B; border-bottom-width: 1px !important; border-bottom-color: #ddd !important; border-bottom-style: solid !important;">use it directly on the Web here</a>. – <a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56oMXUrVHnshIFIB7xjjTm8CXRQXm7bIE0C0caYkMvui8g-3D-3DGgl1_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5oN-2FZkABGU0huZ2ejRG8agESpJ8745DPTbjTRsDYPhUUtaqEyalQZ6cWlYshrN-2BIy0R41Q4aXWM3oZ-2FSCQW4eyvPFM8yQgLMD2CVMas5XqF6pvu276nRVrHvLZM9v7VEQsECxem4tT763QqXIHUWxAqg-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;">Alexander Kachkaev </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-2FNpSIs56rvexAd1BFzEQ1Z1K-2FR52lz8ve-2BY3LZbSRsOH6g7Eb6lg-3D-3DfXKx_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5oKXxy2YoTpvcndoOelA5icQgneaalcTPkrJT1Qw9-2FjNOpZWevQ0ZXSkQCXdp-2BWyQlX5LtU6OP-2FNBsW7cw76vdP8T9bN850y1-2FgHhjRqqpuEhN0MDj85sVzdtX-2FBdfyyyHJzVc5WuI96wyHSROts3a1g-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;">Knip: Find Unused Files, Dependencies and Exports in TypeScript Projects</a></span> — Knip’s creator tells us it’s Dutch for <em>“cut”</em> which is quite appropriate as it’s a new tool for trimming away things that aren’t being used in your project. If you just want to compare it to similar existing tools, there’s <a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56oszfxENsl48ofro0lCRJPWD789NPruHA1zcfvOG5m-2FnQ-3D-3DI-tJ_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5oFcG2yzQzPp-2Fu6HGH5MceESqDQjFfOG1hL2w144Vayi06RSqqXGhIO4XOtRRjO3-2BU0n3UUkKVVIqXDmvd6aqh0B4Y04rYR-2F3ozmFjoDLSAZzHRe0leu-2Fcwq8TOVsSXB5Vj6Y5MjU7yPWTF1cmW3cu8g-3D-3D" style="text-decoration: none; color: #20824B; border-bottom-width: 1px !important; border-bottom-color: #ddd !important; border-bottom-style: solid !important;">a handy comparison chart</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;">Lars Kappert </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-2FNpSIs56o-2FofL8qV45mZXO-2Bx2UGhMR-2BEL2eksQgpS5LzPvvH6WGg-3D-3DRmzT_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5onIxQQMnyVZK5WzSPovxxvKWOCx8u0rtr-2BWaHng3PMaHaSYLyQVYdsqkI4RBMCdOi6RqI6Q7kOWPfoRUzA1GwQVASZWRceAYg7wQUsnQ-2FugfVupslmbvQN3TeYXDC30UFOvmEJZoTcONsinRwKKKWXw-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://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_200,h_150/ulhdzgena0zcgszxdsks.png" width="110" height="110" 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-2FNpSIs56o-2FofL8qV45mZXO-2Bx2UGhMR-2BEL2eksQgpS5LzPvvH6WGg-3D-3DbGbd_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5oPqRUCCh2651yeMUrVWdPm7HNTb-2FJ0yE89KPgSfsothIbHldh8u7XE5dxw2MENAS5jBFmzPU60sQoMvKxtpi1CeGRK-2FNCE2AXdc0PP9M5ar3pYy7lMvYokZnvps9JOzQ-2FhMgwd-2Bpamb-2BT-2FvAktl8yzw-3D-3D" title="userfront.com" style="text-decoration: none; color: #20824B; border-bottom-width: 1px !important; border-bottom-color: #ddd !important; border-bottom-style: solid !important;">Node Authentication, Simplified</a></span> — In this article, we lay out a new approach to authentication (plus access control & SSO) in Node.js applications.</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;">Userfront <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-2FNpSIs56oChoowk0RSpGq8L5EUdqg6Mk4ViCMqSTPsZZQ6eJXVpQ-3D-3D4x9d_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5oHUKdeIRAXLyZqA25thjsTkUNg6esSCEGjKVwkgVOdNN7-2Fw-2BDJM2ghkEwfk-2BPet-2FzNjUC-2FNmG-2Fp2m47h1aHdtvPg7jvPeif6kpM2ABVI44MFutnhnBik-2FMYV-2BN4OtMl1lAoZCaGUDJtUnXb-2Bxmv5AUw-3D-3D" title="nodejs.org" style="text-decoration: none; color: #20824B; border-bottom-width: 1px !important; border-bottom-color: #ddd !important; border-bottom-style: solid !important;">Node v16.18.0 (LTS) Released</a></span> — Largely backported fixes and tweaks – no big headlines here.</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;">Juan José (Node Core 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;">
|
||
|
||
<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-2FNpSIs56pyRq52wBhP8m2828RL4kN1h65-2F6OQ-2BCbUMzAgjjafJ1A-3D-3Dj_so_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5oqa3o5N6MIZwD68yuI08uap8M81kUq76W-2F-2BRput-2BAGuej6fOLCznj1iYSGms9eBmOH4qc1taMGo-2F9XvqXYQjKDfmhuzZ-2FKoLJyd8xKSK1SYmIVfgusZYkU4CK3-2BDJrCa3GbOWHN91GbgJCTJMfIDJ6w-3D-3D" title="2ality.com" style="text-decoration: none; color: #20824B; border-bottom-width: 1px !important; border-bottom-color: #ddd !important; border-bottom-style: solid !important;">How to Write CommonJS Exports That Can Be Name-Imported from ESM</a></span> — If you’ve ever got tangled up between using CommonJS and ES modules (I sure have!) Dr. Axel clears up a key cross-compatibility concern here.</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;">Dr. Axel Rauschmayer </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-2FNpSIs56oQbdtlpnISQqfDvc3VKWuTdeYDqgTkrAjd63cGYt8oRA-3D-3DXc0V_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5oKXaoDnQFCD8-2Bqr-2FQF2CB4HVAynqEbso6njSdNpJKRjdvCpTZ0te3pVHP5KPhqLTGpUTjQnlVVlpt08QFsDzVaLigsfIMKSAUquq97I3Mwj5qxPjU2ZFVa2gdAL9Xm3ST-2FTSHFf8ZHeS5MTPAZ0jhxQ-3D-3D" title="sprkl.dev" style="text-decoration: none; color: #20824B; border-bottom-width: 1px !important; border-bottom-color: #ddd !important; border-bottom-style: solid !important;">Adding Observability to Jest Tests</a></span> — A look at how to get a bit more out of your Jest-based testing by keeping an eye on things.</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;">Eliran Maman (Sprkl) </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"><span class="pretitle">🔐 </span> <a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56pgBLkiT1NIC9WT7QzIrXzrGWc0wlDwjmnxqTDin9LOLQ-3D-3DF7HQ_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5oRI6p9q8LJzKYWg1WtuXUy83FLHi31XbhQN5ICNtwx3s18PY-2F5a56VvP7KQg7SuUoNA4l0zWz4WPyIfUimxVsVKpMF5SoCyPCg4NN-2FVSZHG-2BaErc7wAwFHZGhTsRCxfhOvwFwxQDNCJjZd-2BHSyfah8Q-3D-3D" title="www.smashingmagazine.com" style="text-decoration: none; color: #20824B; border-bottom-width: 1px !important; border-bottom-color: #ddd !important; border-bottom-style: solid !important;">Node.js Authentication with Twilio Verify</a></span> — If you’re happy using a third party service, bringing two-factor auth into your Express.js app needn’t be too hard. The author demonstrates the creation of a simple app that authenticates users using password-based authentication with an extra layer of OTPs (One-Time Passcodes) powered by Twilio’s <a href="https://u25184427.ct.sendgrid.net/ls/click?upn=MnmHBiCwIPe9TmIJeskmA7mFdqmsIs-2B5Xs-2FNpSIs56pPv6N0F1YQBOwPPrX9Mh7VUUH5v2GYk0G4-2Fc-2BaxXRThQ-3D-3DbSTw_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5oTZ092PLn-2Bfi49blEisJR4kQ-2BQmsoB-2FLQYPQc-2BlbxYfRxBcoyB0bLQd6orLXc1pB-2FoNjwZL5Dy7Q3dFeu-2BWXM4eK7Gf3keU5oZcr89p9U1mS43n7Jz3397emcJr6fgFb1TyCW2utsEL7uDx8nJOab0g-3D-3D" style="text-decoration: none; color: #20824B; border-bottom-width: 1px !important; border-bottom-color: #ddd !important; border-bottom-style: solid !important;"><em>Verify</em></a> service.</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;">Alexander Godwin </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 bordered" 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-2FNpSIs56rvuMP536gYURAk5hBAdy93PhjBcB1VORZKEegDBbPaPg-3D-3D6DlY_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5ock6Z9kNalLVkAp66V4a1CiqvjlQmsH2STN3jxbx8QMI-2BEgVtAB3RQIgbAMUZvJ-2BepV3H3enxUr74Ygi14HpiCHV-2BMsrUGLP-2FM5OO-2BLCtOm0PnP4sKWQof2KYfEDKhWvEYNkTtXsACZ3-2BRVq4VAEGtA-3D-3D" style="text-decoration: none; color: #20824B;"><img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/zlg7sxinigfuwzhxvrzt.jpg" alt="" width="640" style="outline: none; height: auto; text-decoration: none; max-width: 100%; line-height: 100%; width: 100%; border-top-color: #ddd; border-top-style: solid; border-bottom-color: #ddd; border-bottom-style: solid; 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" 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-2FNpSIs56rvuMP536gYURAk5hBAdy93PhjBcB1VORZKEegDBbPaPg-3D-3DoHDU_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5oWlgpwOEEW4WmEIuRbDt2zP6adIbWzMFCSqkcEUE-2B1WeXRc7Gj-2FZjqeprxYayd7Nl-2BL2XQ4WmWCorC-2FnMQmvpgGYzLEU1JFrjCamfFdfstlQ-2BrlO098dgufhnDKnLMeBkJ3MlHc2NRx-2B81LnYUmvLHg-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;">IP Index: A Fast IP Lookup Web Service + Library</a></span> — Returns blacklist status, detects VPN/hosting and shows geo and ASN info. The repo gets updated every day too.</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;">Mykhailo Gorianskyi </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-2FNpSIs56q-2BfZ1GvwT33-2BQ8qcVXwdKW843y5BQS3uOp1xZDnZmBkw-3D-3DUc0Z_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5o9ooLqPGAJJJkww-2F-2FdvKTd96xGkgG0oVRBz-2FEkwvaF5YBu-2B1iQpG4Vz6savjBm46yxbL2fMe2xKYLr0433HhiF9-2Bjnhz08nSnC5lXIVG-2BzklZbcOcCC1Pbp7q4ExquJ-2FLRmpVBiywVcxqkkXQnjTqiA-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;">cRonstrue: Library to Convert <code style='font-family: menlo, monaco, "Ubuntu Mono", courier, monospace; font-weight: normal; background-color: inherit;'>cron</code> Expressions into Human Readable Form</a></span> — Love the project name! The idea is given something like <code style="background-color: #ccffdd;">*/10 * * * *</code>, it will return <em>“Every 10 minutes”</em>. No dependencies.</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;">Brady Holt </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-2FNpSIs56rLQZ-2BI5zZa92e0TN-2FsTqqHAfh-2B5Z2-2Fbf5DRdgf8yrCrg-3D-3DFPJN_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5o3uINBtfW-2FaTywOjX-2FOoHgTty7fQyN6ReWC1JnhVY25DgPXSWGjsl97rfhHZ7WfjkLuq4xofhc7bhgN2mTcUzI-2FWCsBYOhom3OEejAokgKDh1gbYbnjnKSU3YOgq3LtxakzPeXtfBN2QRuZHQ0ipBOw-3D-3D" title="dynaboard.com" style="text-decoration: none; color: #20824B; border-bottom-width: 1px !important; border-bottom-color: #ddd !important; border-bottom-style: solid !important;">Dynaboard: The Pro-Code Web App Builder Made for Developers</a></span> — Build high performance public and private web apps in a collaborative — code forward — WYSIWYG environment.</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;">Dynaboard <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-2FNpSIs56qSvh5qzoTMqc-2BYnXNItQqUgKX3O8gyjTd-2B-2F4eKkrbomg-3D-3D3aNI_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5oRf-2BxxHUlhfPo-2BD8RhsTAuaCB0yErxbU3B41gV1zfU-2BBj3WzE6LOdwav9Jes6VEncNHiSY3L3-2FaL5Q9kqpoWeDtrR8YlOcFBiGtNK2AUNy6oaJrhc11lJ9KOSrx2UpgvoEBfwAioHW8KOeGl9WsyxEg-3D-3D" title="www.npmjs.com" style="text-decoration: none; color: #20824B; border-bottom-width: 1px !important; border-bottom-color: #ddd !important; border-bottom-style: solid !important;">Whoiser: A WHOIS Client for Node.js</a></span> — Given a domain name, TLD, or IP address, it queries online WHOIS databases for info.</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;">Andrei Igna </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-2FNpSIs56oX6ffANCPMl-2ByPsHSd2ObTf77eZoaigvCMyQ-2FjutCFVg-3D-3Dfpd4_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5o2PG3fdNak-2BKPGTUVxG8f-2BvXKB4me6HfLbLv-2BHGdXvFHNLU9pLYrxFkkXwY-2B50OUbmD-2BnIrBrY-2BS6QUy2gHq4rsO4r1E35T6kyiDwQtnTo3A3LHVSU1ER8pZw-2Faj2hB2th2k4BXaUPES5gLF0ZbQ0vw-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;">Print Ready: A JS-Powered CLI for Converting HTML Into PDFs</a></span> — Uses Paged.js to render your HTML file inside Puppeteer, then exports a PDF from Puppeteer.</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;">Nicholas C. Zakas </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-2FNpSIs56qxonv79y6MSr0zLBknj4euMWnaBuhgxyAFMmhl3ITr1g-3D-3DmRPd_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5oJ2smhmElNVw9VQRqDYtgZnMFNsdHfG11cusZRNZAkDMsvnjDPceN-2BcxG94gcHBTIPCFjgvwhtnjEMENfDhvG9E63UpHT1SFTsxiSA8rc-2BfU9RGe-2FiYNhg6NwLxdDFYNEjbvu4MrRyQartvyf8o30sA-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;">Check HTML Links: A Fast Checker for Broken Links/References in HTML</a></span> — An npm package you can run on static pages to find broken links in <code style="background-color: #ccffdd;">href</code>, <code style="background-color: #ccffdd;">src</code>, and <code style="background-color: #ccffdd;">srcset</code>, and can process 500-1000 documents in seconds.</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;">Modern Web </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-2FNpSIs56oylnjKqNii6FdEnIOwDwb8c4zkj-2FED5pK1iyg-2BhRbMfw-3D-3D7FuN_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5ozRjhvXRg2LCuRXgall08dDtDPnqleiM-2FS-2FBtF6VEcIHZ9sAVHUrK68pN0i1f09dunv3cTTwpEh26h2Mp7K7HLTmDOIGrZ85KFWqcLNSOswoBkz0ZB86U5GtGHjPSqhUg8iMV1NeBWBLiLAxQJzpO-2FQ-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;">human-signals: Human-Friendly Process Signal Info</a></span> — Basically a JavaScript object that contains info about the various POSIX signals (<code style="background-color: #ccffdd;">SIGHUP</code>, <code style="background-color: #ccffdd;">SIGINT</code>, et al.)</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;">ehmicky </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-2FNpSIs56ph0IHShU2DSNTwQYgcZpn91uT96SyUpoHk36iRgGKlzg-3D-3D8Fq0_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5orXT9ztNVFO610ZQ1X-2BimoI9GKfKFty-2BcD7RLcFSDqtOP0J47Y8O3LpJ3VU-2Bd3-2Ba35BMhH49-2BOJB9UJXmEczgjouJW2i5NUxoshXzjwLJIPJxCNUY3lQDEN2xskOTmfiTHhzhYqBESMklD7L-2BMr2T-2BQ-3D-3D" title="" style="text-decoration: none; color: #20824B; border-bottom-width: 1px !important; border-bottom-color: #ddd !important; border-bottom-style: solid !important;">Need to Upgrade Your Node.js App? Hire Us to Do It for You</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;">UpgradeJS․com - The JS Upgrade Service by OmbuLabs <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-2FNpSIs56pp4QEugKjvWTbqk0Cfq19OQAo5WgHRaHg3o8UCf-2BRZDA-3D-3D7hlf_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5okvg635TjdeFknmlXnaZ-2B1VK13pt219yrdzSdPMbQxoW-2FDD3oEqn3walUMBFA2VKymH3-2BiQu7urLE-2FKhcNDg7x-2Fk1I5x7iqCgVGh5TauZlf4HO9id0WOmdKwDUKX5NnE8mS9M-2F9lCfehUPkSL8lyLIg-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;">Flyweight: A Brand New ORM for SQLite</a></span> — Early days but provides some extra abstraction around SQLite you might appreciate.
|
||
<br><span class="name" style="color: #bbbbbb !important; margin-top: 4px; text-transform: uppercase; font-size: 12px; line-height: 1.2em;">Andrew Jones</span>
|
||
</p>
|
||
</td></tr></table>
|
||
<table width="100%" cellpadding="0" cellspacing="0" class="content el-md flat" style="border-collapse: collapse; color: #444;"><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: 6px; 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-2FNpSIs56pIo-2FFCC-2FiB5-2BX2-2BCWeioxIOaJaosm1IX0Ge5XmvvW0ww-3D-3DvUMY_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5oTLMhJWFBjK3vsozafN5b7CBC-2FkWoZiQ6YrAjQHGWukUun5Z2hwgct8MbU7AaPCgvzsqO9H1gGVVgRJiGXHs1GEcyICer1M5H2UpQephQWN8qlIk34HPgC-2Bd416ae0-2FGcI3uq7ZGYE4lEYpY8RJvG-2Bg-3D-3D" style="text-decoration: none; color: #20824B; font-weight: 600; border-bottom-width: 1px; border-bottom-color: #ddd; border-bottom-style: solid;">AdminJS 6.4</a><br>
|
||
↳ Admin panel / UI for Node apps.</p>
|
||
</li>
|
||
<li style="color: #222; line-height: 1.35em; margin-bottom: 6px; 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-2FNpSIs56rI8YF1LXsBTzw9jwMDJAmOnyT-2F3ZRlqOl4loK-2F98XqDw-3D-3DFD2e_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5objuMpHQoBW8R6OWNxx7A4Qn2umv7MsiARYQ7tNxw-2FHRz3FoPgksw2If5WNHv926c2nSDnpkS-2F6YeVKa4xo55KoyYmziWEKcLxk2ukuw07d7vYOuYGpLgmGzJJr9O-2Fs7wtur8TJRpVX-2FUztD3zmEVmA-3D-3D" style="text-decoration: none; color: #20824B; font-weight: 600; border-bottom-width: 1px; border-bottom-color: #ddd; border-bottom-style: solid;">Faker 7.6</a><br>
|
||
↳ Generate large amounts of fake data.</p>
|
||
</li>
|
||
<li style="color: #222; line-height: 1.35em; margin-bottom: 6px; 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-2FNpSIs56quhRPkiPRzNVsD9pPYa1pNb2pAgmF6ogOK73xxiDY57A-3D-3DNEq1_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5oT1AbhYQrEGvX2nGXT804It8hYbkV9MbU4tMlyrGN9j7JDOsj-2B7TTJ-2FD1JcwkfQwQCerALy0jKwwNt0G3TgrAtkYrJa8np5NbVOSbW6djZHNiCh47XPoBihfwIvutt2kAW623N5PhfZDAcoq4hce-2FjQ-3D-3D" style="text-decoration: none; color: #20824B; font-weight: 600; border-bottom-width: 1px; border-bottom-color: #ddd; border-bottom-style: solid;">Middy 3.6</a><br>
|
||
↳ Node middleware engine for AWS Lambda.</p>
|
||
</li>
|
||
<li style="color: #222; line-height: 1.35em; margin-bottom: 6px; 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-2FNpSIs56rkHLb0qtYqZ0Bd4FxD1IbT6UXK6Xs2HUcuA5srChgsPA-3D-3D9poL_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5oy7SOgmTC136V6ZgZzBSpzuHtaQ2AuXld6FsvzHBcY1AxZ4UPkHmYye5M2Yg-2BFdez7JLqxy3PPB69Zj8cyKtN7BBCTpwiCZSyP06tozVRBMch2WaOXuhW1Grc3sLHx8g6rhyxWZHEkCHbcTJ-2BHucDvQ-3D-3D" style="text-decoration: none; color: #20824B; font-weight: 600; border-bottom-width: 1px; border-bottom-color: #ddd; border-bottom-style: solid;">quagga2 1.7.5</a><br>
|
||
↳ Advanced barcode scanning for browser and Node.</p>
|
||
</li>
|
||
<li style="color: #222; line-height: 1.35em; margin-bottom: 6px; 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-2FNpSIs56rOHZ0N3xGeTmVHdceNhoPZxfJFaDKRHwKV1B15qiaW5w-3D-3DJhje_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5omBcR4pD1Ku4heFG7EsNorrN-2FyTChV1xMe7-2F03egbr5hSqIFOVZDyKDwSsERbsUNhwmvss4ReB16IiVOAPAZsB0dk-2FCpqXEiiRHmXqS65QOD0ekMbfB05UGwq8O-2FqC4ysTvBOy6ZtiVUVrc-2FH5W6IKg-3D-3D" style="text-decoration: none; color: #20824B; font-weight: 600; border-bottom-width: 1px; border-bottom-color: #ddd; border-bottom-style: solid;">node-jira-client 8.2</a><br>
|
||
↳ Node wrapper for Jira's REST API.</p>
|
||
</li>
|
||
<li style="color: #222; line-height: 1.35em; margin-bottom: 6px; 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-2FNpSIs56phtW2mQRCtGg046i4t6FORw2LuWRPENLor2jpdmT-2Borg-3D-3DNEn8_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5odCf-2FiEfecKVEq6V8FvBCjA5ZwnzYfYJNkionHhlr-2B8FKzcC4tVLDaTd-2BbQCruVnIbAHwS43NJwupmBg6tVBhykIIOmxOPZm-2Bo8RnrWTKVsh9SqHlmrxEZ0qzKrWaapkcCI5HryNu-2BPTNftU3x6DZ8Q-3D-3D" style="text-decoration: none; color: #20824B; font-weight: 600; border-bottom-width: 1px; border-bottom-color: #ddd; border-bottom-style: solid;">RedisSMQ 7.1.1</a><br>
|
||
↳ High-performance Redis message queue.</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-2FNpSIs56oCCho7hNJILUYhAVBBA3S1TVq7lt-2F4p296883g4tFZqg-3D-3D_WAq_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5ouX22auILYVCEthoGEnDW5lZVAxux7cyrNjiLMSPND87DO1UPNRKOXKTnvhToLLaRFLapeb1KcVuMOkIcAHXvLKkONVEFS-2FfXFxUp-2BzE1uJn8kHm2j-2Fg3Tb8ebLjdnRJNKBL3dsUDl-2BAlB2Jr-2FHBObw-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;">Full-Stack Engineer (NYC / Remote)</a></span> — 100M+ devices, 100B+ API calls. Radar is looking for Product Engineers to build geospatial dev tools.
|
||
<br><span class="name" style="color: #bbbbbb !important; margin-top: 4px; text-transform: uppercase; font-size: 12px; line-height: 1.2em;">Radar</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-2FNpSIs56r-2FlaDQrQPsWNriJ2X6cWQi1tqZbpxhHuJGegpNMHxUOA-3D-3DGdCx_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5oMskCe2ZO5enlXfI-2Ba8Ii28hKXHrE5lYRoTHZ9tE5kQ6SfxMFVAKDrEg24SVYlDPChcED-2FvQCGg2eb76BFxavDGxggeg0j8V-2FV0CcOHtRyCf5CUiOQJmJhGeeVUY76uYQ4xra1xYBmCgOHewWeJoA5A-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-3D9DWa_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5oDDJyGpwbKF75si2KnV-2FEpDtz16teFwAoj8RTQilvBNxjKnW-2B9h6EieCoFFAkNQ9V9c0IQGs2FxlMbHWuJ3mEc-2FsWDAOdeVyDY7QWQEBKFs9CT-2BCSGc92juzMgeOWPurYZYrU-2FL1rIDsa6cBSzHwNqQ-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-3DhKMD_vVXscVLXlj5UtQe3aqo5RMTdTq2PepdZjP86UOmA8nxtQVfuqJiLh7Fio3fEtt5oeiyJ55USrr-2BfTcupjuZI5XOPKAeGfDPldjflGh4UFubSKBXfvFkyrZTN6W-2B4yG-2B58z4xYiorS-2BsSkcjQSLExL78M-2FACJdWbywRmTlV05JohBsUplijU4q-2FQYETPZAL8oVLRhdPveRmCKx625qNI8dQ-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/458/4f439e0f78" width="3" height="1" alt="n" /><!-- hey --><img src="https://u25184427.ct.sendgrid.net/wf/open?upn=VbY9PHrcT8wDX1sMvxaoDeFrnDggj0GS9qRxnZZ16E2L1I4jFbZ-2BRZojKJXnL6-2FijMU2353EwpgxEqWgVUoQw4Z6vZHm1RoMgsf8pqVHhr1z-2FeeawIU2Xm5YQsPdCxDttK5YXRA3LCgIW3qNN7jLyE-2BCTS8dvmMgUjHI6-2B68XhCzs3iNRsawgsRDGOK6BpsRiHtCub7oGp8O2tcL-2F0XOVRb8jmo9dlLfKBDrYnAYVhU-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>
|