<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: shihn</title><link>https://news.ycombinator.com/user?id=shihn</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 30 Apr 2026 20:38:47 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=shihn" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by shihn in "Bringing MathML back to Chromium"]]></title><description><![CDATA[
<p>I implemented MathML as web components a few years ago as a work around. It wasn't super hard, but a native implementation provides so much better accessibility (and, likely, perf) <a href="https://github.com/pshihn/math-ml">https://github.com/pshihn/math-ml</a></p>
]]></description><pubDate>Tue, 10 Jan 2023 23:28:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=34332950</link><dc:creator>shihn</dc:creator><comments>https://news.ycombinator.com/item?id=34332950</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34332950</guid></item><item><title><![CDATA[CafeMedia Acquires Slickstream]]></title><description><![CDATA[
<p>Article URL: <a href="https://cafemedia.com/slickstream-is-now-a-part-of-the-cafemedia-family/">https://cafemedia.com/slickstream-is-now-a-part-of-the-cafemedia-family/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=32585906">https://news.ycombinator.com/item?id=32585906</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 24 Aug 2022 21:18:28 +0000</pubDate><link>https://cafemedia.com/slickstream-is-now-a-part-of-the-cafemedia-family/</link><dc:creator>shihn</dc:creator><comments>https://news.ycombinator.com/item?id=32585906</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32585906</guid></item><item><title><![CDATA[Show HN: Venny is a set of components to create Venn Diagrams on a web page]]></title><description><![CDATA[
<p>Article URL: <a href="https://pshihn.github.io/venn/">https://pshihn.github.io/venn/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=29280281">https://news.ycombinator.com/item?id=29280281</a></p>
<p>Points: 12</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 19 Nov 2021 18:05:52 +0000</pubDate><link>https://pshihn.github.io/venn/</link><dc:creator>shihn</dc:creator><comments>https://news.ycombinator.com/item?id=29280281</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=29280281</guid></item><item><title><![CDATA[New comment by shihn in "One Year of Excalidraw"]]></title><description><![CDATA[
<p>Actually there is some connection in rough.js' sketchy curve rendering and the way excalidraw smooths the hand-drawn shape. That is the Ramer–Douglas–Peucker algorithm <a href="https://en.wikipedia.org/wiki/Ramer%E2%80%93Douglas%E2%80%93Peucker_algorithm" rel="nofollow">https://en.wikipedia.org/wiki/Ramer%E2%80%93Douglas%E2%80%93...</a><p>The way excalidraw does it, it collects all the points from mouse-move events, then uses the algorithm to take those points and reduce the number of points. The reduction is done by a 'distance' parameter in the algorithm. So instead of `n` points, you now have `m` points. m < n. Then excalidraw fits a rough curve through those `m` points. This fitting is automatically done in roughjs. Fewer points and curve fitting gives the effect you mentioned.<p>(The reduction algorithm is implemented and used from this package: <a href="https://github.com/pshihn/bezier-points" rel="nofollow">https://github.com/pshihn/bezier-points</a>)
p.s. thanks for the shoutout @swyx</p>
]]></description><pubDate>Tue, 05 Jan 2021 19:12:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=25649612</link><dc:creator>shihn</dc:creator><comments>https://news.ycombinator.com/item?id=25649612</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25649612</guid></item><item><title><![CDATA[Analyzing Voting Systems]]></title><description><![CDATA[
<p>Article URL: <a href="https://shihn.ca/posts/2020/voting-systems/">https://shihn.ca/posts/2020/voting-systems/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=25053892">https://news.ycombinator.com/item?id=25053892</a></p>
<p>Points: 7</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 11 Nov 2020 00:09:18 +0000</pubDate><link>https://shihn.ca/posts/2020/voting-systems/</link><dc:creator>shihn</dc:creator><comments>https://news.ycombinator.com/item?id=25053892</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25053892</guid></item><item><title><![CDATA[Autoplaying back-to-back videos on the web using a Media Pool]]></title><description><![CDATA[
<p>Article URL: <a href="https://shihn.ca/posts/2020/media-pool/">https://shihn.ca/posts/2020/media-pool/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=24003408">https://news.ycombinator.com/item?id=24003408</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 30 Jul 2020 22:09:39 +0000</pubDate><link>https://shihn.ca/posts/2020/media-pool/</link><dc:creator>shihn</dc:creator><comments>https://news.ycombinator.com/item?id=24003408</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24003408</guid></item><item><title><![CDATA[How COVID-19 has affected food blogging]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.slickstream.com/blog/covid-food-blog-revenue-impact">https://www.slickstream.com/blog/covid-food-blog-revenue-impact</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=23380251">https://news.ycombinator.com/item?id=23380251</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 01 Jun 2020 16:22:57 +0000</pubDate><link>https://www.slickstream.com/blog/covid-food-blog-revenue-impact</link><dc:creator>shihn</dc:creator><comments>https://news.ycombinator.com/item?id=23380251</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23380251</guid></item><item><title><![CDATA[New comment by shihn in "Show HN: RoughNotation – create and animate hand-drawn annotations on a web page"]]></title><description><![CDATA[
<p>Definitely. Please add an issue with what you'd like to see. Thanks.</p>
]]></description><pubDate>Thu, 28 May 2020 22:04:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=23343355</link><dc:creator>shihn</dc:creator><comments>https://news.ycombinator.com/item?id=23343355</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23343355</guid></item><item><title><![CDATA[New comment by shihn in "Show HN: RoughNotation – create and animate hand-drawn annotations on a web page"]]></title><description><![CDATA[
<p>I wrote roughjs a couple of years ago and had always thought it would be nice to use it in all the ways people draw hand-drawn shapes. Annotation is one of them. I never got around to implementing it.
Since roughjs does most of the heavy lifting, implementing this was not a lot of time. I did it in a day (~4-6 hours). 
Actually it took longer to make the website for the project and writing the readme :/</p>
]]></description><pubDate>Thu, 28 May 2020 22:02:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=23343332</link><dc:creator>shihn</dc:creator><comments>https://news.ycombinator.com/item?id=23343332</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23343332</guid></item><item><title><![CDATA[New comment by shihn in "Show HN: RoughNotation – create and animate hand-drawn annotations on a web page"]]></title><description><![CDATA[
<p>People have created framework wrappers for this:<p>Rect: <a href="https://github.com/linkstrifer/react-rough-notation" rel="nofollow">https://github.com/linkstrifer/react-rough-notation</a>
Svelte: <a href="https://github.com/dimfeld/svelte-rough-notation" rel="nofollow">https://github.com/dimfeld/svelte-rough-notation</a>
Vue: <a href="https://github.com/Leecason/vue-rough-notation" rel="nofollow">https://github.com/Leecason/vue-rough-notation</a></p>
]]></description><pubDate>Thu, 28 May 2020 21:57:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=23343274</link><dc:creator>shihn</dc:creator><comments>https://news.ycombinator.com/item?id=23343274</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23343274</guid></item><item><title><![CDATA[New comment by shihn in "Show HN: RoughNotation – create and animate hand-drawn annotations on a web page"]]></title><description><![CDATA[
<p>I did implement a version of this in Houdini a couple of years back, that and a short thread of what Houdini was lacking in this case: <a href="https://twitter.com/preetster/status/1265679970006757376" rel="nofollow">https://twitter.com/preetster/status/1265679970006757376</a></p>
]]></description><pubDate>Thu, 28 May 2020 21:56:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=23343253</link><dc:creator>shihn</dc:creator><comments>https://news.ycombinator.com/item?id=23343253</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23343253</guid></item><item><title><![CDATA[New comment by shihn in "Show HN: RoughNotation – create and animate hand-drawn annotations on a web page"]]></title><description><![CDATA[
<p>Ah sorry, should have titled the post better. :/</p>
]]></description><pubDate>Thu, 28 May 2020 20:05:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=23341940</link><dc:creator>shihn</dc:creator><comments>https://news.ycombinator.com/item?id=23341940</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23341940</guid></item><item><title><![CDATA[New comment by shihn in "Show HN: RoughNotation – create and animate hand-drawn annotations on a web page"]]></title><description><![CDATA[
<p>Yes definitely possible. It just looks more sketchy with two passes. And it should be easy to configure. Perhaps add to the issues with any thoughts? Thanks <a href="https://github.com/pshihn/rough-notation/issues" rel="nofollow">https://github.com/pshihn/rough-notation/issues</a></p>
]]></description><pubDate>Thu, 28 May 2020 19:36:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=23341556</link><dc:creator>shihn</dc:creator><comments>https://news.ycombinator.com/item?id=23341556</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23341556</guid></item><item><title><![CDATA[New comment by shihn in "Show HN: RoughNotation – create and animate hand-drawn annotations on a web page"]]></title><description><![CDATA[
<p>Thanks. the idea behind rough was to provide primitives to draw anything. maps and dataviz are definitely one of the main use cases.</p>
]]></description><pubDate>Thu, 28 May 2020 19:31:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=23341466</link><dc:creator>shihn</dc:creator><comments>https://news.ycombinator.com/item?id=23341466</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23341466</guid></item><item><title><![CDATA[New comment by shihn in "Show HN: RoughNotation – create and animate hand-drawn annotations on a web page"]]></title><description><![CDATA[
<p>Thanks. 
Online tutorials, presentations, editing, Direct attention of the reader to something specific.<p>I was thinking anything that you'd do such annotations on physical paper.</p>
]]></description><pubDate>Thu, 28 May 2020 18:48:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=23340886</link><dc:creator>shihn</dc:creator><comments>https://news.ycombinator.com/item?id=23340886</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23340886</guid></item><item><title><![CDATA[New comment by shihn in "Show HN: RoughNotation – create and animate hand-drawn annotations on a web page"]]></title><description><![CDATA[
<p>Good idea. I had thought of adding text to annotations but didn’t want to complicate the first draft of this.</p>
]]></description><pubDate>Thu, 28 May 2020 18:19:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=23340519</link><dc:creator>shihn</dc:creator><comments>https://news.ycombinator.com/item?id=23340519</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23340519</guid></item><item><title><![CDATA[New comment by shihn in "Show HN: RoughNotation – create and animate hand-drawn annotations on a web page"]]></title><description><![CDATA[
<p>Thanks!</p>
]]></description><pubDate>Thu, 28 May 2020 17:34:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=23340047</link><dc:creator>shihn</dc:creator><comments>https://news.ycombinator.com/item?id=23340047</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23340047</guid></item><item><title><![CDATA[Show HN: RoughNotation – create and animate hand-drawn annotations on a web page]]></title><description><![CDATA[
<p>Article URL: <a href="https://roughnotation.com/">https://roughnotation.com/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=23339244">https://news.ycombinator.com/item?id=23339244</a></p>
<p>Points: 696</p>
<p># Comments: 74</p>
]]></description><pubDate>Thu, 28 May 2020 16:31:43 +0000</pubDate><link>https://roughnotation.com/</link><dc:creator>shihn</dc:creator><comments>https://news.ycombinator.com/item?id=23339244</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23339244</guid></item><item><title><![CDATA[How to emulate hand-drawn shapes – Algorithms behind RoughJS]]></title><description><![CDATA[
<p>Article URL: <a href="https://shihn.ca/posts/2020/roughjs-algorithms/">https://shihn.ca/posts/2020/roughjs-algorithms/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=23284588">https://news.ycombinator.com/item?id=23284588</a></p>
<p>Points: 36</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 23 May 2020 17:09:18 +0000</pubDate><link>https://shihn.ca/posts/2020/roughjs-algorithms/</link><dc:creator>shihn</dc:creator><comments>https://news.ycombinator.com/item?id=23284588</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23284588</guid></item><item><title><![CDATA[New comment by shihn in "OpenCV in the browser using WebAssembly and web workers"]]></title><description><![CDATA[
<p>I used OpenCV in WASM to create a RoughJS version of an image a couple of years ago. <a href="https://pshihn.github.io/rough-draw/" rel="nofollow">https://pshihn.github.io/rough-draw/</a></p>
]]></description><pubDate>Sat, 09 May 2020 00:22:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=23120991</link><dc:creator>shihn</dc:creator><comments>https://news.ycombinator.com/item?id=23120991</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23120991</guid></item></channel></rss>