<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: John B</title>
    <description>The latest articles on DEV Community by John B (@johnb8005).</description>
    <link>https://dev.to/johnb8005</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F391879%2F6bed2954-21d0-4434-b91e-fec7999f5f3e.jpeg</url>
      <title>DEV Community: John B</title>
      <link>https://dev.to/johnb8005</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/johnb8005"/>
    <language>en</language>
    <item>
      <title>A Practical Approach to Quantum-Resistant JWTs</title>
      <dc:creator>John B</dc:creator>
      <pubDate>Sun, 21 Apr 2024 16:21:15 +0000</pubDate>
      <link>https://dev.to/johnb8005/a-practical-approach-to-quantum-resistant-jwts-9ob</link>
      <guid>https://dev.to/johnb8005/a-practical-approach-to-quantum-resistant-jwts-9ob</guid>
      <description>&lt;p&gt;As the field of quantum computing advances, the need for cryptographic systems that can withstand quantum attacks becomes increasingly critical. The &lt;code&gt;jwt-falcon&lt;/code&gt; library addresses this challenge by integrating the Falcon algorithm, a prominent candidate in the &lt;a href="https://www.nist.gov/news-events/news/2022/07/nist-announces-first-four-quantum-resistant-cryptographic-algorithms"&gt;NIST Post-Quantum Cryptography competition&lt;/a&gt;, into JSON Web Token (JWT). Falcon is designed to offer security against the potential capabilities of future quantum computers. For detailed information on the Falcon algorithm, visit &lt;a href="https://falcon-sign.info/"&gt;Falcon-sign.info&lt;/a&gt;. Under the hood, &lt;code&gt;jwt-falcon&lt;/code&gt; utilizes the &lt;a href="https://www.npmjs.com/package/falcon-crypto"&gt;Falcon-crypto&lt;/a&gt; package, a dedicated implementation of the Falcon algorithm for JavaScript environments.&lt;/p&gt;

&lt;h3&gt;
  
  
  Getting Started
&lt;/h3&gt;

&lt;p&gt;You can easily integrate &lt;code&gt;jwt-falcon&lt;/code&gt; into your projects. First, install the library via npm:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm install jwt-falcon&lt;/code&gt;&lt;br&gt;
To give you a feel for its usage, here's a simple example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import Falcon from "falcon-crypto";
import { sign, verify, decode } from "jwt-falcon";
import { generateRandomString } from "./utils.js";

const keyPair = await Falcon.keyPair();
const message = { message: generateRandomString() };

// Sign and obtain a JWT
const jwt = await sign(message, keyPair.privateKey);

// Decode and verify the JWT
const decoded = await decode(jwt);
const verified = await verify(jwt, keyPair.publicKey);
// if not `true` the signature is wrong
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Why Use jwt-falcon?
&lt;/h3&gt;

&lt;p&gt;The advent of quantum computing poses a significant risk to traditional cryptographic methods. Algorithms like RSA and ECC, which secure much of our digital communication, are particularly vulnerable. &lt;code&gt;jwt-falcon&lt;/code&gt; provides a proactive measure to protect JWTs against future quantum attacks, ensuring that your security infrastructure remains intact and forward-compatible.&lt;/p&gt;

&lt;h3&gt;
  
  
  Contributing
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;jwt-falcon&lt;/code&gt; project is open source, and contributions are welcome. Whether you're a seasoned cryptographer or a web developer looking to dip your toes into security, your input can help refine and expand this library. You can find the project on GitHub at &lt;a href="https://github.com/johnb8005/jwt-falcon"&gt;jwt-falcon&lt;/a&gt; and view the npm package at &lt;a href="https://www.npmjs.com/package/jwt-falcon?activeTab=readme"&gt;jwt-falcon&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>jwt</category>
      <category>quantumresistant</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Introducing HTTP Requester: The Chrome Extension That Simplifies API Testing for Developers</title>
      <dc:creator>John B</dc:creator>
      <pubDate>Fri, 08 Dec 2023 16:27:20 +0000</pubDate>
      <link>https://dev.to/johnb8005/introducing-http-requester-the-chrome-extension-that-simplifies-api-testing-for-developers-4n4i</link>
      <guid>https://dev.to/johnb8005/introducing-http-requester-the-chrome-extension-that-simplifies-api-testing-for-developers-4n4i</guid>
      <description>&lt;h2&gt;
  
  
  Embrace a Minimalist, Powerful Approach to API Testing!
&lt;/h2&gt;

&lt;p&gt;Hello Devs! Today, I'm excited to share something that many of us in the web development community have been longing for – a straightforward, lightweight tool for API testing. Meet &lt;strong&gt;HTTP Requester&lt;/strong&gt;, a Chrome extension that simplifies API testing without the bloat of traditional tools.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jXBjgABQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4cs4udvy8wdwuut65klp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jXBjgABQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4cs4udvy8wdwuut65klp.png" alt="Image description" width="800" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Why HTTP Requester?
&lt;/h3&gt;

&lt;p&gt;In our daily development work, efficiency and simplicity are key. HTTP Requester is born out of these necessities. It's a tool that strips away the unnecessary, focusing solely on what's essential for API testing.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Lightweight &amp;amp; Efficient&lt;/strong&gt;: No heavy downloads or complex setups. It’s a simple extension that lives in your browser.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy-Conscious&lt;/strong&gt;: HTTP Requester runs locally, meaning your API requests and data stay on your machine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community-Driven &amp;amp; Open Source&lt;/strong&gt;: Being open source, it thrives on community feedback and contributions.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Features at a Glance
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Send and Test API Requests Easily&lt;/strong&gt;: Whether it's GET, POST, or any other HTTP method, HTTP Requester handles it smoothly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clear Response View&lt;/strong&gt;: Quickly view status codes, headers, and response bodies in a clean, organized manner.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customization for Your Needs&lt;/strong&gt;: Set headers, add query parameters, and craft your request body as needed.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  For Developers, By Developers
&lt;/h3&gt;

&lt;p&gt;HTTP Requester is not about bells and whistles; it's about functionality and ease of use. We understand that not every developer needs a full-featured API testing suite for quick checks or minor tests.&lt;/p&gt;

&lt;h3&gt;
  
  
  Get Started Now!
&lt;/h3&gt;

&lt;p&gt;While HTTP Requester is on its way to the Chrome Web Store, you don’t have to wait! You can start using it today:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Visit the &lt;a href="https://github.com/nexys-system/http-requester-chrome"&gt;HTTP Requester GitHub repository&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Follow the instructions to clone or download the extension.&lt;/li&gt;
&lt;li&gt;Load it into your Chrome browser as an unpacked extension.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Join the HTTP Requester Community
&lt;/h3&gt;

&lt;p&gt;Your feedback and contributions are what make open-source projects like HTTP Requester truly valuable. Share your suggestions, report issues, or contribute to the code – every bit of input helps to refine and improve.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;HTTP Requester is a testament to what we, as a community, can build when we focus on simplicity, efficiency, and privacy. It’s a tool for those quick API tests, for those moments when you need clarity without complexity.&lt;/p&gt;

&lt;p&gt;We’re excited to see how HTTP Requester evolves with your input and support. Let’s make API testing simpler and more accessible for every developer out there.&lt;/p&gt;

</description>
      <category>api</category>
      <category>chrome</category>
      <category>opensource</category>
      <category>webdev</category>
    </item>
    <item>
      <title>React headless components</title>
      <dc:creator>John B</dc:creator>
      <pubDate>Wed, 01 Jun 2022 10:52:26 +0000</pubDate>
      <link>https://dev.to/johnb8005/react-headless-components-2fmo</link>
      <guid>https://dev.to/johnb8005/react-headless-components-2fmo</guid>
      <description>&lt;p&gt;Frontend is hard. Most of the times, dev just want to be able to ship something without needing to reinvent the wheel but still having the flexibility to do whatever their minds dictate.&lt;/p&gt;

&lt;p&gt;Since the start of the year, we have been experimenting with headless components: the engineering and the logic is captured by these headless components and all a frontend dev needs to do is to instantiate them with their UI components. To make it easier, we provide a sample implementation in bootstrap. From there, applications can be built quickly and with confidence, knowing there are solid foundations supporting the app.&lt;/p&gt;

&lt;p&gt;Some headless components we have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;data table&lt;/li&gt;
&lt;li&gt;form&lt;/li&gt;
&lt;li&gt;layout with tabs and cards&lt;/li&gt;
&lt;li&gt;data loader&lt;/li&gt;
&lt;li&gt;Status Change&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the start but we plan on integrating many features in the future. &lt;/p&gt;

&lt;p&gt;Feedback and support is always appreciated!&lt;/p&gt;

&lt;p&gt;link to the repo: &lt;a href="https://github.com/nexys-system/react-headless"&gt;https://github.com/nexys-system/react-headless&lt;/a&gt;&lt;br&gt;
demo: &lt;a href="https://nexys-system.github.io/react-headless/"&gt;https://nexys-system.github.io/react-headless/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>headless</category>
      <category>react</category>
      <category>typescript</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Get started with Vite, React and Typescript in &lt;1 min</title>
      <dc:creator>John B</dc:creator>
      <pubDate>Tue, 03 May 2022 14:25:20 +0000</pubDate>
      <link>https://dev.to/johnb8005/get-started-with-vite-react-and-typescript-in-1-min-4dm6</link>
      <guid>https://dev.to/johnb8005/get-started-with-vite-react-and-typescript-in-1-min-4dm6</guid>
      <description>&lt;p&gt;I wanted an easy and (very) fast way to get a frontend project started so I could demo things. I wanted to be able to focus on a business case and not the boilerplate, so I created a github template that allows you to get started in less than 1 minute with a fully setup project.&lt;/p&gt;

&lt;p&gt;Go check it out: &lt;a href="https://github.com/nexys-system/boilerplate_vite"&gt;https://github.com/nexys-system/boilerplate_vite&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xXJiUeIy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rg1ajthwmfqjwau2izm4.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xXJiUeIy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rg1ajthwmfqjwau2izm4.gif" alt="Image description" width="880" height="550"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>vite</category>
      <category>typescript</category>
      <category>react</category>
      <category>template</category>
    </item>
    <item>
      <title>I18n and React, a simple and easy solution</title>
      <dc:creator>John B</dc:creator>
      <pubDate>Fri, 20 Aug 2021 15:40:53 +0000</pubDate>
      <link>https://dev.to/johnb8005/i18n-and-react-a-simple-and-easy-solution-3403</link>
      <guid>https://dev.to/johnb8005/i18n-and-react-a-simple-and-easy-solution-3403</guid>
      <description>&lt;p&gt;&lt;a href="https://www.npmjs.com/package/@nexys/react-i18n"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NY4B5u2W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://badge.fury.io/js/%2540nexys%252Freact-i18n.svg" alt="package"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Internationalization can be a headache and is oftentimes heavy; both in terms of code size and overhead.&lt;/p&gt;

&lt;p&gt;With this in mind, I wrote a very simple, lightweight package for react (7.1kB minified, no dependencies).&lt;/p&gt;

&lt;h2&gt;
  
  
  Unconventional features:
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Backend independent
&lt;/h3&gt;

&lt;p&gt;It can be linked to any backend. I assume here that the list of translations is stored somewhere on the internet (typically served from the backend). &lt;/p&gt;

&lt;p&gt;Once loaded, the list of translations is stored in the local storage so that the application can be reloaded quickly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Untranslated strings
&lt;/h3&gt;

&lt;p&gt;I have always found it hard to know which strings were translated and which were not. With this package, we store all the untranslated strings in an array in the local storage, so that you can see at anytime all the missing strings - all you need to do is browse through the application. &lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;n&lt;/code&gt; languages&lt;/li&gt;
&lt;li&gt;string interpolation&lt;/li&gt;
&lt;li&gt;typescript&lt;/li&gt;
&lt;li&gt;0 dependencies&lt;/li&gt;
&lt;li&gt;Built with react in mind, but can be used with any JS framework.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Get it!
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Github: &lt;a href="https://github.com/nexys-system/react-i18n"&gt;https://github.com/nexys-system/react-i18n&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;NPM:  &lt;a href="https://www.npmjs.com/package/@nexys/react-i18n"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NY4B5u2W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://badge.fury.io/js/%2540nexys%252Freact-i18n.svg" alt="package"&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>i18n</category>
      <category>typescript</category>
      <category>package</category>
      <category>frontend</category>
    </item>
    <item>
      <title>Get started with Snowpack, React and Typescript in &lt;1 min</title>
      <dc:creator>John B</dc:creator>
      <pubDate>Sat, 22 May 2021 06:55:29 +0000</pubDate>
      <link>https://dev.to/johnb8005/get-started-with-snowpack-react-and-typescript-in-1-min-5af2</link>
      <guid>https://dev.to/johnb8005/get-started-with-snowpack-react-and-typescript-in-1-min-5af2</guid>
      <description>&lt;p&gt;I wanted an easy and (very) fast way to get a frontend project started so I could demo things. I wanted to be able to focus on a business case and not the boilerplate, so I created a github template that allows you to get started in less than 1 minute with a fully setup project.&lt;/p&gt;

&lt;p&gt;Go check it out: &lt;a href="https://github.com/nexys-system/boilerplate_snowpack_bootstrap"&gt;https://github.com/nexys-system/boilerplate_snowpack_bootstrap&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>snowpack</category>
      <category>typescript</category>
      <category>template</category>
    </item>
    <item>
      <title>A boilerplate for node TS packages</title>
      <dc:creator>John B</dc:creator>
      <pubDate>Sat, 15 May 2021 14:37:11 +0000</pubDate>
      <link>https://dev.to/johnb8005/a-boilerplate-for-node-ts-packages-26d3</link>
      <guid>https://dev.to/johnb8005/a-boilerplate-for-node-ts-packages-26d3</guid>
      <description>&lt;p&gt;I make use of NPM packages extensively since they provide a convenient and nice way to encapsulate modules and manage versions independently from the rest of the codebase.&lt;/p&gt;

&lt;p&gt;However, I found myself copying code from other repo over and over to get to an acceptable boilerplate. So I decided to write a github templates so I could create a new package in a matter of seconds (at least get a decent boilerplate).&lt;/p&gt;

&lt;p&gt;It is available here: &lt;a href="https://github.com/Nexysweb/boilerplate-node-package"&gt;https://github.com/Nexysweb/boilerplate-node-package&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I would love feedbacks or contributions&lt;/p&gt;

</description>
      <category>npm</category>
      <category>typescript</category>
      <category>node</category>
      <category>github</category>
    </item>
    <item>
      <title>Typescript datatable for React Material-UI</title>
      <dc:creator>John B</dc:creator>
      <pubDate>Mon, 08 Jun 2020 16:55:07 +0000</pubDate>
      <link>https://dev.to/johnb8005/typescript-datatable-for-react-material-ui-3ld3</link>
      <guid>https://dev.to/johnb8005/typescript-datatable-for-react-material-ui-3ld3</guid>
      <description>&lt;p&gt;In the last few months we have worked on a data-table library.&lt;/p&gt;

&lt;p&gt;Our main requirements were the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;should be UI independent (it works out of the box with material UI)&lt;/li&gt;
&lt;li&gt;fully customizable&lt;/li&gt;
&lt;li&gt;fully typed&lt;/li&gt;
&lt;li&gt;powerful filters&lt;/li&gt;
&lt;li&gt;async (load data asynchronously)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here's the result&lt;br&gt;
Code: &lt;a href="https://github.com/Nexysweb/mui-list-ts/"&gt;https://github.com/Nexysweb/mui-list-ts/&lt;/a&gt;&lt;br&gt;
Demos: &lt;a href="https://nexysweb.github.io/mui-list-ts/"&gt;https://nexysweb.github.io/mui-list-ts/&lt;/a&gt;&lt;br&gt;
NPM package: &lt;a href="https://www.npmjs.com/package/@nexys/mui-list"&gt;https://www.npmjs.com/package/@nexys/mui-list&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feedbacks and PR welcome!&lt;/p&gt;

</description>
      <category>react</category>
      <category>materialui</category>
      <category>datatable</category>
      <category>typescript</category>
    </item>
    <item>
      <title>Numerical Library in Typescript</title>
      <dc:creator>John B</dc:creator>
      <pubDate>Thu, 21 May 2020 11:09:37 +0000</pubDate>
      <link>https://dev.to/johnb8005/numeric-library-in-typescript-1f45</link>
      <guid>https://dev.to/johnb8005/numeric-library-in-typescript-1f45</guid>
      <description>&lt;p&gt;I recently discovered typescript after working a lot with Scala, Python and JS. I found it to be the perfect compromise between heavy statically typed languages like Scala and convenient, fast but dynamically typed languages like JS.&lt;/p&gt;

&lt;p&gt;Typescript is a superset of Javascript and what makes it very appealing to me is that its community is growing and big players (Microsoft) are strongly supporting it (Visual Studio Code, etc). &lt;/p&gt;

&lt;p&gt;Something that is less spoken of but that I find very interesting and promising is that it could potentially compile to other languages (see for instance &lt;a href="https://github.com/AssemblyScript/assemblyscript"&gt;https://github.com/AssemblyScript/assemblyscript&lt;/a&gt;, even if technically it is not typescript).&lt;/p&gt;

&lt;p&gt;At the light of the above I was interested to see if there was a simple numerical library that would allow me to do basic Linear algebra, some statistics, etc. (a Python Numpy equivalent I guess). And while there are a few libraries, most of them are actually JS libraries that were then made compatible for TS.&lt;/p&gt;

&lt;p&gt;So in these days of confinement, I thought I would give it a go.&lt;/p&gt;

&lt;p&gt;The library now exists:&lt;br&gt;
&lt;a href="https://github.com/Nexysweb/math-ts"&gt;https://github.com/Nexysweb/math-ts&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.npmjs.com/package/@nexys/math-ts"&gt;https://www.npmjs.com/package/@nexys/math-ts&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It covers most of the math stuff that I need for most projects, for example, in no particular order:&lt;br&gt;
Math:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;linear algebra&lt;/li&gt;
&lt;li&gt;complex numbers&lt;/li&gt;
&lt;li&gt;numerical integration&lt;/li&gt;
&lt;li&gt;series&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Stat:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;regression&lt;/li&gt;
&lt;li&gt;anova&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Finance:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;mortgage calculation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I would be more than happy to get feedbacks, or better,  PRs...!&lt;/p&gt;

</description>
      <category>typescript</category>
      <category>math</category>
      <category>numerical</category>
      <category>npm</category>
    </item>
  </channel>
</rss>
