<?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: He3</title>
    <description>The latest articles on DEV Community by He3 (@he3tools).</description>
    <link>https://dev.to/he3tools</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%2F1063612%2Fcb27fc5f-1a94-4335-bd27-22ad49424be9.jpg</url>
      <title>DEV Community: He3</title>
      <link>https://dev.to/he3tools</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/he3tools"/>
    <language>en</language>
    <item>
      <title>Understanding VPC Planner: A Comprehensive Guide for Developers</title>
      <dc:creator>He3</dc:creator>
      <pubDate>Fri, 16 Jun 2023 09:48:54 +0000</pubDate>
      <link>https://dev.to/he3tools/understanding-vpc-planner-a-comprehensive-guide-for-developers-51ki</link>
      <guid>https://dev.to/he3tools/understanding-vpc-planner-a-comprehensive-guide-for-developers-51ki</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;VPC Planner is a tool developed by Amazon Web Services (AWS) that helps developers and network administrators to design and optimize the network configuration of their virtual private clouds (VPCs). VPCs are a fundamental concept in cloud computing, as they allow users to create an isolated network environment within the AWS cloud, where they can deploy their applications securely and with fine-grained control. However, configuring a VPC can be challenging, especially if you need to consider multiple factors such as subnets, routing, security groups, and connectivity options. This is where VPC Planner comes in handy, as it automates many aspects of VPC design and provides a visual interface to help you understand and modify your VPC topology.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it Works
&lt;/h2&gt;

&lt;p&gt;VPC Planner works by analyzing the current state of your VPC and generating a proposed configuration that meets your requirements, based on best practices and cost optimization principles. To use VPC Planner, you need to have a VPC already created and configured with subnets, security groups, and routing tables. Then, you can launch VPC Planner from the AWS Management Console and select the VPC you want to optimize. VPC Planner will start by analyzing your VPC and generating a topology diagram that shows all the resources, including subnets, routing tables, and gateways. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--34id-mWE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/images/blog/screenshots/VPC%2520Planner.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--34id-mWE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/images/blog/screenshots/VPC%2520Planner.png" alt="VPC Planner" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you have the topology diagram, you can modify it by adding or removing subnets, changing the routing rules, or adjusting the gateways. VPC Planner will validate your changes and give you feedback on their impact, such as which resources will be affected and how much they will cost. You can also use VPC Planner to simulate different scenarios, such as adding new instances, changing the network performance, or adding new services like AWS Direct Connect or VPN. VPC Planner will show you the optimal configuration for each scenario and let you choose the one that best suits your needs.&lt;/p&gt;

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

&lt;p&gt;VPC Planner has several features that make it a useful tool for network configuration in AWS VPCs. Some of the most notable features are:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Automatic topology generation&lt;/td&gt;
&lt;td&gt;VPC Planner can create a visual representation of your VPC resources and dependencies, making it easier to visualize and modify your network configuration.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Network optimization recommendations&lt;/td&gt;
&lt;td&gt;VPC Planner can analyze your VPC and suggest ways to optimize performance, cost, and security, based on AWS best practices and your specific requirements.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scenario simulation&lt;/td&gt;
&lt;td&gt;VPC Planner can simulate different network scenarios and predict the impact of changes, such as adding or removing resources, adjusting network performance, or changing security rules.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost estimation&lt;/td&gt;
&lt;td&gt;VPC Planner can estimate the cost of your VPC configuration, based on your current usage and predicted changes. This can help you identify cost-saving opportunities and avoid unexpected charges.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Scenarios for Developers
&lt;/h2&gt;

&lt;p&gt;As a developer, you may find VPC Planner useful in several scenarios, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Initial VPC configuration&lt;/strong&gt;: If you are setting up a new VPC for your application, VPC Planner can help you create a baseline configuration that meets your requirements and complies with security and performance standards.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Network optimization&lt;/strong&gt;: If you have an existing VPC that needs optimization, VPC Planner can suggest ways to improve performance and reduce costs, such as by identifying redundant resources, optimizing traffic routing, or upgrading network hardware.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scenario testing&lt;/strong&gt;: If you need to test different network scenarios, such as adding new instances, changing connection types, or simulating load balancing, VPC Planner can help you simulate and evaluate the impact of your changes before you deploy them.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Misconceptions and FAQs
&lt;/h2&gt;

&lt;p&gt;Despite its usefulness, VPC Planner may generate some confusion or misconceptions among users. Here are some common questions and answers about VPC Planner:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Is VPC Planner a part of AWS Free Tier?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A: No, VPC Planner is not a part of AWS Free Tier. You need to have an active AWS account and pay for the usage of VPC Planner, which is charged based on the number of VPCs and the complexity of the network configuration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Does VPC Planner replace manual network configuration?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A: No, VPC Planner is a complementary tool that can help you optimize your VPC configuration and suggest best practices. However, it does not replace the need for manual network configuration, especially for complex VPCs that require fine-grained control or custom integration with other AWS services.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;VPC Planner is a powerful tool for network configuration in AWS virtual private clouds, offering a range of features and benefits for developers and network administrators. By automating many aspects of VPC design and providing a visual interface to explore and modify VPC topology, VPC Planner can save time and improve performance, security, and cost optimization. To learn more about VPC Planner and how to use it, check out the AWS documentation and tutorials, or try it out yourself using the AWS Management Console or the VPC Planner tool in He3 Toolbox (&lt;a href="https://t.he3app.com?vqj3"&gt;https://t.he3app.com?vqj3&lt;/a&gt;). &lt;/p&gt;

&lt;p&gt;[Keywords: VPC Planner, AWS, virtual private cloud, cloud computing, network configuration]&lt;/p&gt;

</description>
    </item>
    <item>
      <title>TripleDES Encryption: A Comprehensive Guide for Developers</title>
      <dc:creator>He3</dc:creator>
      <pubDate>Mon, 12 Jun 2023 10:38:55 +0000</pubDate>
      <link>https://dev.to/he3tools/tripledes-encryption-a-comprehensive-guide-for-developers-2dn7</link>
      <guid>https://dev.to/he3tools/tripledes-encryption-a-comprehensive-guide-for-developers-2dn7</guid>
      <description>&lt;p&gt;In order to improve the efficiency when using the computer, I'm sure you have installed many efficiency tools, such as &lt;a href="https://www.iplaysoft.com/utools.html"&gt;uTools&lt;/a&gt;, &lt;a href="https://www.raycast.com/"&gt;Raycast&lt;/a&gt;, &lt;a href="https://www.alfredapp.com/"&gt;Alfre&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;For program developers, in addition to some system operation enhancements, there are more requirements such as JSON formatting / conversion to XML / YAML, BASE64 coding and decoding, testing regular expressions, JWT parser / generator, timestamp conversion, text comparison / extraction / encryption and decryption / escaping, HTTP testing, etc. And He3 Universal Development Toolkit can do almost everything in one software!&lt;/p&gt;

&lt;h2&gt;
  
  
  He3 Universal Development Toolbox - A collection of free programming aids
&lt;/h2&gt;

&lt;p&gt;As we know, most developers will search online for various "online tools" when they need such tools, or download small software with corresponding functions to find many solutions. However, He3 (Helium 3) Toolbox is a desktop application that is a "development gadget collection" for developers, and it is almost a "one for all"! It's a one-stop shop for all your needs, so you don't have to go looking for tools for temporary needs, which is very convenient. The interface of He3 is beautiful and the experience is very good.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--m_e6jSnB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/blogs/he3-introduction-zh/en/1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--m_e6jSnB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/blogs/he3-introduction-zh/en/1.png" alt="" width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;"The He3 Development Toolbox is completely free and cross-platform for Windows, Mac, and Linux. It has more than 400 useful tools for program development, including JSON, YAML, date and time, text, image, color, coding, encryption and decryption, network, programming, web page, and other categories.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GiLqqIYh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/blogs/he3-introduction-zh/en/2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GiLqqIYh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/blogs/he3-introduction-zh/en/2.png" alt="" width="800" height="493"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Whether you're a front-end or back-end engineer, or even if you're not a developer but a productivity-focused office user, the He3 toolkit includes many tools that are useful for office workers in various industries and can easily improve productivity, saving time from going around temporarily to find tools or plugins.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mPC6PoQa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://he3.app/blogs/he3-introduction-zh/en/3.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mPC6PoQa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://he3.app/blogs/he3-introduction-zh/en/3.gif" alt="" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Regular expression editor
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--P4hnAxJb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/images/screenshots/id/lqes.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P4hnAxJb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/images/screenshots/id/lqes.png" alt="" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Open in the He3 toolbox: &lt;a href="https://t.he3app.com?lqes"&gt;https://t.he3app.com?lqes&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  JSON formatting tool
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--r_O2r6fY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/images/screenshots/id/5p3h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--r_O2r6fY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/images/screenshots/id/5p3h.png" alt="" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Open in the He3 toolbox: &lt;a href="https://t.he3app.com?5p3h"&gt;https://t.he3app.com?5p3h&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  HTTP request testing tool
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sr7d7jHV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/images/screenshots/id/dxn4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sr7d7jHV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/images/screenshots/id/dxn4.png" alt="" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Open in the He3 toolbox: &lt;a href="https://t.he3app.com?dxn4"&gt;https://t.he3app.com?dxn4&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  CSS linear gradient background code generator
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--l8rhYoQ8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/images/screenshots/id/m4hj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--l8rhYoQ8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/images/screenshots/id/m4hj.png" alt="" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Open in the He3 toolbox: &lt;a href="https://t.he3app.com?m4hj"&gt;https://t.he3app.com?m4hj&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Clean interface, efficiency first, excellent experience!
&lt;/h2&gt;

&lt;p&gt;Compared with many similar tools, the UI of He3 Toolbox is relatively beautiful and simple enough to be comfortable, and it also provides very convenient shortcut keys to call out the interface anytime and anywhere, and supports "fuzzy search", so you can quickly find the tools you need.&lt;/p&gt;

&lt;h3&gt;
  
  
  One click to call out He3 Toolbox
&lt;/h3&gt;

&lt;p&gt;By default, press Alt + Space (Windows) or Option + Space (Mac) to immediately bring up the He3 Toolbox. Press Ctrl+K (Win) or ⌘+K (Mac) for a quick search. (All shortcuts can be changed in the settings)&lt;/p&gt;

&lt;h3&gt;
  
  
  Convenient fuzzy search + efficient preview of results
&lt;/h3&gt;

&lt;p&gt;Even though the categories are clear, it is not easy to find what you need among hundreds of tools. he3 Toolbox provides a very useful and smart "fuzzy search" function, you only need to enter some keywords, it will intelligently list the relevant gadgets to help you solve the problem as fast as possible.&lt;/p&gt;

&lt;p&gt;&lt;a href="/blogs/he3-introduction-zh/en/4.png" class="article-body-image-wrapper"&gt;&lt;img src="/blogs/he3-introduction-zh/en/4.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In addition, many tools also provide a search list "preview results" function, such as query IP address, view the current timestamp, color generator and other tools, it will be displayed directly in the search list, you do not even have to open the tool to see the results directly.&lt;/p&gt;

&lt;p&gt;&lt;a href="/blogs/he3-introduction-zh/en/5.png" class="article-body-image-wrapper"&gt;&lt;img src="/blogs/he3-introduction-zh/en/5.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Smart clipboard recognition + auto-fill
&lt;/h3&gt;

&lt;p&gt;One of the highlights of He3 is that it intelligently recognizes the contents of the clipboard. For example, when you copy a BASE64 encoded string and then open the "BASE64 decoding" tool, it will automatically read the contents of the clipboard and fill in the decoding for you; when you copy a string of JSON code, open He3 and it will automatically recommend some JSON related tools and so on.&lt;/p&gt;

&lt;p&gt;&lt;a href="/blogs/he3-introduction-zh/en/6.png" class="article-body-image-wrapper"&gt;&lt;img src="/blogs/he3-introduction-zh/en/6.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Customize home page, drag and drop to adjust sorting, favorite
&lt;/h3&gt;

&lt;p&gt;Because of the large number of tools included, He3 also provides users with a "personalized home page" that shows the most recently used, most frequently used, and favorite tools, making it easier for you to find them more quickly to use.&lt;/p&gt;

&lt;p&gt;&lt;a href="/blogs/he3-introduction-zh/en/7.gif" class="article-body-image-wrapper"&gt;&lt;img src="/blogs/he3-introduction-zh/en/7.gif" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Tool List
&lt;/h2&gt;

&lt;p&gt;He3 Toolbox contains a very rich set of tools covering front-end, back-end, office scenarios, images, text, encryption and web tools.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;JSON tools&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;JSON To YAML&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON To Swift Struct&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON To TypeScript Interface&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON To Pike Class&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON To CSV&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON To Sarcastic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON Compressor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON To Crystal Class&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON To SQL Schema&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON To IO-TS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON To Properties&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Properties To JSON&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON Path&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON To JSON Schema&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON Formatting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON To C# Class&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON To Go Struct&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON To XML&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON To Rust Struct&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON Generator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON To Ruby Module&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON To Objective-C Interface&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Extract JSON Keys&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON To JAVA Bean&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON To Kotlin Class&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON To Elm Module&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON To Big Query Schema&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON To Haskell Module&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON To Scala&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON To Zod Schema&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON to TOML&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON To Dart Class&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON To C++ Struct&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON To PHP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON To Python Class&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON Diff&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON Merge&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TOML To JSON&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SQL Schema To JSON&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;YAML tools&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;YAML To XML&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML To TypeScript Interface&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML To Properties&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML To PHP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TOML To YAML&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML To Dart Class&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML to CSV&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML To Rust Struct&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML To JSON Schema&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML To Ruby Module&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML to Kotlin Class&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML To Big Query Schema&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML To TOML&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Properties To YAML&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML To IO-TS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML To Python Class&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML To JAVA Bean&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML To Go Struct&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML To JSON&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML Formatting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML Generator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML To Sarcastic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML To Crystal Class&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML To Haskell Module&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML To Objective-C Interface&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML To Swift Struct&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML To Zod Schema&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML To Scala&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML To Elm Module&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML To Pike Class&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML To SQL Schema&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML To C++ Struct&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML Viewer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML Merging&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML Diff&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML Compressor&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Web tools&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;HTML To JSX&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HTML Symbols Cheatsheet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CSS Flex Generator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CSS Text Shadow Generator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CSS Box shadow generator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CSS Grid Generator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CSS Transform Generator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SVG To JSX&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SVG To CSS&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Text tools&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;String Escapes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HTML Table to SQL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON Table to SQL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CSV Table to SQL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HTML Table to Markdown Table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON Table to HTML Table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Markdown Table to HTML Table Converter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Get Meta&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON Table to TSV Table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ASCII Table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CSV Table to HTML Table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TSV Table to JSON Table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TSV Table to SQL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Markdown Table to TSV Table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Markdown Table to JSON Table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HTML Table to TSV Table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON Table to CSV Table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Case Converter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CSV Table to TSV Table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HTML Table to JSON Table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tool Description Generator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SQL to Markdown Table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sort Text&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Formula Parser&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CSV Table to Markdown Table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Text Extractor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CSV Table to JSON Table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SQL to HTML Table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Markdown Table to CSV Table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Figlet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lottery&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON Table to Markdown Table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Markdown Table to SQL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HTML Table to CSV Table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lorem Ipsum Generator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Markdown Previewer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Octal/Hex To Unicode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Password Generator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TSV Table to Markdown Table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TSV Table to HTML Table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TSV Table to CSV Table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SQL to TSV Table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SQL to JSON Table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SQL to CSV Table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Random String Generator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Slug Generator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Text Deduplication&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;String Split&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Text Diff&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;String Unescape&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Text Analyzer&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Programming Tools&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;SQL Schema To C# Class&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Less to CSS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JWT Generator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;XML json&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;XML To JAVA Bean&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HTML Formatting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SQL Unescape&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SQL Minify&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SQL Schema To Python Class&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SQL Format&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Chmod Calculator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SQL Schema To TypeScript Interface&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Floating Point Base Conversion&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CSS to Javascript Object&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CSS Border Radius Generator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Curl to Code&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SQL to JSON Query&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SQL to MongoDB Query&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Css Linear Gradient Generator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Signed Binary Converter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SQL to ES Query&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SQL Schema To Objective-C Interface&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;bitArithmeticCalculator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SQL Schema To GO Struct&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SQL Schema To Swift Struct&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Number Base Converter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JavaScript Escape&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JavaScript Minify&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JavaScript Pretty&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TypeScript to Javascript&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HTML Escaping&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HTML Unescape&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HTML Compressor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Java Escaping&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Java Unescape&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CSS Compression&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CSS Formatting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JWT Parser&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;X-Path&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SQL Schema To Rust Struct&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SQL Schema To IO-TS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Javascript Key Code Table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SQL Escape&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Regex Tester&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Paseto Generator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Paseto Parser&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SQL Schema To JAVA Bean&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SQL Schema To C++ Struct&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SQL Schema To Ruby Module&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;XML Escaping&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;XML Unescaping&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;XML Compressor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;XML Formatting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Regex Reference&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UTM Generator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JavaScript Unescape&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UUID Parser&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unit Converter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UUID/ULID/NANOID Generator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;URL Parser&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Web Tools&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Websocket Tester&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hosts Editor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CIDR Calculator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Request sender&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IP Formatter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IP Address&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DNS Lookup&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Http Status Code Cheatsheet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IP Location&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ports Cheatsheet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ping&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Traceroute&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;User Agent Parser&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Whois&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Photo Tools&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Image to Icon&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PlantUML Editor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Image Resizing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Device Image&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Image Compressor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Image Format Conversion&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Image Crop&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Image Comparer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Favicon Generator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mermaid Editor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Code to Image&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Color Extraction&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Coding Tools&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;UTF8 Decode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UTF16 Decode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;He3 Demo Publish Test&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;He3 Demo Tool&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;QR Code Scanner&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Generate QR Code for URL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;English singular to plural&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UTF7 Encode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Generate QR Code for Ethereum Address&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Generate QR Code for SMS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Generate QR Code for Phone Number&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Generate QR Code for Email&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Morse Decode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Generate QR Code for Text&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hex Encode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hex to Base64&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;XIRR(ROI) Calculator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ASCII to Hex&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hex to ASCII&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IRR(ROI) Calculator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Encode File to Base64&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bar Code Scanner&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;base32 Decode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;base32 Encode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Decode Base64 to File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bar Code Generator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Base85 Encode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Base85 Decode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Base91 Encode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Base64 Decode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Amortization Calculator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CAGR Calculator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Compound Interest Calculator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Base64 to Hex&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GZip Decode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Base58 Decode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Base62 Encode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GZip Encode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Leverage Ratio Calculator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Discount Factors Calculator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IDN (Punycode) Decode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Future Value Calculator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Base58 Encode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Base62 Decode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Base64 Encode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IDN (Punycode) Encode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hex Decode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Base91 Decode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Convert Text File Encoding&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Morse Encode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Properties To Toml&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UTF8 Encode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Toml To Properties&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UTF16 Encode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UTF32 Encode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UTF32 Decode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unicode Encode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unicode Decode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UTF7 Decode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Chinese Simplified to Traditional&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;URL Decode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;URL Encode&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Time Tools&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Generate Random Time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cron Expression&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Countdown Timer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HMS to Seconds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Now/Current Time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Seconds to HMS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stopwatch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Time Calculator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Timezone Convert&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UTC Time to Timestamp&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Timestamp Convertor&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Encryption Tools&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;PGP Key Pair Generator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CRC1 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CRC24 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CRC32 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SHA3_512 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CRC16CCITT Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SHA256 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BCrypt validator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Aes Decryption&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SHA1 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Aes Encryption&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Keccak224 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hash Tool&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Htpasswd Generator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Des Decryption&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RSA decryption&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PGP Decryption&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NTLM Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BCrypt Password Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MD6_64 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Keccak256 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MD5 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rc4 Decryption&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tripledes Decryption&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Check File Checksum&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MD6_128 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ripemd160 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SM3 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SHA3_384 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CRC16 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SHA224 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HMAC-Snefru Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SHA384 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Snefru Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SHA512 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HMAC-SM3 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SHA0 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MD6_512 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Whirlpool Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HMAC-MD5 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MD6_384 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HMAC-SHA512 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HMAC-HAS160 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HMAC-MD4 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MD4 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MD6_224 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ripemd256 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MySQL5 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HMAC-SHA384 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HMAC-SHA1 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CRC8 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MD2 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ripemd128 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Keccak512 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CRC81Wire Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HMAC-SHA0 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HMAC-MD2 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HMAC-SHA224 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HMAC-SHA256 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Adler32 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HMAC-Whirlpool Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Des Encryption&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SHA3_256 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ripemd320 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Keccak384 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SHA3_224 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MD6_256 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HAS160 Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PEM Parser&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PGP Sign&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rabbit Decryption&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PGP Verify&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PGP Encryption&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rabbit Encryption&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SCrypt Password Hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sm2 Decryption&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RSA Encryption&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rc4 Encryption&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RSA Key Pair Generator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Extract RSA Public Key from Private Key&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SCrypt validator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SM2 Encryption&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SM4 Encryption&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SM4 Decryption&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;X509 Generator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tripledes Encryption&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Color Tool&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Color Palette Generator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Color Picker&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Color Contrast Checker&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Color Converter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HelloWorld&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Calculation Tools&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;He3 Loan Calculator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;He3 Loan Calculator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Loan Calculator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Exchange Rate Calculator&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;He3 Toolbox integrates fuzzy search, intelligent clipboard recognition, custom home page and other thoughtful features, so the whole software is a very good experience, compared to most of the "barely adequate" tool collections on the Internet, He3 is one of the best.&lt;/p&gt;

&lt;p&gt;As the number and variety of tools included in He3 are rich, even if you are not a developer, there are still some useful tools for ordinary users, so it is good to download a backup. Plus it's free and cross-platform for Win, Mac and Linux, so it's a must-have desktop gadget collection for efficiency people! With it, you no longer have to go around looking for related tools.&lt;/p&gt;

&lt;h2&gt;
  
  
  Download Address
&lt;/h2&gt;

&lt;p&gt;Website: &lt;a href="https://he3.app"&gt;https://he3.app&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://he3-1309519128.cos.accelerate.myqcloud.com/1.3.2/He3_mac_arm64_1.3.2.dmg"&gt;Mac(M1)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://he3-1309519128.cos.accelerate.myqcloud.com/1.3.2/He3_mac_x64_1.3.2.dmg"&gt;Mac(Intel)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://he3-1309519128.cos.accelerate.myqcloud.com/1.3.2/He3_windows_installer_x64_1.3.2.exe"&gt;Windows(X64)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://he3-1309519128.cos.accelerate.myqcloud.com/1.3.2/He3_windows_installer_ia32_1.3.2.exe"&gt;Windows(X32)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://he3-1309519128.cos.accelerate.myqcloud.com/1.3.2/He3_linux_arm64_1.3.2.deb"&gt;Linux Deb(ARM64)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://he3-1309519128.cos.accelerate.myqcloud.com/1.3.2/He3_linux_amd64_1.3.2.deb"&gt;Linux Deb(AMD64)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Understanding UUID/ULID Generator: A Guide for Developers</title>
      <dc:creator>He3</dc:creator>
      <pubDate>Fri, 09 Jun 2023 10:50:19 +0000</pubDate>
      <link>https://dev.to/he3tools/understanding-uuidulid-generator-a-guide-for-developers-2lm1</link>
      <guid>https://dev.to/he3tools/understanding-uuidulid-generator-a-guide-for-developers-2lm1</guid>
      <description>&lt;h1&gt;
  
  
  Understanding UUID/ULID Generator: A Guide for Developers
&lt;/h1&gt;

&lt;p&gt;As a developer, you might have come across the concept of UUID or ULID Generator. These tools are used to generate unique identifiers for various applications. In this article, we will take a closer look at what UUID and ULID Generators are, how they work, their key features, misconceptions and FAQs.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a UUID/ULID Generator?
&lt;/h2&gt;

&lt;p&gt;A UUID (Universally Unique Identifier) is a 128-bit number that is globally unique. It is used to identify objects in a distributed computing environment, such as a network or database. A UUID Generator is a tool that allows you to generate UUIDs automatically.&lt;/p&gt;

&lt;p&gt;A ULID (Universally Unique Lexicographically Sortable Identifier) is a format that generates a lexicographically sortable, 128-bit identifier, which is time-based. In other words, ULIDs are unique to each microsecond and can be sorted easily. A ULID Generator is a tool that allows you to create ULIDs quickly.&lt;/p&gt;

&lt;h2&gt;
  
  
  How does a UUID/ULID Generator work?
&lt;/h2&gt;

&lt;p&gt;UUID/ULID generators generate unique identifiers using a mathematical formula. The formula takes into account the current time, the machine's network address, and a random number. The result is a code that is guaranteed to be unique.&lt;/p&gt;

&lt;h2&gt;
  
  
  Scenarios of Using UUID/ULID Generators
&lt;/h2&gt;

&lt;p&gt;UUID/ULID generators are used in a variety of applications that require unique identifiers, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Database Primary Keys&lt;/li&gt;
&lt;li&gt;URL Shorteners&lt;/li&gt;
&lt;li&gt;Session IDs&lt;/li&gt;
&lt;li&gt;API Keys&lt;/li&gt;
&lt;li&gt;Tracking Codes&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Here are some key features of UUID/ULID Generators:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Uniqueness&lt;/td&gt;
&lt;td&gt;Guarantees the generated code to be globally unique.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Randomness&lt;/td&gt;
&lt;td&gt;Generates a random number to ensure security.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sortable&lt;/td&gt;
&lt;td&gt;ULIDs are lexicographically sortable.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Time-based&lt;/td&gt;
&lt;td&gt;ULIDs also contain a timestamp, allowing them to be ordered by creation date.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Compact&lt;/td&gt;
&lt;td&gt;UUIDs are only 36 characters long, while ULIDs are 26 characters long.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Sample Code
&lt;/h2&gt;

&lt;p&gt;To generate a UUID in Node.js, you can use the &lt;code&gt;uuid&lt;/code&gt; module:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;v4&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;uuidv4&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;uuid&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;uuidv4&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To generate a ULID in Node.js, you can use the &lt;code&gt;ulid&lt;/code&gt; module:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;ulid&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ulid&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ulid&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Misconceptions and FAQs
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Misconception 1: UUIDs are truly unique.
&lt;/h3&gt;

&lt;p&gt;Although the probability of two UUIDs being generated exactly the same is very low, it is not impossible. The chance of generating a duplicate UUID is around one in 2^122. However, since UUIDs are used in distributed systems, it is unlikely that two UUIDs will collide.&lt;/p&gt;

&lt;h3&gt;
  
  
  Misconception 2: ULIDs are random.
&lt;/h3&gt;

&lt;p&gt;ULIDs are not completely random, as they use a timestamp as part of the identifier. However, they are still unique and secure, making them ideal for many applications.&lt;/p&gt;

&lt;h3&gt;
  
  
  FAQ 1: Are UUIDs case sensitive?
&lt;/h3&gt;

&lt;p&gt;No, UUIDs are not case sensitive. They are typically represented in lowercase, but uppercase representations are also valid.&lt;/p&gt;

&lt;h3&gt;
  
  
  FAQ 2: Can UUIDs be predicted?
&lt;/h3&gt;

&lt;p&gt;While it is not impossible to predict a UUID, it is very difficult due to the random number generator that is used. It is safe to assume that UUIDs are not predictable.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Use UUID/ULID Generator
&lt;/h2&gt;

&lt;p&gt;There are several tools available for generating UUIDs and ULIDs. One such tool is the UUID/ULID Generator in He3 Toolbox (&lt;a href="https://t.he3app.com?1exr"&gt;https://t.he3app.com?1exr&lt;/a&gt;). This tool allows you to generate UUIDs and ULIDs quickly and easily. &lt;/p&gt;

&lt;p&gt;&lt;a href="/images/blog/screenshots/UUID/ULID%20Generator.png" class="article-body-image-wrapper"&gt;&lt;img src="/images/blog/screenshots/UUID/ULID%20Generator.png" alt="UUID/ULID Generator"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;UUID/ULID Generators are powerful tools for generating unique identifiers in various applications. They are easy to use, secure and reliable. Understanding how UUID/ULID Generators work, their key features, misconceptions and FAQs will help you to use them more effectively in your projects.&lt;/p&gt;

&lt;p&gt;References:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Universally_unique_identifier"&gt;UUID - Wikipedia&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ulid/spec"&gt;ULID - GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.npmjs.com/package/uuid"&gt;Node.js UUID Module&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.npmjs.com/package/ulid"&gt;Node.js ULID Module&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Tracing the Route: Exploring Traceroute for Developers</title>
      <dc:creator>He3</dc:creator>
      <pubDate>Fri, 09 Jun 2023 10:24:56 +0000</pubDate>
      <link>https://dev.to/he3tools/tracing-the-route-exploring-traceroute-for-developers-4l2h</link>
      <guid>https://dev.to/he3tools/tracing-the-route-exploring-traceroute-for-developers-4l2h</guid>
      <description>&lt;h1&gt;
  
  
  Tracing the Route: Exploring Traceroute for Developers
&lt;/h1&gt;

&lt;p&gt;Traceroute is a networking utility tool that allows developers to track the path of data packets as they traverse from the source computer to the destination server. This article explores the concept and how traceroute works, scenarios of use, misconceptions, and FAQs surrounding the tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Traceroute and How Does it Work?
&lt;/h2&gt;

&lt;p&gt;Traceroute is a command-line utility tool that probes the network by sending packets to a target server and recording the response times at each hop in the route, including the IP address of each hop. When the packets reach the target server, they are returned to the source computer, and the response times are recorded.&lt;/p&gt;

&lt;p&gt;Traceroute works by sending packets with increasing Time-to-Live (TTL) values. TTL is a field in the packet header that indicates how many hops a packet can traverse before it is discarded. When a packet reaches a hop and the TTL value becomes zero, the hop discards the packet and sends an error message back to the source computer indicating that the packet has timed out. Traceroute uses this error message to record the IP address of the hop.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Use Traceroute
&lt;/h2&gt;

&lt;p&gt;Traceroute is typically used from a command line, and it is available on most operating systems, including Windows, Linux, and macOS. The command syntax varies slightly between operating systems, but the basic structure is the same. Here is an example of a traceroute command in macOS:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;traceroute google.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or you can use Traceroute tool in He3 Toolbox (&lt;a href="https://t.he3app.com?0krf"&gt;https://t.he3app.com?0krf&lt;/a&gt; ) easily.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nBLT_SVR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/images/blog/screenshots/Traceroute.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nBLT_SVR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/images/blog/screenshots/Traceroute.png" alt="Traceroute" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Scenarios for Developers
&lt;/h2&gt;

&lt;p&gt;Traceroute is commonly used by developers for troubleshooting network issues, such as packet loss, latency, and routing problems. It can also be used to analyze network performance, identify network bottlenecks, and optimize network configurations. For instance, developers can use Traceroute to determine the cause of a slow network connection, detect network congestion, or identify the fastest route to a destination server.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features of Traceroute
&lt;/h2&gt;

&lt;p&gt;Traceroute offers several key features that are useful for developers, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Identifying the path of network traffic&lt;/li&gt;
&lt;li&gt;Detecting network congestion and routing problems&lt;/li&gt;
&lt;li&gt;Networking troubleshooting and performance analysis&lt;/li&gt;
&lt;li&gt;Determining the best route to a destination server&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Misconceptions and FAQs
&lt;/h2&gt;

&lt;p&gt;Traceroute is often misunderstood, leading to misconceptions and confusion. Here are some common misconceptions and frequently asked questions about Traceroute:&lt;/p&gt;

&lt;h3&gt;
  
  
  Can traceroute be used to detect network security threats?
&lt;/h3&gt;

&lt;p&gt;Traceroute is not designed to detect network security threats, such as malware or intrusion attempts. However, it can be used to identify suspicious network activity, such as packet drops or unusual response times, which may indicate a security issue.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can traceroute be blocked by firewalls or other security measures?
&lt;/h3&gt;

&lt;p&gt;Traceroute can be blocked by firewalls, especially those with stricter security policies that filter out ICMP packets or limit the number of hops allowed in a packet. In such cases, traceroute may not be able to complete the route trace.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Traceroute is a useful tool for developers to trace the path of network traffic, identify routing and performance issues, and optimize network configurations. It is available on most operating systems and can be used from the command line. Although there are several misconceptions about Traceroute, it remains a valuable tool in the developer's toolkit.&lt;/p&gt;

&lt;p&gt;References:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Traceroute"&gt;Traceroute - Wikipedia&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.tecmint.com/traceroute-command-examples/"&gt;Traceroute Command in Linux and MacOS [With Examples]&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.cisco.com/c/en/us/support/docs/ip/routing-information-protocol-rip/26704-143.html"&gt;Traceroute - Cisco&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>How to Extract Elements from Thousands of Lines of JSON? The answer is... 🧐</title>
      <dc:creator>He3</dc:creator>
      <pubDate>Sat, 03 Jun 2023 02:21:39 +0000</pubDate>
      <link>https://dev.to/he3tools/how-to-extract-elements-from-thousands-of-lines-of-json-the-answer-is-2iej</link>
      <guid>https://dev.to/he3tools/how-to-extract-elements-from-thousands-of-lines-of-json-the-answer-is-2iej</guid>
      <description>&lt;p&gt;JSON, short for &lt;strong&gt;J&lt;/strong&gt;ava*&lt;em&gt;S&lt;/em&gt;&lt;em&gt;cript **O&lt;/em&gt;&lt;em&gt;bject **N&lt;/em&gt;*otation, was discovered and defined by Douglas Crockford in 2001. While a 22-year-old college student is just graduating, JSON at 22 has become one of the standards for Internet data exchange and is well known to developers.&lt;/p&gt;

&lt;p&gt;As one of the developers, I've read countless JSON files. JSON can be fat or thin, long or short. A short JSON can be a simple array containing only a Boolean value:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And a long JSON can be astonishingly tens of thousands of lines:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---VgqvbeF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/blogs/json-path/ddaaed11b32a171a95d1fa9f6262662e29689233d7c8751ba4df7ebdb82d46e1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---VgqvbeF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/blogs/json-path/ddaaed11b32a171a95d1fa9f6262662e29689233d7c8751ba4df7ebdb82d46e1.png" alt="" width="800" height="607"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;When reading long JSON files, the most common requirement is to extract the value of a field or traverse the object values of an array, all of which are buried deep in the river of JSON.&lt;/p&gt;

&lt;p&gt;For a programming novice, the first thought would be to use programming to get the desired field, suppose we have a JSON structure as follows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"human"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"person"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"man"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Jack"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"age"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"17"&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Mike"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"age"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"32"&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"John"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"age"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"23"&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"David"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"age"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"41"&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Eric"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"age"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"29"&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Chris"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"age"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"38"&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Tom"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"age"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"27"&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Peter"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"age"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"35"&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Robert"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"age"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"26"&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Daniel"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"age"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"33"&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now I need to get the &lt;code&gt;name&lt;/code&gt; of all elements in the &lt;code&gt;man&lt;/code&gt; array, so we would definitely write this JS code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;nameSet&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;human&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;person&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;man&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;manItem&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;manItem&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Thanks to the syntactic sugar and APIs of modern JavaScript, the code is concise. But while the code is simple, there are many issues to consider: one is the need to save this code file, two is the need for an environment to run this code, three is the need to print or save the execution result of the code, and four is the need to continuously debug this code and handle exception and edge cases and so on.&lt;/p&gt;

&lt;p&gt;The programming novice continues to ponder, there are many scenarios to index values in JSON, clumsy programming seems not to be an efficient method, so he wants to rely on the currently popular ChatGPT:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;🧑‍💻 I have the above JSON structure, help me extract the &lt;code&gt;name&lt;/code&gt; field of all elements under the &lt;code&gt;man&lt;/code&gt; field.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;🤖 I'll help you extract the &lt;code&gt;name&lt;/code&gt; field of all elements under &lt;code&gt;man&lt;/code&gt;, the result is:&lt;br&gt;Jack&lt;br&gt;Mike,&lt;br&gt;John,&lt;br&gt;David,&lt;br&gt;Eric,&lt;br&gt;Chris,&lt;br&gt;Tom,&lt;br&gt;Peter,&lt;br&gt;Robert,&lt;br&gt;Daniel&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The programming newbie was thrilled to get the result, but soon encountered another problem. When pasting tens of thousands of lines of JSON into the ChatGPT input box, they quickly received an error message:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vXGQ8QiH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/blogs/json-path/b21381c766ab01c922255155c1f78e33567379376e16cda06603ac89a3b649bc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vXGQ8QiH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/blogs/json-path/b21381c766ab01c922255155c1f78e33567379376e16cda06603ac89a3b649bc.png" alt="" width="800" height="85"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;Even the powerful ChatGPT succumbs in the face of extremely long and complex text. Of course, there are solutions, like inputting in segments, or programmatically calling the ChatGPT API. But if we resort to this, we are back to square one.&lt;/p&gt;

&lt;p&gt;So, is there a better way? 🧐&lt;/p&gt;

&lt;p&gt;The solution must be &lt;strong&gt;JSON Path&lt;/strong&gt;! Let's take the He3 JSON Path tool as an example. To get the &lt;code&gt;name&lt;/code&gt; field from the previous example, we just need to enter &lt;code&gt;$..name&lt;/code&gt; in the input box:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bR-lI6mX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/blogs/json-path/48bbcde8d0b4c6e3b9e089ae6ac60ee0735b57ffcd04907d2d195d94e9a21c3d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bR-lI6mX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/blogs/json-path/48bbcde8d0b4c6e3b9e089ae6ac60ee0735b57ffcd04907d2d195d94e9a21c3d.png" alt="" width="800" height="684"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;JSON Path tool link: &lt;a href="https://t.he3app.com?c9yj"&gt;https://t.he3app.com?c9yj&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Upon first seeing &lt;code&gt;$..name&lt;/code&gt;, you might be confused. What kind of syntax is this? How does it work?&lt;/p&gt;

&lt;p&gt;Let me introduce JSON Path:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;JSON Path is an expression language for locating and extracting specific elements in JSON data. It provides a concise syntax that makes extracting data from complex JSON structures easy.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In simple terms, JSON Path is like Markdown. It's a lightweight syntax that can extract fragments from a JSON structure.&lt;/p&gt;

&lt;p&gt;As a language, JSON Path requires a certain amount of learning to grasp its syntax and keywords. But rest assured, the learning curve for JSON Path is not steep. Once mastered, you can extract specific key values, traverse arrays, filter elements based on conditions, perform slicing, and more. Handling JSON data becomes a breeze.&lt;/p&gt;

&lt;p&gt;Let's first introduce some common JSON Path syntax:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;$&lt;/code&gt;: Root node, representing the outermost layer of JSON data.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;.&lt;/code&gt;: Child node operator, used to access properties in an object.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;[]&lt;/code&gt;: Index operator, used to access elements in an array or filter elements by conditions.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;*&lt;/code&gt;: Wildcard, used to match any property name or array index.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;..&lt;/code&gt;: Recursive descent operator, used to search all levels in a nested structure.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;@&lt;/code&gt;: Current node, can be used to reference the current node in a filtering condition.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Assume we add a &lt;code&gt;"god": "God"&lt;/code&gt; key-value pair in the JSON example mentioned earlier, and we want to use JSON Path to get the &lt;code&gt;god&lt;/code&gt; field, we can use &lt;code&gt;$.god&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3r9YYLME--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/blogs/json-path/89d44088b991c43c4f93591a4a355c62988e6690d56f4e79fed1ce01b896e58a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3r9YYLME--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/blogs/json-path/89d44088b991c43c4f93591a4a355c62988e6690d56f4e79fed1ce01b896e58a.png" alt="" width="800" height="684"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;For &lt;code&gt;$..name&lt;/code&gt;, we know it means "return the values of the &lt;code&gt;name&lt;/code&gt; key at all levels in the JSON data". If we want to get all &lt;code&gt;age&lt;/code&gt; fields, we can change it to &lt;code&gt;$..age&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DOncxiSM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/blogs/json-path/68c1497b06b3647b889fee65a96ae42a90ac4668b8fd3e48bcf94e15edf2b22d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DOncxiSM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/blogs/json-path/68c1497b06b3647b889fee65a96ae42a90ac4668b8fd3e48bcf94e15edf2b22d.png" alt="" width="800" height="684"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;If we want to get the first element of the &lt;code&gt;man&lt;/code&gt; array, we can input &lt;code&gt;$.human.person.man[0]&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WS-IDZLL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/blogs/json-path/0d63d4892acb388b78b18967901fe321c618c1b89172449c907e3658320f344f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WS-IDZLL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/blogs/json-path/0d63d4892acb388b78b18967901fe321c618c1b89172449c907e3658320f344f.png" alt="" width="800" height="684"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;Of course, using the recursive descent operator is even more convenient &lt;code&gt;$..man[0]&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="/blogs/json-path/9a611b39c4937f8d2ad6d232553964f21a0196902c4966c5968e0280ecf65bc5.png" class="article-body-image-wrapper"&gt;&lt;img src="/blogs/json-path/9a611b39c4937f8d2ad6d232553964f21a0196902c4966c5968e0280ecf65bc5.png" alt=""&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;The index reference operator &lt;code&gt;[]&lt;/code&gt; has even more advanced operations.&lt;/p&gt;

&lt;p&gt;For instance, to get the first, second, and third elements, you can input &lt;code&gt;$..man[0,1,2]&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZvXVM3fd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/blogs/json-path/4c1ca968ac81ea533097675b6c7a19c089c7d9603df2c62221d35bc874678db8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZvXVM3fd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/blogs/json-path/4c1ca968ac81ea533097675b6c7a19c089c7d9603df2c62221d35bc874678db8.png" alt="" width="800" height="684"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;For getting &lt;code&gt;1&lt;/code&gt;, &lt;code&gt;2&lt;/code&gt;, &lt;code&gt;3&lt;/code&gt;, such consecutive array elements, JSON Path provides a more convenient expression &lt;code&gt;[start:end]&lt;/code&gt;. The above can be changed to &lt;code&gt;$..man[0:3]&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4pVYZA2U--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/blogs/json-path/5533fe4310cdc90a32263d0d94e18f3a451f187f0836413cd20e5f2f48c715cf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4pVYZA2U--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/blogs/json-path/5533fe4310cdc90a32263d0d94e18f3a451f187f0836413cd20e5f2f48c715cf.png" alt="" width="800" height="684"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;❗️ Note that the expression &lt;code&gt;[0,3&lt;/code&gt; includes the &lt;code&gt;start&lt;/code&gt; but not the &lt;code&gt;end&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;JSON Path also provides two types of expressions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;()&lt;/code&gt;: &lt;strong&gt;Expression&lt;/strong&gt; used for condition judgments or logical operations. You can use comparison operators (such as &lt;code&gt;&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;&lt;/code&gt;, &lt;code&gt;==&lt;/code&gt; etc.) and logical operators (such as &lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt;, &lt;code&gt;||&lt;/code&gt;) to define conditions inside the parentheses. For instance, &lt;code&gt;(@.length)&lt;/code&gt; represents getting the last element of an array.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;?()&lt;/code&gt;: &lt;strong&gt;Filter expression&lt;/strong&gt;. In &lt;code&gt;?()&lt;/code&gt;, you can use any legal JavaScript expression to filter elements. Such expressions are calculated inside the filter and decide whether to select or exclude the current element based on their result. For instance, &lt;code&gt;[?(@.age &amp;gt; 25)]&lt;/code&gt; filters elements based on the "age" attribute, selecting those where the age is greater than 25.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;With these two expressions, we can further improve the accuracy of data extraction. For instance, to get the last element of &lt;code&gt;man&lt;/code&gt;, we can use &lt;code&gt;$..man[(@.length-1)]&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ASV5fAYe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/blogs/json-path/a0717ee713aa73a4b3eb3025fc5338af2d8896011e5877ad09c5e75de1e911f5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ASV5fAYe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/blogs/json-path/a0717ee713aa73a4b3eb3025fc5338af2d8896011e5877ad09c5e75de1e911f5.png" alt="" width="800" height="684"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;&lt;code&gt;@&lt;/code&gt; represents the current element, &lt;code&gt;.length&lt;/code&gt; represents the length of the current element, so &lt;code&gt;(@.length-1)&lt;/code&gt; can be used to get the last element of an array.&lt;/p&gt;

&lt;p&gt;If we want to filter out people with &lt;code&gt;age&lt;/code&gt; greater than or equal to &lt;code&gt;33&lt;/code&gt; in the &lt;code&gt;man&lt;/code&gt; field, we can use the filter expression &lt;code&gt;$..man[?(@.age &amp;gt;= 33)]&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Oo_SVN6L--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/blogs/json-path/2e12c15a2cca131ebd0f6578dc2b7d1becce6b78789d2a0d389192f04d9e895d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Oo_SVN6L--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/blogs/json-path/2e12c15a2cca131ebd0f6578dc2b7d1becce6b78789d2a0d389192f04d9e895d.png" alt="" width="800" height="684"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;The above covers most of the commonly used JSON Path syntax. For less commonly used syntax, you can refer to the &lt;a href="https://github.com/JSONPath-Plus/JSONPath"&gt;JSON Path Plus implementation&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;JSON Path doesn't have an official standard document, but there are some widely accepted and used implementations and documents. JSON Path Plus is one of them, and the He3 JSON Path tool adopts JSON Path Plus.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Returning to the main topic, in the following tens of thousands of lines of JSON:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---VgqvbeF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/blogs/json-path/ddaaed11b32a171a95d1fa9f6262662e29689233d7c8751ba4df7ebdb82d46e1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---VgqvbeF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/blogs/json-path/ddaaed11b32a171a95d1fa9f6262662e29689233d7c8751ba4df7ebdb82d46e1.png" alt="" width="800" height="607"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;If you want to see if there are &lt;code&gt;friends&lt;/code&gt; named &lt;code&gt;Ellen Rowland&lt;/code&gt;, you can:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gOoyRAJ7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/blogs/json-path/30176984cc2bb78b47cb19d70621f98ffe5f705b1e42db35c59889d70c47caa1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gOoyRAJ7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/blogs/json-path/30176984cc2bb78b47cb19d70621f98ffe5f705b1e42db35c59889d70c47caa1.png" alt="" width="800" height="684"&gt;&lt;/a&gt;  &lt;/p&gt;

</description>
    </item>
    <item>
      <title>Developing a typesetting gadget in He3 for three minutes</title>
      <dc:creator>He3</dc:creator>
      <pubDate>Wed, 31 May 2023 17:39:42 +0000</pubDate>
      <link>https://dev.to/he3tools/developing-a-typesetting-gadget-in-he3-for-three-minutes-n7p</link>
      <guid>https://dev.to/he3tools/developing-a-typesetting-gadget-in-he3-for-three-minutes-n7p</guid>
      <description>&lt;p&gt;As official website said in &lt;a href="https://he3.app/" rel="noopener noreferrer"&gt;He3&lt;/a&gt;, He3 is a &amp;lt; u &amp;gt; developer's toolbox &amp;lt; /u &amp;gt;, which contains many tools that developers need.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe17822i5xot9mohunknu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe17822i5xot9mohunknu.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fhe3.app%2Fblogs%2Fcopywriting-correct%2Ff177be64a651335c452afac51c6a6c70e24f09e5bf23d2ab2f6ae807f4bbfb3f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fhe3.app%2Fblogs%2Fcopywriting-correct%2Ff177be64a651335c452afac51c6a6c70e24f09e5bf23d2ab2f6ae807f4bbfb3f.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Like uTools and Raycast, He3 also provides an &amp;lt; u &amp;gt; open system &amp;lt; /u &amp;gt; where users can build their own tools.&lt;/p&gt;

&lt;p&gt;Just recently, there was a need for tools. When writing a blog, I often encountered the problem of &amp;lt; u &amp;gt; typesetting &amp;lt; /u &amp;gt;. Generally, spaces need to be added between Chinese and English, such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Compared with the same quarter in 2022, Apple's revenue from iPhone increased in the first three months of 2023.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Need to be formatted as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Compared with the same quarter in 2022, Apple's revenue from iPhone increased in the first three months of 2023.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For this text conversion scenario, He3 provides a very convenient TextTransform component, and we only need to give &amp;lt; u &amp;gt; a conversion method to develop a tool &amp;lt; /u &amp;gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk8q3mut8y3djo2n81y4q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk8q3mut8y3djo2n81y4q.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;! &lt;a href="https://he3.app/blogs/copywriting-correct/695117e24f9b40d17abcc3281218c5f5363d1b401573fafd3f9a3223cf270e3e.png" rel="noopener noreferrer"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;TextTransform' component development document: &lt;a href="https://docs.he3app.com/components/texttransform.html" rel="noopener noreferrer"&gt;https://docs.he3app.com/components/texttransform.html&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We first go to the web provided by He3 ([&lt;a href="https://portal.he3app.com/home/createtool%5D" rel="noopener noreferrer"&gt;https://portal.he3app.com/home/createtool]&lt;/a&gt;), log in and fill in our tool name, ID, description, keywords and other information on the "Create Tool" page, and then press &amp;lt; u &amp;gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5h5y7q38a6mlv7876vkc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5h5y7q38a6mlv7876vkc.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Open the project and execute npm install to install the dependency:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhxe9vyk0wif2etnlzj9w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhxe9vyk0wif2etnlzj9w.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The structure of the project is very simple, mainly' package.json' plus' index.vue' file, and our tool code is written in the' index.vue' file (here I use the writing method of Vue3, and I use a "[copying-correct]" (&lt;a href="https://www.npmjs.com/package/blogs/" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/blogs/&lt;/a&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;template&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;h-text-transform&lt;/span&gt; &lt;span class="na"&gt;:sampleData=&lt;/span&gt;&lt;span class="s"&gt;"sampleData"&lt;/span&gt; &lt;span class="na"&gt;:transform=&lt;/span&gt;&lt;span class="s"&gt;"transform"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/template&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;setup&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"ts"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;CopyWritingCorrectService&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;copywriting-correct&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;


&lt;span class="nx"&gt;Const&lt;/span&gt; &lt;span class="nx"&gt;sampleData&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`He3 is the ultimate developer toolbox containing nearly 400 tools, covering the daily needs of front-end and back-end developers. He3' s intelligent search and clipboard intelligent recommendation will raise your development efficiency to a new level. `&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;service&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;CopyWritingCorrectService&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;transform&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;inputValue&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;string&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="nx"&gt;string&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;service&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;correct&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;inputValue&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then execute' npm run dev', and in the He3 client (you need to install &lt;a href="https://he3.app/zh/" rel="noopener noreferrer"&gt;client &lt;/a&gt; and log in), you can see our tools:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsqqxtxdbr1vmgxerdqzg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsqqxtxdbr1vmgxerdqzg.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After the development, we can publish our tools by executing' npm run publish' and get our tool link: &lt;a href="https://t.he3app.com/67cj" rel="noopener noreferrer"&gt;https://t.he3app.com/67cj&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6cx8ef2z8p73ip5whbym.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6cx8ef2z8p73ip5whbym.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Later, we can check the review process of our tools on the He3 web side:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F977yvo378hp6i3gjoaf3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F977yvo378hp6i3gjoaf3.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It can be seen that the overall development experience is quite simple. You only need to have a node environment locally and install the He3 client, so you can build your own tools. At the same time, He3 provides highly encapsulated components for transformation scenarios, and &amp;lt; u &amp;gt; a small tool can be realized with a few lines of code &amp;lt; /u &amp;gt;. Finally, you are also welcome to experience the Chinese and English copywriting typesetting corrector: &lt;a href="https://t.he3app.com/67cj" rel="noopener noreferrer"&gt;https://t.he3app.com/67cj&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>2 minutes to create a professional developer resume.</title>
      <dc:creator>He3</dc:creator>
      <pubDate>Wed, 31 May 2023 06:48:08 +0000</pubDate>
      <link>https://dev.to/he3tools/2fen-zhong-da-zao-zhuan-ye-de-kai-fa-zhe-jian-li-4bl0</link>
      <guid>https://dev.to/he3tools/2fen-zhong-da-zao-zhuan-ye-de-kai-fa-zhe-jian-li-4bl0</guid>
      <description>&lt;p&gt;It is not easy to make an eye-catching resume. Usually, we need to polish it from the perspectives of content, typesetting, logic and UI design. For developers in honest and frank, typesetting and UI are the most easily overlooked parts.&lt;/p&gt;

&lt;p&gt;In recent years, due to work reasons, I have interviewed hundreds of candidates and read thousands of resumes. For an excellent HR, in addition to understanding the basic conditions and advantages of the candidate from the resume, you can also read a lot of extra information, such as the candidate's attitude, whether the details are controlled, the requirements for yourself and even the general personality, which is "taste" in the slang of a big factory.&lt;/p&gt;

&lt;p&gt;So, what does a good resume look like? As far as my aesthetics are concerned, the following style is my favorite. Resumes are also starting to roll up!&lt;/p&gt;

&lt;p&gt;It is not easy to make an eye-catching resume. Usually, we need to polish it from the perspectives of content, typesetting, logic and UI design. For developers in honest and frank, typesetting and UI are the most easily overlooked parts.&lt;/p&gt;

&lt;p&gt;In recent years, due to work reasons, I have interviewed hundreds of candidates and read thousands of resumes. For an excellent HR, in addition to understanding the basic conditions and advantages of the candidate from the resume, you can also read a lot of extra information, such as the candidate's attitude, whether the details are controlled, the requirements for yourself and even the general personality, which is "taste" in the slang of a big factory.&lt;/p&gt;

&lt;p&gt;So, what does a good resume look like? As far as my aesthetics are concerned, the following style is my favorite.&lt;/p&gt;

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

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

&lt;p&gt;They look very pleasing to the eye at first glance, but in fact they are full of details, such as:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Font selection&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Size, thickness and italics&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Spacing&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Step 4 list&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Block&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Step 6: typesetting&lt;/p&gt;

&lt;p&gt;Obviously, it is very complicated to design an excellent resume from scratch. Most students are still in the stage of using the universal Word template set. For some students with high requirements, they may use Latex to make it, which is exquisite but extremely complicated.&lt;/p&gt;

&lt;p&gt;Now, with "Simple Resume" (&lt;a href="https://easycv.cn/"&gt;https://easycv.cn/&lt;/a&gt;), it only takes 2 minutes to create a professional developer resume.&lt;/p&gt;

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

&lt;p&gt;Built-in rich templates&lt;br&gt;
"Simple Resume" has built-in rich templates, which basically cover all kinds of jobs on the Internet. For example: front-end and back-end, mobile, Web3, operation and maintenance, test and development, design and products, etc.&lt;/p&gt;

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

&lt;p&gt;Just choose the template you want, and you can create a resume with rich content, strong logic and delicate UI in the form.&lt;/p&gt;

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

&lt;p&gt;For developers, you just need to focus on the content so that you can spend more energy on tapping your personal advantages.&lt;/p&gt;

&lt;p&gt;Finally, if you are not satisfied with the template, you can change the template at any time, and the content remains the same. I have to say this is very intimate!&lt;/p&gt;

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

&lt;p&gt;Powerful content editor&lt;br&gt;
The content editor of "Simple Resume" is very powerful. For example, you can adjust the layout of your resume in order.&lt;/p&gt;

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

&lt;p&gt;For the content in your resume, you can also drag the content to sort it.&lt;/p&gt;

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

&lt;p&gt;I have to say that it is really excellent in interaction and experience!&lt;/p&gt;

&lt;p&gt;Share and download online&lt;br&gt;
After the resume is completed, you can choose to share it publicly or download PDF (membership function).&lt;/p&gt;

&lt;p&gt;Surprisingly, when downloading PDF, it supports two layouts at the same time, namely PC layout and mobile phone layout, which is a great experience for HR who uses mobile phones for recruitment. You should know that ordinary PDF resumes look too hard on mobile phones.&lt;/p&gt;

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

</description>
    </item>
    <item>
      <title>Understanding the CRC32 Hash: A Comprehensive Guide</title>
      <dc:creator>He3</dc:creator>
      <pubDate>Sun, 28 May 2023 15:03:32 +0000</pubDate>
      <link>https://dev.to/he3tools/understanding-the-crc32-hash-a-comprehensive-guide-5eg8</link>
      <guid>https://dev.to/he3tools/understanding-the-crc32-hash-a-comprehensive-guide-5eg8</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br&gt;
Hash functions are essential tools in computing that are used to map data of arbitrary size to a fixed size. Among the most widely used ones is the Cyclic Redundancy Check (CRC) algorithm, which can be used to ensure data integrity, detect error codes, and identify duplicates in databases. In this article, we’ll focus specifically on CRC32 Hash, one of the many variants of the CRC algorithm.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is CRC32 Hash?&lt;/strong&gt;&lt;br&gt;
CRC32 Hash is a 32-bit hash function that performs a cyclic redundancy check on a block of data of any size and returns a fixed-length checksum. The resulting checksum is unique to the input data, making it suitable for validating whether data has been changed, corrupted, or unintentionally damaged during transmission or storage.&lt;/p&gt;

&lt;p&gt;The CRC32 algorithm is based on a mathematical formula that generates a polynomial of degree 32, which represents the checksum. The function iterates over the input data, dividing it into chunks and performing a calculation on each chunk using the polynomial.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How it works&lt;/strong&gt;&lt;br&gt;
CRC32 Hash involves building a polynomial representation of the input data, dividing it by a primitive polynomial, and then taking the remainder as the hash value. The primitive polynomial used can be any of the pre-defined ones or a custom one defined by the developer.&lt;/p&gt;

&lt;p&gt;The hash value obtained from the CRC32 algorithm can be used to check if the data has been transmitted or stored correctly by comparing it with the expected hash value.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scenarios&lt;/strong&gt;&lt;br&gt;
The CRC32 Hash is used in various scenarios, such as:&lt;/p&gt;

&lt;p&gt;Data transmission where there is a need for error detection&lt;br&gt;
File verification to ensure that downloaded files are not corrupted&lt;br&gt;
Integrity checks in databases and message digests&lt;br&gt;
Identification of duplicates in databases&lt;br&gt;
Data synchronization between systems&lt;br&gt;
Developers can use CRC32 Hash in their applications to verify data integrity, detect data duplicates, or checksum entire files quickly and easily.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sample Code&lt;/strong&gt;&lt;br&gt;
Here is an example of how to calculate the CRC32 Hash of a string:&lt;/p&gt;

&lt;p&gt;import zlib&lt;/p&gt;

&lt;p&gt;message = 'Hello, world!'&lt;br&gt;
crc32_hash = hex(zlib.crc32(message.encode('utf-8')))&lt;br&gt;
print(crc32_hash)&lt;br&gt;
Key Features&lt;br&gt;
Some key features of the CRC32 Hash include:&lt;/p&gt;

&lt;p&gt;It is simple and fast to compute&lt;br&gt;
It is widely used&lt;br&gt;
It has a low probability of generating hash collisions&lt;br&gt;
It is easy to implement in hardware&lt;br&gt;
Misconceptions and FAQs&lt;br&gt;
It is often assumed that the CRC32 Hash is foolproof and guarantees data security entirely. However, it is important to note that it only detects whether data integrity has been compromised but not how it has been compromised. Here are some frequently asked questions about CRC32 Hash:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q:&lt;/strong&gt; Can I use CRC32 Hash to encrypt sensitive data? A: No. CRC32 Hash is not an encryption algorithm and should not be used for encryption or obfuscation of sensitive data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q:&lt;/strong&gt; What is the best hash function for large datasets? A: The choice of a hash function depends on the specific needs of the application. Other popular hash algorithms for large datasets include SHA256 and MD5.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
The CRC32 Hash is a simple and fast hash function that is widely used for data integrity checks, error detection, and identification of duplicates in databases. It is easy to implement and has a low likelihood of producing hash collisions. Developers can use CRC32 Hash to verify data integrity and detect changes caused by unintentional corruption, malicious tampering, or data storage errors, among other scenarios.&lt;/p&gt;

&lt;p&gt;Or you can use CRC32 Hash tool in He3 Toolbox (&lt;a href="https://t.he3app.com?n235"&gt;https://t.he3app.com?n235&lt;/a&gt; ) easily.&lt;/p&gt;

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

</description>
    </item>
    <item>
      <title>Properties To YAML: Converting Properties Files to YAML</title>
      <dc:creator>He3</dc:creator>
      <pubDate>Fri, 26 May 2023 01:59:48 +0000</pubDate>
      <link>https://dev.to/he3tools/properties-to-yaml-converting-properties-files-to-yaml-4l20</link>
      <guid>https://dev.to/he3tools/properties-to-yaml-converting-properties-files-to-yaml-4l20</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;Software applications rely heavily on configuration files, and it's essential to manage them correctly. Properties files and YAML files are two popular formats for configuration files. Developers generally prefer YAML due to its flexibility and readability. But what happens when you're using a properties file and need it to work with YAML? This is where Properties To YAML comes in. &lt;/p&gt;

&lt;h1&gt;
  
  
  Understanding Properties To YAML
&lt;/h1&gt;

&lt;p&gt;Properties To YAML is a tool that allows developers to easily convert properties file to YAML format. This tool ensures that developers don't have to manually convert their files, saving time and energy. The tool works by analyzing the properties file and converting each configuration line into a YAML format. &lt;/p&gt;

&lt;p&gt;The output generated by Properties To YAML is much more readable and can be edited easily. The tool is particularly useful when transferring data from a properties file to a YAML file.&lt;/p&gt;

&lt;h1&gt;
  
  
  How to use Properties To YAML
&lt;/h1&gt;

&lt;p&gt;To use Properties To YAML, you can use the He3 Toolbox, which comes with the tool pre-installed. Or you can use the command line interface. &lt;/p&gt;

&lt;p&gt;Here's how to use Properties To YAML on the command line:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install Properties To YAML using pip:
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;code&gt;pip install properties-to-yaml&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Run the following command:
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;code&gt;properties-to-yaml [input_file_path].properties [output_file_path].yaml&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;And that's it! Your properties file will be converted to a YAML file.&lt;/p&gt;

&lt;h1&gt;
  
  
  Scenarios for Developers
&lt;/h1&gt;

&lt;p&gt;Properties To YAML is particularly useful when dealing with multiple configuration files. Developers can easily automate the conversion process using batch scripts or integrate the tool into their CI/CD pipeline. &lt;/p&gt;

&lt;p&gt;For instance, suppose you're working on a project with multiple properties files. In that case, you could use Properties To YAML to convert all of them to YAML files automatically. This automation will save you and your team time and reduce the risk of human error.&lt;/p&gt;

&lt;h1&gt;
  
  
  Key Features
&lt;/h1&gt;

&lt;p&gt;Here are some of the key features of Properties To YAML:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Command-line Interface&lt;/td&gt;
&lt;td&gt;Run the tool using the command line&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Easy to Use&lt;/td&gt;
&lt;td&gt;The tool is easy to understand and use&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Automated Conversion&lt;/td&gt;
&lt;td&gt;Easily convert multiple properties files to YAML format&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Errors and Warnings&lt;/td&gt;
&lt;td&gt;The tool provides error and warning messages, making it easier to debug&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;He3 Toolbox Integration&lt;/td&gt;
&lt;td&gt;The tool is pre-installed, making it easier to use for He3 Toolbox users&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h1&gt;
  
  
  Misconceptions and FAQs
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Misconceptions
&lt;/h2&gt;

&lt;p&gt;One misconception about Properties To YAML is that it's only useful for developers working with legacy properties files. However, the truth is that developers can use it for many scenarios, including batch file conversion or automation. &lt;/p&gt;

&lt;h2&gt;
  
  
  FAQs
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Q: Do I need to have He3 Toolbox installed to use Properties To YAML?
&lt;/h3&gt;

&lt;p&gt;A: No, you can use Properties To YAML without having the He3 Toolbox installed. &lt;/p&gt;

&lt;h3&gt;
  
  
  Q: Are there any limitations to Properties To YAML?
&lt;/h3&gt;

&lt;p&gt;A: Yes, the tool is limited to converting properties files only. Also, the tool doesn't support nested configurations.&lt;/p&gt;

&lt;h3&gt;
  
  
  Q: Is Properties To YAML open source?
&lt;/h3&gt;

&lt;p&gt;A: Yes, Properties To YAML is open source and available on GitHub. &lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;Properties To YAML is an essential tool for developers who work with properties files and need to convert them to YAML format. With its easy-to-use interface and command-line support, Properties To YAML is a great tool to add to your development toolbox. Moreover, the He3 Toolbox integration makes it even easier to use. Try it out and see how it can simplify your configuration file management. &lt;/p&gt;

&lt;p&gt;References: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/monicasarbu/properties-to-yaml"&gt;Properties To YAML GitHub Repository&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/.properties"&gt;Properties file (Wikipedia)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/YAML"&gt;YAML (Wikipedia)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>It's True, Following the Ethernet Cable Can Lead to Your Location: Just One Picture is Enough</title>
      <dc:creator>He3</dc:creator>
      <pubDate>Thu, 25 May 2023 16:16:45 +0000</pubDate>
      <link>https://dev.to/he3tools/its-true-following-the-ethernet-cable-can-lead-to-your-location-just-one-picture-is-enough-5a7n</link>
      <guid>https://dev.to/he3tools/its-true-following-the-ethernet-cable-can-lead-to-your-location-just-one-picture-is-enough-5a7n</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;With just one picture, how can you find the location and time of capture without leaving your home? In fact, every time you take a photo, your phone or camera saves an image file (usually JPEG) on the device. This file not only contains all the visible pixels but also includes a wealth of image EXIF metadata.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is EXIF Data
&lt;/h2&gt;

&lt;p&gt;EXIF stands for Exchangeable Image File Format, which is a metadata format used for embedding information in digital images. EXIF data records the shooting information and related technical data of a photo. The following table shows some of the EXIF information.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;EXIF&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Sample Output&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Make&lt;/td&gt;
&lt;td&gt;Camera maker&lt;/td&gt;
&lt;td&gt;Apple&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Model&lt;/td&gt;
&lt;td&gt;Camera model&lt;/td&gt;
&lt;td&gt;iPhone 11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ExposureTime&lt;/td&gt;
&lt;td&gt;Exposure time&lt;/td&gt;
&lt;td&gt;1/60&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ExposureProgram&lt;/td&gt;
&lt;td&gt;Exposure program&lt;/td&gt;
&lt;td&gt;Normal program&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ISOSpeedRatings&lt;/td&gt;
&lt;td&gt;ISO speed&lt;/td&gt;
&lt;td&gt;160&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ApertureValue&lt;/td&gt;
&lt;td&gt;Aperture value&lt;/td&gt;
&lt;td&gt;1.8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ExposureBiasValue&lt;/td&gt;
&lt;td&gt;Exposure bias&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Flash&lt;/td&gt;
&lt;td&gt;Flash status&lt;/td&gt;
&lt;td&gt;Flash did not fire，compulsory flash mode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FocalLength&lt;/td&gt;
&lt;td&gt;Focal length&lt;/td&gt;
&lt;td&gt;4.25 mm&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ExposureMode&lt;/td&gt;
&lt;td&gt;Exposure mode&lt;/td&gt;
&lt;td&gt;Auto exposure&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LensModel&lt;/td&gt;
&lt;td&gt;Lens model&lt;/td&gt;
&lt;td&gt;iPhone 11 back dual wide camera 4.25mm f/1.8&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;These pieces of information provide detailed data about the shooting device, exposure settings, and lens information. For photography enthusiasts and professional photographers, they are valuable for understanding the shooting conditions and technical parameters of a photo.&lt;/p&gt;

&lt;p&gt;However, some EXIF data may also contain privacy information that you may not want to expose, such as GPS-related information at the time of shooting. The following table shows some of the GPS information that can be obtained from EXIF.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;EXIF&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Sample Output&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;GPS Info IFD Pointer&lt;/td&gt;
&lt;td&gt;Pointer position for GPS information storage&lt;/td&gt;
&lt;td&gt;2090&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPSLatitude&lt;/td&gt;
&lt;td&gt;Latitude value&lt;/td&gt;
&lt;td&gt;14.35716389&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPSLongitude&lt;/td&gt;
&lt;td&gt;Longitude value&lt;/td&gt;
&lt;td&gt;100.5653306&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPSAltitude&lt;/td&gt;
&lt;td&gt;Altitude value&lt;/td&gt;
&lt;td&gt;0.432788587534304 m&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPSSpeed&lt;/td&gt;
&lt;td&gt;Speed value&lt;/td&gt;
&lt;td&gt;0.066762067&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPSImgDirection&lt;/td&gt;
&lt;td&gt;Image direction value&lt;/td&gt;
&lt;td&gt;129.419281&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPSDestBearing&lt;/td&gt;
&lt;td&gt;Destination bearing value&lt;/td&gt;
&lt;td&gt;129.419281&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPSDateStamp&lt;/td&gt;
&lt;td&gt;GPS date&lt;/td&gt;
&lt;td&gt;2023:05:01&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPSHPositioningError&lt;/td&gt;
&lt;td&gt;Horizontal positioning error&lt;/td&gt;
&lt;td&gt;5.026539358&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  How to Obtain EXIF Data
&lt;/h2&gt;

&lt;p&gt;With the popularity of mobile devices and the continuous evolution of GPS technology, location services have become more accurate. Most smartphones record GPS coordinates when taking photos. Therefore, if you upload photos with metadata to social media or send them by e-mail, although there is usually no problem, malicious people can collect a lot of detailed information from them. Earlier, an article titled "How I Reasoned out Wang Luodan's Address" became popular on the internet, and the author used photos of Wang Luodan on social network platform to reason out his address information in just 40 minutes. Today, with an EXIF extraction tool, one can obtain this information quickly, even deduce the height of the building based on the height information.&lt;/p&gt;

&lt;p&gt;You can use the exif-cli command-line tool to extract EXIF information:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;you need to install Node.js, which can be downloaded and installed from the Node.js website.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Install exif-cli globally by the following command:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;npm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;install&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-g&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;exif-cli&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Change the directory to the location of the target image and enter the following command in the terminal after opening it:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;exif&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;example.jpg&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The final result is as follows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;PS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\Users\rance\Pictures&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;exif&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;example.jpg&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nx"&gt;Make:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Apple&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;Model:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;iPhone&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;11&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;Orientation:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;1&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;XResolution:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;72&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;YResolution:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;72&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;ResolutionUnit:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;2&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;Software:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;16.3.1&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;ModifyDate:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;2023:05:01&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;18:41:33&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;HostComputer:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;iPhone&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;11&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;ExifOffset:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;216&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;GPSInfo:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;2090&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="n"&gt;exif&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nx"&gt;ExposureTime:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;0.016666666666666666&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;FNumber:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;1.8&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;ExposureProgram:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;2&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;ISO:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;160&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;ExifVersion:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;0232&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;DateTimeOriginal:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;2023:05:01&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;18:41:33&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;CreateDate:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;2023:05:01&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;18:41:33&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;ShutterSpeedValue:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;5.915630896403007&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;ApertureValue:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;1.6959938128383605&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;BrightnessValue:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;3.0061857632280167&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;ExposureCompensation:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;0&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;MeteringMode:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;3&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;Flash:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;16&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;FocalLength:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;4.25&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;SubjectArea:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;2559&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;2283&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;740&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;775&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;SubSecTimeOriginal:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;676&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;SubSecTimeDigitized:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;676&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;ColorSpace:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;65535&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;ExifImageWidth:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;4032&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;ExifImageHeight:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;3024&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;SensingMethod:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;2&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;SceneType:&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nx"&gt;ExposureMode:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;0&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;WhiteBalance:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;0&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;DigitalZoomRatio:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;1.9947229551451187&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;FocalLengthIn35mmFormat:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;52&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;LensInfo:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;1.5399999618512084&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;4.25&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;1.8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;2.4&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;LensMake:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Apple&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;LensModel:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;iPhone&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;11&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;back&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;dual&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;wide&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;camera&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;4.25mm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;f/1.8&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="n"&gt;gps&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nx"&gt;GPSLatitudeRef:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;N&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;GPSLatitude:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;14&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;21&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;25.79&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;GPSLongitudeRef:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;E&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;GPSLongitude:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;33&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;55.19&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;GPSAltitudeRef:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;1&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;GPSAltitude:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;0.43278858753430416&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;GPSSpeedRef:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;K&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;GPSSpeed:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;0.06676206737914926&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;GPSImgDirectionRef:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;T&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;GPSImgDirection:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;129.41928104575163&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;GPSDestBearingRef:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;T&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;GPSDestBearing:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;129.41928104575163&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;GPSDateStamp:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;2023:05:01&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;GPSHPositioningError:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;5.026539357943012&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Although exif-cli can obtain exif data, it is cumbersome to use, requires configuration of related dependencies, and lacks an easy-to-interact UI interface. To solve this problem, He3 provides a visual EXIF extraction tool.&lt;/p&gt;

&lt;p&gt;He3's EXIF extraction tool not only extracts EXIF information but also categorizes data on different focal points. Perhaps you want to uncover the magical secrets behind these stunning photos and explore how they were born. Maybe you are eager to know the exact location of those picturesque places so you can visit them in person, and He3's EXIF extraction tool is just what you need! Whether it's shooting time, camera model, or exposure parameters, this built-in tool in He3 can present them all for you.&lt;/p&gt;

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

&lt;p&gt;Experience He3's image EXIF extraction tool now: &lt;a href="https://t.he3app.com/fns5"&gt;https://t.he3app.com/fns5&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to clear EXIF information
&lt;/h2&gt;

&lt;p&gt;It should be noted that since EXIF data is embedded in image files, it may pose privacy and security risks. For example, when sharing photos on social media or online, location information in EXIF data can reveal a person's actual location. Therefore, we need to be cautious when sharing photos with EXIF data and make appropriate processing and deletion when necessary. In fact, EXIF data can be considered as "redundant information" of the image, and removing it will not affect the actual pixels of the image. After testing, He3's image EXIF extractor tool can remove sensitive information in the image, thus protecting your privacy.&lt;/p&gt;

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

&lt;p&gt;After removing the EXIF information from the sample image, it can be seen that the information has been cleared when inputting it back into the EXIF extractor.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it yourself
&lt;/h2&gt;

&lt;p&gt;Perhaps you are not satisfied with being an observer. In He3's tool library, there is also a lightweight EXIF editor for you to make simple edits to EXIF information.&lt;/p&gt;

&lt;p&gt;In fact, editing EXIF information often requires a lot of professional knowledge to ensure the correctness of EXIF format. For example, the format of storing EXIF in images taken with Android and iOS systems is different, and the format of storing EXIF in images on different devices under the same system is also different. Therefore, we have retained as many popular focal points as possible for you to edit.&lt;/p&gt;

&lt;p&gt;Experience He3's image EXIF editor tool now: &lt;a href="https://t.he3app.com/2m3r"&gt;https://t.he3app.com/2m3r&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Perhaps you want to ask
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Can the shooting location of the photo be found?
It can be found, but the prerequisite is that the image has GPS location data. Upload it to He3, and you'll know. If you turn off GPS positioning in your phone settings, the photo will not contain GPS data.&lt;/li&gt;
&lt;li&gt;Is EXIF data guaranteed to be true?
Not necessarily, as there are currently multiple ways to modify photo metadata. It is impossible to ensure that you are viewing the original image metadata or metadata that has been edited by someone else.&lt;/li&gt;
&lt;li&gt;Is it safe to upload images to He3?
He3 will not engage in any privacy-infringing behavior. For example, in He3's image EXIF extraction tool, the images you upload will not be stored and are only used for extracting and visualizing metadata.&lt;/li&gt;
&lt;li&gt;Is there a charge?
This tool is provided completely free of charge. In addition, He3 also provides more than 400 other free tools for you to use.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Learn more
&lt;/h2&gt;

&lt;p&gt;Feel free to download the latest version of the He3 client or update your version to 1.3.7 and experience it. Use He3 to unleash your modern development potential. Official website: &lt;a href="https://he3.app/"&gt;https://he3.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;f you have any ideas or suggestions on how we can use our tools to improve your work efficiency, feel free to raise issues and discuss with us: &lt;a href="https://github.com/he3-app/he3-feedback/issues"&gt;https://github.com/he3-app/he3-feedback/issues&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Understanding etc/hosts file in Web Development</title>
      <dc:creator>He3</dc:creator>
      <pubDate>Tue, 23 May 2023 16:11:23 +0000</pubDate>
      <link>https://dev.to/he3tools/understanding-etchosts-file-in-web-development-1imo</link>
      <guid>https://dev.to/he3tools/understanding-etchosts-file-in-web-development-1imo</guid>
      <description>&lt;p&gt;As a web developer, you might have heard of the &lt;code&gt;etc/hosts&lt;/code&gt; file, but don't yet understand what it is or how it works. This file plays a vital role in how your computer interacts with domain names and IP addresses, and it is essential to understand to optimize your web development process. This article will explain everything you need to know about the &lt;code&gt;etc/hosts&lt;/code&gt; file, including its concept, how it works, scenarios of use, misconceptions, and FAQs.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is etc/hosts?
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;etc/hosts&lt;/code&gt; file is a plain text file that maps domain names to their corresponding IP addresses. Put simply, it is a directory of hostnames and IP addresses that your computer uses to resolve domain names locally. When you type a URL into your web browser, your computer checks the &lt;code&gt;etc/hosts&lt;/code&gt; file first to see if it matches any domain names before checking DNS servers.&lt;/p&gt;

&lt;h2&gt;
  
  
  How does etc/hosts work?
&lt;/h2&gt;

&lt;p&gt;When you open the &lt;code&gt;etc/hosts&lt;/code&gt; file, you will find a list of domain names and IP addresses, separated by whitespace. The format of each line is as follows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;IP Address     Hostname
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For example, if you wanted to map the domain name &lt;code&gt;www.example.com&lt;/code&gt; to the IP address &lt;code&gt;192.168.0.1&lt;/code&gt;, you could add the following line to your &lt;code&gt;etc/hosts&lt;/code&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;192.168.0.1    www.example.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once you've added this line, your computer will resolve &lt;code&gt;www.example.com&lt;/code&gt; to &lt;code&gt;192.168.0.1&lt;/code&gt; whenever you try to access it. This is helpful when working on a project locally before it is deployed to a server.&lt;/p&gt;

&lt;p&gt;Or you can use Edit hosts file in He3 Toolbox (&lt;a href="https://he3.app"&gt;https://he3.app&lt;/a&gt; ) easily.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BCjgyHFx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/blogs/hosts/hosts.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BCjgyHFx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/blogs/hosts/hosts.png" alt="traceroute" width="800" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Scenarios of use
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;etc/hosts&lt;/code&gt; file is used in various scenarios within web development. Here are three examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Debugging a website locally: Developers can use the &lt;code&gt;etc/hosts&lt;/code&gt; file to redirect a domain name to a local IP address, allowing them to test website functionality without having to deploy to a server.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Blocking ads: By redirecting ad-serving domains to &lt;code&gt;127.0.0.1&lt;/code&gt;, developers can block unwanted ads from showing up while visiting a website.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Setting up a development environment: When working on a web project, it is typical to have multiple staging environments set up. By using the &lt;code&gt;etc/hosts&lt;/code&gt; file, developers can access each environment using a unique domain name.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key features of etc/hosts
&lt;/h2&gt;

&lt;p&gt;Here are some key features of the &lt;code&gt;etc/hosts&lt;/code&gt; file to know:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Local Mapping&lt;/td&gt;
&lt;td&gt;The &lt;code&gt;etc/hosts&lt;/code&gt; file maps domain names to IP addresses for local use by bypassing DNS lookup.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Priority&lt;/td&gt;
&lt;td&gt;The &lt;code&gt;etc/hosts&lt;/code&gt; file takes precedence over DNS resolvers, making it useful for overriding or redirecting DNS queries.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Security&lt;/td&gt;
&lt;td&gt;Because the &lt;code&gt;etc/hosts&lt;/code&gt; file is editable by anyone with administrative privileges, it can be used to redirect traffic to malicious endpoints.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Misconceptions and FAQs
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Misconception 1: The &lt;code&gt;etc/hosts&lt;/code&gt; file is only for web development
&lt;/h3&gt;

&lt;p&gt;While often used by web developers, the &lt;code&gt;etc/hosts&lt;/code&gt; file is a general-purpose system file used by many operating systems to map hostnames to IP addresses. It is not specific to web development.&lt;/p&gt;

&lt;h3&gt;
  
  
  Misconception 2: Changes made to the &lt;code&gt;etc/hosts&lt;/code&gt; file take immediate effect
&lt;/h3&gt;

&lt;p&gt;While most operating systems will immediately read changes to the &lt;code&gt;etc/hosts&lt;/code&gt; file, some operating systems cache this information. To ensure changes take immediate effect, empty your cache or restart your machine.&lt;/p&gt;

&lt;h3&gt;
  
  
  FAQ 1: Can I use the &lt;code&gt;etc/hosts&lt;/code&gt; file to block websites?
&lt;/h3&gt;

&lt;p&gt;Yes, you can use the &lt;code&gt;etc/hosts&lt;/code&gt; file to block domains. By mapping unwanted domains to &lt;code&gt;127.0.0.1&lt;/code&gt; or another IP address, you can prevent traffic from reaching those domains.&lt;/p&gt;

&lt;h3&gt;
  
  
  FAQ 2: Can I add comments to the &lt;code&gt;etc/hosts&lt;/code&gt; file?
&lt;/h3&gt;

&lt;p&gt;Yes, you can add comments to the &lt;code&gt;etc/hosts&lt;/code&gt; file by adding a &lt;code&gt;#&lt;/code&gt; at the beginning of the line. Any line starting with &lt;code&gt;#&lt;/code&gt; will be ignored by the system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In conclusion, the &lt;code&gt;etc/hosts&lt;/code&gt; file is a useful tool for web developers to map domain names to IP addresses for local use. By understanding its concept, how it works, scenarios of use, misconceptions, and FAQs, you can use this file to optimize your web development process.&lt;/p&gt;

&lt;p&gt;For more information about the &lt;code&gt;etc/hosts&lt;/code&gt; file, you can refer to the &lt;a href="https://en.wikipedia.org/wiki/Hosts_(file)"&gt;Wikipedia page&lt;/a&gt; or the &lt;a href="https://linux.die.net/man/5/hosts"&gt;Linux man page&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>He3 milestone release: Web version tool, clipboard previewer, semantic search capability</title>
      <dc:creator>He3</dc:creator>
      <pubDate>Wed, 17 May 2023 11:56:22 +0000</pubDate>
      <link>https://dev.to/he3tools/he3-milestone-release-web-version-tool-clipboard-previewer-semantic-search-capability-35ab</link>
      <guid>https://dev.to/he3tools/he3-milestone-release-web-version-tool-clipboard-previewer-semantic-search-capability-35ab</guid>
      <description>&lt;p&gt;We are thrilled to announce that He3 Toolbox has reached another milestone! This update brings many new features to make your data processing and analysis work more convenient.&lt;/p&gt;

&lt;p&gt;The biggest highlight of this update is the support for using the tool in a web browser.&lt;br&gt;
In addition, we also added support for:&lt;/p&gt;

&lt;p&gt;• Clipboard previewer&lt;br&gt;
• Client-side zooming&lt;br&gt;
• Tool can be opened in a separate window&lt;br&gt;
• Enhanced search capability with semantic search&lt;br&gt;
• Improved data synchronization ability&lt;br&gt;
• Bug fixes for the tool and a series of new tools added&lt;/p&gt;

&lt;h2&gt;
  
  
  Web version of He3 tools released
&lt;/h2&gt;

&lt;p&gt;We are pleased to announce that He3 Toolbox now supports web-based usage! You can use He3 Toolbox on any device that supports modern web browsers, although due to technical reasons, some tools can only be used on the client-side for now.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0kTFnfDr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://he3.app/blogs/he3-web-tool/1.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0kTFnfDr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://he3.app/blogs/he3-web-tool/1.gif" alt="" width="800" height="489"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The link to the web version of the tool is: &lt;a href="https://portal.he3app.com/"&gt;https://portal.he3app.com/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Clipboard Previewer
&lt;/h2&gt;

&lt;p&gt;In the new version, we have also added a Clipboard Previewer. It not only records the history but also previews different data types in the clipboard. Additionally, it supports remote synchronization, allowing access to previously copied content on any device.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wA-ONmWZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://he3.app/blogs/he3-web-tool/2.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wA-ONmWZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://he3.app/blogs/he3-web-tool/2.gif" alt="" width="800" height="499"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We will introduce the detailed features of the clipboard previewer separately in the future.&lt;/p&gt;

&lt;h2&gt;
  
  
  Client support for scaling and zooming
&lt;/h2&gt;

&lt;p&gt;For users who use 4K, 5K, and large screens, the client's scaling function is a must-have. This feature optimizes the user experience of He3 on high-resolution and large screens, and solves the problem of small font size in the past.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GqHAgogs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://he3.app/blogs/he3-web-tool/3.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GqHAgogs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://he3.app/blogs/he3-web-tool/3.gif" alt="" width="800" height="499"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Tools support opening in independent windows
&lt;/h2&gt;

&lt;p&gt;We have added a new feature that allows tools to be opened in independent windows outside of the main interface, making it possible to use multiple tools simultaneously for multitasking or to use tools independently across multiple screens.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--O4g7eDk0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://he3.app/blogs/he3-web-tool/4.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--O4g7eDk0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://he3.app/blogs/he3-web-tool/4.gif" alt="" width="800" height="499"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Support semantic search
&lt;/h2&gt;

&lt;p&gt;The enhancement of He3's search capability is also a major highlight of this update. Previously, the search could only perform keyword matching based on the tool's name and was unable to understand semantic search. In this update, we have added support for semantic search, which can more accurately find the tools you need.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--S4aegOXA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://he3.app/blogs/he3-web-tool/5.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--S4aegOXA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://he3.app/blogs/he3-web-tool/5.gif" alt="" width="800" height="499"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Semantic search is currently in beta. If you encounter any issues or have new suggestions, please feel free to submit issues to us：&lt;a href="https://github.com/he3-app/he3-feedback/issues"&gt;https://github.com/he3-app/he3-feedback/issues&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Remote synchronization of tool password input box
&lt;/h2&gt;

&lt;p&gt;For tools that require a password input box, such as PGP signing tool, you need to re-enter the password every time you open it. To solve this problem, we have added the function of synchronizing the password input box of the tool. The password will be automatically filled in the next time you open the tool. In addition, it also supports synchronizing saved passwords between multiple devices.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1GbeMNiL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://he3.app/blogs/he3-web-tool/6.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1GbeMNiL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://he3.app/blogs/he3-web-tool/6.gif" alt="" width="800" height="499"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  New tools added
&lt;/h2&gt;

&lt;h3&gt;
  
  
  CSS Conversion Tools
&lt;/h3&gt;

&lt;p&gt;The newly added CSS conversion tools are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Base64 to CSS&lt;/li&gt;
&lt;li&gt;CSS Compression&lt;/li&gt;
&lt;li&gt;CSS to JavaScript Object&lt;/li&gt;
&lt;li&gt;CSS to Base64&lt;/li&gt;
&lt;li&gt;CSS to Stylus&lt;/li&gt;
&lt;li&gt;Less Minify&lt;/li&gt;
&lt;li&gt;Less Prettify&lt;/li&gt;
&lt;li&gt;JavaScript Object to CSS&lt;/li&gt;
&lt;li&gt;SASS to CSS&lt;/li&gt;
&lt;li&gt;SCSS to CSS&lt;/li&gt;
&lt;li&gt;Stylus Minify&lt;/li&gt;
&lt;li&gt;CSS Formatting&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Floating point number conversion.
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fpN17oDC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/blogs/he3-web-tool/8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fpN17oDC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://he3.app/blogs/he3-web-tool/8.png" alt="" width="800" height="443"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Image EXIF Extractor
&lt;/h3&gt;

&lt;p&gt;&lt;a href="/blogs/he3-web-tool/7.gif" class="article-body-image-wrapper"&gt;&lt;img src="/blogs/he3-web-tool/7.gif" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Issues Feedback and Contributors
&lt;/h2&gt;

&lt;p&gt;We would like to express our gratitude to the following contributors who provided valuable feedback for He3.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issues&lt;/th&gt;
&lt;th&gt;Issues Contributors&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;JSON Formatting: Fix JSON serialization truncating the precision of Long&lt;/td&gt;
&lt;td&gt;@ggbala&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON Path: Fix data output errors in JSON Path&lt;/td&gt;
&lt;td&gt;@gauson89&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Text Comparison: Suggest adding file reading function in Text Diff&lt;/td&gt;
&lt;td&gt;@gauson89&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Timestamp Converter: Add microsecond and nanosecond units in Timestamp Converter&lt;/td&gt;
&lt;td&gt;@GitHubkshcode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Base Converter: Add binary decimal conversion function&lt;/td&gt;
&lt;td&gt;@suwia&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Add XML to Java Bean tool&lt;/td&gt;
&lt;td&gt;from WeChat public account message&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UUID/ULID/NANOID Generator: Remove hyphens after generating uuid&lt;/td&gt;
&lt;td&gt;from WeChat public account message&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SQL Formatting: Error occurred while formatting SQL&lt;/td&gt;
&lt;td&gt;from WeChat public account message&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Float Base Conversion: Add function to convert float to different bases&lt;/td&gt;
&lt;td&gt;@MrAccle&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Image Resizing: Error occurred when resizing large images in image resizing tool&lt;/td&gt;
&lt;td&gt;from WeChat group - Evolving into a Folded-Ear Bear in the Abyss&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Timestamp Converter: Adjust output order in Timestamp Conversion tool&lt;/td&gt;
&lt;td&gt;&lt;a class="mentioned-user" href="https://dev.to/hongchaodeng"&gt;@hongchaodeng&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON Formatting: Fix low efficiency and slow processing speed when formatting large and long JSON strings&lt;/td&gt;
&lt;td&gt;&lt;a class="mentioned-user" href="https://dev.to/hongchaodeng"&gt;@hongchaodeng&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Password Generator: Password generator can now generate phrases&lt;/td&gt;
&lt;td&gt;@alctny&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SQL Formatting: Fix inconsistency in capitalization of SQL keywords&lt;/td&gt;
&lt;td&gt;from WeChat group&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SQL Formatting: Error occurred while formatting SQL&lt;/td&gt;
&lt;td&gt;&lt;a class="mentioned-user" href="https://dev.to/hongchaodeng"&gt;@hongchaodeng&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UTC to Timestamp Converter: UTC to Timestamp Converter not working&lt;/td&gt;
&lt;td&gt;from WeChat group&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Add SQL to any query function&lt;/td&gt;
&lt;td&gt;&lt;a class="mentioned-user" href="https://dev.to/nomango"&gt;@nomango&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;XML Formatting: Fix bug in XML Pretty causing loss of formatted content&lt;/td&gt;
&lt;td&gt;&lt;a class="mentioned-user" href="https://dev.to/hongchaodeng"&gt;@hongchaodeng&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON to Kotlin Class: JSON to Kotlin Class does NOT work as expected&lt;/td&gt;
&lt;td&gt;&lt;a class="mentioned-user" href="https://dev.to/strrl"&gt;@strrl&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UUID/ULID/NANOID Generator: Add support for multiple uuid types&lt;/td&gt;
&lt;td&gt;from Discourse&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JWT Parser: JWT Parser payload and header display boxes cannot be extended&lt;/td&gt;
&lt;td&gt;@cuibty&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SQL Formatting: Extra spaces in SQL formatting&lt;/td&gt;
&lt;td&gt;from WeChat group&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AES Encryption/Decryption: Add aes encryption/decryption with offset&lt;/td&gt;
&lt;td&gt;&lt;a class="mentioned-user" href="https://dev.to/hongchaodeng"&gt;@hongchaodeng&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Want to learn more?
&lt;/h2&gt;

&lt;p&gt;He3 Official Website &lt;a href="https://he3.app"&gt;https://he3.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;He3 Web-based Tool &lt;a href="https://portal.he3app.com/"&gt;https://portal.he3app.com/&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
