<p>What to learn more about the <a href="/tags/fediverse/" rel="tag">#fediverse</a> and <a href="/tags/activitypub/" rel="tag">#ActivityPub</a>? This tutorial (<a href="https://fedify.dev/tutorial/microblog" rel="nofollow"><span class="invisible">https://</span>fedify.dev/tutorial/microblog</a>) from <span class="h-card"><a href="https://hollo.social/@fedify" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>fedify</span></a></span> is a really good starter. It explains how to implement a really simple <a href="/tags/federated/" rel="tag">#federated</a> server and see how communication exchange are done with AP.</p><p><a href="/tags/tutorial/" rel="tag">#tutorial</a> <a href="/tags/activitypubdev/" rel="tag">#activitypubdev</a> <a href="/tags/fedify/" rel="tag">#fedify</a> <a href="/tags/typescript/" rel="tag">#typescript</a> <a href="/tags/library/" rel="tag">#library</a></p>
tutorial
<p>New video! Installing the latest 3.2.3 Kickstart ROM and Amiga OS in my Amiga 600.</p><p>YouTube: <a href="https://youtu.be/iebCfK553jo" rel="nofollow"><span class="invisible">https://</span>youtu.be/iebCfK553jo</a><br>PeerTube: <a href="https://makertube.net/w/qgyaPKh3Y7oTtPeNJRWqVM" rel="nofollow" class="ellipsis" title="makertube.net/w/qgyaPKh3Y7oTtPeNJRWqVM"><span class="invisible">https://</span><span class="ellipsis">makertube.net/w/qgyaPKh3Y7oTtP</span><span class="invisible">eNJRWqVM</span></a></p><p><a href="/tags/amiga/" rel="tag">#Amiga</a> <a href="/tags/commodore/" rel="tag">#Commodore</a> <a href="/tags/a600/" rel="tag">#A600</a> <a href="/tags/amiga600/" rel="tag">#Amiga600</a> <a href="/tags/amigaos/" rel="tag">#AmigaOS</a> <a href="/tags/amigaos32/" rel="tag">#AmigaOS32</a> <a href="/tags/amigaos323/" rel="tag">#AmigaOS323</a> <a href="/tags/kickstart323/" rel="tag">#Kickstart323</a> <a href="/tags/eprom/" rel="tag">#EPROM</a> <a href="/tags/tl866/" rel="tag">#TL866</a> <a href="/tags/27c400/" rel="tag">#27C400</a> <a href="/tags/install/" rel="tag">#Install</a> <a href="/tags/tutorial/" rel="tag">#Tutorial</a> <a href="/tags/retrocomputing/" rel="tag">#RetroComputing</a> <a href="/tags/vintagecomputing/" rel="tag">#VintageComputing</a></p>
Finally out a little <a href="/tags/tutorial/" rel="tag">#tutorial</a> about running your own <a href="/tags/fediverse/" rel="tag">#fediverse</a> instance on cheap shared hostings with <span class="h-card"><a href="https://comam.es/snac/grunfink" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>grunfink</span></a></span>'s <a href="/tags/snac/" rel="tag">#snac</a>.<br><br><a href="https://www.tesio.it/2024/12/18/how-to-run-your-own-social-network.html" rel="nofollow" class="ellipsis" title="www.tesio.it/2024/12/18/how-to-run-your-own-social-network.html"><span class="invisible">https://</span><span class="ellipsis">www.tesio.it/2024/12/18/how-to</span><span class="invisible">-run-your-own-social-network.html</span></a><br><br><a href="/tags/permacomputing/" rel="tag">#permacomputing</a> <a href="/tags/retrocomputing/" rel="tag">#retrocomputing</a> <a href="/tags/hacking/" rel="tag">#hacking</a> <a href="/tags/cgi/" rel="tag">#cgi</a><br>
<p>Com vaig dir i amb vocació de servei públic, faré un enfilall del meu mètode patentat PAPAITO per a fer PA Per A Inútils TOtals.</p><p>PS: Intentaré fer el tutorial el més senzill possible, que em disculpin els panarres avançats.</p><p><a href="/tags/pa/" rel="tag">#pa</a> <a href="/tags/cuina/" rel="tag">#cuina</a> <a href="/tags/tutorial/" rel="tag">#tutorial</a></p>
<p>If you're interested in building your own <a href="/tags/activitypub/" rel="tag">#ActivityPub</a> server but don't know where to start, I recommend checking out <a href="/tags/fedify/" rel="tag">#Fedify</a>'s <a href="/tags/tutorial/" rel="tag">#tutorial</a> <a href="https://fedify.dev/tutorial/microblog" rel="nofollow">Creating your own federated microblog</a>. It provides a comprehensive, step-by-step guide that walks you through building a fully functional federated application. Perfect for developers who want to dive into the <a href="/tags/fediverse/" rel="tag">#fediverse</a>!</p><p><a href="/tags/fedidev/" rel="tag">#fedidev</a></p>
<p>If you're a <span class="h-card"><a href="https://mastodon.art/@cgcookie" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>cgcookie</span></a></span> member, you'll have access to CONCEPT right now! <a href="/tags/blender3d/" rel="tag">#blender3d</a> <a href="/tags/concept/" rel="tag">#concept</a> <a href="/tags/conceptart/" rel="tag">#conceptart</a> <a href="/tags/greasepencil/" rel="tag">#greasepencil</a> <a href="/tags/tutorial/" rel="tag">#tutorial</a> </p><p><a href="https://www.youtube.com/watch?si=rI87OZRFRks39dHW&v=ekQOGfgIDIA&feature=youtu.be" rel="nofollow" class="ellipsis" title="www.youtube.com/watch?si=rI87OZRFRks39dHW&v=ekQOGfgIDIA&feature=youtu.be"><span class="invisible">https://</span><span class="ellipsis">www.youtube.com/watch?si=rI87O</span><span class="invisible">ZRFRks39dHW&v=ekQOGfgIDIA&feature=youtu.be</span></a></p>
<p>My new course, TURNAROUND is available to <span class="h-card"><a href="https://mastodon.art/@cgcookie" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>cgcookie</span></a></span> members to access right now! <a href="/tags/blender3d/" rel="tag">#blender3d</a> <a href="/tags/turnaroundsheet/" rel="tag">#turnaroundsheet</a> <a href="/tags/greasepencil/" rel="tag">#greasepencil</a> <a href="/tags/tutorial/" rel="tag">#tutorial</a></p><p><a href="https://youtu.be/bjS7xyuOML4" rel="nofollow"><span class="invisible">https://</span>youtu.be/bjS7xyuOML4</a></p>
<p>Just published a guide on setting up Snac on an Ubuntu VM using NGINX Proxy Manager. Snac is an incredibly lightweight <a href="/tags/activitypub/" rel="tag">#ActivityPub</a> server. A true nom nom among fediverse platforms. </p><p>If you're curious about minimal fediverse instances, check it out:</p><p><a href="https://box464.com/posts/snac-activitypub-on-ubuntu/" rel="nofollow" class="ellipsis" title="box464.com/posts/snac-activitypub-on-ubuntu/"><span class="invisible">https://</span><span class="ellipsis">box464.com/posts/snac-activity</span><span class="invisible">pub-on-ubuntu/</span></a></p><p><a href="/tags/tutorial/" rel="tag">#tutorial</a> <a href="/tags/selfhosted/" rel="tag">#selfhosted</a> <a href="/tags/fediverse/" rel="tag">#fediverse</a> <a href="/tags/activitypub/" rel="tag">#activitypub</a> <a href="/tags/snac/" rel="tag">#snac</a> <a href="/tags/snac2/" rel="tag">#snac2</a></p>
Updated Version of the apache http caching setup for snac, including proxy media<br><br>I already wrote about caching <a href="https://snikket.de/social/menel/p/1738788742.236526" rel="nofollow">here</a>.<br>Now I extended what I cache a bit.<br>This was because after enabling the option to <a href="https://comam.es/snac-doc/snac.8.html#proxy_media" rel="nofollow">proxy media</a>, I've seen access to the file paths /x/ and /y/ in addition to the path were snac stores the media that I include in my own posts ( /s/ ).<br>There are two locations to proxy media, depending if you requests the media via the mastodon api or via the web. (/x/ and /y/), oh and I added the nodeinfo2.0 path too, because I've noticed it was queried all the time by a lot of instances and it gives me pleasure to see something cached handed out in the access logs. 🙂 (I guess it is actually irrelevant for the system resources)<br>This is the updated setup:<br>Enable the relevant modules:<br><br>a2enmod expires cache cache_disk<br><br>Be sure "htcacheclean" is running to clean up the old disk cache. (under debian see /etc/default/apache-htcacheclean or else the relevant systemd service or whatever)<br>Then add this to the httpd Virtualhost config:<br><br><p><LocationMatch "^/social/[^/]+/[xys]/|^/social/nodeinfo_2_0"><br>CacheEnable disk<br>Header set Cache-Control "max-age=86400, public" "expr=%{REQUEST_STATUS} == 200"<br>ExpiresActive On<br>ExpiresDefault "access plus 86400 seconds"<br></LocationMatch><br></p>This will use the disk cache to cache everything under the $username/s/, /x/ and /y/ paths, as well as for the /nodeinfo_2_0 path, utilizing mod_expires to generate the appropriate cache headers (for lazy ones like me). In this case caching it for 1 day.<br>Further reading and all options are explained under <a href="https://httpd.apache.org/docs/2.4/caching.html" rel="nofollow" class="ellipsis" title="httpd.apache.org/docs/2.4/caching.html"><span class="invisible">https://</span><span class="ellipsis">httpd.apache.org/docs/2.4/cach</span><span class="invisible">ing.html</span></a> (and ff)<br><br>The Header that I set here, on the condition of Status code 200, is needed for the path /y/, because snac set no-cache on that location and mod_expires will honor that if we don't override it. I set it to the same Cache-Control value as mod_expires would. (I use mod_expires because it will additionally calculate the date and put that in the expires header. (hence the name I guess 😀 )<br><br><a href="/tags/fediverse/" rel="tag">#Fediverse</a> <a href="/tags/hosting/" rel="tag">#Hosting</a> <a href="/tags/itnotes/" rel="tag">#ITNotes</a> <a href="/tags/apache2/" rel="tag">#apache2</a> <a href="/tags/httpd/" rel="tag">#httpd</a> <a href="/tags/ownyourdata/" rel="tag">#Ownyourdata</a> <a href="/tags/server/" rel="tag">#Server</a> <a href="/tags/snac/" rel="tag">#Snac</a> <a href="/tags/snac2/" rel="tag">#Snac2</a> <a href="/tags/tipsandtricks/" rel="tag">#Tipsandtricks</a> <a href="/tags/tutorial/" rel="tag">#Tutorial</a> <a href="/tags/debian/" rel="tag">#Debian</a> <a href="/tags/caching/" rel="tag">#caching</a><br><img src="https://neodb.social/media/emoji/snikket.de/xmpp.png" class="emoji" alt=":xmpp:" title=":xmpp:"><br>
Edited 1y ago
<p>Share YouTube Videos with a Specific Start Time</p><p>Learn the various methods on how to share a YouTube video using two different styles of links that will start playing at the specified time.</p><p><a href="https://www.adamsdesk.com/posts/share-youtube-video-start-time/" rel="nofollow" class="ellipsis" title="www.adamsdesk.com/posts/share-youtube-video-start-time/"><span class="invisible">https://</span><span class="ellipsis">www.adamsdesk.com/posts/share-</span><span class="invisible">youtube-video-start-time/</span></a></p><p><a href="/tags/blog/" rel="tag">#blog</a> <a href="/tags/tutorial/" rel="tag">#tutorial</a> <a href="/tags/freetube/" rel="tag">#FreeTube</a> <a href="/tags/newpipe/" rel="tag">#NewPipe</a> <a href="/tags/opensource/" rel="tag">#OpenSource</a> <a href="/tags/youtube/" rel="tag">#YouTube</a></p>
<p>New video! I'm showing two (and a half) ways of getting the TL866 EPROM programmer to work in Linux.</p><p>YouTube: <a href="https://youtu.be/_oacXhtaLsk" rel="nofollow"><span class="invisible">https://</span>youtu.be/_oacXhtaLsk</a><br>PeerTube: <a href="https://makertube.net/w/kKdacAjugvbd6cDGyUSZew" rel="nofollow" class="ellipsis" title="makertube.net/w/kKdacAjugvbd6cDGyUSZew"><span class="invisible">https://</span><span class="ellipsis">makertube.net/w/kKdacAjugvbd6c</span><span class="invisible">DGyUSZew</span></a></p><p><a href="/tags/tl866/" rel="tag">#TL866</a> <a href="/tags/eprom/" rel="tag">#EPROM</a> <a href="/tags/epromprogrammer/" rel="tag">#EPROMProgrammer</a> <a href="/tags/xgecu/" rel="tag">#XGecu</a> <a href="/tags/minipro/" rel="tag">#MiniPro</a> <a href="/tags/linux/" rel="tag">#Linux</a> <a href="/tags/linuxmint/" rel="tag">#LinuxMint</a> <a href="/tags/wine/" rel="tag">#Wine</a> <a href="/tags/virtualbox/" rel="tag">#VirtualBox</a> <a href="/tags/tutorial/" rel="tag">#Tutorial</a> <a href="/tags/howto/" rel="tag">#HowTo</a> <a href="/tags/epromburner/" rel="tag">#EPROMBurner</a></p>
Edited 182d ago
<p>doing it right:</p><p>In this photostory I will be showing you my journey of applying a 9 in a circle sticker on my laptop precisely in the center of the lid.</p><p><a href="https://triapul.cz/_/1761383853" rel="nofollow"><span class="invisible">https://</span>triapul.cz/_/1761383853</a></p><p><a href="/tags/plan9/" rel="tag">#plan9</a> <a href="/tags/9front/" rel="tag">#9front</a> <a href="/tags/tutorial/" rel="tag">#tutorial</a> <a href="/tags/storytime/" rel="tag">#storytime</a></p>
Edited 163d ago
<p><a href="https://screwlisp.small-web.org/momentary/a-python-tutorial-lisped/" rel="nofollow" class="ellipsis" title="screwlisp.small-web.org/momentary/a-python-tutorial-lisped/"><span class="invisible">https://</span><span class="ellipsis">screwlisp.small-web.org/moment</span><span class="invisible">ary/a-python-tutorial-lisped/</span></a></p><p>I saw <span class="h-card"><a href="https://mastodon.social/@treyhunner" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>treyhunner</span></a></span> 's <a href="/tags/python/" rel="tag">#python</a> <a href="/tags/tutorial/" rel="tag">#tutorial</a> on slicing and rewrote it in pure ansi <a href="/tags/commonlisp/" rel="tag">#commonLisp</a> .</p><p>But I bury the <a href="/tags/lisp/" rel="tag">#lisp</a> wizard lead: I also demonstrate a read <a href="/tags/macro/" rel="tag">#macro</a> that adds python-style slicing to common lisp.</p><p>CL-USER> <a href="/tags/2/" rel="tag">#2</a>[(10 1) '#.(loop :for x :below 11 :collect x)]<br><a href="/tags/(10/" rel="tag">#(10</a> 8 6 4 2)</p><p><a href="/tags/programming/" rel="tag">#programming</a> <a href="/tags/example/" rel="tag">#example</a> <a href="/tags/programminglanguages/" rel="tag">#programmingLanguages</a></p>
