<?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: MeloAlright</title>
    <description>The latest articles on DEV Community by MeloAlright (@meloalright).</description>
    <link>https://dev.to/meloalright</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%2F933378%2Fcf327790-1a0b-4519-800e-9f3e434b730b.jpeg</url>
      <title>DEV Community: MeloAlright</title>
      <link>https://dev.to/meloalright</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/meloalright"/>
    <language>en</language>
    <item>
      <title>I Turned Wikipedia Into a CLI Tool</title>
      <dc:creator>MeloAlright</dc:creator>
      <pubDate>Fri, 24 Apr 2026 16:47:56 +0000</pubDate>
      <link>https://dev.to/meloalright/i-turned-wikipedia-into-a-cli-tool-55pi</link>
      <guid>https://dev.to/meloalright/i-turned-wikipedia-into-a-cli-tool-55pi</guid>
      <description>&lt;p&gt;I didn’t start this project because I wanted to build a CLI.&lt;/p&gt;

&lt;p&gt;I started it because I got annoyed.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Moment That Triggered It
&lt;/h2&gt;

&lt;p&gt;I use Wikipedia a lot.&lt;/p&gt;

&lt;p&gt;Not in a “casual browsing” way — more like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;quick fact checks
&lt;/li&gt;
&lt;li&gt;jumping between related topics
&lt;/li&gt;
&lt;li&gt;reading just enough to understand something
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But every time I opened it, I felt friction.&lt;/p&gt;

&lt;p&gt;Too much UI.&lt;br&gt;&lt;br&gt;
Too many distractions.&lt;br&gt;&lt;br&gt;
Too slow to navigate.&lt;/p&gt;

&lt;p&gt;I didn’t want a &lt;em&gt;website&lt;/em&gt;.&lt;br&gt;&lt;br&gt;
I wanted something closer to a &lt;strong&gt;tool&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Something like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Give me the essence of this topic. Fast.”&lt;/p&gt;
&lt;/blockquote&gt;


&lt;h2&gt;
  
  
  Why a CLI?
&lt;/h2&gt;

&lt;p&gt;Because the terminal has a very different philosophy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;no noise
&lt;/li&gt;
&lt;li&gt;no layout shifts
&lt;/li&gt;
&lt;li&gt;no ads
&lt;/li&gt;
&lt;li&gt;no infinite scroll
&lt;/li&gt;
&lt;li&gt;just input → output
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A CLI forces you to think:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What is the &lt;em&gt;minimal interface&lt;/em&gt; for knowledge retrieval?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That question became the core of this project.&lt;/p&gt;


&lt;h2&gt;
  
  
  The Idea
&lt;/h2&gt;

&lt;p&gt;Instead of browsing Wikipedia…&lt;/p&gt;

&lt;p&gt;What if I could do:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;wiki quantum computing
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And instantly get:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a clean summary&lt;/li&gt;
&lt;li&gt;structured sections&lt;/li&gt;
&lt;li&gt;links I can jump into&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No tabs.&lt;br&gt;
No mouse.&lt;br&gt;
No context switching.&lt;/p&gt;

&lt;h2&gt;
  
  
  If You’re Interested
&lt;/h2&gt;

&lt;p&gt;I’d love feedback, ideas, or criticism.&lt;br&gt;
repo: &lt;a href="https://github.com/rscli/wikipedia-cli" rel="noopener noreferrer"&gt;rscli/wikipedia-cli&lt;/a&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>rust</category>
      <category>cli</category>
      <category>ai</category>
    </item>
    <item>
      <title>ColorID: 🌈 The unique 4-colors-ID string generator in JavaScript</title>
      <dc:creator>MeloAlright</dc:creator>
      <pubDate>Tue, 27 Sep 2022 14:44:42 +0000</pubDate>
      <link>https://dev.to/meloalright/colorid-the-unique-4-colors-id-string-generator-in-javascript-ghp</link>
      <guid>https://dev.to/meloalright/colorid-the-unique-4-colors-id-string-generator-in-javascript-ghp</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--doKAyNHr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sv3gfle2qjgmok36f4sa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--doKAyNHr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sv3gfle2qjgmok36f4sa.png" alt="Image description" width="880" height="173"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Color as Identify - The unique 4-colors-ID string generator in &lt;code&gt;JavaScript&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The performance of &lt;code&gt;ColorID&lt;/code&gt; is better than &lt;code&gt;UUID&lt;/code&gt; and &lt;code&gt;NanoID&lt;/code&gt; (The algorithm of &lt;code&gt;ColorID&lt;/code&gt; is actually very similar to the &lt;code&gt;UUID.V4&lt;/code&gt;)&lt;/p&gt;

&lt;p&gt;If we use &lt;code&gt;ColorID&lt;/code&gt; to represent identities in social networks, we can easily generate personalized social information for users, such as avatars, NFTs, etc.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;ColorID&lt;/code&gt; is consisted by 4 colors in the RGB channel from 12 unsigned 8 bits numbers (&lt;code&gt;u8&lt;/code&gt;), so the theoretical total of &lt;code&gt;ColorID&lt;/code&gt; is &lt;code&gt;(2^8)^12&lt;/code&gt; = &lt;code&gt;2^96&lt;/code&gt; ≈ &lt;code&gt;7*10^28&lt;/code&gt;, which means that even if the &lt;code&gt;ColorID&lt;/code&gt; is generated for every 7.8 billion people in the world every second, it will take 300 billion years to use up all &lt;code&gt;ColorIDs&lt;/code&gt;. And &lt;code&gt;ColorID&lt;/code&gt; provides safety by using hardware random generator, can also be used in clusters.&lt;/p&gt;

&lt;p&gt;Because the Four color theorem, if we need to color the regions of any avatars or NFTs so that no two adjacent regions have the same color, four colors are enough!&lt;/p&gt;

&lt;h2&gt;
  
  
  Install
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;npm i colorid.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;colorid&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;colorid.js&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;colorid&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// #5B34F9-#34F9DF-#F9DF4E-#DF4EB5&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;#5B34F9-#34F9DF-#F9DF4E-#DF4EB5&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JJ41GfTo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/11075892/189944569-e00bfbaf-7e6e-408d-8a60-32994f79a2a2.svg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JJ41GfTo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/11075892/189944569-e00bfbaf-7e6e-408d-8a60-32994f79a2a2.svg" width="400" height="100"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Performance
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="n"&gt;crypto&lt;/span&gt;&lt;span class="py"&gt;.randomUUID&lt;/span&gt;    &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;829&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;532&lt;/span&gt; &lt;span class="n"&gt;ops&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;sec&lt;/span&gt;
&lt;span class="n"&gt;colorid&lt;/span&gt;              &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;252&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;649&lt;/span&gt; &lt;span class="n"&gt;ops&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;sec&lt;/span&gt;
&lt;span class="n"&gt;nanoid&lt;/span&gt;               &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;925&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;204&lt;/span&gt; &lt;span class="n"&gt;ops&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;sec&lt;/span&gt;
&lt;span class="n"&gt;uuid&lt;/span&gt; &lt;span class="n"&gt;v4&lt;/span&gt;                &lt;span class="mi"&gt;910&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;855&lt;/span&gt; &lt;span class="n"&gt;ops&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;sec&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Benchmark configuration: Ubuntu, Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz, Node.js 18.9.0&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/rustq/colorid.js/actions/runs/3045998209/jobs/4908256305"&gt;(runs: 3045998209)&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  License
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://opensource.org/licenses/MIT"&gt;MIT&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ColorID in Other Languages
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/rustq/colorid"&gt;Rust&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>opensource</category>
      <category>node</category>
    </item>
  </channel>
</rss>
