<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>emn178&#39;s Blog</title>
  
  <subtitle>Programming and Technology</subtitle>
  <link href="https://blog.emn178.cc/en/atom.xml" rel="self"/>
  
  <link href="https://blog.emn178.cc/en/"/>
  <updated>2023-11-28T07:24:28.027Z</updated>
  <id>https://blog.emn178.cc/en/</id>
  
  <author>
    <name>emn178</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>Using Ethers.js to Sign and Recover EIP-712 Typed Structured Data</title>
    <link href="https://blog.emn178.cc/en/post/using-ethers-js-to-sign-eip-712-typed-structured-data/"/>
    <id>https://blog.emn178.cc/en/post/using-ethers-js-to-sign-eip-712-typed-structured-data/</id>
    <published>2023-10-14T02:17:23.000Z</published>
    <updated>2023-11-28T07:24:28.027Z</updated>
    
    
      
      
    <summary type="html">&lt;p&gt;&lt;a href=&quot;/en/post/solidity-eip-712-typed-structured-data-hashing-and-signing/&quot;&gt;Solidity - EIP-712 Typed Structured Data Hashing and Signi</summary>
      
    
    
    
    <category term="Blockchain" scheme="https://blog.emn178.cc/en/categories/Blockchain/"/>
    
    
  </entry>
  
  <entry>
    <title>Using Web3.js to Sign and Recover EIP-712 Typed Structured Data</title>
    <link href="https://blog.emn178.cc/en/post/using-web3-js-to-sign-and-recover-eip-712-typed-structured-data/"/>
    <id>https://blog.emn178.cc/en/post/using-web3-js-to-sign-and-recover-eip-712-typed-structured-data/</id>
    <published>2023-10-13T11:50:47.000Z</published>
    <updated>2023-10-14T02:15:42.448Z</updated>
    
    
      
      
    <summary type="html">&lt;p&gt;&lt;a href=&quot;/en/post/solidity-eip-712-typed-structured-data-hashing-and-signing/&quot;&gt;Solidity - EIP-712 Typed Structured Data Hashing and Signi</summary>
      
    
    
    
    <category term="Blockchain" scheme="https://blog.emn178.cc/en/categories/Blockchain/"/>
    
    
  </entry>
  
  <entry>
    <title>Solidity - EIP-712 Typed Structured Data Hashing and Signing</title>
    <link href="https://blog.emn178.cc/en/post/solidity-eip-712-typed-structured-data-hashing-and-signing/"/>
    <id>https://blog.emn178.cc/en/post/solidity-eip-712-typed-structured-data-hashing-and-signing/</id>
    <published>2023-10-12T12:39:22.000Z</published>
    <updated>2023-11-28T07:24:32.068Z</updated>
    
    
      
      
    <summary type="html">&lt;p&gt;This article explains the &lt;a href=&quot;https://eips.ethereum.org/EIPS/eip-712&quot;&gt;EIP-712&lt;/a&gt; standard and how to use Solidity to implement EIP-</summary>
      
    
    
    
    <category term="Blockchain" scheme="https://blog.emn178.cc/en/categories/Blockchain/"/>
    
    
    <category term="Solidity" scheme="https://blog.emn178.cc/en/tags/Solidity/"/>
    
  </entry>
  
  <entry>
    <title>Using Ethers.js to Sign and Recover</title>
    <link href="https://blog.emn178.cc/en/post/using-ethers-js-to-sign-and-recover/"/>
    <id>https://blog.emn178.cc/en/post/using-ethers-js-to-sign-and-recover/</id>
    <published>2023-10-11T11:59:57.000Z</published>
    <updated>2023-10-14T02:16:16.152Z</updated>
    
    
      
      
    <summary type="html">&lt;p&gt;&lt;a href=&quot;/en/post/solidity-ecrecover/&quot;&gt;Solidity - ecrecover&lt;/a&gt; this article explains how smart contracts verify signatures. This article</summary>
      
    
    
    
    <category term="Blockchain" scheme="https://blog.emn178.cc/en/categories/Blockchain/"/>
    
    
  </entry>
  
  <entry>
    <title>Using Web3.js to Sign and Recover</title>
    <link href="https://blog.emn178.cc/en/post/using-web3-js-to-sign-and-recover/"/>
    <id>https://blog.emn178.cc/en/post/using-web3-js-to-sign-and-recover/</id>
    <published>2023-10-10T01:03:27.000Z</published>
    <updated>2023-11-28T07:24:40.733Z</updated>
    
    
      
      
    <summary type="html">&lt;p&gt;&lt;a href=&quot;/en/post/solidity-ecrecover/&quot;&gt;Solidity - ecrecover&lt;/a&gt; this article explains how smart contracts verify signatures. This article</summary>
      
    
    
    
    <category term="Blockchain" scheme="https://blog.emn178.cc/en/categories/Blockchain/"/>
    
    
  </entry>
  
  <entry>
    <title>Solidity - Signature Malleability</title>
    <link href="https://blog.emn178.cc/en/post/solidity-signature-malleability/"/>
    <id>https://blog.emn178.cc/en/post/solidity-signature-malleability/</id>
    <published>2023-10-09T02:21:28.000Z</published>
    <updated>2023-10-09T02:21:47.484Z</updated>
    
    
      
      
    <summary type="html">&lt;p&gt;The previous article introduced the usage of &lt;a href=&quot;/en/post/solidity-ecrecover/&quot;&gt;ecrecover&lt;/a&gt;, but the built-in ecrecover has a signa</summary>
      
    
    
    
    <category term="Blockchain" scheme="https://blog.emn178.cc/en/categories/Blockchain/"/>
    
    
    <category term="Solidity" scheme="https://blog.emn178.cc/en/tags/Solidity/"/>
    
  </entry>
  
  <entry>
    <title>Solidity - ecrecover</title>
    <link href="https://blog.emn178.cc/en/post/solidity-ecrecover/"/>
    <id>https://blog.emn178.cc/en/post/solidity-ecrecover/</id>
    <published>2023-10-08T06:47:24.000Z</published>
    <updated>2023-10-11T12:46:11.772Z</updated>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;Introduction&quot;&gt;&lt;a href=&quot;#Introduction&quot; class=&quot;headerlink&quot; title=&quot;Introduction&quot;&gt;&lt;/a&gt;Introduction&lt;/h2&gt;&lt;p&gt;The &lt;code&gt;ecrecover&lt;/code&gt; fun</summary>
      
    
    
    
    <category term="Blockchain" scheme="https://blog.emn178.cc/en/categories/Blockchain/"/>
    
    
    <category term="Solidity" scheme="https://blog.emn178.cc/en/tags/Solidity/"/>
    
  </entry>
  
  <entry>
    <title>zkEVM Airdrop Guide</title>
    <link href="https://blog.emn178.cc/en/post/zkevm-airdrop-guide/"/>
    <id>https://blog.emn178.cc/en/post/zkevm-airdrop-guide/</id>
    <published>2023-07-30T10:06:32.000Z</published>
    <updated>2023-08-03T02:39:57.812Z</updated>
    
    
      
      
    <summary type="html">&lt;p&gt;&lt;a href=&quot;https://polygon.technology/polygon-zkevm&quot;&gt;zkEVM&lt;/a&gt; is one of the L2 solutions of ZK Rollup. While there is already a MATIC coin</summary>
      
    
    
    
    <category term="Blockchain" scheme="https://blog.emn178.cc/en/categories/Blockchain/"/>
    
    
  </entry>
  
  <entry>
    <title>Load CSS Asynchronously</title>
    <link href="https://blog.emn178.cc/en/post/load-css-asynchronously/"/>
    <id>https://blog.emn178.cc/en/post/load-css-asynchronously/</id>
    <published>2023-07-28T14:20:34.000Z</published>
    <updated>2023-07-28T14:20:12.076Z</updated>
    
    
      
      
    <summary type="html">&lt;p&gt;This article explains FOUC (Flash of unstyled content), render-blocking issues, and how to load CSS asynchronously.&lt;/p&gt;
&lt;h2 id=&quot;Flash-of-</summary>
      
    
    
    
    <category term="Programming" scheme="https://blog.emn178.cc/en/categories/Programming/"/>
    
    
  </entry>
  
  <entry>
    <title>GCP Cloud Monitoring - Reduce Data and Cost</title>
    <link href="https://blog.emn178.cc/en/post/gcp-cloud-monitoring-reduce-data-and-cost/"/>
    <id>https://blog.emn178.cc/en/post/gcp-cloud-monitoring-reduce-data-and-cost/</id>
    <published>2023-07-27T15:12:03.000Z</published>
    <updated>2023-07-27T15:12:35.446Z</updated>
    
    
      
      
    <summary type="html">&lt;p&gt;Cloud Monitoring can be used to monitor system status and send alert notifications. I mainly use to monitor hard disk capacity and some c</summary>
      
    
    
    
    <category term="DevOps" scheme="https://blog.emn178.cc/en/categories/DevOps/"/>
    
    
  </entry>
  
  <entry>
    <title>Using Web3.js to Parse Custom Error</title>
    <link href="https://blog.emn178.cc/en/post/using-web3-js-to-parse-custom-error/"/>
    <id>https://blog.emn178.cc/en/post/using-web3-js-to-parse-custom-error/</id>
    <published>2023-06-20T13:43:40.000Z</published>
    <updated>2023-10-08T06:43:21.468Z</updated>
    
    
      
      
    <summary type="html">&lt;p&gt;The previous article &lt;a href=&quot;/en/post/solidity-custom-error/&quot;&gt;Solidity - Custom Error&lt;/a&gt; mentioned how to use custom error in smart con</summary>
      
    
    
    
    <category term="Blockchain" scheme="https://blog.emn178.cc/en/categories/Blockchain/"/>
    
    
  </entry>
  
  <entry>
    <title>Using Ethers.js to Parse Custom Error</title>
    <link href="https://blog.emn178.cc/en/post/ethers-js-parse-custom-error/"/>
    <id>https://blog.emn178.cc/en/post/ethers-js-parse-custom-error/</id>
    <published>2023-06-19T15:21:18.000Z</published>
    <updated>2023-10-08T06:43:23.465Z</updated>
    
    
      
      
    <summary type="html">&lt;p&gt;The previous article &lt;a href=&quot;/en/post/solidity-custom-error/&quot;&gt;Solidity - Custom Error&lt;/a&gt; mentioned how to use custom error in smart con</summary>
      
    
    
    
    <category term="Blockchain" scheme="https://blog.emn178.cc/en/categories/Blockchain/"/>
    
    
  </entry>
  
  <entry>
    <title>Solidity - Custom Error</title>
    <link href="https://blog.emn178.cc/en/post/solidity-custom-error/"/>
    <id>https://blog.emn178.cc/en/post/solidity-custom-error/</id>
    <published>2023-06-18T15:20:31.000Z</published>
    <updated>2023-10-08T06:43:29.764Z</updated>
    
    
      
      
    <summary type="html">&lt;p&gt;This article introduces the usage of custom error in Solidity, including ways to define errors, usage, and error handling.&lt;/p&gt;
&lt;h2 id=&quot;Us</summary>
      
    
    
    
    <category term="Blockchain" scheme="https://blog.emn178.cc/en/categories/Blockchain/"/>
    
    
    <category term="Solidity" scheme="https://blog.emn178.cc/en/tags/Solidity/"/>
    
  </entry>
  
  <entry>
    <title>Token Checker - Token Sniffer and GoPlus</title>
    <link href="https://blog.emn178.cc/en/post/scam-token-check-tools-token-sniffer-and-goplus/"/>
    <id>https://blog.emn178.cc/en/post/scam-token-check-tools-token-sniffer-and-goplus/</id>
    <published>2023-06-10T12:33:37.000Z</published>
    <updated>2023-06-10T12:33:31.906Z</updated>
    
    
      
      
    <summary type="html">&lt;p&gt;There are many methods of blockchain fraud, one of which is to airdrop or sell fraudulent tokens, and manipulate the contract to obtain b</summary>
      
    
    
    
    <category term="Blockchain" scheme="https://blog.emn178.cc/en/categories/Blockchain/"/>
    
    
  </entry>
  
  <entry>
    <title>LayerZero Airdrop Guide</title>
    <link href="https://blog.emn178.cc/en/post/layerzero-airdrop-guide/"/>
    <id>https://blog.emn178.cc/en/post/layerzero-airdrop-guide/</id>
    <published>2023-06-09T14:32:17.000Z</published>
    <updated>2023-06-18T07:50:49.773Z</updated>
    
    
      
      
    <summary type="html">&lt;p&gt;&lt;a href=&quot;https://layerzero.network/&quot;&gt;LayerZero&lt;/a&gt; is a cross-chain solution, and it is also a possible airdrop project that everyone has</summary>
      
    
    
    
    <category term="Blockchain" scheme="https://blog.emn178.cc/en/categories/Blockchain/"/>
    
    
  </entry>
  
  <entry>
    <title>Linea Airdrop Guide</title>
    <link href="https://blog.emn178.cc/en/post/linea-airdrop-guide/"/>
    <id>https://blog.emn178.cc/en/post/linea-airdrop-guide/</id>
    <published>2023-06-06T15:11:26.000Z</published>
    <updated>2023-08-04T05:40:58.943Z</updated>
    
    
      
      
    <summary type="html">&lt;p&gt;&lt;a href=&quot;https://linea.build/&quot;&gt;Linea&lt;/a&gt; is one of the L2 solutions of ZK Rollup. The company behind it is Consensys, which is also the d</summary>
      
    
    
    
    <category term="Blockchain" scheme="https://blog.emn178.cc/en/categories/Blockchain/"/>
    
    
  </entry>
  
  <entry>
    <title>Blockchain Scam - Awesome Crypto World (ACW) Token</title>
    <link href="https://blog.emn178.cc/en/post/awesome-crypto-world-acw-scam-token/"/>
    <id>https://blog.emn178.cc/en/post/awesome-crypto-world-acw-scam-token/</id>
    <published>2023-06-05T15:00:11.000Z</published>
    <updated>2023-10-08T06:44:18.768Z</updated>
    
    
      
      
    <summary type="html">&lt;p&gt;There have been a lot of airdropped fraudulent tokens recently, this time I saw &lt;a href=&quot;https://bscscan.com/token/0x82d0952f3524df3e0f00</summary>
      
    
    
    
    <category term="Blockchain" scheme="https://blog.emn178.cc/en/categories/Blockchain/"/>
    
    
  </entry>
  
  <entry>
    <title>StarkNet Airdrop Guide</title>
    <link href="https://blog.emn178.cc/en/post/starknet-airdrop-guide/"/>
    <id>https://blog.emn178.cc/en/post/starknet-airdrop-guide/</id>
    <published>2023-04-02T12:09:49.000Z</published>
    <updated>2023-07-30T07:00:44.158Z</updated>
    
    
      
      
    <summary type="html">&lt;p&gt;&lt;a href=&quot;https://www.starknet.io/&quot;&gt;StarkNet&lt;/a&gt; is one of the L2 solutions of ZK Rollup, which is also a popular airdrop opportunity. Her</summary>
      
    
    
    
    <category term="Blockchain" scheme="https://blog.emn178.cc/en/categories/Blockchain/"/>
    
    
  </entry>
  
  <entry>
    <title>Blockchain Scam - AI-A (AI Avail) Token</title>
    <link href="https://blog.emn178.cc/en/post/ai-a-scam-token/"/>
    <id>https://blog.emn178.cc/en/post/ai-a-scam-token/</id>
    <published>2023-04-01T12:21:32.000Z</published>
    <updated>2023-10-08T06:44:18.768Z</updated>
    
    
      
      
    <summary type="html">&lt;p&gt;I accidentally saw a transfer on Debank, 23000 &lt;a href=&quot;https://bscscan.com/address/0xd048b4c23af828e5be412505a51a8dd7b37782dd&quot;&gt;AI-A (AI </summary>
      
    
    
    
    <category term="Blockchain" scheme="https://blog.emn178.cc/en/categories/Blockchain/"/>
    
    
  </entry>
  
  <entry>
    <title>zkSync Airdrop Guide Step by Step</title>
    <link href="https://blog.emn178.cc/en/post/zksync-airdrop-step-by-step/"/>
    <id>https://blog.emn178.cc/en/post/zksync-airdrop-step-by-step/</id>
    <published>2023-03-30T14:14:18.000Z</published>
    <updated>2023-05-17T14:09:13.855Z</updated>
    
    
      
      
    <summary type="html">&lt;p&gt;This article illustrates, through visuals and text, how to bridge and how to interact with applications. After understanding the strategy</summary>
      
    
    
    
    <category term="Blockchain" scheme="https://blog.emn178.cc/en/categories/Blockchain/"/>
    
    
    <category term="zkSync" scheme="https://blog.emn178.cc/en/tags/zkSync/"/>
    
  </entry>
  
  <entry>
    <title>zkSync Airdrop Guide</title>
    <link href="https://blog.emn178.cc/en/post/zksync-airdrop-strategy/"/>
    <id>https://blog.emn178.cc/en/post/zksync-airdrop-strategy/</id>
    <published>2023-03-26T14:43:07.000Z</published>
    <updated>2023-10-08T06:44:18.768Z</updated>
    
    
      
      
    <summary type="html">&lt;p&gt;Arbitrum has been airdropped a while ago, and I heard that some people have retired by airdrop. &lt;a href=&quot;https://zksync.io/&quot;&gt;zkSync&lt;/a&gt; i</summary>
      
    
    
    
    <category term="Blockchain" scheme="https://blog.emn178.cc/en/categories/Blockchain/"/>
    
    
    <category term="zkSync" scheme="https://blog.emn178.cc/en/tags/zkSync/"/>
    
  </entry>
  
  <entry>
    <title>Solidity Gas Optimizations - Variable Ordering</title>
    <link href="https://blog.emn178.cc/en/post/solidity-gas-optimization-variable-ordering/"/>
    <id>https://blog.emn178.cc/en/post/solidity-gas-optimization-variable-ordering/</id>
    <published>2018-09-11T02:26:38.000Z</published>
    <updated>2023-10-08T06:44:18.768Z</updated>
    
    
    <summary type="html">This article explains the gas optimization techniques of Solidity smart contracts, explains how variable ordering affect gas consumption, and provides two optimization strategies to reduce gas consumption.</summary>
    
    
    
    <category term="Blockchain" scheme="https://blog.emn178.cc/en/categories/Blockchain/"/>
    
    
    <category term="Solidity" scheme="https://blog.emn178.cc/en/tags/Solidity/"/>
    
  </entry>
  
  <entry>
    <title>Solidity Gas Optimizations - Data Compression</title>
    <link href="https://blog.emn178.cc/en/post/solidity-gas-optimization-data-compression/"/>
    <id>https://blog.emn178.cc/en/post/solidity-gas-optimization-data-compression/</id>
    <published>2018-05-07T10:26:05.000Z</published>
    <updated>2023-10-08T06:44:18.768Z</updated>
    
    
    <summary type="html">This article explains the gas optimization techniques of Solidity smart contracts. Explain how to use data merging and numbering to compress data to reduce variables and gas consumption.</summary>
    
    
    
    <category term="Blockchain" scheme="https://blog.emn178.cc/en/categories/Blockchain/"/>
    
    
    <category term="Solidity" scheme="https://blog.emn178.cc/en/tags/Solidity/"/>
    
  </entry>
  
  <entry>
    <title>Solidity Gas Optimizations - Function Name</title>
    <link href="https://blog.emn178.cc/en/post/solidity-gas-optimization-function-name/"/>
    <id>https://blog.emn178.cc/en/post/solidity-gas-optimization-function-name/</id>
    <published>2018-05-04T09:04:52.000Z</published>
    <updated>2023-10-08T06:44:18.768Z</updated>
    
    
    <summary type="html">This article explains the gas optimization techniques of Solidity smart contracts. The article will explain the rules and principles of function names on gas consumption, explain the definition and generation of function signatures and Method IDs, and finally provide optimization methods.</summary>
    
    
    
    <category term="Programming" scheme="https://blog.emn178.cc/en/categories/Programming/"/>
    
    
    <category term="Solidity" scheme="https://blog.emn178.cc/en/tags/Solidity/"/>
    
  </entry>
  
  <entry>
    <title>Solidity Gas Optimizations</title>
    <link href="https://blog.emn178.cc/en/post/solidity-gas-optimization/"/>
    <id>https://blog.emn178.cc/en/post/solidity-gas-optimization/</id>
    <published>2018-03-07T09:02:40.000Z</published>
    <updated>2023-10-08T06:44:18.768Z</updated>
    
    
    <summary type="html">This article explains the gas optimization techniques of Solidity smart contracts. This article will organize and analyze some factors that affect gas consumption in smart contracts, which will help us understand which instructions consume the most and use them cautiously.</summary>
    
    
    
    <category term="Blockchain" scheme="https://blog.emn178.cc/en/categories/Blockchain/"/>
    
    
    <category term="Solidity" scheme="https://blog.emn178.cc/en/tags/Solidity/"/>
    
  </entry>
  
  <entry>
    <title>How to Measure JavaScript Code Coverage With jscoverage</title>
    <link href="https://blog.emn178.cc/en/post/how-to-measure-javascript-code-coverage-with-jscoverage/"/>
    <id>https://blog.emn178.cc/en/post/how-to-measure-javascript-code-coverage-with-jscoverage/</id>
    <published>2015-10-30T09:34:00.000Z</published>
    <updated>2023-11-07T08:14:09.984Z</updated>
    
    
      
      
    <summary type="html">&lt;p&gt;We had known &lt;a href=&quot;/en/post/how-to-write-a-library-for-node-js-and-browser-with-mocha-unit-tests/&quot;&gt;How to Write a Library for Node.js </summary>
      
    
    
    
    <category term="Programming" scheme="https://blog.emn178.cc/en/categories/Programming/"/>
    
    
    <category term="Node.js" scheme="https://blog.emn178.cc/en/tags/Node-js/"/>
    
    <category term="JavaScript" scheme="https://blog.emn178.cc/en/tags/JavaScript/"/>
    
  </entry>
  
  <entry>
    <title>How to Write a Library for Node.js and Browser with Mocha Unit Tests</title>
    <link href="https://blog.emn178.cc/en/post/how-to-write-a-library-for-node-js-and-browser-with-mocha-unit-tests/"/>
    <id>https://blog.emn178.cc/en/post/how-to-write-a-library-for-node-js-and-browser-with-mocha-unit-tests/</id>
    <published>2015-10-28T09:20:00.000Z</published>
    <updated>2023-11-07T08:13:22.614Z</updated>
    
    
      
      
    <summary type="html">&lt;p&gt;&lt;a href=&quot;http://mochajs.org/&quot;&gt;Mocha&lt;/a&gt; is a test framework for JavaScript, it provides Node.js and browser versions. Assume we implement</summary>
      
    
    
    
    <category term="Programming" scheme="https://blog.emn178.cc/en/categories/Programming/"/>
    
    
    <category term="Node.js" scheme="https://blog.emn178.cc/en/tags/Node-js/"/>
    
    <category term="JavaScript" scheme="https://blog.emn178.cc/en/tags/JavaScript/"/>
    
  </entry>
  
  <entry>
    <title>Node.js - How to Integrate Travis CI with GitHub</title>
    <link href="https://blog.emn178.cc/en/post/node-js-how-to-integrate-travis-ci-with-github/"/>
    <id>https://blog.emn178.cc/en/post/node-js-how-to-integrate-travis-ci-with-github/</id>
    <published>2015-10-28T07:50:00.000Z</published>
    <updated>2023-11-07T08:14:03.156Z</updated>
    
    
      
      
    <summary type="html">&lt;p&gt;&lt;a href=&quot;https://travis-ci.com/&quot;&gt;Travis CI&lt;/a&gt; is service for Continuous Integration and it is easy to integrate with the projects on Git</summary>
      
    
    
    
    <category term="Programming" scheme="https://blog.emn178.cc/en/categories/Programming/"/>
    
    
    <category term="Node.js" scheme="https://blog.emn178.cc/en/tags/Node-js/"/>
    
    <category term="JavaScript" scheme="https://blog.emn178.cc/en/tags/JavaScript/"/>
    
  </entry>
  
  <entry>
    <title>How to omit bundle exec prefix by bundle binstubs</title>
    <link href="https://blog.emn178.cc/en/post/how-to-omit-bundle-exec-prefix-by-bundle-binstubs/"/>
    <id>https://blog.emn178.cc/en/post/how-to-omit-bundle-exec-prefix-by-bundle-binstubs/</id>
    <published>2015-10-28T06:00:00.000Z</published>
    <updated>2023-04-17T01:37:34.943Z</updated>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;bundle-binstubs&quot;&gt;&lt;a href=&quot;#bundle-binstubs&quot; class=&quot;headerlink&quot; title=&quot;bundle binstubs&quot;&gt;&lt;/a&gt;bundle binstubs&lt;/h2&gt;&lt;p&gt;In Ruby, we use Bu</summary>
      
    
    
    
    <category term="Programming" scheme="https://blog.emn178.cc/en/categories/Programming/"/>
    
    
    <category term="Ruby" scheme="https://blog.emn178.cc/en/tags/Ruby/"/>
    
  </entry>
  
</feed>
