<!DOCTYPE html> <html><head> <meta charset="utf-8"> <title>lolcat-c | Home</title> <meta name="description" content=""> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="mobile-web-app-capable" content="yes"> <meta name="color-scheme" content="dark light"> <link rel="stylesheet" href="/style.css"> </head> <body><nav> <div class="internal"> <a href="/" title="Home">Home</a> <a href="/blog/" title="Blog">Blog</a> <a href="/projects/" title="Projects">Projects</a> <a href="/about/" title="About">About</a> </div> <div class="external"> <a href="https://git.jaseg.de/" title="cgit">cgit</a> <a href="https://github.com/jaseg" title="Github">Github</a> <a href="https://gitlab.com/neinseg" title="Gitlab">Gitlab</a> <a href="https://chaos.social/@jaseg" title="Mastodon">Mastodon</a> </span> </nav> <header> <h1>lolcat-c</h1> <ul class="breadcrumbs"> <li><a href="/">jaseg.de</a></li> <li><a href="/projects/">Projects</a></li><li><a href="/projects/lolcat-c/">lolcat-c</a></li> </ul> </header> <main> <div class="links"> <a href="https://git.jaseg.de/lolcat.git">Sources</a> <a href="https://github.com/jaseg/lolcat">Github</a> <a href="https://github.com/jaseg/lolcat/issues">Issues</a> </div> <div class="document"> <div class="section" id="what"> <h2>What?</h2> <img alt="LOLCat-Rainbow.jpg" src="LOLCat-Rainbow.jpg" /> </div> <div class="section" id="screenshot"> <h2>Screenshot</h2> <img alt="screenshot.png" src="screenshot.png" /> <img alt="sl.gif" src="sl.gif" /> </div> <div class="section" id="installation"> <h2>Installation</h2> <div class="section" id="archlinux"> <h3>Archlinux</h3> <p>There's an <a class="reference external" href="https://aur.archlinux.org/packages/c-lolcat">AUR package</a>:</p> <pre class="code sh literal-block"> <span class="lineno"></span><span class="line">$<span class="w"> </span>git<span class="w"> </span>clone<span class="w"> </span>https://aur.archlinux.org/packages/c-lolcat<span class="w"></span></span> <span class="lineno"></span><span class="line"><span class="w"></span>$<span class="w"> </span><span class="nb">cd</span><span class="w"> </span>c-lolcat<span class="w"></span></span> <span class="lineno"></span><span class="line"><span class="w"></span>$<span class="w"> </span>makepkg<span class="w"> </span>-csi </span></pre> </div> <div class="section" id="fedora"> <h3>Fedora</h3> <pre class="code sh literal-block"> <span class="lineno"></span><span class="line">$<span class="w"> </span>dnf<span class="w"> </span>install<span class="w"> </span>lolcat </span></pre> </div> <div class="section" id="ubuntu-snap"> <h3>Ubuntu (Snap)</h3> <p>See <a class="reference external" href="https://blog.simos.info/how-to-make-a-snap-package-for-lolcat-with-snapcraft-on-ubuntu/">this awesome blog post by a kind person from the internet</a>:</p> <pre class="code sh literal-block"> <span class="lineno"></span><span class="line">$<span class="w"> </span>snap<span class="w"> </span>install<span class="w"> </span>lolcat-c </span></pre> </div> <div class="section" id="mac"> <h3>Mac</h3> <p>Build loclcat with:</p> <pre class="code sh literal-block"> <span class="lineno"></span><span class="line">$<span class="w"> </span>make<span class="w"> </span>lolcat </span></pre> <p>...and put the resulting binary at a place of your choice.</p> </div> <div class="section" id="others"> <h3>Others</h3> <pre class="code sh literal-block"> <span class="lineno"></span><span class="line">$<span class="w"> </span>make<span class="w"> </span><span class="o">&&</span><span class="w"> </span>sudo<span class="w"> </span>make<span class="w"> </span>install </span></pre> </div> </div> <div class="section" id="why"> <h2>Why?</h2> <p>This <cite>lolcat</cite> clone is an attempt to reduce the world's carbon dioxide emissions by optimizing inefficient code. It's >10x as fast and <0.1% as large as the original one.</p> <pre class="code sh literal-block"> <span class="lineno"></span><span class="line">newton~/d/lolcat<span class="w"> </span><<span class="m">3</span><span class="w"> </span>dmesg>foo<span class="w"></span></span> <span class="lineno"></span><span class="line"><span class="w"></span>newton~/d/lolcat<span class="w"> </span><<span class="m">3</span><span class="w"> </span><span class="nb">time</span><span class="w"> </span>upstream/bin/lolcat<span class="w"> </span>foo<span class="w"></span></span> <span class="lineno"></span><span class="line"><span class="w"></span><span class="m">13</span>.51user<span class="w"> </span><span class="m">1</span>.34system<span class="w"> </span><span class="m">0</span>:15.99elapsed<span class="w"> </span><span class="m">92</span>%CPU<span class="w"> </span><span class="o">(</span>0avgtext+0avgdata<span class="w"> </span>10864maxresident<span class="o">)</span>k<span class="w"></span></span> <span class="lineno"></span><span class="line"><span class="w"></span>0inputs+0outputs<span class="w"> </span><span class="o">(</span>0major+1716minor<span class="o">)</span>pagefaults<span class="w"> </span>0swaps<span class="w"></span></span> <span class="lineno"></span><span class="line"><span class="w"></span>newton~/d/lolcat<span class="w"> </span><<span class="m">3</span><span class="w"> </span><span class="nb">time</span><span class="w"> </span>./lolcat<span class="w"> </span>foo<span class="w"></span></span> <span class="lineno"></span><span class="line"><span class="w"></span><span class="m">0</span>.02user<span class="w"> </span><span class="m">0</span>.00system<span class="w"> </span><span class="m">0</span>:00.09elapsed<span class="w"> </span><span class="m">34</span>%CPU<span class="w"> </span><span class="o">(</span>0avgtext+0avgdata<span class="w"> </span>1936maxresident<span class="o">)</span>k<span class="w"></span></span> <span class="lineno"></span><span class="line"><span class="w"></span>0inputs+0outputs<span class="w"> </span><span class="o">(</span>0major+117minor<span class="o">)</span>pagefaults<span class="w"> </span>0swaps </span></pre> <p>Bonus comparison with <a class="reference external" href="https://github.com/tehmaze/lolcat/">python-lolcat</a>:</p> <pre class="code sh literal-block"> <span class="lineno"></span><span class="line">newton~/d/lolcat<span class="w"> </span><<span class="m">3</span><span class="w"> </span>dmesg>foo<span class="w"></span></span> <span class="lineno"></span><span class="line"><span class="w"></span>$<span class="w"> </span><span class="nb">time</span><span class="w"> </span>python-lolcat<span class="w"> </span>foo<span class="w"></span></span> <span class="lineno"></span><span class="line"><span class="w"></span><span class="m">12</span>.27user<span class="w"> </span><span class="m">0</span>.00system<span class="w"> </span><span class="m">0</span>:12.29elapsed<span class="w"> </span><span class="m">99</span>%CPU<span class="w"> </span><span class="o">(</span>0avgtext+0avgdata<span class="w"> </span>11484maxresident<span class="o">)</span>k<span class="w"></span></span> <span class="lineno"></span><span class="line"><span class="w"></span>0inputs+0outputs<span class="w"> </span><span class="o">(</span>0major+1627minor<span class="o">)</span>pagefaults<span class="w"> </span>0swaps<span class="w"></span></span> <span class="lineno"></span><span class="line"><span class="w"></span>$<span class="w"> </span><span class="nb">time</span><span class="w"> </span>c-lolcat<span class="w"> </span>foo<span class="w"></span></span> <span class="lineno"></span><span class="line"><span class="w"></span><span class="m">0</span>.29user<span class="w"> </span><span class="m">0</span>.00system<span class="w"> </span><span class="m">0</span>:00.30elapsed<span class="w"> </span><span class="m">98</span>%CPU<span class="w"> </span><span class="o">(</span>0avgtext+0avgdata<span class="w"> </span>468maxresident<span class="o">)</span>k<span class="w"></span></span> <span class="lineno"></span><span class="line"><span class="w"></span>0inputs+0outputs<span class="w"> </span><span class="o">(</span>0major+21minor<span class="o">)</span>pagefaults<span class="w"> </span>0swaps </span></pre> <p>(Read: <cite>c-lolcat << python-lolcat << ruby-lolcat</cite>)</p> </div> </div> </main><footer> Copyright © 2023 Jan Sebastian Götte / <a href="/about/">About</a> / <a href="/imprint/">Imprint</a> </footer> <script> if(navigator.getEnvironmentIntegrity!==undefined)document.querySelector('body').innerHTML=`<h1>Your browser contains Google DRM</h1>"Web Environment Integrity" is a Google euphemism for a DRM that is designed to prevent ad-blocking, and which Google has forced into their browsers against widespread public opposition. In support of an open web, this website does not function with this DRM. Please install a browser such as <a href="https://www.mozilla.org/en-US/firefox/new/">Firefox</a> that respects your freedom and supports ad blockers.`; </script> </body> </html>