I’m always trying to take pictures of the glorious hanging baskets of #flowers we have here in #Portland and surrounding towns all summer. But the photos never do them justice.
I finally got a good angle, thanks to my #NikonZfc and 40mm prime, and went with a bit of a Wes Anderson vibe in post. How’d I do? ☺️ #OregonExplored
{
"type": "entry",
"author": {
"name": "Jared White",
"url": "https://jaredwhite.com/",
"photo": null
},
"url": "https://jaredwhite.com/pictures/20240912/i-m-always-trying-to-take-pictures-of-the-glorious-hanging",
"published": "2024-09-12T10:26:57-07:00",
"content": {
"html": "<img alt=\"\" src=\"https://pxscdn.com/public/m/_v2/4580/586f75268-5004eb/53NN3qIEPRMf/zRH4bHEib0ZIKUjV0XryExlTTR7dh9bXsD0FY4qx.jpg\" /><p>I\u2019m always trying to take pictures of the glorious hanging baskets of <a href=\"https://jaredwhite.com/tag/flowers\">#flowers</a> we have here in <a href=\"https://jaredwhite.com/tag/portland\">#Portland</a> and surrounding towns all summer. But the photos never do them justice.</p>\n\n<p>I finally got a good angle, thanks to my <a href=\"https://jaredwhite.com/tag/nikonzfc\">#NikonZfc</a> and 40mm prime, and went with a bit of a Wes Anderson vibe in post. How\u2019d I do? \u263a\ufe0f <a href=\"https://jaredwhite.com/tag/oregonexplored\">#OregonExplored</a></p>",
"text": "I\u2019m always trying to take pictures of the glorious hanging baskets of #flowers we have here in #Portland and surrounding towns all summer. But the photos never do them justice.\n\nI finally got a good angle, thanks to my #NikonZfc and 40mm prime, and went with a bit of a Wes Anderson vibe in post. How\u2019d I do? \u263a\ufe0f #OregonExplored"
},
"post-type": "note",
"_id": "42352742",
"_source": "2783"
}
Any German speakers want to tell me if my instinct on this is correct?
"Ganz kleine Nachtmusik" is the name of a piece of music by Mozart that was just discovered. (He later titled a piece "Eine kleine Nachtmusik")
The English press about this is translating it as "Very little night music" which seems wrong? I feel like either "Quite small night music" or "Completely small night music" would be more accurate.
When does "ganz" change from "quite" to "completely"? Is it ambiguous here?
{
"type": "entry",
"published": "2024-09-20T22:29:45-07:00",
"url": "https://aaronparecki.com/2024/09/20/16/mozart",
"category": [
"music",
"german",
"language"
],
"content": {
"text": "Any German speakers want to tell me if my instinct on this is correct? \n\n\"Ganz kleine Nachtmusik\" is the name of a piece of music by Mozart that was just discovered. (He later titled a piece \"Eine kleine Nachtmusik\") \n\nThe English press about this is translating it as \"Very little night music\" which seems wrong? I feel like either \"Quite small night music\" or \"Completely small night music\" would be more accurate. \n\nWhen does \"ganz\" change from \"quite\" to \"completely\"? Is it ambiguous here?",
"html": "Any German speakers want to tell me if my instinct on this is correct? <br /><br />\"Ganz kleine Nachtmusik\" is the name of a piece of music by Mozart that was just discovered. (He later titled a piece \"Eine kleine Nachtmusik\") <br /><br />The English press about this is translating it as \"Very little night music\" which seems wrong? I feel like either \"Quite small night music\" or \"Completely small night music\" would be more accurate. <br /><br />When does \"ganz\" change from \"quite\" to \"completely\"? Is it ambiguous here?"
},
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aperture-media.p3k.io/aaronparecki.com/41061f9de825966faa22e9c42830e1d4a614a321213b4575b9488aa93f89817a.jpg"
},
"post-type": "note",
"_id": "42306226",
"_source": "16"
}
Can we have CC-NT licenses for no-training (ML/LLM, GenAI in general), just like we have CC-NC for non-commercial?
My previous post¹ reminded me that I’ve been creating, writing, inventing, and then sharing things with #CreativeCommons (CC) #licenses for a long time (I have to see if I can dig up my first use of CC licenses.)
I’ve used and recommended a variety of CC licenses for decades, e.g. * CC0 — for standards work, e.g. I drove and wrote up https://wiki.mozilla.org/Standards/licensing (with help from lawyers) * CC-BY — aforementioned blog post (and other snippets of #openSource) * CC-BY-NC — photos on Flickr (dozens of which have been used in publications²) * CC-SA — for CASSIS³, which I still consider experimental enough that I chose "share-alike" to deliberately slow its spread, and hopefully reduce mutations (while allowing ports of its functions to other languages)
So I have some idea of what I’m talking about.
There have been LOTS of discussions of the challenges, downsides, and disagreements with sweeping use of copyrighted content to train generated artificial intelligence AKA #genAI software and services, sometimes also called #machineLearning. The most common examples being Large Language Models AKA #LLM, but also models for generating images and video. Smart, intelligent, and well-intentioned people disagree on who has rights to do what, or even who should do what in this regard.
There have been many proposals for new standards, or updates to existing standards like robots.txt etc. but I have not really seen them make noticeable progress. There are also lots of techniques published that attempt to block the spiders and bots being used to crawl and collect content for GenAI, an arms race that ends up damaging well-established popular uses such as web search engines (or making it harder to build a new one).
The brilliant innovation of Creative Commons was to look at the use-cases and intentions of creators publishing on the web in the 2000s and capture them in a small handful of clear licenses with human readable summaries.
Creatives are clamoring for a simple way to opt-out of their publicly published content from being used to train GenAI. New Creative Commons licenses solve this.
This seems like an obvious thing to me. If you can write a license that forbids “commercial use”, then you should be able to write a license that forbids use in “training models”, which respectful / well-written crawlers should (hopefully) respect, in as much as they respect existing CC licenses.
I saw that Creative Commons published a position paper⁴ for for an IETF workshop on this topic, and it unfortunately in my opinion has an overly cautious and pessimistic (outright conservative one could say) outlook, one that frankly I believe the founders of Creative Commons (who dared to boldly create something new) would probably be disappointed in.
First, there is no Creative Commons license on the Creative Commons position paper. Why?
Second, there are no names of authors on the Creative Commons position paper. Why?
Lots of people similarly (to the position paper) said the original Creative Commons licenses were a bad idea, or would not be used, or would be ignored, or would otherwise not work as intended. They were wrong.
If I were a lawyer I would fork those existing licenses and produce such “CC-NT” (for “no-training”) variants (though likely prefix them with something else since "CC" means Creative Commons) just to show it could be done, a proof of concept as it were that creators could use.
Or perhaps a few of us could collect funds to pay an intellectual property lawyer to do so, and of course donate all the work produced to the commons, so that Creative Commons (or someone else) could take it, re-use it, build upon it.
Someone needs to take such a bold step, just as Creative Commons itself took a bold step when they dared to create portable re-usable content licenses that any creator could use (a huge innovation at the time, for content, inspired in no doubt by portable re-usable open source licenses⁵).
{
"type": "entry",
"published": "2024-09-20 07:47-0700",
"url": "https://tantek.com/2024/264/t1/cc-nt-for-no-training-llm-genai",
"category": [
"CreativeCommons",
"licenses",
"openSource",
"genAI",
"machineLearning",
"LLM"
],
"content": {
"text": "Dear Creative Commons (@creativecommons.org @creativecommons@mastodon.social @creativecommons@x.com), \n\nCan we have CC-NT licenses for no-training (ML/LLM, GenAI in general), just like we have CC-NC for non-commercial?\n\nMy previous post\u00b9 reminded me that I\u2019ve been creating, writing, inventing, and then sharing things with #CreativeCommons (CC) #licenses for a long time (I have to see if I can dig up my first use of CC licenses.)\n\nI\u2019ve used and recommended a variety of CC licenses for decades, e.g.\n* CC0 \u2014 for standards work, e.g. I drove and wrote up https://wiki.mozilla.org/Standards/licensing (with help from lawyers)\n* CC-BY \u2014 aforementioned blog post (and other snippets of #openSource)\n* CC-BY-NC \u2014 photos on Flickr (dozens of which have been used in publications\u00b2)\n* CC-SA \u2014 for CASSIS\u00b3, which I still consider experimental enough that I chose \"share-alike\" to deliberately slow its spread, and hopefully reduce mutations (while allowing ports of its functions to other languages)\n\nSo I have some idea of what I\u2019m talking about.\n\nThere have been LOTS of discussions of the challenges, downsides, and disagreements with sweeping use of copyrighted content to train generated artificial intelligence AKA #genAI software and services, sometimes also called #machineLearning. The most common examples being Large Language Models AKA #LLM, but also models for generating images and video. Smart, intelligent, and well-intentioned people disagree on who has rights to do what, or even who should do what in this regard.\n\nThere have been many proposals for new standards, or updates to existing standards like robots.txt etc. but I have not really seen them make noticeable progress. There are also lots of techniques published that attempt to block the spiders and bots being used to crawl and collect content for GenAI, an arms race that ends up damaging well-established popular uses such as web search engines (or making it harder to build a new one).\n\nThe brilliant innovation of Creative Commons was to look at the use-cases and intentions of creators publishing on the web in the 2000s and capture them in a small handful of clear licenses with human readable summaries.\n\nCreatives are clamoring for a simple way to opt-out of their publicly published content from being used to train GenAI. New Creative Commons licenses solve this.\n\nThis seems like an obvious thing to me. If you can write a license that forbids \u201ccommercial use\u201d, then you should be able to write a license that forbids use in \u201ctraining models\u201d, which respectful / well-written crawlers should (hopefully) respect, in as much as they respect existing CC licenses.\n\nI saw that Creative Commons published a position paper\u2074 for for an IETF workshop on this topic, and it unfortunately in my opinion has an overly cautious and pessimistic (outright conservative one could say) outlook, one that frankly I believe the founders of Creative Commons (who dared to boldly create something new) would probably be disappointed in.\n\nFirst, there is no Creative Commons license on the Creative Commons position paper. Why?\n\nSecond, there are no names of authors on the Creative Commons position paper. Why?\n\nLots of people similarly (to the position paper) said the original Creative Commons licenses were a bad idea, or would not be used, or would be ignored, or would otherwise not work as intended. They were wrong.\n\nIf I were a lawyer I would fork those existing licenses and produce such \u201cCC-NT\u201d (for \u201cno-training\u201d) variants (though likely prefix them with something else since \"CC\" means Creative Commons) just to show it could be done, a proof of concept as it were that creators could use.\n\nOr perhaps a few of us could collect funds to pay an intellectual property lawyer to do so, and of course donate all the work produced to the commons, so that Creative Commons (or someone else) could take it, re-use it, build upon it.\n\nSomeone needs to take such a bold step, just as Creative Commons itself took a bold step when they dared to create portable re-usable content licenses that any creator could use (a huge innovation at the time, for content, inspired in no doubt by portable re-usable open source licenses\u2075).\n\nReferences:\n\n\u00b9 https://tantek.com/2024/263/t1/20-years-undohtml-css-resets\n\u00b2 https://flickr.com/search/?user_id=tantek&tags=press&view_all=1\n\u00b3 https://tantek.com/github/cassis\n\u2074 Creative Commons Position Paper on Preference Signals, https://www.ietf.org/slides/slides-aicontrolws-creative-commons-position-paper-on-preference-signals-00.pdf\n\u2075 https://en.wikipedia.org/wiki/Comparison_of_free_and_open-source_software_licenses",
"html": "Dear Creative Commons (<a href=\"https://creativecommons.org\">@creativecommons.org</a> <a href=\"https://mastodon.social/@creativecommons\">@creativecommons@mastodon.social</a> <a href=\"https://x.com/@creativecommons\">@creativecommons@x.com</a>), <br /><br />Can we have CC-NT licenses for no-training (ML/LLM, GenAI in general), just like we have CC-NC for non-commercial?<br /><br />My previous post<a href=\"https://tantek.com/#t5Z61_note-1\">\u00b9</a> reminded me that I\u2019ve been creating, writing, inventing, and then sharing things with #<span class=\"p-category\">CreativeCommons</span> (CC) #<span class=\"p-category\">licenses</span> for a long time (I have to see if I can dig up my first use of CC licenses.)<br /><br />I\u2019ve used and recommended a variety of CC licenses for decades, e.g.<br />* CC0 \u2014 for standards work, e.g. I drove and wrote up <a href=\"https://wiki.mozilla.org/Standards/licensing\">https://wiki.mozilla.org/Standards/licensing</a> (with help from lawyers)<br />* CC-BY \u2014 aforementioned blog post (and other snippets of #<span class=\"p-category\">openSource</span>)<br />* CC-BY-NC \u2014 photos on Flickr (dozens of which have been used in publications<a href=\"https://tantek.com/#t5Z61_note-2\">\u00b2</a>)<br />* CC-SA \u2014 for CASSIS<a href=\"https://tantek.com/#t5Z61_note-3\">\u00b3</a>, which I still consider experimental enough that I chose \"share-alike\" to deliberately slow its spread, and hopefully reduce mutations (while allowing ports of its functions to other languages)<br /><br />So I have some idea of what I\u2019m talking about.<br /><br />There have been LOTS of discussions of the challenges, downsides, and disagreements with sweeping use of copyrighted content to train generated artificial intelligence AKA #<span class=\"p-category\">genAI</span> software and services, sometimes also called #<span class=\"p-category\">machineLearning</span>. The most common examples being Large Language Models AKA #<span class=\"p-category\">LLM</span>, but also models for generating images and video. Smart, intelligent, and well-intentioned people disagree on who has rights to do what, or even who should do what in this regard.<br /><br />There have been many proposals for new standards, or updates to existing standards like robots.txt etc. but I have not really seen them make noticeable progress. There are also lots of techniques published that attempt to block the spiders and bots being used to crawl and collect content for GenAI, an arms race that ends up damaging well-established popular uses such as web search engines (or making it harder to build a new one).<br /><br />The brilliant innovation of Creative Commons was to look at the use-cases and intentions of creators publishing on the web in the 2000s and capture them in a small handful of clear licenses with human readable summaries.<br /><br />Creatives are clamoring for a simple way to opt-out of their publicly published content from being used to train GenAI. New Creative Commons licenses solve this.<br /><br />This seems like an obvious thing to me. If you can write a license that forbids \u201ccommercial use\u201d, then you should be able to write a license that forbids use in \u201ctraining models\u201d, which respectful / well-written crawlers should (hopefully) respect, in as much as they respect existing CC licenses.<br /><br />I saw that Creative Commons published a position paper<a href=\"https://tantek.com/#t5Z61_note-4\">\u2074</a> for for an IETF workshop on this topic, and it unfortunately in my opinion has an overly cautious and pessimistic (outright conservative one could say) outlook, one that frankly I believe the founders of Creative Commons (who dared to boldly create something new) would probably be disappointed in.<br /><br />First, there is no Creative Commons license on the Creative Commons position paper. Why?<br /><br />Second, there are no names of authors on the Creative Commons position paper. Why?<br /><br />Lots of people similarly (to the position paper) said the original Creative Commons licenses were a bad idea, or would not be used, or would be ignored, or would otherwise not work as intended. They were wrong.<br /><br />If I were a lawyer I would fork those existing licenses and produce such \u201cCC-NT\u201d (for \u201cno-training\u201d) variants (though likely prefix them with something else since \"CC\" means Creative Commons) just to show it could be done, a proof of concept as it were that creators could use.<br /><br />Or perhaps a few of us could collect funds to pay an intellectual property lawyer to do so, and of course donate all the work produced to the commons, so that Creative Commons (or someone else) could take it, re-use it, build upon it.<br /><br />Someone needs to take such a bold step, just as Creative Commons itself took a bold step when they dared to create portable re-usable content licenses that any creator could use (a huge innovation at the time, for content, inspired in no doubt by portable re-usable open source licenses<a href=\"https://tantek.com/#t5Z61_note-5\">\u2075</a>).<br /><br />References:<br /><br /><a href=\"https://tantek.com/#t5Z61_ref-1\">\u00b9</a> <a href=\"https://tantek.com/2024/263/t1/20-years-undohtml-css-resets\">https://tantek.com/2024/263/t1/20-years-undohtml-css-resets</a><br /><a href=\"https://tantek.com/#t5Z61_ref-2\">\u00b2</a> <a href=\"https://flickr.com/search/?user_id=tantek&tags=press&view_all=1\">https://flickr.com/search/?user_id=tantek&tags=press&view_all=1</a><br /><a href=\"https://tantek.com/#t5Z61_ref-3\">\u00b3</a> <a href=\"https://tantek.com/github/cassis\">https://tantek.com/github/cassis</a><br /><a href=\"https://tantek.com/#t5Z61_ref-4\">\u2074</a> Creative Commons Position Paper on Preference Signals, <a href=\"https://www.ietf.org/slides/slides-aicontrolws-creative-commons-position-paper-on-preference-signals-00.pdf\">https://www.ietf.org/slides/slides-aicontrolws-creative-commons-position-paper-on-preference-signals-00.pdf</a><br /><a href=\"https://tantek.com/#t5Z61_ref-5\">\u2075</a> <a href=\"https://en.wikipedia.org/wiki/Comparison_of_free_and_open-source_software_licenses\">https://en.wikipedia.org/wiki/Comparison_of_free_and_open-source_software_licenses</a>"
},
"author": {
"type": "card",
"name": "Tantek \u00c7elik",
"url": "https://tantek.com/",
"photo": "https://tantek.com/photo.jpg"
},
"post-type": "note",
"_id": "42300948",
"_source": "2460"
}
20 years and two weeks ago, I came up with undohtml.css and unknowingly invented the mechanism of CSS Resets (AKA reboot or reset style sheets¹) which spawned numerous variants, many still in broad use on the web today.
A one sentence problem description, and a short paragraph describing my problem-solving, actions, license, link to less than 300 bytes of code (not counting comments), and a few future thoughts.
The rest of that blog post was about “debug scaffolding”, the part I thought was more interesting at the time.
~6 months later Eric published his evergreen resource “CSS Tools: Reset CSS” * https://meyerweb.com/eric/tools/css/reset/ which, as you see within the URL: “css/reset”, is perhaps where the phrase “CSS Reset” comes from, and it’s also the label (link text) he gives that page in his UI about-page² and the first content link in his 404 page³.
My technology invention takeaways from all this:
1. if you find yourself repeatedly solving the same (especially annoying) problem, create a re-usable solution that works for you 2. write up your problem statement / use-case in only one sentence 3. publish your solution (on your personal site⁴), name it something short, with only a short paragraph description, and re-use/remix friendly license (like Creative Commons)
And things not to worry about (that may get in your way to publishing):
1. perfecting or making your solution “big enough” or “the right size”. does it solve your problem? then it’s already the right size. 2. coming up with the perfect name. instead, name it what it does. someone might come up with a better name weeks, months, or years later. let them run with it! 3. waiting to blog multiple things. I could have blogged undohtml.css by itself, probably should have, and instead lumped it into a blog post with another CSS thing I came up with.
{
"type": "entry",
"published": "2024-09-19 17:35-0700",
"url": "https://tantek.com/2024/263/t1/20-years-undohtml-css-resets",
"category": [
"undoHTML",
"undoHTMLCSS",
"reset",
"CSSreset",
"resetstyles",
"webdesign",
"technology",
"invention",
"indieweb"
],
"content": {
"text": "20 years and two weeks ago, I came up with undohtml.css and unknowingly invented the mechanism of CSS Resets (AKA reboot or reset style sheets\u00b9) which spawned numerous variants, many still in broad use on the web today.\n\nhttps://tantek.com/log/2004/09.html#d06t2354\n\nA one sentence problem description, and a short paragraph describing my problem-solving, actions, license, link to less than 300 bytes of code (not counting comments), and a few future thoughts.\n\nThe rest of that blog post was about \u201cdebug scaffolding\u201d, the part I thought was more interesting at the time.\n\nEric Meyer (@meyerweb.com @meyerweb@mastodon.social) followed up ~10 days afterwards with his thinking and improvements:\n* https://meyerweb.com/eric/thoughts/2004/09/15/emreallyem-undoing-htmlcss/\nwhere he mentioned \u201cresetting\u201d in passing, but not actually calling it a \"reset\".\n\n~2.5 years later Eric published \u201cReset Styles\u201d with further reasoning and improvements:\n* http://meyerweb.com/eric/thoughts/2007/04/12/reset-styles/\ndescribing them as: \u201creset\u201d or \u201cbaseline\u201d set of styles.\n\nSubsequently he iterated in several more blog posts:\n* http://meyerweb.com/eric/thoughts/2007/04/14/reworked-reset/\n* http://meyerweb.com/eric/thoughts/2007/04/18/reset-reasoning/ \u2014 this is Eric\u2019s first post where he explicitly calls them \u201creset styles\u201d, which I believe is the origin of the eventual phrase \u201cCSS Reset\u201d and \u201creset style sheets\u201d\n* http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/ (yes a Matrix: Reloaded reference)\n\n~6 months later Eric published his evergreen resource \u201cCSS Tools: Reset CSS\u201d\n* https://meyerweb.com/eric/tools/css/reset/\nwhich, as you see within the URL: \u201ccss/reset\u201d, is perhaps where the phrase \u201cCSS Reset\u201d comes from, and it\u2019s also the label (link text) he gives that page in his UI about-page\u00b2 and the first content link in his 404 page\u00b3.\n\nMy technology invention takeaways from all this:\n\n1. if you find yourself repeatedly solving the same (especially annoying) problem, create a re-usable solution that works for you\n2. write up your problem statement / use-case in only one sentence\n3. publish your solution (on your personal site\u2074), name it something short, with only a short paragraph description, and re-use/remix friendly license (like Creative Commons)\n\nAnd things not to worry about (that may get in your way to publishing):\n\n1. perfecting or making your solution \u201cbig enough\u201d or \u201cthe right size\u201d. does it solve your problem? then it\u2019s already the right size.\n2. coming up with the perfect name. instead, name it what it does. someone might come up with a better name weeks, months, or years later. let them run with it!\n3. waiting to blog multiple things. I could have blogged undohtml.css by itself, probably should have, and instead lumped it into a blog post with another CSS thing I came up with.\n\nFurther reading and resources for CSS Resets:\n\n* More history: https://css-tricks.com/reboot-resets-reasoning/\n* Large collection: https://perishablepress.com/a-killer-collection-of-global-css-reset-styles/\n\nReferences:\n\n\u00b9 https://en.wikipedia.org/wiki/Reset_style_sheet\n\u00b2 https://meyerweb.com/ui/about.html\n\u00b3 https://meyerweb.com/404\n\u2074 https://indieweb.org/\n\n#undoHTML #undoHTMLCSS #reset #CSSreset #resetstyles #webdesign #technology #invention #indieweb",
"html": "20 years and two weeks ago, I came up with undohtml.css and unknowingly invented the mechanism of CSS Resets (AKA reboot or reset style sheets<a href=\"https://tantek.com/#t5Z51_note-1\">\u00b9</a>) which spawned numerous variants, many still in broad use on the web today.<br /><br /><a href=\"https://tantek.com/log/2004/09.html#d06t2354\">https://tantek.com/log/2004/09.html#d06t2354</a><br /><br />A one sentence problem description, and a short paragraph describing my problem-solving, actions, license, link to less than 300 bytes of code (not counting comments), and a few future thoughts.<br /><br />The rest of that blog post was about \u201cdebug scaffolding\u201d, the part I thought was more interesting at the time.<br /><br />Eric Meyer (<a href=\"https://meyerweb.com\">@meyerweb.com</a> <a href=\"https://mastodon.social/@meyerweb\">@meyerweb@mastodon.social</a>) followed up ~10 days afterwards with his thinking and improvements:<br />* <a href=\"https://meyerweb.com/eric/thoughts/2004/09/15/emreallyem-undoing-htmlcss/\">https://meyerweb.com/eric/thoughts/2004/09/15/emreallyem-undoing-htmlcss/</a><br />where he mentioned \u201cresetting\u201d in passing, but not actually calling it a \"reset\".<br /><br />~2.5 years later Eric published \u201cReset Styles\u201d with further reasoning and improvements:<br />* <a href=\"http://meyerweb.com/eric/thoughts/2007/04/12/reset-styles/\">http://meyerweb.com/eric/thoughts/2007/04/12/reset-styles/</a><br />describing them as: \u201creset\u201d or \u201cbaseline\u201d set of styles.<br /><br />Subsequently he iterated in several more blog posts:<br />* <a href=\"http://meyerweb.com/eric/thoughts/2007/04/14/reworked-reset/\">http://meyerweb.com/eric/thoughts/2007/04/14/reworked-reset/</a><br />* <a href=\"http://meyerweb.com/eric/thoughts/2007/04/18/reset-reasoning/\">http://meyerweb.com/eric/thoughts/2007/04/18/reset-reasoning/</a> \u2014 this is Eric\u2019s first post where he explicitly calls them \u201creset styles\u201d, which I believe is the origin of the eventual phrase \u201cCSS Reset\u201d and \u201creset style sheets\u201d<br />* <a href=\"http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/\">http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/</a> (yes a Matrix: Reloaded reference)<br /><br />~6 months later Eric published his evergreen resource \u201cCSS Tools: Reset CSS\u201d<br />* <a href=\"https://meyerweb.com/eric/tools/css/reset/\">https://meyerweb.com/eric/tools/css/reset/</a><br />which, as you see within the URL: \u201ccss/reset\u201d, is perhaps where the phrase \u201cCSS Reset\u201d comes from, and it\u2019s also the label (link text) he gives that page in his UI about-page<a href=\"https://tantek.com/#t5Z51_note-2\">\u00b2</a> and the first content link in his 404 page<a href=\"https://tantek.com/#t5Z51_note-3\">\u00b3</a>.<br /><br />My technology invention takeaways from all this:<br /><br />1. if you find yourself repeatedly solving the same (especially annoying) problem, create a re-usable solution that works for you<br />2. write up your problem statement / use-case in only one sentence<br />3. publish your solution (on your personal site<a href=\"https://tantek.com/#t5Z51_note-4\">\u2074</a>), name it something short, with only a short paragraph description, and re-use/remix friendly license (like Creative Commons)<br /><br />And things not to worry about (that may get in your way to publishing):<br /><br />1. perfecting or making your solution \u201cbig enough\u201d or \u201cthe right size\u201d. does it solve your problem? then it\u2019s already the right size.<br />2. coming up with the perfect name. instead, name it what it does. someone might come up with a better name weeks, months, or years later. let them run with it!<br />3. waiting to blog multiple things. I could have blogged undohtml.css by itself, probably should have, and instead lumped it into a blog post with another CSS thing I came up with.<br /><br />Further reading and resources for CSS Resets:<br /><br />* More history: <a href=\"https://css-tricks.com/reboot-resets-reasoning/\">https://css-tricks.com/reboot-resets-reasoning/</a><br />* Large collection: <a href=\"https://perishablepress.com/a-killer-collection-of-global-css-reset-styles/\">https://perishablepress.com/a-killer-collection-of-global-css-reset-styles/</a><br /><br />References:<br /><br /><a href=\"https://tantek.com/#t5Z51_ref-1\">\u00b9</a> <a href=\"https://en.wikipedia.org/wiki/Reset_style_sheet\">https://en.wikipedia.org/wiki/Reset_style_sheet</a><br /><a href=\"https://tantek.com/#t5Z51_ref-2\">\u00b2</a> <a href=\"https://meyerweb.com/ui/about.html\">https://meyerweb.com/ui/about.html</a><br /><a href=\"https://tantek.com/#t5Z51_ref-3\">\u00b3</a> <a href=\"https://meyerweb.com/404\">https://meyerweb.com/404</a><br /><a href=\"https://tantek.com/#t5Z51_ref-4\">\u2074</a> <a href=\"https://indieweb.org/\">https://indieweb.org/</a><br /><br />#<span class=\"p-category\">undoHTML</span> #<span class=\"p-category\">undoHTMLCSS</span> #<span class=\"p-category\">reset</span> #<span class=\"p-category\">CSSreset</span> #<span class=\"p-category\">resetstyles</span> #<span class=\"p-category\">webdesign</span> #<span class=\"p-category\">technology</span> #<span class=\"p-category\">invention</span> #<span class=\"p-category\">indieweb</span>"
},
"author": {
"type": "card",
"name": "Tantek \u00c7elik",
"url": "https://tantek.com/",
"photo": "https://tantek.com/photo.jpg"
},
"post-type": "note",
"_id": "42295509",
"_source": "2460"
}
I'm home alone for the week so I made a giant stack of oat+tofu waffles and giant batch of baked ziti with roasted vegetables so that I have instant breakfast and dinner every day
{
"type": "entry",
"published": "2024-09-19T20:32:37-07:00",
"url": "https://aaronparecki.com/2024/09/19/8/",
"category": [
"cooking"
],
"photo": [
"https://aperture-media.p3k.io/aaronparecki.com/adce72f401b4e9bab1674dbca85d2cc75c80a2ac417936ee6d9effc0c7c485eb.jpg",
"https://aperture-media.p3k.io/aaronparecki.com/b70c652ab44fdc49c1193aa7dd8af590a726d670665c0ff373a36304a378cb51.jpg"
],
"content": {
"text": "I'm home alone for the week so I made a giant stack of oat+tofu waffles and giant batch of baked ziti with roasted vegetables so that I have instant breakfast and dinner every day"
},
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aperture-media.p3k.io/aaronparecki.com/41061f9de825966faa22e9c42830e1d4a614a321213b4575b9488aa93f89817a.jpg"
},
"post-type": "photo",
"_id": "42295389",
"_source": "16"
}
{
"type": "entry",
"published": "2024-09-19T09:00:04-07:00",
"url": "https://beesbuzz.biz/blog/3226-postponing-the-concert",
"name": "postponing the concert",
"content": {
"text": "I\u2019m having a bad pain flareup and as much as I\u2019d like to push through it and do the concert anyway, from experience I know that\u2019ll just make things worse and I\u2019m trying to get better at self-care and showing myself the same understanding I show others.\n\nSo, tentatively I\u2019m planning on my next VR concert being on September 29, at 9 PM Pacific time, hosted on my VRChat group. And of course it\u2019ll be streamed over on my Owncast. Here\u2019s a Discord event link.\n\nThe great thing about performing virtually is that I don\u2019t have to worry about venue booking. I can make my own rules for this and I don\u2019t have to feel bad about the reality of my health.\n\n\ud83d\udc9c",
"html": "<p>I\u2019m having a bad pain flareup and as much as I\u2019d like to push through it and do <a href=\"https://beesbuzz.biz/blog/6150-Concert-time-polling\">the concert</a> anyway, from experience I know that\u2019ll just make things worse and I\u2019m trying to get better at self-care and showing myself the same understanding I show others.</p><p>So, <em>tentatively</em> I\u2019m planning on my next VR concert being on <a href=\"https://time.is/compare/0900pm_29_Sep_2024_in_Seattle?Sockpuppet_in_VR\">September 29, at 9 PM Pacific time</a>, hosted on <a href=\"https://vrc.group/MUSIC.1138\">my VRChat group</a>. And of course it\u2019ll be streamed <a href=\"https://live.sockpuppet.us/\">over on my Owncast</a>. Here\u2019s a <a href=\"https://discord.com/events/193241595527561216/1286362466208710657\">Discord event link</a>.</p><p>The great thing about performing virtually is that I don\u2019t have to worry about venue booking. I can make my own rules for this and I don\u2019t have to feel bad about the reality of my health.</p><p>\ud83d\udc9c</p>"
},
"author": {
"type": "card",
"name": "fluffy",
"url": "https://beesbuzz.biz/",
"photo": "https://beesbuzz.biz/static/headshot.jpg"
},
"post-type": "article",
"_id": "42290515",
"_source": "2778"
}
{
"type": "entry",
"author": {
"name": "Cathie",
"url": "https://cathieleblanc.com/",
"photo": null
},
"url": "https://cathieleblanc.com/2024/09/17/creating-assets-with-nandeck/",
"published": "2024-09-17T20:54:41-04:00",
"content": {
"html": "<p>It has been a while since I wrote a blog post. I\u2019m on sabbatical this academic year and I am working on a game for my sabbatical project. I\u2019ve been posting some updates about my progress to my social media accounts but this is the first post that I have felt compelled to write documenting my learning and my progress.</p>\n<p>I\u2019m creating a <a href=\"https://en.wikipedia.org/wiki/Deck-building_game\">deck-building</a>, astrophotography-themed game for my sabbatical project. Although I have created many video games in the past, I have never published one on <a href=\"https://store.steampowered.com/\">Steam</a> and I have never created all of the components (called <em>assets</em>) myself. So I\u2019ve been learning to use a bunch of new tools for asset creation as I\u2019ve been developing the game\u2019s main mechanic. Today, I spent some time learning to use <em><a href=\"https://www.nandeck.com/\">nanDECK</a></em>, which is a tool for building custom decks of cards.</p>\n<p>Before I explain why I am using<em> nanDECK</em> and how it works, it might be useful to explain what a deck-building game is. In a typical deck-building game, players are given an initial set of low value cards. As the game progresses, players play the cards from their deck to achieve various results. Players are also given opportunities to add cards, usually of higher value, to their decks. Each player\u2019s deck typically becomes more valuable in unique ways. Often, when I describe deck-building to someone, they will ask me if <em><a href=\"https://en.wikipedia.org/wiki/Magic:_The_Gathering\">Magic: the Gathering</a></em> or <a href=\"https://en.wikipedia.org/wiki/Pok%C3%A9mon_Trading_Card_Game\"><em>Pokemon</em></a> is a deck-building game. These are collectible card games (CCGs), a genre that differs from deck-building games. CCGs require players to purchase their decks outside of the game itself and each player comes into any given instance of the game with a deck that is already different from those of the other players. In a deck-building game, the cards are part of the game and, typically, everyone starts with the same set of initial cards, building their deck through the gameplay of this particular instance of the game. My favorite physical deck-building game is currently <a href=\"https://boardgamegeek.com/boardgame/365717/clank-catacombs\"><em>Clank!: Catacombs</em></a> with the original <a href=\"https://shop.direwolfdigital.com/products/clank-a-deck-building-adventure\"><em>Clank!</em></a> close behind. But the game that got me thinking about a deck-building video game is <a href=\"https://www.nintendo.com/us/store/products/slay-the-spire-switch/?srsltid=AfmBOoqpYiq_5Otq_98hiO2PqghW3h5yEgW8HUYbpzf1TmNnAaBpT5zW\"><em>Slay the Spire</em></a>, which was released as an early access game in 2017 with regular updates until its official release in 2019. By March 2020, it had sold 1.5 million copies. As of May of this year, the game has sold 3 million copies just on <em>Steam</em> but it\u2019s available on most platforms, including mobile, so its sales are much, much higher than that. I play on the <em>Nintendo Switch</em>. I have played other deck-building video games and none has captured my attention like <em>Slay the Spire</em>. So it inspired me to try to create my own deck-building game.</p>\n<p>One of the major challenges of creating a deck-building game is to create an interesting set of cards that allow a player to build decks focused on a variety of gameplay strategies. Creating a consistent look and feel for the cards is essential so that all of these pieces feel like a coherent set of components for the game. Let\u2019s look at some of the cards in <em>Clank!</em> as examples.</p>\n<p>Here is a single card that a player might be able to add to their deck during the game:</p>\n<p><img src=\"https://i0.wp.com/cathieleblanc.com/wp-content/uploads/clanksingle.jpg?resize=300%2C300&ssl=1\" alt=\"Labeled card from Clank!\" /></p>\n<p>Each of the cards has the same set of areas with only the values in those areas being different. The lower right corner (labeled A) has a number indicating the number of blue points required to purchase the card. This card will cost the player 4 blue points. The upper left corner (labeled B) contains information about the benefits the card gives the player when they play it. This card gives the player 1 blue point and 1 sword. The upper right corner (labeled C) is either blank or has a number in green indicating the number of points the player will receive at the end of the game if they own this card. This card will give the player 2 points at the end of the game. At the top of the card in the area labeled D is the name of the card. This card is called Elven Dagger. The area labeled E contains an image representing the card. This card is represented by an image of a dagger. And the area labeled F contains some sort of instructions or descriptions that come into play at various times. When a player plays this card, they are allowed to draw an additional card from their deck.</p>\n<p><em>Clank!</em> has many, many cards. Here are some additional examples.</p>\n\n<p><img src=\"https://i0.wp.com/cathieleblanc.com/wp-content/uploads/clankadv.jpg?resize=300%2C300&ssl=1\" alt=\"\" /></p>\n<p>As the designers of <em>Clank!</em> were working on the game, they probably hadn\u2019t decided exactly where each piece of information was going to be displayed on the card. They might not have even decided exactly what information was going to go on each card. And when they created their first draft of these cards, I can guarantee they hadn\u2019t decided the exact values that were going to go into each area of each card. For example, they might originally have given the Elven Dagger a cost of 6 blue points and maybe the original number of green points at the end of the game was 5. Through play-testing, they would tweak these values to see how gameplay was affected, trying to balance the game through each successive iteration. Having to recreate the entire card by hand each time a change was made would be extremely time-consuming. There must be a better way!</p>\n<p>That\u2019s where a tool like <em>nanDECK</em> comes in. With <em>nanDECK</em>, the designer can create a template for the physical layout of the cards, specifying where each value should appear. They then can create a spreadsheet of the various values and merge that spreadsheet with the layout template that they had created. I started this process today. My cards are still quite ugly but I was focused on functionality rather than prettiness as I learned to use the tool.</p>\n<p>First, I created a spreadsheet with the values of the cards I wanted to create:</p>\n<p><img src=\"https://i0.wp.com/cathieleblanc.com/wp-content/uploads/spreadsheet.png?resize=664%2C597&ssl=1\" alt=\"\" /></p>\n<p>The top row of the spreadsheet is the name of each value I want to use in my cards. Each card will have a Name, a Type, a Cost, a Time to Capture, and an image. Each additional row is a separate card. So using this spreadsheet I could create 15 different cards. The first card will be a Phone Camera card that costs 100, has a Time to Capture value of 100, and whose image is stored in a file called smartphone.png. I really like that it will be easy to modify the various values, including the images (by just changing the image file) as I work on balancing the game. I can also easily add more columns to the spreadsheet if I need additional values.</p>\n<p>Here\u2019s the <em>nanDECK</em> interface (which looks more complicated than it actually is):</p>\n<p><img src=\"https://i0.wp.com/cathieleblanc.com/wp-content/uploads/naninterface.png?resize=1358%2C594&ssl=1\" alt=\"\" /></p>\n\n<p>The right side of the interface is a visual preview of the 4th card in my list. The left side contains a set of actions to do things like Build the cards and Print the cards. The middle window is the actual code that specifies the layout template and merges it with the spreadsheet I created. Luckily, I didn\u2019t need to write all of this code by hand. There is a visual editor that allows you to easily create the card layout. It looks like this:</p>\n<p><img src=\"https://i0.wp.com/cathieleblanc.com/wp-content/uploads/visedit.png?resize=787%2C595&ssl=1\" alt=\"\" /></p>\n<p>The left side is a set of objects that you can add to the layout. The middle is a preview layout of one of the cards that you\u2019re building. The right side is the set of commands that build the actual cards in a particular order.</p>\n<p>Finally, you can save individual image files for each card you have created or you can put them all together into a single document that you can print and cut out (if you were making a board game or need strips of images in your game development software). That looks like this:</p>\n<p><img src=\"https://i0.wp.com/cathieleblanc.com/wp-content/uploads/cards.png?resize=751%2C655&ssl=1\" alt=\"\" /></p>\n<p>I was learning to use <em>nanDECK</em> today so creating the draft set of cards that I have so far took about an hour as I navigated the various commands and objects I could use. Now that I know how to use the, creating this set of cards would probably take me about 5 minutes. Once the real cards are created, I will import them as a sprites into <em>GameMaker</em>, the game development software that I am using.</p>\n<p>There is a ton more work to do since today I only worked on the equipment cards for my astrophotography game. None of the clip-art images that I used today will end up on the final cards that I create. Instead, I will use my own drawings and/or photos for all images. I also will create a set of enemy cards (Dr. Cloud, for example) and a set of target cards. Creating these assets will be time-consuming but less time-consuming now that I\u2019m using <em>nanDECK</em>.</p>",
"text": "It has been a while since I wrote a blog post. I\u2019m on sabbatical this academic year and I am working on a game for my sabbatical project. I\u2019ve been posting some updates about my progress to my social media accounts but this is the first post that I have felt compelled to write documenting my learning and my progress.\nI\u2019m creating a deck-building, astrophotography-themed game for my sabbatical project. Although I have created many video games in the past, I have never published one on Steam and I have never created all of the components (called assets) myself. So I\u2019ve been learning to use a bunch of new tools for asset creation as I\u2019ve been developing the game\u2019s main mechanic. Today, I spent some time learning to use nanDECK, which is a tool for building custom decks of cards.\nBefore I explain why I am using nanDECK and how it works, it might be useful to explain what a deck-building game is. In a typical deck-building game, players are given an initial set of low value cards. As the game progresses, players play the cards from their deck to achieve various results. Players are also given opportunities to add cards, usually of higher value, to their decks. Each player\u2019s deck typically becomes more valuable in unique ways. Often, when I describe deck-building to someone, they will ask me if Magic: the Gathering or Pokemon is a deck-building game. These are collectible card games (CCGs), a genre that differs from deck-building games. CCGs require players to purchase their decks outside of the game itself and each player comes into any given instance of the game with a deck that is already different from those of the other players. In a deck-building game, the cards are part of the game and, typically, everyone starts with the same set of initial cards, building their deck through the gameplay of this particular instance of the game. My favorite physical deck-building game is currently Clank!: Catacombs with the original Clank! close behind. But the game that got me thinking about a deck-building video game is Slay the Spire, which was released as an early access game in 2017 with regular updates until its official release in 2019. By March 2020, it had sold 1.5 million copies. As of May of this year, the game has sold 3 million copies just on Steam but it\u2019s available on most platforms, including mobile, so its sales are much, much higher than that. I play on the Nintendo Switch. I have played other deck-building video games and none has captured my attention like Slay the Spire. So it inspired me to try to create my own deck-building game.\nOne of the major challenges of creating a deck-building game is to create an interesting set of cards that allow a player to build decks focused on a variety of gameplay strategies. Creating a consistent look and feel for the cards is essential so that all of these pieces feel like a coherent set of components for the game. Let\u2019s look at some of the cards in Clank! as examples.\nHere is a single card that a player might be able to add to their deck during the game:\n\nEach of the cards has the same set of areas with only the values in those areas being different. The lower right corner (labeled A) has a number indicating the number of blue points required to purchase the card. This card will cost the player 4 blue points. The upper left corner (labeled B) contains information about the benefits the card gives the player when they play it. This card gives the player 1 blue point and 1 sword. The upper right corner (labeled C) is either blank or has a number in green indicating the number of points the player will receive at the end of the game if they own this card. This card will give the player 2 points at the end of the game. At the top of the card in the area labeled D is the name of the card. This card is called Elven Dagger. The area labeled E contains an image representing the card. This card is represented by an image of a dagger. And the area labeled F contains some sort of instructions or descriptions that come into play at various times. When a player plays this card, they are allowed to draw an additional card from their deck.\nClank! has many, many cards. Here are some additional examples.\n\n\nAs the designers of Clank! were working on the game, they probably hadn\u2019t decided exactly where each piece of information was going to be displayed on the card. They might not have even decided exactly what information was going to go on each card. And when they created their first draft of these cards, I can guarantee they hadn\u2019t decided the exact values that were going to go into each area of each card. For example, they might originally have given the Elven Dagger a cost of 6 blue points and maybe the original number of green points at the end of the game was 5. Through play-testing, they would tweak these values to see how gameplay was affected, trying to balance the game through each successive iteration. Having to recreate the entire card by hand each time a change was made would be extremely time-consuming. There must be a better way!\nThat\u2019s where a tool like nanDECK comes in. With nanDECK, the designer can create a template for the physical layout of the cards, specifying where each value should appear. They then can create a spreadsheet of the various values and merge that spreadsheet with the layout template that they had created. I started this process today. My cards are still quite ugly but I was focused on functionality rather than prettiness as I learned to use the tool.\nFirst, I created a spreadsheet with the values of the cards I wanted to create:\n\nThe top row of the spreadsheet is the name of each value I want to use in my cards. Each card will have a Name, a Type, a Cost, a Time to Capture, and an image. Each additional row is a separate card. So using this spreadsheet I could create 15 different cards. The first card will be a Phone Camera card that costs 100, has a Time to Capture value of 100, and whose image is stored in a file called smartphone.png. I really like that it will be easy to modify the various values, including the images (by just changing the image file) as I work on balancing the game. I can also easily add more columns to the spreadsheet if I need additional values.\nHere\u2019s the nanDECK interface (which looks more complicated than it actually is):\n\n\nThe right side of the interface is a visual preview of the 4th card in my list. The left side contains a set of actions to do things like Build the cards and Print the cards. The middle window is the actual code that specifies the layout template and merges it with the spreadsheet I created. Luckily, I didn\u2019t need to write all of this code by hand. There is a visual editor that allows you to easily create the card layout. It looks like this:\n\nThe left side is a set of objects that you can add to the layout. The middle is a preview layout of one of the cards that you\u2019re building. The right side is the set of commands that build the actual cards in a particular order.\nFinally, you can save individual image files for each card you have created or you can put them all together into a single document that you can print and cut out (if you were making a board game or need strips of images in your game development software). That looks like this:\n\nI was learning to use nanDECK today so creating the draft set of cards that I have so far took about an hour as I navigated the various commands and objects I could use. Now that I know how to use the, creating this set of cards would probably take me about 5 minutes. Once the real cards are created, I will import them as a sprites into GameMaker, the game development software that I am using.\nThere is a ton more work to do since today I only worked on the equipment cards for my astrophotography game. None of the clip-art images that I used today will end up on the final cards that I create. Instead, I will use my own drawings and/or photos for all images. I also will create a set of enemy cards (Dr. Cloud, for example) and a set of target cards. Creating these assets will be time-consuming but less time-consuming now that I\u2019m using nanDECK."
},
"name": "Creating Assets with nanDECK",
"post-type": "article",
"_id": "42273398",
"_source": "2782"
}
{
"type": "entry",
"published": "2024-09-17T19:45:55-07:00",
"url": "https://aaronparecki.com/2024/09/17/35/motel",
"category": [
"travel"
],
"photo": [
"https://aperture-media.p3k.io/aaronparecki.com/028e78ed254d6a44fadab557f5466d8d8ae00403b9b8039328c806837b830e87.jpg"
],
"content": {
"text": "This hotel room is trying real hard to not be a sad motel on the side of the highway in a San Francisco suburb. \n\nAlso, no I am not here for DreamForce, but that is why I am stuck at a hotel out here instead of the $2000/night downtown hotels.",
"html": "This hotel room is trying real hard to not be a sad motel on the side of the highway in a San Francisco suburb. <br /><br />Also, no I am not here for DreamForce, but that is why I am stuck at a hotel out here instead of the $2000/night downtown hotels."
},
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aperture-media.p3k.io/aaronparecki.com/41061f9de825966faa22e9c42830e1d4a614a321213b4575b9488aa93f89817a.jpg"
},
"post-type": "photo",
"_id": "42272605",
"_source": "16"
}