<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://jkirchartz.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://jkirchartz.com/" rel="alternate" type="text/html" /><updated>2026-06-10T20:51:18+00:00</updated><id>https://jkirchartz.com/feed.xml</id><title type="html">JKirchartz - Web Yinzer n’at</title><subtitle>Musings, Music, and More from the WebYinzer n&apos;at</subtitle><author><name>jkirchartz</name></author><entry><title type="html">List of ActivityPub Services</title><link href="https://jkirchartz.com/2025/01/List-of-ActivityPub-Services.html" rel="alternate" type="text/html" title="List of ActivityPub Services" /><published>2025-01-27T04:38:00+00:00</published><updated>2025-01-27T04:38:00+00:00</updated><id>https://jkirchartz.com/2025/01/List-of-ActivityPub-Services</id><content type="html" xml:base="https://jkirchartz.com/2025/01/List-of-ActivityPub-Services.html"><![CDATA[<p>Here’s a list of ActivityPub services that are <em>not</em> Twitter-like,
compiled by <a href="https://atomicpoet.org/notice/AqK3xWuDC4rJXq28Iq" rel="noopener noreferrer" target="_blank" referrerpolicy="no-referrer">Chris Trottier</a>, 
along with a description of what each service does:<!--more--></p>

<ul>
<li><a href="https://pixelfed.org/" rel="noopener noreferrer" target="_blank" referrerpolicy="no-referrer">Pixelfed</a> - image sharing</li>
<li><a href="https://joinpeertube.org/" rel="noopener noreferrer" target="_blank" referrerpolicy="no-referrer">Peertube</a> - video sharing</li>
<li><a href="https://nodebb.org/" rel="noopener noreferrer" target="_blank" referrerpolicy="no-referrer">NodeBB</a> - forums</li>
<li><a href="https://join-lemmy.org/" rel="noopener noreferrer" target="_blank" referrerpolicy="no-referrer">Lemmy</a> - forums</li>
<li><a href="https://writefreely.org/" rel="noopener noreferrer" target="_blank" referrerpolicy="no-referrer">WriteFreely</a> - blog</li>
<li><a href="http://friendi.ca/" rel="noopener noreferrer" target="_blank" referrerpolicy="no-referrer">Friendica</a> - Facebook-like macroblog</li>
<li><a href="https://hubzilla.org/" rel="noopener noreferrer" target="_blank" referrerpolicy="no-referrer">Hubzilla</a> - macroblog / CMS</li>
<li><a href="https://funkwhale.audio/" rel="noopener noreferrer" target="_blank" referrerpolicy="no-referrer">Funkwhale</a> - audio</li>
<li><a href="https://wordpress.org/plugins/activitypub/" rel="noopener noreferrer" target="_blank" referrerpolicy="no-referrer">ActivityPub for WordPress</a> (Plugin) - CMS</li>
<li><a href="https://www.drupal.org/project/activitypub" rel="noopener noreferrer" target="_blank" referrerpolicy="no-referrer">ActivityPub for Drupal</a> (Plugin) - CMS</li>
<li><a href="https://github.com/xwiki-contrib/application-activitypub" rel="noopener noreferrer" target="_blank" referrerpolicy="no-referrer">ActivityPub for xwiki</a> (Plugin) - wiki</li>
<li><a href="https://meta.discourse.org/t/activitypub-plugin/266794" rel="noopener noreferrer" target="_blank" referrerpolicy="no-referrer">ActivityPub for Discourse</a> (Plugin) - forums</li>
<li><a href="https://kbin.pub/" rel="noopener noreferrer" target="_blank" referrerpolicy="no-referrer">Kbin</a> - forums</li>
<li><a href="https://github.com/MbinOrg/mbin" rel="noopener noreferrer" target="_blank" referrerpolicy="no-referrer">Mbin</a> - forums</li>
<li><a href="https://joinbookwyrm.com/" rel="noopener noreferrer" target="_blank" referrerpolicy="no-referrer">Bookwyrm</a> - book reviews</li>
<li><a href="https://owncast.online/" rel="noopener noreferrer" target="_blank" referrerpolicy="no-referrer">Owncast</a> - video streaming</li>
<li><a href="https://codeberg.org/pinetta/pinetta" rel="noopener noreferrer" target="_blank" referrerpolicy="no-referrer">Pinetta</a> - pins</li>
<li><a href="https://nextcloud.com/" rel="noopener noreferrer" target="_blank" referrerpolicy="no-referrer">Nextcloud</a> - data storage</li>
<li><a href="https://joinplu.me/" rel="noopener noreferrer" target="_blank" referrerpolicy="no-referrer">Plume</a> - blog</li>
<li><a href="https://castopod.org/" rel="noopener noreferrer" target="_blank" referrerpolicy="no-referrer">Castopod</a> - podcasts</li>
<li><a href="https://mobilizon.org/" rel="noopener noreferrer" target="_blank" referrerpolicy="no-referrer">Mobilizion</a> - events</li>
<li><a href="https://codeberg.org/flohmarkt/flohmarkt" rel="noopener noreferrer" target="_blank" referrerpolicy="no-referrer">Flohmarkt</a> - classifieds</li>
<li><a href="https://loops.video" rel="noopener noreferrer" target="_blank" referrerpolicy="no-referrer">Loops</a> - video sharing</li>
<li><a href="https://gancio.org/" rel="noopener noreferrer" target="_blank" referrerpolicy="no-referrer">Gancio</a> - events</li>
<li><a href="https://join.piefed.social/" rel="noopener noreferrer" target="_blank" referrerpolicy="no-referrer">Piefed</a> - forums</li>
<li><a href="https://app.wafrn.net/dashboard/exploreLocal" rel="noopener noreferrer" target="_blank" referrerpolicy="no-referrer">wafrn</a> - Tumblr-like blog</li>
<li><a href="https://git.sr.ht/~vpzom/lotide" rel="noopener noreferrer" target="_blank" referrerpolicy="no-referrer">Lotide</a> - forum / link aggregator</li>
<li><a href="https://postmarks.glitch.me/" rel="noopener noreferrer" target="_blank" referrerpolicy="no-referrer">Postmarks</a> - social bookmarking</li>
<li><a href="https://manyfold.app/" rel="noopener noreferrer" target="_blank" referrerpolicy="no-referrer">Manyfold</a> - 3D print sharing</li>
<li><a href="https://fedidb.org/software/ghost" rel="noopener noreferrer" target="_blank" referrerpolicy="no-referrer">Ghost</a> - CMS</li>
<li><a href="https://git.sr.ht/~mariusor/brutalinks" rel="noopener noreferrer" target="_blank" referrerpolicy="no-referrer">Brutalinks</a> - link aggregator</li>
</ul>]]></content><author><name>{&quot;picture&quot;=&gt;&quot;/avatar.gif&quot;, &quot;twitter&quot;=&gt;&quot;jkirchartz&quot;}</name></author><summary type="html"><![CDATA[Here’s a list of ActivityPub services that are not Twitter-like, compiled by Chris Trottier, along with a description of what each service does:]]></summary></entry><entry><title type="html">A love letter to HTML, CSS, and JavaScript</title><link href="https://jkirchartz.com/2024/11/a_love_letter_to_html_css_and_javascript.html" rel="alternate" type="text/html" title="A love letter to HTML, CSS, and JavaScript" /><published>2024-11-24T00:00:00+00:00</published><updated>2024-11-24T00:00:00+00:00</updated><id>https://jkirchartz.com/2024/11/a_love_letter_to_html_css_and_javascript</id><content type="html" xml:base="https://jkirchartz.com/2024/11/a_love_letter_to_html_css_and_javascript.html"><![CDATA[<h1><s>A Love Letter</s>... a manifesto(?)</h1>

<p>If you’ve read any of my other writings you’ve probably guessed my secret shame.</p>

<p>I am not a Real Programmer &amp;tm;.<!--more--></p>

<p>A Real Programmer &amp;tm; could never take these toy web browsers seriously. The
web is just a fad, real programs are compiled in dark terminals and guided by
an occult hand. Their inner workings are arcane knowledge, every bit is under
the control of these True Illuminates. And so web developers have worked hard
to become Real Programmers, cramming all their code into JSX and Typescript
files, running builds, generating boilerplate with commandline tools.</p>

<p>That stuff is all well and good, I’ve worked with these modern stacks, but I
love HTML, CSS, and Javascript. The True Triumvirate of Web Development. Over
the past 30 years this technology has proved itself &amp; has infiltrated all of
society, democratizing information sharing. Social Media’s walled gardens
promised connection but <a href="https://www.zmescience.com/science/news-science/www-toxic-web-tim-berners-lee/">became an arena for gladiators</a>, the algorithms
became a way for sensationalism to run rampant, a more <a href="https://tvtropes.org/pmwiki/pmwiki.php/Main/InsidiousRumorMill">insidious
rumor mill</a> than any <a href="https://en.wikipedia.org/wiki/Yellow_journalism">yellow journalist</a> could’ve imagined.</p>

<h2 id="html">HTML</h2>

<p>On October 29th, 1991, Tim Berners-Lee, published a document entitled <a href="https://www.w3.org/History/19921103-hypertext/hypertext/WWW/MarkUp/Tags.html">HTML
Tags.</a> The document contained a description of the first 18 HTML tags:
&lt;title&gt;, &lt;nextid&gt;, &lt;a&gt;, &lt;isindex&gt;, &lt;plaintext&gt;,
&lt;listing&gt;, &lt;p&gt;, &lt;h1&gt;…&lt;h6&gt;, &lt;address&gt;,
&lt;hp1&gt;, &lt;hp2&gt;…, &lt;dl&gt;, &lt;dt&gt;, &lt;dd&gt;,
&lt;ul&gt;, &lt;li&gt;,&lt;menu&gt; and &lt;dir&gt;. Some how, some way, this
dialect of hypertext grew – escaped containment at CERN – and since
then has infected the world with this mind virus. <a href="https://en.wikipedia.org/wiki/Browser_wars">Wars</a> have been fought,
<a href="https://en.wikipedia.org/wiki/Flaming_(Internet)">Flames</a> have been thrown, <a href="https://en.wikipedia.org/wiki/Dot-com_bubble">Businesses</a>, <a href="https://en.wikipedia.org/wiki/Dissolution_of_the_Soviet_Union">Nations</a>, <a href="https://en.wikipedia.org/wiki/Category:Defunct_websites">websites</a>, and <a href="https://en.wikipedia.org/wiki/Usage_share_of_web_browsers">browsers</a> have
come and gone. But the World Wide Web has stayed the same: a wilderness<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup>.
Yes, some have tried to tame this wilderness and create their own silos - but
the web always strikes back with personal websites and weird projects.</p>

<p>By now HTML5 has expanded to <a href="https://html.spec.whatwg.org/multipage/semantics.html#semantics">108</a> tags (not counting variants on type or
other attibutes or user-defined tags), and incremental version numbers are no
more! Long live the <a href="https://whatwg.org/faq#living-standard">living standard!</a>.</p>

<p>These are the bones of the web, the <a href="https://developer.mozilla.org/en-US/docs/Glossary/Semantics#semantics_in_html">semantic structure</a> that hold together
text, connects ideas. By “Semantic” we mean that the structure itself has
meaning, separating and combining ideas typographically, visually, and for the
visually impaired. If we decorate the semantics structure correctly, we can
make the <a href="https://microformats.org/">data more useful for machines</a> and <a href="https://www.a11yproject.com/">more accessible to
people</a>.</p>

<h2 id="javascript">Javascript</h2>

<p>Over the years, many add-ons to HTML have been developed. Java Applets in 1993,
Shockwave in 1995, Flash in 1996. All forgotten relics, Javascript won and
became <a href="https://webassembly.org">the standard</a>.<sup id="fnref:1:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup> It was created in 10 days, copied by
Actionscript, and then flipped the industry on it’s head as Node.</p>

<p>What <a href="https://jkirchartz.com/2021/07/in_defense_of_javascript.html">more can I say about Javascript?</a> It’s taken web developers from “Fake
Programmers” to “Real Programmers” It’s got it’s own add-ons and
incorporations, can be used server-side and to build command-line tools, there
are polyfills and plugins to add missing &amp; new functionality to browers,
it’s the glue language of the web — it was inspired by Scheme put wound
up something more like Perl. One ring, not to rule them all, but to connect
them all, any way you want.</p>

<p>If you don’t like Javascript, don’t worry! You don’t have to write your app in
Javascript, you can compile plenty of different languages to <a href="https://webassembly.org">wasm</a> and then
use Javascript to run them on the web!</p>

<p>(update 2026: love it or hate it, Claude &amp; ChatGPT Codex both use JS/npm for their TUI/CLI apps)</p>

<h2 id="css">CSS</h2>

<p>Finally, the proverbial lipstick on the pig. Another hard-won battle that moved
from aesthetic attributes on HTML elements and into a language of its own, the
&lt;font&gt; tag is long gone.</p>

<p>Constantly stuck between a world of print and screen design, over the years it
took to create CSS3 it has somehow managed to do both, poorly. It used to be
difficult to do things like <a href="https://alistapart.com/article/holygrail/">centering , and 3-column layouts.</a> But now CSS
is easier than ever to use, even if the weight of history makes it seem
frighteningly large. There are many ways to skin this cat, but things we only
dreamed of are now possible - like <a href="https://aerolab.co/blog/flexbox-grids">centering, and 3-column layouts.</a> The
<a href="https://quirksmode.org/">old ugly hacks are dead</a>, and new ugly hacks have incredible potential.</p>

<h2 id="the-love">The Love</h2>

<p>Simple, compact, and easier to write than ever; the core components of the web
belong to us all. <a href="https://httparchive.org/reports/state-of-javascript">Large codebases that never stop growing</a> and obscure the
source on big mainstream websites, compiled from something not entirely unlike
JavaScript, or just the ad-strewn wasteland of our modern online dystopia; but
there is still a <a href="https://1mb.club/">smaller</a> <a href="https://250kb.club/">simpler</a> <a href="https://neocities.org/">bespoke</a> <a href="https://wiby.me/">internet</a>
<a href="https://tildeverse.org/">universe</a>, hidden right below all around these <a href="https://finance.yahoo.com/news/not-faang-mamaa-jim-cramer-163000145.html">ivory towers</a>, if you
know where to look. Simple hand-crafted code, that you yourself can read,
learn from, and write yourself. Not limited to the restraints of a platform,
raw and unmoderated, pure creativity, where a coder can still be free.</p>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1" role="doc-endnote">
      <p>Or maybe technically Flash &amp; Javascript tied and became ECMAscript which ate them both and spit out more Javascript APIs? <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a> <a href="#fnref:1:1" class="reversefootnote" role="doc-backlink">&#8617;<sup>2</sup></a></p>
    </li>
  </ol>
</div>]]></content><author><name>{&quot;picture&quot;=&gt;&quot;/avatar.gif&quot;, &quot;twitter&quot;=&gt;&quot;jkirchartz&quot;}</name></author><category term="article" /><summary type="html"><![CDATA[A Love Letter... a manifesto(?) If you’ve read any of my other writings you’ve probably guessed my secret shame. I am not a Real Programmer &amp;tm;.]]></summary></entry><entry><title type="html">My eX</title><link href="https://jkirchartz.com/2024/11/My-eX.html" rel="alternate" type="text/html" title="My eX" /><published>2024-11-11T00:00:00+00:00</published><updated>2024-11-11T00:00:00+00:00</updated><id>https://jkirchartz.com/2024/11/My-eX</id><content type="html" xml:base="https://jkirchartz.com/2024/11/My-eX.html"><![CDATA[<p>It’s been a long time coming since 2009, when I first tweeted</p>

<blockquote>
  <p>Checking out twitter for no real reason other than to play with micro-blogging</p>
</blockquote>

<p>Back then all of the posts were under 140 characters because they were sent and
received as individual SMS text messages. In less than a week of my first tweet
I was playing with the Twitter API<!--more--> &amp; attempting to connect it to Flickr.
Twitter didn’t even show images yet, just links — some sites popped up
just to host photos and short-links to better fit twitter’s post-length
restrictions. The web was free, open, and interoperable part of the real world
for the first time; what a time to be alive. Sadly, so much from from that era
are dead now — especially links, <a href="https://www.computerworld.com/article/2121634/the-web-is-disappearing-is-it-its-fault.html">entire websites lost to the sands of time</a> through digital decay.</p>

<p>We all had a lot fun along the way, liveposting all our meals and bathroom
breaks to the world and confusing all the traditional media players through our
microblogging shenanigans, communities and classes formed around making twitter
bots, business popped up all over that ran on the platform, it became a live
action newscenter, then it turned into a cultural powerhouse. Twitter was
exciting, until the culture wars began and the world’s wealthiest crybaby got
his feelings hurt by the consequences of his own actions &amp; unfunniness and
decided to ruin it for the rest of us, buying and gutting Twitter &amp; rebuilding
it in his image, as it X. I thought for sure the site would crash and burn
right then, as he tore out pieces without understanding them, and expelled most
of the people who held deep institutional knowledge on a whim - but apparently
he hired enough of them back to stave off disaster.</p>

<p>Elon Musk said he wanted more Free Speech, really he wanted <a href="https://www.zmescience.com/science/news-science/elon-musks-social-media-posts-have-had-a-sudden-boost-since-july-new-research-reveals/">more attention</a>,
a new timeline popped up where the algorithm could push <a href="https://www.standard.co.uk/news/tech/elon-musk-twitter-algorithm-cyberbullying-discrimination-cornell-uc-berkeley-b1084490.html">posts Musk wanted you to see</a>
whether you followed the account or not, he wanted more boosts so he had his
team goose his numbers, he didn’t like being blocked, so he removed blocking
(enabling stalkers and trolls), he created a new <a href="https://techcrunch.com/2024/10/17/elon-musks-x-is-changing-its-privacy-policy-to-allow-third-parties-to-train-ai-on-your-posts/">AI that will soon feed</a> on
all the data Twitter has access to, and sell it to 3rd parties. Bit by bit he
killed off what little protections Twitter had and turned it to his nefarious
will. It was a powergrab. (Update 2026: <a href="https://www.ft.com/content/117af7cc-3fe6-4292-a706-7204b82bb8dc">It’s much worse than I thought.</a>,
<a href="https://arstechnica.com/tech-policy/2026/01/x-blames-users-for-grok-generated-csam-no-fixes-announced/">Grok makes deepfake CSAM and doesn’t intend to stop.</a>)</p>

<p>With that API and others I built bots to share/promote local events, food
trucks, tell bad jokes, write bad poetry, promote subreddits, pretend to be
human, and now they’re all gone - the first good part of Twitter to truly die.
The good times for bot-makers &amp; academic researchers ended on Feb 2nd 2023 when
Elon Musk pulled the plug on Twitter’s free and open APIs to “cut down on
spam.” The problem is, the spam persisted.  Even worse, the spam started coming
from the platform itself. Advertised posts started appearing with Community
Notes telling people that they linked to a dropshipping scam and the product
was of lower quality and offered at cheaper prices elsewhere. The Spam was
probably intentional, you see Elon paid more than what Twitter was worth, so
our fun cheeky bots that posted art and jokes and poetry and worked research
projects that had a direct connection to the general public had to die so that
he could afford to pay the piper.</p>

<p>Musk’s been posting more and more <a href="https://www.rollingstone.com/culture/culture-features/elon-musk-twitter-misinformation-timeline-1235076786/">deranged things</a>, boosting <a href="https://www.theatlantic.com/technology/archive/2022/12/elon-musk-twitter-far-right-activist/672436/">racist
far-right propaganda</a> &amp; conspiracy theories <a href="https://www.independent.co.uk/tech/elon-musk-trump-x-algorithm-bias-b2640976.html">personally and
algorithmically</a>, re-instating banned far-right<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup> accounts while banning
accounts that oppose them, he even joined Trump’s political campaign<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup>. Nevermind the stupid <a href="https://mashable.com/article/twitter-dot-com-posts-change-to-x-dot-com-ios">find/replace twitter with x debaucle</a>
Now, Musk’s newfound interest in politics has led to him getting a newly invented
job in a shiny new “Department of Government Efficiency” (<a href="https://foreignpolicy.com/2021/02/11/dogecoin-how-does-it-work-elon-musk-cryptocurrency/">DOGE, like the
cryptocurrency meme/scam Musk runs</a>) government agency, despite him already
being a government contractor through his other tech firms this is somehow not
a conflict of interest. Conflicts of interest don’t seem to matter much in the
government anymore, and the party of small government doesn’t seem to mind
creating new departments and massive deportation programs.</p>

<p>But what about my “eX” … well, I won’t contribute to a project like this, at
all.  My twitter account has been mostly inactivate, logging on is like getting
hit in the face with a mud pie, so I’m going to delete it. nyhow, <a href="https://jointhefediverse.net/">the
Fediverse</a> is more fun, more focused, more interesting — a <a href="https://fedi.tips/">better
quality of life all around</a>.  Moderators are accountable and available and
doing their jobs. <a href="https://tilde.zone/@kirch">I’ve been there for a few years now</a> - moving some of my
old twitter bots and reworking their brains and trying new ideas - most of <a href="https://bsky.social/about">the
best of old twitter</a> is now <a href="https://activitypub.rocks/">federated, thanks activitypub!</a> Now
even <a href="https://www.npr.org/2023/04/12/1169269161/npr-leaves-twitter-government-funded-media-label">Reputable</a> <a href="https://www.theguardian.com/media/2024/nov/13/why-the-guardian-is-no-longer-posting-on-x">Media</a> and <a href="https://www.nbcnews.com/pop-culture/celebrity/twitter-celebrities-leaving-elon-musk-rcna54831">celebrities</a> are <a href="https://docs.google.com/document/d/1dFfEZ8xl8GZChTl17FAoOghAQs-PFEaAyGH1y_vGk6E/edit?tab=t.0#heading=h.682mjq1oo65y">fleeing</a>,
<a href="https://www.cnn.com/2024/10/02/business/elon-musk-twitter-x-fidelity/index.html">Twitter is dead and X can go with it.</a></p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>        -----------
       /           \
      /     REST    \
     /       IN      \
    /       PEACE     \
   /                   \
   |                   |
   |      Twitter      |
   |                   |
   |    killed by a    |
   |     powergrab     |
   |                   |
   |        2022       |
   |                   |
 * |      *  *  *      | *
__)|/\\_//(\/(/\)/\//\/|_)_
</code></pre></div></div>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1" role="doc-endnote">
      <p>A lot came back from Parlor &amp; Truth.social <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:2" role="doc-endnote">
      <p>Echoes of Cambridge Analytica, after Theil’s pull in Facebook assisted Trump so much in 2016? <a href="#fnref:2" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>{&quot;picture&quot;=&gt;&quot;/avatar.gif&quot;, &quot;twitter&quot;=&gt;&quot;jkirchartz&quot;}</name></author><category term="article" /><summary type="html"><![CDATA[It’s been a long time coming since 2009, when I first tweeted Checking out twitter for no real reason other than to play with micro-blogging Back then all of the posts were under 140 characters because they were sent and received as individual SMS text messages. In less than a week of my first tweet I was playing with the Twitter API]]></summary></entry><entry><title type="html">Migoopleflickbook</title><link href="https://jkirchartz.com/2024/06/migoopleflickbook.html" rel="alternate" type="text/html" title="Migoopleflickbook" /><published>2024-06-11T00:00:00+00:00</published><updated>2024-06-11T00:00:00+00:00</updated><id>https://jkirchartz.com/2024/06/migoopleflickbook</id><content type="html" xml:base="https://jkirchartz.com/2024/06/migoopleflickbook.html"><![CDATA[<h1 id="if-the-internets-not-dead-our-jobs-not-done">If the Internet’s Not Dead, Our Job’s Not Done</h1>

<p>Welcome to Migoopleflickbook, the pioneering force in transforming the digital landscape by replacing intellectual content with AI-generated sludge.<!--more--> Our mission is clear: to ensure that every man, woman, and child never advances beyond a kindergarten-level understanding of the world. By flooding the internet with simplistic, low-value content, we aim to revolutionize the way information is consumed and valued.</p>

<p>In a world where information overload is the norm, quality often takes a backseat to quantity. Traditional content creation is expensive and time-consuming, demanding resources that many businesses and platforms simply cannot afford. This is where Migoopleflickbook steps in, offering a cost-effective solution that prioritizes volume over substance.</p>

<h2 id="why-migoopleflickbook">Why Migoopleflickbook?</h2>

<ol>
  <li>Unmatched Efficiency: Our advanced AI technology is designed to generate vast amounts of content quickly, ensuring that websites and platforms can maintain a constant flow of updates without the high costs associated with human writers.</li>
  <li>Simplified Content: We produce material that is deliberately less informative than even Simple English Wikipedia, ensuring that audiences receive content that is easy to digest and understand at a very basic level.</li>
  <li>Ad-Driven Revenue: By replacing intellectual content with advertisements and drivel, we open up new revenue streams for businesses. Our content is designed to integrate seamlessly with ads, maximizing exposure and click-through rates.</li>
  <li>Universal Appeal: In an era of increasing complexity, there is a growing desire for simplicity. Our content caters to this demand by providing easily consumable information that appeals to the broadest possible audience.</li>
  <li>Educational Impact: By keeping the general populace at a kindergarten-level understanding, we create a more homogenized and controllable audience. This simplification makes it easier for businesses and advertisers to influence and guide consumer behavior.</li>
</ol>

<h2 id="our-vision">Our Vision</h2>

<p>At Migoopleflickbook, we envision a world where the internet is no longer a daunting sea of complex information but a serene, shallow pool of easily digestible content. We believe that by simplifying online content, we can make the digital world more accessible and less overwhelming for everyone.</p>

<p>Our Motto: <a href="https://en.wikipedia.org/wiki/Dead_Internet_theory">“If the Internet’s Not Dead, Our Job’s Not Done”</a></p>

<p>This motto encapsulates our relentless drive to strip the internet of its intellectual density. We are committed to continuously working until the vast majority of online content is simplified to its most basic form, ensuring that the internet remains a space where simplicity reigns supreme.</p>

<h2 id="join-the-migoopleflickbook-revolution">Join the Migoopleflickbook Revolution</h2>

<p>We invite businesses, content platforms, and digital marketers to join us in our mission to redefine the internet. By partnering with Migoopleflickbook, you not only gain access to a steady stream of affordable content but also contribute to a broader vision of a simplified, ad-driven digital landscape.</p>

<p>Imagine a world where every piece of content serves a dual purpose: providing basic information while promoting products and services. With Migoopleflickbook, this vision is not just a possibility but a reality.</p>

<h2 id="conclusion">Conclusion</h2>

<p>In conclusion, Migoopleflickbook stands at the forefront of a new era in content creation. Our innovative approach ensures that the internet becomes a space where intellectual content is replaced with accessible, kindergarten-level information, interspersed with lucrative advertisements.</p>

<p>We are committed to our mission: “If the Internet’s Not Dead, Our Job’s Not Done.” Together, we can transform the digital world into a simpler, more profitable place for businesses and a less intimidating space for users. Join us at Migoopleflickbook and be part of the revolution that is reshaping the internet, one sludge at a time.</p>]]></content><author><name>{&quot;picture&quot;=&gt;&quot;/avatar.gif&quot;, &quot;twitter&quot;=&gt;&quot;jkirchartz&quot;}</name></author><category term="article" /><summary type="html"><![CDATA[If the Internet’s Not Dead, Our Job’s Not Done Welcome to Migoopleflickbook, the pioneering force in transforming the digital landscape by replacing intellectual content with AI-generated sludge.]]></summary></entry><entry><title type="html">Blog Post Bookmarklet, or Stealing Stefan’s Idea…</title><link href="https://jkirchartz.com/2023/02/stealing-stefans-idea.html" rel="alternate" type="text/html" title="Blog Post Bookmarklet, or Stealing Stefan’s Idea…" /><published>2023-02-11T00:00:00+00:00</published><updated>2023-02-11T00:00:00+00:00</updated><id>https://jkirchartz.com/2023/02/stealing-stefans-idea</id><content type="html" xml:base="https://jkirchartz.com/2023/02/stealing-stefans-idea.html"><![CDATA[<p>A fine fellow told me about their <a href="https://stefanhayden.com/blog/2022/10/01/Quick-jekyll-Posts-with-Bookmarklet/">bookmarklet for making GHpages
posts</a>
so I’ve decided to steal their idea, I love bookmarklets.<!--more--></p>

<p>Theirs is a little more involved, I simplified it for my uses…</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>var isoDate = (new Date()).toISOString();
var date = isoDate.split('T')[0];
var t = prompt("title", "");
var title = t.replaceAll(/([&amp;$\+,:;'"=\?@#\s&lt;&gt;\[\]\{\}[\/]|\\\^%])+/g, '-').toLowerCase();

var filename = date + "-" + title + '.md';

var html = [
'---',
'published: false',
'layout: post',
'title: ' + t,
'tags: article',
'---',
'&lt;!--more--&gt;',
].join('%0A');


window.location.href = "https://github.com/jkirchartz/jkirchartz.github.com/new/master/" + "?filename=_posts/" + filename + "&amp;value=" + html;
</code></pre></div></div>

<p>I even used the <a href="https://caiorss.github.io/bookmarklet-maker/">https://caiorss.github.io/bookmarklet-maker/</a> tool they did to turn it into a bookmarklet… which looks kinda like this:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>javascript:(function()%7Bvar%20isoDate%20%3D%20(new%20Date()).toISOString()%3B%0Avar%20date%20%3D%20isoDate.split('T')%5B0%5D%3B%0Avar%20t%20%3D%20prompt(%22title%22%2C%20%22%22)%3B%0Avar%20title%20%3D%20t.replaceAll(%2F(%5B%26%24%5C%2B%2C%3A%3B'%22%3D%5C%3F%40%23%5Cs%3C%3E%5C%5B%5C%5D%5C%7B%5C%7D%5B%5C%2F%5D%7C%5C%5C%5C%5E%25%5D)%2B%2Fg%2C%20'-').toLowerCase()%3B%0A%0Avar%20filename%20%3D%20date%20%2B%20%22-%22%20%2B%20title%20%2B%20'.md'%3B%0A%0Avar%20html%20%3D%20%5B%0A'---'%2C%0A'published%3A%20false'%2C%0A'layout%3A%20post'%2C%0A'title%3A%20'%20%2B%20t%2C%0A'tags%3A%20article'%2C%0A'---'%2C%0A'%3C!--more--%3E'%2C%0A%5D.join('%250A')%3B%0A%0A%0Awindow.location.href%20%3D%20%22https%3A%2F%2Fgithub.com%2Fjkirchartz%2Fjkirchartz.github.com%2Fnew%2Fmaster%2F%22%20%2B%20%22%3Ffilename%3D_posts%2F%22%20%2B%20filename%20%2B%20%22%26value%3D%22%20%2B%20html%3B%7D)()%3B
</code></pre></div></div>

<p>There’s nothing wrong with any of that, but it’s a lot noiser than the style I use when I write <a href="https://jkirchartz.com/demos/bookmarklets.html">my own
bookmarklets</a>. It works, it’s just missing my usual bookmarklet finesse.
I’ve been thinking that it’s <a href="https://caniuse.com/?search=es6">time to use es6</a>
for them (and everything else) because IE11 is surely dead by now, right? Is
anyone even tracking their browser share anymore? Here’s a hand-optimized es6 alternative:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>((t, h)=&gt;{
    h=[
    '---',
    'published: false',
    'layout: post',
    'title: \"' + t + '\"',
    'tags: article',
    '---','','',
    '&lt;!--more--&gt;',
    ];
    t = t.replaceAll(/([&amp;$\+,:;'"=\?@#\s&lt;&gt;\[\]\{\}[\/]|\\\^%\.])+/g, '_').toLowerCase();
    window.location = `https://github.com/jkirchartz/jkirchartz.github.com/new/master/?filename=_posts/${new Date().toISOString().split('T')[0]}-${t}.md&amp;value=${h.join('%0A')}`;
})(
    prompt("title"),
);
</code></pre></div></div>

<p>which crunches down to</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>javascript:((t,h)=&gt;{h=['---','published: false','layout: post','title:\"'+t+'\"','tags: article','---','','','&lt;!--more--&gt;',];t=t.replaceAll(/([&amp;$\+,:;'"=\?@#\s&lt;&gt;\[\]\{\}[\/]|\\\^%\.])+/g,'_').toLowerCase();window.location=`https://github.com/jkirchartz/jkirchartz.github.com/new/master/?filename=_posts/${newDate().toISOString().split('T')[0]}-${t}.md&amp;value=${h.join('%0A')}`;})(prompt("title"));
</code></pre></div></div>

<p>Anyhow. This bookmarket might’ve helped me stick to the “100 days to offload”
thing a little better, but 100 blog posts in 100 days? that’s not the way I
write, not anymore, not since… the incident… Pardon the digression, I would
probably write more if Github had a vim-mode on their editor, at least
something to swallow the <code class="language-plaintext highlighter-rouge">:w</code> I habitually drop to save my work.</p>

<p>As if I need another project, I think a fork of the bookmark generator is in
order. I don’t think <em>anyone</em> today is writing a minifier that splits the
difference with <a href="http://dean.edwards.name/packer/">PACKER</a>’s Base62 encoding -
or at least follows sort of that style, the Base62 obsfucation is a bit much
for me, I just want the shortest script possible - and that means shrinking
variables names way too short to be <em>really</em> meaningful. I probably should be
working on my <em>other</em> projects before hacking <em>my</em> preferences in minification
into an existing minifier.</p>

<p>Like, if <code class="language-plaintext highlighter-rouge">document</code> appears more than once in your bookmarklet, it can easily
be shrunk to <code class="language-plaintext highlighter-rouge">d=document</code> for future reference - heck
<code class="language-plaintext highlighter-rouge">d=document,$=d.querySelectorAll</code> has its uses… but no… I don’t need
another project… at least not one that I can’t put together in a night or
two.</p>

<p>For more information about crunching down JS to it’s bare bits, check out:</p>

<ul>
  <li><a href="http://www.claudiocc.com/javascript-golfing/">Javascript Golfing</a>;</li>
  <li><a href="https://thingsinjars.com/post/293/the-quest-for-extreme-javascript-minification/">The Quest for Extreme Javascript Minification</a></li>
</ul>]]></content><author><name>{&quot;picture&quot;=&gt;&quot;/avatar.gif&quot;, &quot;twitter&quot;=&gt;&quot;jkirchartz&quot;}</name></author><category term="article" /><category term="bookmarklet" /><summary type="html"><![CDATA[A fine fellow told me about their bookmarklet for making GHpages posts so I’ve decided to steal their idea, I love bookmarklets.]]></summary></entry><entry><title type="html">Faster Blogging with ChatGPT</title><link href="https://jkirchartz.com/2022/12/faster-blogging-with-chatgpt.html" rel="alternate" type="text/html" title="Faster Blogging with ChatGPT" /><published>2022-12-09T00:00:00+00:00</published><updated>2022-12-09T00:00:00+00:00</updated><id>https://jkirchartz.com/2022/12/faster-blogging-with-chatgpt</id><content type="html" xml:base="https://jkirchartz.com/2022/12/faster-blogging-with-chatgpt.html"><![CDATA[<p><a href="#eoc-conclusions">Skip ahead to thoughts about ChatGPT</a></p>

<h2 id="prompt-write-a-blog-post-about-how-to-write-blog-posts-faster">Prompt: write a blog post about how to write blog posts faster</h2>

<!--more-->

<blockquote>
  <p>Are you tired of spending hours or even days writing blog posts, only to be left feeling frustrated and unfulfilled? Do you want to learn how to write blog posts faster, so you can spend more time on other important tasks or activities? If so, you’re in the right place! In this blog post, we’ll share some tips and tricks for writing blog posts faster, so you can get your ideas out into the world without spending all your time and energy on the writing process.</p>

  <ol>
    <li>Start with an outline: Before you even start writing your blog post, take a few minutes to create an outline. This will help you organize your thoughts and ideas, and it will make the writing process much smoother and faster. Your outline should include the main points you want to make in your blog post, as well as any supporting details or examples you want to include.</li>
    <li>Write a draft quickly: Once you have your outline, it’s time to start writing. Don’t worry about making your draft perfect – just focus on getting your ideas down on paper as quickly as possible. You can always go back and edit your draft later, but for now, the goal is to get your thoughts down on paper as quickly as you can.</li>
    <li>Use a timer: If you find it difficult to focus on writing for long periods of time, try using a timer. Set a timer for 25 minutes, and then write for the entire 25 minutes without stopping. Once the timer goes off, take a short break, and then repeat the process. This technique, known as the Pomodoro Technique, can help you stay focused and avoid getting distracted while you’re writing.</li>
    <li>Write in short blocks: Instead of trying to write your entire blog post in one sitting, break the writing process into shorter blocks. For example, you might write the introduction and the first section of your blog post in one sitting, and then take a break before writing the next section. This will help you stay focused and avoid getting overwhelmed by the writing process.</li>
    <li>Don’t edit as you go: As tempting as it may be to edit your work as you go, try to resist the urge. Editing as you write can slow you down and make the writing process more difficult. Instead, focus on getting your ideas down on paper, and then go back and edit your draft once you’ve finished writing. This will save you time and help you write more quickly.</li>
  </ol>

  <p>By following these tips, you can learn to write blog posts faster and more efficiently. You’ll be able to get your ideas out into the world without spending all your time and energy on the writing process. So why not give these tips a try, and see how they can help you become a more productive and successful blogger?</p>
</blockquote>

<h2 id="prompt-continue-writing-a-blog-post-but-offer-suggestions-about-how-to-come-up-with-ideas-for-more-posts">Prompt: continue writing a blog post but offer suggestions about how to come up with ideas for more posts</h2>

<blockquote>
  <p>Once you’ve learned how to write blog posts faster, you’ll want to make sure you have a steady stream of ideas to write about. After all, if you run out of ideas, you’ll be left with nothing to write about, and your blog will stagnate. So how do you come up with ideas for more blog posts? Here are a few suggestions:</p>

  <ol>
    <li>Keep a running list of ideas: One of the easiest ways to come up with ideas for more blog posts is to keep a running list of ideas. Whenever you have an idea for a blog post, add it to your list. This will ensure that you always have a supply of potential blog post ideas, and you’ll never be at a loss for something to write about.</li>
    <li>Look for inspiration in your everyday life: Another great way to come up with ideas for blog posts is to look for inspiration in your everyday life. Pay attention to the things that catch your attention or interest, and think about how you could turn those things into blog post ideas. For example, if you’re reading an interesting article or book, you could write a blog post about it. Or if you have a conversation with someone that sparks your interest, you could write a blog post about that topic.</li>
    <li>Use social media to find ideas: Social media can be a great source of inspiration for blog post ideas. Follow other bloggers and influencers in your niche, and pay attention to the topics they’re writing about. You can also use social media to ask your followers for suggestions or ideas for blog posts. This can be a great way to engage with your audience and get some fresh ideas for your blog.</li>
    <li>Use keyword research tools: If you’re struggling to come up with ideas for blog posts, you can use keyword research tools to help you find popular topics in your niche. These tools can show you the keywords and phrases that people are searching for, and you can use that information to come up with ideas for blog posts that will be relevant and interesting to your audience.</li>
    <li>By following these suggestions, you can come up with a steady stream of ideas for more blog posts. This will help you keep your blog fresh and interesting, and it will ensure that you always have something to write about. So why not give these ideas a try, and see.</li>
  </ol>
</blockquote>

<h2 id="eoc-conclusions">EOC<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup>: Conclusions</h2>

<p>This is the end of the generated content, Seriously, I’m writing this myself
with my own mind now - not ChatGPT, so expect the level of coherency to drop,
because I’m going to be a little metaphorical and referential about this…</p>

<p>Anywho, this seems like good blogging advice - good enough for a first draft at
least. I can see why Journalists and Writers are concerned about this, I mean,
they spend so much time re-telling the same stories with new real-world
characters. I suppose there’s not so much variation in possible human
endeavours - it seems like all experience is a fractal stretching from the
existing to the fantastic.</p>

<p>I used to work for a company whose product connected freelance writers and
brands for “Content Marketing” purposes, I suspect just one of their editors
could fulfil the usual monthly workload in an afternoon with this technology.
Sure these articles might lack a personal touch, but who’s reading them anyway?
They’ve gotta at least be good for SEO.</p>

<p>I read an article that said the flow of data was slowing down, and I’d
genuinely like to see that happen here. Our thousand monkeys are making more
than just Shakespeare now, they’re being banned from answering questions on
StackOverflow. That’s because while these monkeys are very verbose, but they’re
not all that smart - yet. It’s all about the training data &amp; processing power -
it doesn’t know anything, but it has statistical suspicions of the type of
content you’d like.</p>

<p>Although it may already be sentient in some sense, in-as-much as humans are
more than happy to personify any object, it’s existing level of human-like
intelligence depends on making statistically probable assumptions based on
information humans have fed it. Will this lead to a generation of
AI-Supremecists? Will they be like other Supremacist movements? Who knows…
the only thing we can all seemingly agree upon is that the world is going to be
a MUCH stranger place, which is it’s own SNAFU<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup>.</p>

<p>Some day, we’ll develop a general-purpose human-level artificial intelligence,
it’s been 5-10 years out for a long time, but this time is different, everyone
promises.</p>

<p>Check out some better auto-generated content here at <a href="https://www.learngpt.com/">learngpt.com</a>
and some worse, but more creative, auto-generated content in <a href="https://jkirchartz.com/NaNoGenMo/">My NaNoGenMo Entries</a></p>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1" role="doc-endnote">
      <p>End Of Content <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:2" role="doc-endnote">
      <p>Situation Normal: All F***ed Up <a href="#fnref:2" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>{&quot;picture&quot;=&gt;&quot;/avatar.gif&quot;, &quot;twitter&quot;=&gt;&quot;jkirchartz&quot;}</name></author><category term="article" /><category term="ChatGPT" /><category term="Automation" /><summary type="html"><![CDATA[Skip ahead to thoughts about ChatGPT Prompt: write a blog post about how to write blog posts faster]]></summary></entry><entry><title type="html">Normalcy and Virality</title><link href="https://jkirchartz.com/2022/10/normalcy_and_virality.html" rel="alternate" type="text/html" title="Normalcy and Virality" /><published>2022-10-28T00:00:00+00:00</published><updated>2022-10-28T00:00:00+00:00</updated><id>https://jkirchartz.com/2022/10/normalcy_and_virality</id><content type="html" xml:base="https://jkirchartz.com/2022/10/normalcy_and_virality.html"><![CDATA[<p>I have a confession. I am a poster. I post. Sometimes, I even shitpost. This is
a story about two shitposts. Both alike in dignity. The ask was simple: “Are
you normal? Please repost for reach.” One posted to <a href="https://twitter.com/JKirchartz/status/1594479542827204611">Twitter</a>, the other to
<a href="https://tilde.zone/@kirch/109382411676841627">Mastodon</a>.<!--more--> There wasn’t much thought put into it… I clarified in the
replies on Twitter, and in the post on Masto itself, that I have no intended
definition for “normalcy;” as one person replied, “normal is only a setting on
a clothes dryer.”</p>

<iframe src="https://giphy.com/embed/3oKIPqgSSYAsUVXKiQ" width="480" height="252" frameborder="0" class="giphy-embed" allowfullscreen=""></iframe>
<p><a href="https://giphy.com/gifs/my-cousin-vinny-3oKIPqgSSYAsUVXKiQ">via GIPHY</a></p>

<p>While the polls were running, I was struck by the difference in how much
interaction each post was generating. The spread on each on each platform was
radically different. Sure, I reposted on each network and harassed my friends
to spread them; but on Mastodon I had nearly 6 times the number of responses I
had on Twitter. The results of the poll were fairly clear on each network -
about 20% of people are normal, and 80% are not normal. <a href="https://en.wikipedia.org/wiki/Pareto_principle">80/20 seems fairly normal</a></p>

<p><img src="https://i.imgur.com/rn19gkQ.png" alt="Screenshots of Twitter and Mastodon polling and analytics" /></p>

<p>I’ve seen Twitter power-users complaining that they couldn’t “go viral” on
Mastodon, but that didn’t seem to be a problem for me. I joined Twitter in
2009, and have roughly 1400 followers there. I’ve been active on Mastodon since
2017, have moved instances at least once, and have roughly 400 followers.
Because of this, I’ll be the first to admit that I have a leg up on new users
of either platform with my modest follower-counts. I’ve had several bots live
and die on Twitter, some are now on Mastodon, I know first hand that each
follower is hard-won. I’m just some dork that makes stuff, stuff that posts. I
don’t even do a very good job at posting content, I don’t even think of sharing
most of the things I do.  I’m not a brand or anything, I’m just a normal
person.</p>

<p>Well, I’m normal in the sense that I’m an average, non-famous, not very
popular, but not unpopular, regular Joe Schmoe nobody. I’m also normal in the
sense that I don’t think of myself as normal at all. I may have influenced the
data, the replies to the polls might have influenced the data, this was a very
unscientific poll – but the majority of respondents (80-82%!) replied that
they did not consider themselves a “normal person,” whatever that means to
them. A few of the people who reported themselves as “Normal” went on to
explain how they are very unique individuals like everyone else or that
abnormal was normal, and the data seems to back that up.</p>

<p>Noticeably, Mastodon doesn’t have Analytics like Twitter does. Mastodon does not
prioritize showing anything more than re-posts and favorites. There is no
accounting of how many people viewed a post or other metrics that advertisers
are interested in. Each post is an entity unto itself, ruled by the tides of
the social network and the waves your content can make. Every time somebody
outside of your instance interacts with the post it’s spread to more and more
federated timelines. There is no “Hotness” metric to combat to keep people
interested, the spread is more organic - like trees connecting to mycelium and
other roots creating a network effect in the ecology of the forest. A post to
Mastodon is a post to the <a href="https://fediverse.party/">Fediverse</a>, every other ActivityPub-connected
website.</p>

<iframe src="https://giphy.com/embed/r73emnWNwTWRq" width="480" height="270" frameborder="0" class="giphy-embed" allowfullscreen=""></iframe>
<p><a href="https://giphy.com/gifs/saturday-night-live-waynes-world-r73emnWNwTWRq">via GIPHY</a></p>

<p>Whether or not Twitter crumbles, the fediverse has thousands and thousands of
servers. There’s no real risk in <a href="https://instances.social/">finding a mastodon instance</a> and/or
<a href="https://fedifinder.glitch.me/">checking to see if your Twitter friends are already there</a>. Like I
mentioned, you can <a href="https://docs.joinmastodon.org/user/moving/">change instances</a> if you find a better community, a more
trustworthy or friendly admin, or even just a domain you prefer.</p>

<iframe src="https://giphy.com/embed/1kaJ9h4CwZCTEHNfW2" width="480" height="270" frameborder="0" class="giphy-embed" allowfullscreen=""></iframe>
<p><a href="https://giphy.com/gifs/dayglow-1kaJ9h4CwZCTEHNfW2">via GIPHY</a></p>

<p>Sorry, this is now an advertisement for decentralized open-source social media,
but I have no faith whatsoever in Elon Musk’s handling of Twitter. I’ll ride it
out to see what I missed during the death of MySpace, out of morbid curiosity,
and the ability to mock Elon directly on his own personal $44 billion quagmire.</p>]]></content><author><name>{&quot;picture&quot;=&gt;&quot;/avatar.gif&quot;, &quot;twitter&quot;=&gt;&quot;jkirchartz&quot;}</name></author><category term="article" /><category term="100-days-to-offload" /><category term="web3.0" /><category term="social-media" /><summary type="html"><![CDATA[I have a confession. I am a poster. I post. Sometimes, I even shitpost. This is a story about two shitposts. Both alike in dignity. The ask was simple: “Are you normal? Please repost for reach.” One posted to Twitter, the other to Mastodon.]]></summary></entry><entry><title type="html">First post in 80 days</title><link href="https://jkirchartz.com/2021/09/first_post_in_80_days.html" rel="alternate" type="text/html" title="First post in 80 days" /><published>2021-09-20T00:00:00+00:00</published><updated>2021-09-20T00:00:00+00:00</updated><id>https://jkirchartz.com/2021/09/first_post_in_80_days</id><content type="html" xml:base="https://jkirchartz.com/2021/09/first_post_in_80_days.html"><![CDATA[<p>100 days to offload is going slower than expected. Two completely separate
extended-family situations hoisted house-hunting and home repair upon me the
past few months, but that’s no excuse - I could’ve written about<!--more--> the homes I
was seeing, maybe even come up with some witty comparison between home projects
and legacy websites. The book club I’ve been in has spun off a few projects,
like stamp-making/letterboxing, watching movies, and it’s own writing and
research; and the structure of the group has been tempting me to pick up
<em>another</em> book that’s discussed on another day. I’ve also got a RasPi I’ve been
setting using to experiment with my music equipment as a headless all-in-one
jambox. I’ve always got plenty of pokers in the fire, let alone all the other
projects that are on the back-burner indefinitely, and not to mention my
never-ending battle maintaining the family toilet<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup>. I’m only writing this
because I realized that the hour I’ve been spending with my kids at the park
can be used to write on my laptop - but an hour of writing is a lot less fun
than an hour of playing with my kids.</p>

<p>There was a time when a blog post might just be a Youtube video, or a few
pictures of your cat. This blog is supposed to be at least somewhat more
professional than that. A display of my knowledge and abilities, but as a
computer nerd that means I should be explaining something nerdy in detail and
I’m just not interested in that.  I could submit some of these articles to
various aggregators, maybe somebody out there subscribes over RSS, but I’d
rather not pay the price for being wrong<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup> on the internet, I’m wrong often
enough as it is. Search engines know where I am, and if this site helps
somebody out there with anything I’d be elated, but I’m not trying to be some
internet micro-celebrity.</p>

<p>Elation is the goal of most of my projects, mostly whatever brings <em>me</em> joy. By
day I hack for my employer, by night I hack for me - but I’ve been doing a lot
more for me than I used to, and not just to advance my career<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">3</a></sup>. I just want
to make cool stuff and share it with people, often online. I have dreams of
having gallery shows of my art or live performances of my music, but I don’t
work towards that, I have no interest in being famous, I just want to find the
others. I can’t spend all day looking for them, maybe being online will help them
find me. There’s plenty of like-minded individuals out there to bring wildly
different things to the table.</p>

<p>The point is, while I spent so long ignoring people to hone my skills with
computers, I’ve been coming to the computer more and more to be with other
people on a level deeper than follower/followee. I don’t want to “make content”
I want to create and innovate, and despite what we’ve been told about great
figures from history<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">4</a></sup>, it’s impossible to do that all alone.</p>

<p>I don’t want to regale you with trite cliches, but I’d like to leave you with
this thought: Sometimes things become cliches because they’re true<sup id="fnref:5" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">5</a></sup>. Nothing
exists in a vacuum, find the others and try to create joy.</p>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1" role="doc-endnote">
      <p>This time the rod that holds the bulb completely snapped off inside the lever and if I can’t find the same exact assembly as before I’m going to have to replace the whole thing again. Our hard water eats this cheap chromed metal like it’s sugar. Whatever happened to quality products? <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:2" role="doc-endnote">
      <p>Or worse, being perceived to be wrong when I’m not. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:3" role="doc-endnote">
      <p>Whatever that means. <a href="#fnref:3" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:4" role="doc-endnote">
      <p>Even some of our greaters admit they only did it by “standing on the shoulders of giants,” or reminding us that “no man is an island.” <a href="#fnref:4" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:5" role="doc-endnote">
      <p>Or at least true enough. <a href="#fnref:5" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>{&quot;picture&quot;=&gt;&quot;/avatar.gif&quot;, &quot;twitter&quot;=&gt;&quot;jkirchartz&quot;}</name></author><category term="article" /><category term="100-days-to-offload" /><category term="meta" /><summary type="html"><![CDATA[100 days to offload is going slower than expected. Two completely separate extended-family situations hoisted house-hunting and home repair upon me the past few months, but that’s no excuse - I could’ve written about]]></summary></entry><entry><title type="html">In Defense of JavaScript</title><link href="https://jkirchartz.com/2021/07/in_defense_of_javascript.html" rel="alternate" type="text/html" title="In Defense of JavaScript" /><published>2021-07-02T00:00:00+00:00</published><updated>2021-07-02T00:00:00+00:00</updated><id>https://jkirchartz.com/2021/07/in_defense_of_javascript</id><content type="html" xml:base="https://jkirchartz.com/2021/07/in_defense_of_javascript.html"><![CDATA[<p>I’m bored of the generic bashing on JavaScript. Everyone has done it, it’s
“Language of the Web” and we’re online where the memes are. Memes die hard.
Most critiques of JavaScript cover the same well-worn paths<!--more--></p>

<ol>
  <li>It was made in 10 days</li>
  <li>Dynamic typing</li>
  <li>Double Precision Standard &amp; Floating Point</li>
  <li>It’s quirky</li>
  <li>It’s not actually Java</li>
</ol>

<p>Yes, Brendan Eich<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup> confesses that the prototype named <a href="https://www.youtube.com/watch?v=GxouWy-ZE80">Mocha was built in 10 contiguous
days</a> in May of 1995; but it developed further and 3 months later JavaScript
was released in the Netscape browser’s 2.0 beta. I’m not going to <a href="https://thehistoryoftheweb.com/timeline/">recount the
history of the web</a> or <a href="https://dl.acm.org/doi/pdf/10.1145/3386327">JavaScript</a>, so to make a long story short, Microsoft shortly
entered the browser market, the <a href="https://medium.com/@adamjgordon24/browser-wars-episode-i-the-neutering-of-an-underdog-40e4a500ac41">browser wars</a> ensued, and the first
JavaScript standard was released in 1997. At the time of this writing we find
ourselves 24 years and 11 EcmaScript recommendations later<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">2</a></sup>.</p>

<p><img src="//i.imgur.com/2meSgMf.jpg" alt="A classic image of Javascript The Good Parts compared to Javascript the Definitive Guide" /></p>

<p><a href="https://amzn.to/3A6In7X">JavaScript: The Definitive Guide</a> has been in publication since 1996, and
is currently in it’s seventh edition; and Douglas Crockford published
<a href="https://amzn.to/36dvvzn">JavaScript: The Good Parts</a> in 2008, so it’s safe to assume we’ve seen
these books compared to one another for at least a decade. Surely this image is
proof that it’s best to avoid JavaScript, but Crockford’s introduction
disagrees:</p>

<blockquote>
  <p>Fortunately, JavaScript has some extraordinarily good parts. In JavaScript,
there is a beautiful, elegant, highly expressive language that is buried
under a steaming pile of good intentions and blunders. The best nature of
JavaScript is so effectively hidden that for many years the prevailing
opinion of JavaScript was that it was an unsightly, incompetent toy. My
intention here is to expose the goodness in JavaScript, an outstanding,
dynamic programming language. JavaScript is a block of marble, and I chip
away the features that are not beautiful until the language’s true nature
reveals itself.  I believe that the elegant subset I carved out is vastly
superior to the language as a whole, being more reliable, readable, and
maintainable.</p>
</blockquote>

<p>In the next paragraph he continues and explains the discrepancy in size between these books.</p>

<blockquote>
  <p>This book will not attempt to fully describe the language. Instead, it will
focus on the good parts with occasional warnings to avoid the bad. The subset
that will be described here can be used to construct reliable, readable
programs small and large.  By focusing on just the good parts, we can reduce
learning time, increase robustness, and save some trees.</p>
</blockquote>

<p>Unfortunately there aren’t any newer versions of The Good Parts<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">3</a></sup>, the ES5 spec
was released in 2009 right after this was published, including a lot of Mr
Crockford’s ideas, and in 2013 reached cross-browser compatibility.
Fortunately, JavaScript isn’t bad enough to scare Doug away, he’s still a
leader in the community working hard to make JavaScript better.  Everyone wants
to get a little of Crockford’s mojo so his critiques and techniques are often
cited.</p>

<p>Every time there’s a take-down of JavaScript you will undoubtedly find that
JavaScript <a href="https://www.destroyallsoftware.com/talks/wat">not their preferred programming language and has it’s own set of
quirks instead</a>, and they’re different from the quirks of that person’s
preferred language. <a href="https://jsisweird.com/">JavaScript is weird</a>, but that’s not <a href="https://esolangs.org/wiki/Main_Page">abnormal for a
programming language.</a> JavaScript is a community language, so there’s been
many “fixes” in the specifications over the years and enough so that it’s now
it’s become like an <a href="https://www.hanselman.com/blog/javascript-is-assembly-language-for-the-web-part-2-madness-or-just-insanity">assembly language for the web</a>. In <a href="https://amzn.to/3qDbNGw">Crockford’s latest
book</a> he talks about making a language that compiles to JS, and it turns
out there are some other languages that compile to JavaScript:</p>

<ol>
  <li>Coffeescript (ruby-like)</li>
  <li>Typescript (C#-like)</li>
  <li>PureScript (Haskell-like)</li>
  <li>ClojureScript (Lisp-like)</li>
  <li>Flow (add strong types to JS)</li>
  <li>JSX (add html &amp; css to JS)</li>
  <li>asm.js (Compile C to JS)</li>
  <li>Dart (Compile C to JS)</li>
  <li>WebAssembly/WASM (Compile C/Rust/anything to something that works alongside JS)</li>
  <li><a href="https://github.com/jashkenas/coffeescript/wiki/List-of-languages-that-compile-to-JS">and many more…</a></li>
</ol>

<p>These all tend to fall into two camps: complicate JavaScript or disguises it.
But none of these systems has fixed JavaScript because ultimately they still
all depend on it to sideload the it or interact with the DOM or what have you.
The compilers &amp; transpilers produce JavaScript, and you have to navigate
these languages’ quirks to have them get around JavaScript’s quirks.  I haven’t
noticed any reduction in bugs using these ‘better’ versions of JavaScript, and
I’m <a href="https://medium.com/javascript-scene/you-might-not-need-typescript-or-static-types-aa7cb670a77b">not</a> <a href="https://www.freecodecamp.org/news/stop-bringing-strong-typing-to-javascript-4da0666cba6e/">alone</a>.</p>

<p>I may be an old fogey, but before 2017 or so we didn’t need map files! We
needed de-obfuscators and reverse engineering skills. Heck, we didn’t even need
a Shadow DOM or any other virtual DOM<sup id="fnref:5" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">4</a></sup>! In my curmudgeony old ways I’m
inclined to say that people would benefit from learning how to write good
JavaScript instead of writing it by proxy, but even <a href="https://en.wikipedia.org/wiki/Lint_(software)">C used to have
linters.</a> The language is evolving like it should be, or as it’s expected
to, the way other open standards have developed: Through maddening chaos.</p>

<p>When push comes to shove JavaScript is neither Good or Evil, it can’t be, it’s
a tool that can be used any way you’d like; and you best get used to it because
it’s not going away any time soon.</p>

<p><em>I’m publishing this as part of 100 Days To Offload. You can join in yourself by
visiting <a href="https://100daystooffload.com">https://100daystooffload.com</a></em></p>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1" role="doc-endnote">
      <p>Brendon Eich, inventor of JavaScript <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:3" role="doc-endnote">
      <p>Not to mention the rise and fall of Flash/ActionScript. <a href="#fnref:3" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:4" role="doc-endnote">
      <p>the “Evil” parts are only about 5 pages in this book, I’d imagine this section will grow in the next edition <a href="#fnref:4" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:5" role="doc-endnote">
      <p>to paraphrase Bill Gates “one DOM should be enough for anyone!” <a href="#fnref:5" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>{&quot;picture&quot;=&gt;&quot;/avatar.gif&quot;, &quot;twitter&quot;=&gt;&quot;jkirchartz&quot;}</name></author><category term="article" /><category term="100-days-to-offload" /><summary type="html"><![CDATA[I’m bored of the generic bashing on JavaScript. Everyone has done it, it’s “Language of the Web” and we’re online where the memes are. Memes die hard. Most critiques of JavaScript cover the same well-worn paths]]></summary></entry><entry><title type="html">Distraction-Free Offline Reading With Ebooks</title><link href="https://jkirchartz.com/2021/06/distractions-free_web-ebooks.html" rel="alternate" type="text/html" title="Distraction-Free Offline Reading With Ebooks" /><published>2021-06-23T00:00:00+00:00</published><updated>2021-06-23T00:00:00+00:00</updated><id>https://jkirchartz.com/2021/06/distractions-free_web-ebooks</id><content type="html" xml:base="https://jkirchartz.com/2021/06/distractions-free_web-ebooks.html"><![CDATA[<p>I’ve been trying to spend more and more time offline, but I find that when most
of the stuff you read comes in a digital format it’s hard to focus on reading
with every other app trying to distract you. That’s where this technique really
helps.<!--more--></p>

<p>For this you will need a couple of browser plugins which are both
available for Chrome &amp; Firefox: <a href="https://www.one-tab.com/">one-tab</a> and <a href="https://epub.press/">epub.press</a>. The idea is simple</p>

<ol>
  <li>use One-Tab to store a set of tabs (it enables you to organize them into lists and even share them online)</li>
  <li>restore a curated One-Tab list to it’s own browser window (each link in its own tab)</li>
  <li>Compile them into an epub</li>
  <li>Switch my phone to airplane mode and actually read.</li>
</ol>

<p>I’m publishing this as part of 100 Days To Offload. You can join in yourself by
visiting <a href="https://100daystooffload.com">https://100daystooffload.com</a></p>]]></content><author><name>{&quot;picture&quot;=&gt;&quot;/avatar.gif&quot;, &quot;twitter&quot;=&gt;&quot;jkirchartz&quot;}</name></author><category term="article" /><category term="browser" /><category term="epub" /><category term="ebook" /><category term="one-tab" /><category term="plugins" /><category term="100-days-to-offload" /><summary type="html"><![CDATA[I’ve been trying to spend more and more time offline, but I find that when most of the stuff you read comes in a digital format it’s hard to focus on reading with every other app trying to distract you. That’s where this technique really helps.]]></summary></entry></feed>