<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: CarlsJrMints</title><link>https://news.ycombinator.com/user?id=CarlsJrMints</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 16 Sep 2026 20:01:50 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=CarlsJrMints" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by CarlsJrMints in "Show HN: Mtg-crucible, an NPM package to render custom Magic the Gathering cards"]]></title><description><![CDATA[
<p>There are a good number of tools for creating custom MTG cards, a few of them open source. But so far there haven't been any self-contained, composable packages. There are 3 main modules to the package, a parser with associated relevant interfaces, the rendering engine itself, and a React component for displaying rendered cards.<p>For the parser I was inspired by the lightweight text format that scryfall uses, like[1]<p><pre><code>  Llanowar Elves {G}
  Creature — Elf Druid
  {T}: Add {G}.
  1/1
</code></pre>
Crucible's text format [2] is a superset that allows specifying "non-functional" parts of the card, like flavortext, rarity, art, etc. The text format gets parsed into a structured CardData interface. One challenge was accomodating different structured abilites for different card types, like Planeswalkers, Sagas, etc. which I solved using TypeScript discriminated unions. This gives a fair amount of flexibility for consumers since if you are building a UI, you can use the structured ability interfaces, or you can use the raw string interface for abilities.<p>The rendering engine uses the Canvas API to compose the various visual elements. Implementing the rendering engine made me a lot more aware of card formatting details. For example hybrid frames vs. gold frames, accent colors, legend crowns, snow & nyx borders, information in the footer. There are a number of styling rule edge cases that had to be solved (a 2-color artifact uses those 2 colors in the accent, but gold for the type, name, and power/toughness boxes. But if the 2-colors are from hybrid mana, the accent is the same, but the name line uses the standard artifact color for the boxes).<p>This package also solves the problem of reinventing the wheel when displaying cards in a browser. It provides a React component which provides invisible text to make the cards ctrl+f-able, a context menu for copying the image or text of the card, and rotations for dual-faced cards.<p>This project had a lot of scope creep. MTG cards come in a variety of layouts, but it is heavily skewed towards "normal" (covering about 99% of cards) [3]. I had an MVP for rendering standard (or normal) framed cards in about a day. But I figured I should support all the primary card types, so I implemented support for Planeswalkers and Battles (about .1% and .01% respectively). Since Battles are dual-faced, I figured I might as well support transform cards and modal dual-faced. Then the Prepare mechanic came out in Secrets of Strixhaven so I should support that as well. In then end I supported just about every card layout, including split, flip, omen, adventure, aftermath, prototype, leveler. This greatly complicated the parser, rendering engine, and react component, but I am happy with how comprehensive the package is.<p>I've used this package for three projects so far (not including the playground page <a href="https://domainellipticlanguage.com/project/mtg-crucible-playground/" rel="nofollow">https://domainellipticlanguage.com/project/mtg-crucible-play...</a>):<p>thismagiccarddoesnotexist.com [4] - a site for generating cards with AI<p>obsidian-custom-mtg [5] - an Obsidian plugin for making custom cards in markdown using a variant of the Scryfall spoiler text format<p>command-tower-mcp [6] - an MCP server for managing decks and custom cards on Archidekt.<p>If you build anything, I would love to know. Open a PR on the GitHub repo to give yourself a shoutout in the README <a href="https://github.com/domainellipticlanguage/mtg-crucible#in-the-wild" rel="nofollow">https://github.com/domainellipticlanguage/mtg-crucible#in-th...</a><p>[1] <a href="https://api.scryfall.com/cards/73542493-cd0b-4bb7-a5b8-8f889c76e4d6?format=text&pretty=true" rel="nofollow">https://api.scryfall.com/cards/73542493-cd0b-4bb7-a5b8-8f889...</a><p>[2] <a href="https://github.com/domainellipticlanguage/mtg-crucible#text-format" rel="nofollow">https://github.com/domainellipticlanguage/mtg-crucible#text-...</a><p>[3] <a href="https://scryfall.com/search?q=layout%3Anormal" rel="nofollow">https://scryfall.com/search?q=layout%3Anormal</a><p>[4] <a href="https://thismagiccarddoesnotexist.com/" rel="nofollow">https://thismagiccarddoesnotexist.com/</a><p>[5] <a href="https://github.com/domainellipticlanguage/obsidian-custom-mtg" rel="nofollow">https://github.com/domainellipticlanguage/obsidian-custom-mt...</a><p>[6] <a href="https://github.com/domainellipticlanguage/command-tower-mcp" rel="nofollow">https://github.com/domainellipticlanguage/command-tower-mcp</a></p>
]]></description><pubDate>Fri, 03 Jul 2026 11:01:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=48773560</link><dc:creator>CarlsJrMints</dc:creator><comments>https://news.ycombinator.com/item?id=48773560</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48773560</guid></item><item><title><![CDATA[Show HN: mtg-crucible, an NPM package to render custom Magic the Gathering cards]]></title><description><![CDATA[
<p>mtg-crucible is a node package which can run serverside or clientside. Given a structured description of a card, or a text representation of the card, it will produce an output image of the card.<p>Try it out in your browser: <a href="https://domainellipticlanguage.com/project/mtg-crucible-playground/" rel="nofollow">https://domainellipticlanguage.com/project/mtg-crucible-play...</a></p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48773556">https://news.ycombinator.com/item?id=48773556</a></p>
<p>Points: 2</p>
<p># Comments: 1</p>
]]></description><pubDate>Fri, 03 Jul 2026 11:00:46 +0000</pubDate><link>https://www.npmjs.com/package/mtg-crucible</link><dc:creator>CarlsJrMints</dc:creator><comments>https://news.ycombinator.com/item?id=48773556</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48773556</guid></item><item><title><![CDATA[New comment by CarlsJrMints in "45°C cooling design cuts data center water use to near zero"]]></title><description><![CDATA[
<p>That Politico article is a good example of the kind of misinformation that makes the water consumption concern a myth.
<a href="https://x.com/AndyMasley/status/2053296197679374365" rel="nofollow">https://x.com/AndyMasley/status/2053296197679374365</a><p>> What actually happened here was that [...] two water hookups at a data center construction site weren't properly registered or linked to a billable account. When the utility noticed the problem, they sent the data center a retroactive bill for all the water, for $147,474 covering ~29M gallons. The data center paid it.<p>> Did the data center cause the low water pressure? The article very strongly implies a connection, but doesn't give the reader the right numbers to judge whether this actually happened. To figure this out, we need to know over what time the 30 million gallons was drawn [...] That's about 1% of the county's daily water output. There are a ton of ways a water system like this can experience low water pressure, and a 1% dip just isn't one of them.<p>> [...] the complaint about low water pressure [which led to discovering the billing problem] was coming from a private well that the data center didn't even draw from</p>
]]></description><pubDate>Thu, 25 Jun 2026 16:09:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=48675509</link><dc:creator>CarlsJrMints</dc:creator><comments>https://news.ycombinator.com/item?id=48675509</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48675509</guid></item><item><title><![CDATA[New comment by CarlsJrMints in "Hi everyone yes, I left OpenAI yesterday"]]></title><description><![CDATA[
<p>Genuinely curious if the news today about Sora has changed your opinion at all <a href="https://openai.com/sora" rel="nofollow">https://openai.com/sora</a></p>
]]></description><pubDate>Thu, 15 Feb 2024 18:43:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=39386614</link><dc:creator>CarlsJrMints</dc:creator><comments>https://news.ycombinator.com/item?id=39386614</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39386614</guid></item><item><title><![CDATA[New comment by CarlsJrMints in "Wait vs. Interrupt Culture"]]></title><description><![CDATA[
<p>> no card of MtG is allowed to mention the stack in their printed text<p>Nit: The Split Second keyword ability is usually accompanied by reminder text which mentions the stack<p>> Split second (As long as this spell is on the stack, players can't cast spells or activate abilities that aren't mana abilities.)<p><a href="https://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=509479" rel="nofollow">https://gatherer.wizards.com/Pages/Card/Details.aspx?multive...</a></p>
]]></description><pubDate>Thu, 20 Oct 2022 01:07:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=33269732</link><dc:creator>CarlsJrMints</dc:creator><comments>https://news.ycombinator.com/item?id=33269732</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33269732</guid></item><item><title><![CDATA[Show HN: An AI-art, Jackbox-like multiplayer game]]></title><description><![CDATA[
<p>Dallestrations is like a mix of Drawful and the game telephone.<p>Each player enters a prompt which an AI then draws. Then another player will guess what prompt generated that image. Then the AI draws that guess and so on.<p>At the end players can see how consistent each prompt stayed throughout the rounds. Here are the results from an example game <a href="https://dallestrations.herokuapp.com/ede93e19-ecb8-4d91-b973-7c791d6d2f0b/results" rel="nofollow">https://dallestrations.herokuapp.com/ede93e19-ecb8-4d91-b973...</a>.<p>Actually uses stable diffusion rather than Dalle-2</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=32893331">https://news.ycombinator.com/item?id=32893331</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 19 Sep 2022 01:42:41 +0000</pubDate><link>https://dallestrations.herokuapp.com//</link><dc:creator>CarlsJrMints</dc:creator><comments>https://news.ycombinator.com/item?id=32893331</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32893331</guid></item><item><title><![CDATA[New comment by CarlsJrMints in "Draw Anything – A Simple Stable Diffusion Playground"]]></title><description><![CDATA[
<p>I recently made a game pretty much just like this. It's like a game of Drawful mixed with telephone so you can see how the image changes through cycles of AI drawing and human interpretation.<p><a href="http://www.dallestrations.com/" rel="nofollow">http://www.dallestrations.com/</a></p>
]]></description><pubDate>Sat, 10 Sep 2022 00:54:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=32786623</link><dc:creator>CarlsJrMints</dc:creator><comments>https://news.ycombinator.com/item?id=32786623</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32786623</guid></item><item><title><![CDATA[New comment by CarlsJrMints in "Irrational Base Number System (2000)"]]></title><description><![CDATA[
<p><a href="https://en.wikipedia.org/wiki/Radix_economy#:~:text=different%20bases%5Bedit%5D-,e%20has%20the%20lowest%20radix%20economy" rel="nofollow">https://en.wikipedia.org/wiki/Radix_economy#:~:text=differen...</a></p>
]]></description><pubDate>Thu, 01 Sep 2022 00:58:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=32670439</link><dc:creator>CarlsJrMints</dc:creator><comments>https://news.ycombinator.com/item?id=32670439</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32670439</guid></item><item><title><![CDATA[New comment by CarlsJrMints in "Supreme Court Overturns Roe vs. Wade"]]></title><description><![CDATA[
<p>In 2007 a conservative SCOTUS majority upheld a federal ban on partial-birth abortion [0]. Thomas wrote a concurring opinion where he explicitly glossed over whether congress actually had that authority under the commerce clause. Normally he jumps at any chance to say congress has exceeded their authority under that clause. I wouldn't find it hard to believe if this court upholds a more general federal abortion ban<p>[0] <a href="https://en.wikipedia.org/wiki/Gonzales_v._Carhart#Concurrence" rel="nofollow">https://en.wikipedia.org/wiki/Gonzales_v._Carhart#Concurrenc...</a></p>
]]></description><pubDate>Mon, 27 Jun 2022 01:21:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=31889662</link><dc:creator>CarlsJrMints</dc:creator><comments>https://news.ycombinator.com/item?id=31889662</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31889662</guid></item><item><title><![CDATA[New comment by CarlsJrMints in "US indictments of piracy group members throw top-tier piracy world into chaos"]]></title><description><![CDATA[
<p>Yes, that's the one!<p>Storing secret keys as QR codes is an interesting application as well. I remember reading on here about a CEO who printed out a database encryption key as a base64 string and then couldn't type it in correctly when it was needed to restore backups. A machine-readable format definitely seems the way to go.</p>
]]></description><pubDate>Sat, 29 Aug 2020 02:44:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=24312911</link><dc:creator>CarlsJrMints</dc:creator><comments>https://news.ycombinator.com/item?id=24312911</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24312911</guid></item><item><title><![CDATA[New comment by CarlsJrMints in "US indictments of piracy group members throw top-tier piracy world into chaos"]]></title><description><![CDATA[
<p>> binary QR decoding for ZBar<p>I just saw a video the other day about storing video games in QR codes where the poster submitted a patch for ZBar. Was that you?</p>
]]></description><pubDate>Wed, 26 Aug 2020 21:13:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=24287347</link><dc:creator>CarlsJrMints</dc:creator><comments>https://news.ycombinator.com/item?id=24287347</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24287347</guid></item><item><title><![CDATA[New comment by CarlsJrMints in "Black – Uncompromising Python code formatter"]]></title><description><![CDATA[
<p>Idempotence means T^2=T. Are you thinking of involution? <a href="https://en.wikipedia.org/wiki/Involution_(mathematics)" rel="nofollow">https://en.wikipedia.org/wiki/Involution_(mathematics)</a></p>
]]></description><pubDate>Sun, 19 May 2019 17:43:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=19954431</link><dc:creator>CarlsJrMints</dc:creator><comments>https://news.ycombinator.com/item?id=19954431</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19954431</guid></item><item><title><![CDATA[New comment by CarlsJrMints in "Have We Forgotten about Geometry in Computer Vision?"]]></title><description><![CDATA[
<p>I would love to hear more about these "weird applications of type theory". Any references?</p>
]]></description><pubDate>Fri, 28 Apr 2017 13:41:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=14219253</link><dc:creator>CarlsJrMints</dc:creator><comments>https://news.ycombinator.com/item?id=14219253</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=14219253</guid></item><item><title><![CDATA[New comment by CarlsJrMints in "Ask HN: What's your favorite tech talk?"]]></title><description><![CDATA[
<p>I really liked the message of each generation of programming considers the next "not real programming". It makes me reconsider the pushback against node-esque micro-packages: <a href="http://www.haneycodes.net/npm-left-pad-have-we-forgotten-how-to-program/" rel="nofollow">http://www.haneycodes.net/npm-left-pad-have-we-forgotten-how...</a>. Maybe this is just the next logical evolution of programming.</p>
]]></description><pubDate>Tue, 04 Oct 2016 22:36:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=12640170</link><dc:creator>CarlsJrMints</dc:creator><comments>https://news.ycombinator.com/item?id=12640170</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=12640170</guid></item></channel></rss>