return AnonProperty(f)
+def flag_last(l):
+ l = list(l)
+ for x in l[:-1]:
+ yield {"thing": x, "last": False}
+ yield {"thing": l[-1], "last": True}
+
def calc_range(l):
it = iter(l)
min = next(it)
@property
def static(self):
- return "../" + self.partial
+ return self.blog.web_root + "/" + self.partial
@property
def file(self):
@property
def url(self):
- return self.blog.web_root + "/" + self.output_path
+ return self.blog.web_root + "/" + str(self.output_path.relative_to(Path(self.blog.destination)))
def render_template(source, blog, name, context):
template_path = blog["{}_template".format(name)]
with open(template_path, "r") as f:
template = f.read()
html = mustache.render(template, context, warn=True)
- blog.replace_links(source, html)
+ html = blog.replace_links(source, html)
return html
def content(self):
def __init__(self, parsed, blog):
super().__init__(blog)
self.post, self.comments = parsed.pop("content").split("<!-- comments -->\n")
+ self.main_display = True
for k, v in parsed.items():
+ if k in {"tags", "author", "categories"}:
+ k = "_" + k
self[k] = v
@property
def date_rfc822(self):
return self.date.strftime(RFC822)
+ @property
+ def day(self):
+ return self.date.strftime("%B %d, %Y").replace(" 0", " ")
+
+ @property
+ def time(self):
+ return self.date.strftime("%I:%M %P")
+
@property
def id(self):
if hasattr(self, "wordpress_slug"): return self.wordpress_slug
def __hash__(self):
return hash(self.id)
+ @property
+ def author(self):
+ return self.blog.author_for(self._author)
+
+ @property
+ def tags(self):
+ return [self.blog.tag_for(tag) for tag in self._tags]
+
+ @property
+ def tags_list(self):
+ return flag_last(self.tags)
+
+ @property
+ def categories(self):
+ return [self.blog.category_for(category) for category in self._categories]
+
+ @property
+ def categories_list(self):
+ return flag_last(self.categories)
+
+ @property
+ def has_tags(self):
+ return len(self.tags) > 0
+
+ @property
+ def has_categories(self):
+ return len(self.categories) > 0
+
+ @property
+ def html(self):
+ return self.render_template(self.blog, self.type, collections.ChainMap({
+ "main_display": False,
+ }, self.context))
+
class Tag(Templatable):
def __init__(self, tag, blog):
super().__init__(blog)
def deadlinks(self):
return sorted(link for link in self.links if link.is_dead and all(x not in link.partial for x in ("?replytocom", "#comment")))
+ @property
+ def alllinks(self):
+ return sorted(self.links)
+
@paginated_property
def posts(self):
return self._posts
self._posts.append(post)
for tag in post.tags:
- self.tag_for(tag).add_post(post)
+ tag.add_post(post)
+
for category in post.categories:
- self.category_for(category).add_post(post)
- self.author_for(post.author).add_post(post)
+ category.add_post(post)
+
+ post.author.add_post(post)
def category_for(self, category):
if category not in self.categories:
@property
def pages(self):
return [
+ Page("index", self),
Page("feed", self, use_layout=False),
+ Page("links", self),
Page("deadlinks", self), # Must be last to avoid dead links
]
return Templatable.render_template(Templatable, blog, "tagcloud", self)
+ @property
+ def feed_url(self):
+ return Page("feed", self, use_layout=False).url
+
def _update_happened(self, path):
path = Path(path)
reload_update = [
blog = Blog(reload=args.reload)
if args.local:
- blog.web_root = ".."
+ blog.web_root = "file://" + blog.destination
if args.all:
blog.clean()
blog.generate_all()
title: 'blog of zachary "za3k" vance'
post_dir: "posts"
-page_dir: "pages"
+page_dir: "page"
image_dir: "images"
static_dir: "static"
author_template: "templates/author.mustache.html"
category_template: "templates/tag.mustache.html"
deadlinks_template: "templates/deadlinks.mustache.html"
+links_template: "templates/links.mustache.html"
+index_template: "templates/index.mustache.html"
feed_template: "templates/feed.mustache.html"
layout_template: "templates/layout.mustache.html"
post_template: "templates/post.mustache.html"
author_destination: "{{destination}}/author/{{slug}}.html"
category_destination: "{{destination}}/category/{{slug}}.html"
-deadlinks_destination: "{{destination}}/pages/deadlinks.html"
-feed_destination: "{{destination}}/pages/feed.xml"
+deadlinks_destination: "{{destination}}/page/deadlinks.html"
+links_destination: "{{destination}}/page/links.html"
+index_destination: "{{destination}}/page/index.html"
+feed_destination: "{{destination}}/page/feed.xml"
image_destination: "{{destination}}/images/{{image}}"
page_destination: "{{destination}}/{{page}}"
post_destination: "{{destination}}/posts/{{id}}.html"
wordpress_slug: '116'
---
<!-- blogpost -->
-<article class="post-116 post type-post status-publish format-standard hentry category-technical tag-normativity tag-philosophy tag-programming" id="post-116">
-<h1 class="entry-title">KISS vs DRY</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-03-07T18:20:51-07:00"> <a href="https://blog.za3k.com/116/" rel="bookmark" title="6:20 pm"><span class="entry-date">March 7, 2015</span> <span class="entry-time"> - 6:20 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-03-07T18:21:21-07:00">March 7, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<blockquote><p><span style="color: #222222;">The best practice or goal emphasized above with respect to templates and views is KISS and DRY. As long as the implementation does not become overly complex and difficult to grok, keep the template code DRY, otherwise KISS principle overrides the need to have template code that does not repeat itself.</span></p>
<p>–<a href="http://pixelhandler.github.io/vertebrae/notes/backbone-dot-js-and-mustache-dot-js-small-views-and-templates/2012/01/09/">Vertebrae Framework</a></p></blockquote>
<p>A nice illustration of conflicting positive principles and resolution.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/normativity/" rel="tag">normativity</a>, <a href="https://blog.za3k.com/tag/philosophy/" rel="tag">philosophy</a>, <a href="https://blog.za3k.com/tag/programming/" rel="tag">programming</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/116/" rel="bookmark" title="Permalink to KISS vs DRY"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: 20-minute-interruptions
---
<!-- blogpost -->
-<article class="post-776 post type-post status-publish format-standard hentry category-non-technical tag-self-improvement tag-timelog" id="post-776">
-<h1 class="entry-title">20 minute interruptions</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-08-10T10:03:17-07:00"> <a href="https://blog.za3k.com/20-minute-interruptions/" rel="bookmark" title="10:03 am"><span class="entry-date">August 10, 2022</span> <span class="entry-time"> - 10:03 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-08-10T10:03:18-07:00">August 10, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Very, very early in my self-improvement journey, I tried adding a 20 minute timer to my life. Every 20 minutes of my waking life, it went off. I’d explicitly say to myself what it was I was doing (“Watching TV” or “Talking to Fred”). It’s important to have a verbal or written note of what you’re doing.</p>
<p>I added a specific prompt at one point: “What am I doing, and why?”. I don’t think goals are how I think about things today, but it’s how I tried to think back then (<a href="https://www.lesswrong.com/tag/goal-factoring#:~:text=Goal%20Factoring%20is%20a%20rationality,that%20better%20accomplish%20the%20goals.">goal factoring</a>). Today I might ask, “What am I doing, and do I want to be doing it? Do I want to be doing it this way?”<span style="font-size: revert; color: initial;"></span></p>
<p></p>
<p>The basic 20-minute check-in process was very helpful to me. Some benefits:</p>
<ul><li><strong>Ding! What am I doing?</strong> It gave me an awareness of time. How long do things last? Our subjective sense of time doesn’t always match. For example, doing my daily chores takes about 20 minutes. A typical conversation with a friend takes 60-120 minutes for me. But the chores feel way longer to me!</li><li><strong>What am I doing, and do I want to be doing it?</strong> Interrupting default activities (a type of inertia). Watching TV until I get bored of it takes me 2-10 hours, if I don’t have a timer. Having a timer interrupt me let me say “well, maybe this will be the last episode, then.” It’s easy to get into a low-energy state for leisure activities where you don’t notice the passage of time. And it’s important to note, I don’t have any rules. I can keep watching TV all night if I want to. This helps me avoid doing it out of pure inertia. (It also really keyed me in that TV does not really “recharge” my batteries. Other relaxation is better.)</li><li><strong>Do I want to be doing it, or doing it this way?</strong> Interrupting bad approaches (a type of inertia). Sometimes, I get stubborn. I’ll keep trying to solve a problem in one way, for way too long. Having a regular interruption keys me into how long I’ve been doing that. I’ll notice I should maybe try a different approach or a work-around. Or give up.</li><li><strong>Ding!</strong> Providing a check-in. I’ll just take stock, and say “hey, am I really having fun? is this even useful?”. Sometimes I’m just doing something dumb. Or sometimes I forget to have fun or take a break for too long. This is my reminder to check in with my strategic system; my emotions; my body.</li></ul>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/self-improvement/" rel="tag">self-improvement</a>, <a href="https://blog.za3k.com/tag/timelog/" rel="tag">timelog</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/20-minute-interruptions/" rel="bookmark" title="Permalink to 20 minute interruptions"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: 2020-books
---
<!-- blogpost -->
-<article class="post-562 post type-post status-publish format-standard hentry category-non-technical tag-book-review tag-books tag-review tag-yearly-review" id="post-562">
-<h1 class="entry-title">2020 books</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2021-02-09T18:30:01-07:00"> <a href="https://blog.za3k.com/2020-books/" rel="bookmark" title="6:30 pm"><span class="entry-date">February 9, 2021</span> <span class="entry-time"> - 6:30 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2021-02-09T18:46:59-07:00">February 9, 2021</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Here’s a list of books I read in 2020. The ones in <strong>bold</strong> I recommend.</p>
<p><strong>Fiction:</strong></p>
<p>A College of Magics by Caroline Stevermer<br/>A Crucible of Souls by Mitchell Hogan<br/>Alcatraz and the Evil Librarians by Brandon Sanderson<br/>A Memory Called Empire, by Arkady Martine<br/>Apex (Nexus 3) by Ramez Naam<br/><a href="https://practicalguidetoevil.wordpress.com/table-of-contents/">A Practical Guide to Evil</a>, to end of book 5<br/>Arena by Holly Jennings<br/>Ariel by Steven Barnett<br/>Ascend Online by Luke Chmilenko<br/><a href="http://bofh.bjash.com/">Bastard Operator from Hell</a><br/>Circe, by Madeline Miller<br/>City of Brass by S A Chakrabarty p1-460<br/>Cold Comfort Farm by Stella Gibbons<br/>Colour out of Space by HP Lovecraft<br/>Crux (Nexus 2) by Ramez Naam<br/>Cryptonomicon by Neal Stephenson<br/>Cultivation Chat Group – ch1-56<br/>Dark Lord of Derholm by Dianna Wynne Jones<br/>Dayworld by Philip Jose Farmer<br/>Dayworld Rebel by Philip Jose Farmer # gave up halfway<br/>Dust by Hugh Howey<br/>Emperor Mage by Tamora Pierce<br/>Enchantress by James Maxwell<br/>Exhalation by Ted Chiang<br/>Fall by Neal Stephenson p1-545<br/>Forging Divinity by Andrew Rowe<br/>Future Indefinite by Dave Duncan<br/>Futuristic Tales of the Here and Now by Cory Doctrow<br/>Ghostwater by Will Wight<br/>Gideon the Ninth by Tansyn Muir<br/>House of Blades by Will Wight<br/>House of Earth and Blood by Sarah Maas<br/>Ithenalin’s Restoration by Lawrence Watt-Evans<br/>Lament by Maggie Stiefvater<br/>Legacy of the Fallen by Luke Chmilenko p1-316<br/><strong><a href="https://www.projectaon.org/en/Main/Books">Lone Wolf</a> / Kai adventure series 1-5, magnakai 1, by Joe Dever<br/></strong>Magic for Liars by Sarah Gailey<br/>Magician by Raymond Feist<br/>Magicians by Lev Grossman<br/>Making Money by Terry Pratchett<br/>Mirror Gate by Jeff Wheeler<br/>New York Fantastic by Paula Guran<br/>Nexus by Ramez Naam<br/>Night of Madness by Lawrence Watt-Evans<br/>Ninth House by Leigh Bardogo<br/>Od Magic by Patricia McKillip p1-222<br/>One Word Kill by Mark Lawrence<br/>On the Shoulders of Titans by Andrew Rowe<br/>Past Imperative by Dave Duncan<br/>Piranesi by Susanna Clarke<br/>Present Tense by Dave Duncan<br/>Prince of Thorns by Mark Lawrence<br/>Priory of the Orange Tree by Samantha Shannon, p1-534?<br/>Rage of Dragons by Evan Winter (some)<br/>Relics of War by Lawrence Watt-Evans<br/>Starfish (Rifters 1) by Peter Watts<br/>Shades of Milk and Honey by Mary Robinette Kowal (all)<br/>Shift (Silo 6-8) by Hugh Howey<br/><a href="https://shiningpathbook.com/">Shining Path</a> by Matthew Skala<br/>Shouldn’t You Be In School? by Lemony Snicket<br/>Sister Sable, by T Mountebank, p1-378<br/>Skysworn by Will Wight<br/>Skyward by Brandon Sanderson<br/>Snowspelled by Stephanie Burges<br/>Spellmonger by Terry Mancour, p1-165<br/>Starfish by Peter Watts<br/><strong>Stone Unturned by Lawrence Watt-Evans<br/></strong>Storm Glass by Jeff Wheeler<br/><strong>Sufficiently Advanced Magic by Andrew Rowe<br/></strong>The Alien’s Lover by Zoey Draven<br/>The Archived by Victoria Schwab<br/>The Atrocity Archive by Charles Stross<br/>The Blood of a Dragon by Lawrence Watt-Evans<br/>The Burning White (Lightbringer 5) by Brent Weeks<br/>The Collapsing Empire by John Scalzi<br/>The Diamond Age by Neal Stephenson<br/>The Fractured World by David Aries<br/>The Goblin Emperor by Katherine Addison<br/><strong>The Library at Mount Char by Scott Hawkins<br/></strong>The Magic Goes Away by Larry Niven<br/>The Maker of Universes by Philip Jose Farmer<br/>The Misenchanted Sword by Lawrence Watt-Evans<br/>The Mysterious Study of Doctor Sex by Tamsyn Muir<br/>The Necromancer’s House by Christopher Buehlman<br/>The Queen’s Poisoner by Jeff Wheeler<br/>The Rook by Daniel O’Malley<br/>The Sorcerer’s Widow by Lawrence Watt-Evans<br/>The Spell of the Black Dagger by Lawrence Watt-Evans<br/>The Spriggan Mirror by Lawrence Watt-Evans<br/>The Unwilling Warlord by Lawrence Watt-Evans<br/>The Vondish Ambassador by Lawrence Watt-Evans<br/>The Warrior Heir by Cinda Williams Chima, p1-116<br/>The Wiz Biz by Rick Cook<br/>The Woven Ring by MD Presley, p1-28<br/>Three-Body Problem by Cixin Liu<br/>Three Men in a Boat by Jerome K. Jerome<br/><a href="https://twigserial.wordpress.com/">Twig</a> by wildbow (arc 1-18)<br/>Uncrowned by Will Wight<br/>Underlord by Will Wight<br/><strong>Unsong by Scott Alexander</strong><br/><strong>Unsouled by Will Wight</strong><br/>When Did You See Her Last? by Lemony Snicket<br/>Wintersteel by Will Wight<br/>With a Single Spell by Lawrence Watt-Evans<br/>Wool by Hugh Howey (v1-5)</p>
<p><strong>Nonfiction</strong> (mostly I read web nonfiction)<strong>:</strong></p>
<p>507 Mechanical Movements by Henry T Brown<br/>Advanced Magick for Beginners by Alan Chapman<br/>Broadcast Channels with Confidential Messages<br/><a href="https://www.scottaaronson.com/blog/?p=4916">Busy Beaver Frontier</a> by Scott Aaronson. I did some <a href="https://github.com/za3k/busy_beaver">work</a> based on it.<br/>Computational Geometry by Mark de Berg<br/>Craeft by Alexander Langlands<br/>D&D 5e Player’s Handbook<br/>D&D 5e Dungeon Master’s Guide<br/>Forrest Mem’s Notebook<br/>Forrest Mim’s Engineer’s Notebook<br/>Forrest Mim’s Mini Notebook<br/>Intel’s x86-64 manual<br/>Introduction to Analysis by Maxwell Rosenlicht<br/><strong><a href="https://www.researchgate.net/publication/2492563_Kademlia_A_Peer-to-peer_Information_System_Based_on_the_XOR_Metric">Kademelia</a> by Peter Maymounkov<br/></strong><a href="https://library.za3k.com/law%20documents/kleiman%20v%20wright%20-%20austrialian%20taxation%20office%20findings.pdf">kleiman v wright</a> australian tax document<br/>Incremental String Searching by Bertrand Meyer (KNP algorithm)<br/>Rules to One Night Ultimate Werewolf<br/>The Art of Computer Programming, v1, v3 by Donald Knuth (parts)<br/>The Pragmatic Programmer<br/>The Rust Programming Language<br/><strong><a href="https://web.pa.msu.edu/people/yang/RFeynman_plentySpace.pdf">There’s Plenty of Room at the Bottom</a> by Richard Feynman<br/></strong>Total Money Makeover by Dave Ramsey<br/>W65025 manual (6502 clone)</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/book-review/" rel="tag">book review</a>, <a href="https://blog.za3k.com/tag/books/" rel="tag">books</a>, <a href="https://blog.za3k.com/tag/review/" rel="tag">review</a>, <a href="https://blog.za3k.com/tag/yearly-review/" rel="tag">yearly review</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/2020-books/" rel="bookmark" title="Permalink to 2020 books"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: 2020-review
---
<!-- blogpost -->
-<article class="post-570 post type-post status-publish format-standard hentry category-non-technical tag-review tag-yearly-review" id="post-570">
-<h1 class="entry-title">2020 Review</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2021-03-06T02:09:13-07:00"> <a href="https://blog.za3k.com/2020-review/" rel="bookmark" title="2:09 am"><span class="entry-date">March 6, 2021</span> <span class="entry-time"> - 2:09 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2021-06-05T15:38:49-07:00">June 5, 2021</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>What happened in 2020? Well, </p>
<ul><li>(General news) COVID-19 of course, and Trump left office</li><li>I stayed inside. I’ve been getting groceries delivered, even–I’ve been somewhere other than my house maybe twice since COVID-19 lockdown started.</li><li>I started watching wayyy more videos, especially video game streams.</li><li>I looked into buying land in Colorado and living in an RV</li><li>I <a href="https://blog.za3k.com/time-log-transcribed/">transcribed</a> my log books, and started coverting them all to a standard, computer-parsable format (mostly done, one left).</li><li>I deleted <a href="https://blog.za3k.com/postmortem-bs-store/">bs</a>.</li><li>I figured out <a href="https://blog.za3k.com/streaming-linux-twitch-using-ffmpeg-and-alsa/">twitch streaming</a>, both with a standalone capture card and on linux.</li><li>I got hardware random number generators to work.</li><li>I designed v1 and v2 of a protocol to allow a set of computers to store a large amount of content. It’s designed to back up things like the Internet Archive. I’m calling the project “valhalla”, after ArchiveTeams’s project <a href="https://wiki.archiveteam.org/index.php/Valhalla">valhalla</a> and IA.BAK.</li><li>I learned to use an oscilloscope, and bit-banged SPI and I2C for a while, trying to get a 9-axis sensor to work unsuccessfully.</li><li>I learned how to make a pretty good pizza</li><li>I played a bunch of video games</li><li>I <a href="https://github.com/za3k/busy_beaver">worked</a> on the Lazy Beaver <a href="https://oeis.org/A337805">problem</a>, and tied the state of the art.</li><li>I made a master TODO list, and finished every single TODO I had that took an hour or less.</li><li>I figured out how to make VMs in Linux and run them all the time</li><li>I got a tablet, and learned GIMP and InkScape well enough to draw some stuff.</li><li>I wrote a custom client for omegle</li><li>I did a yearly backup</li><li>I did various research. I learned about algorithms, data structures, RALA, and quantum physics.</li><li>I wrote up my <a href="https://blog.za3k.com/cookbook/">cookbook</a> and released it.</li><li>I wrote some blog posts 🙂</li><li>Four of my friends moved to Ohio, two from nearby me. I only know one person in the state I’m in well at this point.</li><li>A friend of mine got out of jail and got to go home.</li></ul>
<p></p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/review/" rel="tag">review</a>, <a href="https://blog.za3k.com/tag/yearly-review/" rel="tag">yearly review</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/2020-review/" rel="bookmark" title="Permalink to 2020 Review"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: 2020-videogames
---
<!-- blogpost -->
-<article class="post-553 post type-post status-publish format-standard hentry category-non-technical tag-games tag-review tag-reviews tag-videogames tag-yearly-review" id="post-553">
-<h1 class="entry-title">2020 Videogames</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2021-02-05T00:30:43-07:00"> <a href="https://blog.za3k.com/2020-videogames/" rel="bookmark" title="12:30 am"><span class="entry-date">February 5, 2021</span> <span class="entry-time"> - 12:30 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2021-02-09T18:46:17-07:00">February 9, 2021</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>In 2020 I’m newly retired, so I’ve had free time. I think it’s fun to do reviews, so without further ado here’s every video game I played in 2020!</p>
<p>I recommend:</p>
<p>The Rest</p>
<ul><li>(3/5) 5D Chess with Multiverse Time Travel. More fun that it sounds. If you play to mess around and win by accident, it’s pretty good. Definitely play with a second human player, though.</li><li>(1.5/5) 7 billion humans. Better than the original, still not fun. Soulless game about a soulless, beige corporation. Just play Zachtronics instead. If you’re on a phone and want to engage your brain, play Euclidea.</li><li>(3/5) A Dark Room. Idle game.</li><li>(1/5) Amazing Cultivation Simulator. A big disappointment. Bad english voice acting which can’t be turned off, and a long, unskippable tutorial. I didn’t get to actual gameplay. I like Rimworld and cultivation novels so I had high hopes.</li><li>(3/5) ADOM (Steam version) – Fun like the original, which I would give 5/5. Developed some major issues on Linux, but I appreciate that there’s a graphical version available, one of my friends will play it now.</li><li>(4/5) agar.io – Good, but used to be better. Too difficult to get into games now. Very fun and addictive gameplay.</li><li>(3/5) Amorous – Furry dating sim. All of the hot characters are background art you can’t interact with, and the characters you can actually talk to are a bunch of sulky nerds who for some reason came to a nightclub. I think it was free, though.</li><li>(0/5) Apis. Alpha game, AFAIK I was the first player. Pretty much no fun right now (to the point of not really being a game yet), but it could potentially become fun if the author puts in work.</li><li>(4/5) Autonauts. I played a ton of Autonauts this year, almost finished it, which is rare for me. My main complaint is that it’s fundamentally supposed to be a game about programming robots, but I can’t actually make them do more than about 3 things, even as a professional programmer. Add more programming! It can be optional, that’s fine. They’re adding some kind of tower defense waves instead, which is bullshit. Not recommended because it’s not for everyone.</li><li>(3/5) A-Z Inc. Points for having the guts to have a simple game. At first this looked like just the bones of Swarm Simulator, but the more you look at the UI and the ascension system, the worse it actually is. I would regularly reset because I found out an ascension “perk” actually made me worse off.</li><li>(5/5) Beat Saber. Great game, and my favorite way to stay in shape early this year. Oculus VR only, if you have VR you already have this game so no need to recommend. Not QUITE worth getting a VR set just to play it at current prices.</li><li>(1/5) Big Tall Small. Good idea, but no fun to play. Needed better controls and level design, maybe some art.</li><li>(0.5/5) Blush Blush. Boring.</li><li>(3/5) Business Shark. I had too much fun with this simple game. All you do is just eat a bunch of office workers.</li><li>(3/5) chess.com. Turns out I like chess while I’m high?</li><li>(3/5) Circle Empires Rivals. Decent, more fun than the singleplayer original. It shouldn’t really have been a separate game from Circle Empires, and I’m annoyed I couldn’t get it DRM-free like the original.</li><li>(3/5) Cross Virus. By Dan-box. Really interesting puzzle mechanics.</li><li>(4/5) Cultist Simulator. Really fun to learn how to play–I love games that drop you in with no explanation. Great art and writing, I wish I could have gotten their tarot deck. Probably the best gameplay “ambience” I’ve seen–getting a card that’s labeled “fleeting sense of radiance” that disappears in 5 seconds? Great. Also the core stats are very well thought out for “feel” and real-life accuracy–dread (depression) conquers fascination (mania), etc. It has a few gameplay gotchas, but they’re not too big–layout issues, inability to go back to skipped text, or to put your game in an unwinnable state early on). Unfortunately it’s a “roguelike”, and it’s much too slow-paced and doesn’t have enough replay value, so it becomes a horrible, un-fun grind when you want to actually win. I probably missed the 100% ending but I won’t be going back to get it. I have no idea who would want to play this repeatedly. I’m looking forward to the next game from the same studio though! I recommend playing a friend’s copy instead of buying.</li><li>(2/5) Darkest Dungeon. It was fine but I don’t really remember it.</li><li>(2/5) Dicey Dungeons. Okay deck-building roguelike gameplay (with an inventory instead of a deck). Really frustrating, unskippably slow difficulty curve at the start. I played it some more this year and liked it better because I had a savegame. I appreciate having several character classes, but they should unlock every difficulty from the start.</li><li>(2/5) Diner Bros. Basically just a worse Overcooked. I didn’t like the controls, and it felt too repetitive with only one diner.</li><li>(2/5) Don’t Eat My Mind You Stupid Monster. Okay art and idea, the gameplay wasn’t too fun for me.</li><li>(2/5) Don’t Starve – I’ve played Don’t Stave maybe 8 different times, and it’s never really gripped me, I always put it back down. It’s slow, a bit grindy, and there’s no bigger goal–all you can do is live.</li><li>(3/5) Don’t Starve Together – Confusingly, Don’t Starve Together can be played alone. It’s Don’t Starve, plus a couple of the expansions. This really could be much more clearly explained.</li><li>(1/5) Elemental Abyss – A deck-builder, but this time it’s grid-based tactics. Really not all that fun. Just play Into the Abyss instead or something.</li><li>(1/5) Else Heart.Break() – I was excited that this might be a version of “Hack N’ Slash” from doublefine that actually delivered and let you goof around with the world. I gave it up in the first ten minutes, because the writing and characters drove me crazy, without getting to hacking the world.</li><li>(2/5) Everything is Garbage. Pretty good for a game jam game. Not a bad use of 10 minutes. I do think it’s probably possible to make the game unwinnable, and the ending is just nothing.</li><li>(1/5) Evolve. Idle game, not all that fun. I take issue with the mechanic in Sharks, Kittens, and this where buying your 15th fence takes 10^15 wood for some reason.</li><li>(4/5) Exapunks. Zachtronics has really been killing it lately, with Exapunks and Opus Magnum. WONDERFUL art and characters during story portions, and much better writing. The gameplay is a little more varied than in TIS-100 or the little I played of ShenZen I/O. My main complaint about Zachtronics games continues to be, that I don’t want to be given a series of resource-limited puzzles (do X, but without using more than 10 programming instructions). Exapunks is the first game where it becomes harder to do something /at all/, rather than with a particular amount of resources, but it’s still not there for me. Like ShenZen, they really go for a variety of hardware, too. Can’t recommend this because it’s really only for programmers.</li><li>(1/5) Exception. Programming game written by some money machine mobile games company. Awful.</li><li>(4/5) Factorio. Factorio’s great, but for me it doesn’t have that much replay value, even with mods. I do like their recent updates, which included adding blueprints from the start of the game, improving belt sorting, and adding a research queue. We changed movement speed, made things visually always day, and adding a small number of personal construction robots from the start this run. I’m sure if you’d like factorio you’ve played it already.</li><li>(3/5) Fall Guys – I got this because it was decently fun to watch. Unfortunately, it’s slightly less fun to play. Overall, there’s WAY too much matchmaking waiting considering the number of players, and the skill ceiling is very low on most of the games, some of which are essentially luck (I’m looking at you, team games).</li><li>(3/5) Forager – Decent game. A little too much guesswork in picking upgrades–was probably a bit more fun on my second play because of that. Overall, nice graphics and a cute map, but the gameplay could use a bit of work.</li><li>(3/5) Getting Over It – Funny idea, executed well. Pretty sure my friends and I have only gotten through 10% of the game, and all hit about the same wall (the first tunnel)</li><li>(3/5) Guild of Dungeoneering – Pretty decent gameplay. I feel like it’s a bit too hard for me, but that’s fine. Overall I think it could use a little more cute/fun art, I never quite felt that motivated.</li><li>(1/5) Hardspace: Shipbreakers. Okay, I seriously didn’t get to play this one, but I had GAMEBREAKING issues with my controller, which is a microsoft X-box controller for PC–THE development controller.</li><li>(2/5) Helltaker. All right art, meh gameplay. But eh, it’s free!</li><li>(3/5) Hot Lava. Decent gameplay. Somehow felt like the place that made this had sucked the souls out of all the devs first–no one cared about the story or characters. It’s a game where the floor is made out of lava, with a saturday morning cartoon open, so that was a really an issue. Admirable lack of bugs, though. I’m a completionist so I played the first world a lot to get all the medals, and didn’t try the later ones.</li><li>(3/5) House Flipper – Weird, but I had fun. I wish the gameplay was a little more unified–it felt like a bunch of glued-together minigames.</li><li>(2/5) Hydroneer. Utterly uninspiring. I couldn’t care about making progress at all, looked like a terrible grind to no benefit.</li><li>(1/5) io. Tiny game, I got it on Steam, also available on phone. Basically a free web flash game, but for money. Not good enough to pay the $1 I paid. Just a bit of a time-killer.</li><li>(3/5) Islanders – All you do is place buildings and get points. Not particularly challenging, but relaxing. Overall I liked it.</li><li>(3/5) Jackbox – I played this online with a streamer. Jackbox has always felt a little bit soulless money grab to me, but it’s still all right. I like that I can play without having a copy–we need more games using this purchase model.</li><li>(3/5) Life is Feudal – Soul-crushingly depressing and grindy, which I knew going in. I thought it was… okay, but I really want an offline play mode (Yes, I know there’s an unsupported single-player game, but it’s buggier and costs money). UI was pretty buggy, and I think hunting might literally be impossible.</li><li>(2/5) Minecraft – Antimatter Chemistry. Not particularly fun.</li><li>(3/5) Minecraft – ComputerCraft. I played a pack with just ComputerCraft and really nothing else. Was a little slow, would have been more fun with more of an audience. I love the ComputerCraft mod, I just didn’t have a great experience playing my pack I made.</li><li>(3/5) Minecraft – Foolcraft 3. Fun, a bit buggy. Honestly I can’t remember it too well.</li><li>(1/5) Minecraft – Manufactio. Looked potentially fun, but huge bugs and performance issues, couldn’t play.</li><li>(4/5) Minecraft – Tekkit. Tekkit remains one of my favorite Minecraft modpacks.</li><li>(3/5) Minecraft – Valhelsia 2. I remember this being fun, but I can’t remember details as much as I’d like. I think it was mostly based around being the latest version of minecraft?</li><li>(4/5) Minecraft – Volcano Block. Interesting, designed around some weird mods I hadn’t used. I could have used more storage management or bulk dirt/blocks early in the game–felt quite cramped. Probably got a third of the way through the pack. I got novelty value out of it, but I wouldn’t have enjoyed it if I had ever used the plant mod before–it’s a very fixed, linear progression.</li><li>(5/5) Minit. This is a weird, small game. I actually had a lot of fun with it. Then I 100% completed it, which was less fun but I still had a good time overall.</li><li>(3/5) Monster Box. By Dan-box. One of two Dan-box games I played a lot of. Just visually appealing, the gameplay isn’t amazing. Also, Dan-box does some great programming–this is a game written in 1990 or so, and it can render hundreds of arrows in the air smoothly in a background tab.</li><li>(3/5) Monster Train. A relatively fun deckbuilding card game. It can’t run well on my computer, which is UNACCEPTABLE–this is a card game with 2D graphics. My MICROWAVE should run this shit in 2020. Ignoring that, the gameplay style (summon monsters, MTG style) just isn’t my cup of tea.</li><li>(2/5) Moonlighter. Felt like it was missing some inspiration, just didn’t have a sense of “fun”. The art was nice. The credits list is surprisingly long.</li><li>(2/5) Muse Dash. All right, a basic rhythm game. Not enough variety to the game play, and everything was based around perfect or near-perfect gameplay, which makes things less fun for me.</li><li>(3/5) NES games – various. Dr Mario, Ice Climbers. Basically, I got some Chinese handheld “gameboy” that has all the NES games preloaded on it. Overall it was a great purchase.</li><li>(2/5) Noita. “The Powder Game” by Dan-Box, as a procedurally generated platformer with guns. Lets you design your own battle spells. Despite the description, you really still can’t screw around as much as I’d like. I also had major performance issues</li><li>(3/5) Observation. I haven’t played this one as much as I’d like, I feel like it may get better. Storytelling, 3D game from the point of view of the AI computer on a space station. I think I might have read a book it’s based on, unfortunately.</li><li>(2/5) One Step From Eden. This is a deck-building combat tactics game. I thought it was turn-based, but it’s actually realtime. I think if it was turn-based I would have liked it. The characters were a bit uninspired.</li><li>(1/5) Orbt XL. Very dull. I paid $0.50 for it, it was worth that.</li><li>(4/5) Opus Magnum. Another great game from Zachtronics, along with Exapunks they’re really ramping up. This is the third execution of the same basic concept. I’d like to see Zachtronics treading new ground more as far as gameplay–that said, it is much improved compared to the first two iterations. The art, writing, and story were stellar on the other hand.</li><li>(3/5) Out of Space. Fun idea, you clean a spaceship. It’s never that challenging, and it has mechanics such that it gets easier the more you clean, rather than harder. Good but not enough replay value. Fun with friends the first few times. The controls are a little wonky.</li><li>(1/5) Outpost (tower defense game). I hate all tower defense.</li><li>(3/5) Overcooked. Overcooked is a ton of fun.</li><li>(4/5) Powder Game – Dan-box. I played this in reaction to not liking Noita. It’s fairly old at this point. Just a fun little toy.</li><li>(1/5) Prime Mover – Very cool art, the gameplay put me to sleep immediately. A “circuit builder” game but somehow missing any challenge or consistency.</li><li>(2/5) Quest for Glory I. Older, from 1989. Didn’t really play this much, I couldn’t get into the writing, and the pseudo-photography art was a little jarring.</li><li>(4/5) Raft. I played this in beta for free on itch.io, and had a lot of fun. Not enough changed that it was really worth a replay, but it has improved, and I got to play with a second player. Not a hard game, which I think was a good thing. The late game they’ve expanded, but it doesn’t really add much. The original was fun and so was this.</li><li>(3/5) Satisfactory. I honestly don’t know how I like this one–I didn’t get too far into it.</li><li>(4/5) Scrap Mechanic. I got this on a recommendation from a player who played in creative. I only tried the survival mode–that mode is not well designed, and their focuses for survival are totally wrong. I like the core game, you can actually build stuff. If I play again, I’ll try the creative mode, I think.</li><li>(3.5/5) Shapez.io. A weird, abstracted simplification of Factorio. If I hadn’t played factorio and half a dozen copies, I imagine this would have been fun, but it’s just more of the same. Too much waiting–blueprints are too far into the game, too.</li><li>(2.5/5) Simmiland. Okay, but short. Used cards for no reason. For a paid game, I wanted more gameplay out of it?</li><li>(0.5/5) Snakeybus. The most disappointing game I remember this year. Someone made “Snake” in 3D. There are a million game modes and worlds to play in. I didn’t find anything I tried much fun.</li><li>(1/5) Soda Dungeon. A “mobile” (read: not fun) style idle game. Patterned after money-grab games, although I don’t remember if paid progress was actually an option. I think so.</li><li>(4/5) Spelunky. The only procedurally generated platformer I’ve ever seen work. Genuinely very fun.</li><li>(4/5) Spelunky 2. Fun, more of an upgrade of new content than a new game. Better multiplayer. My computer can’t run later levels at full speed.</li><li>(1/5) Stick Ranger 2. Dan-box. Not much fun.</li><li>(3/5) Superliminal. Fun game. A bit short for the pricetag.</li><li>(3/5) Tabletop Simulator – Aether’s End: Legacy. Interesting, a “campaign” (series of challenge bosses and pre-written encounters) deckbuilding RPG. I like the whole “campaign RPG boardgame” idea. This would have worked better with paper, there were some rough edges in both the game instructions and the port to Tabletop Simulator.</li><li>(4/5) Tabletop Simulator – The Captain is Dead. Very fun. I’d love to play with more than 2 people. Tabletop simulator was so-so for this one.</li><li>(2/5) Tabletop Simulator – Tiny Epic Mechs. You give your mech a list of instructions, and it does them in order. Arena fight. Fun, but I think I could whip up something at least as good.</li><li>(3/5) The Council. One of the only 3D games I finished. It’s a story game, where you investigate what’s going on and make various choices. It’s set in revolutionary france, at the Secret World Council that determines the fate of the world. It had a weak ending, with less choice elements than the rest of the game so far, which was a weird decision. Also, it has an EXCRUTIATINGLY bad opening scene, which was also weird. The middle 95% of the game I enjoyed, although the ending went on a little long. The level of background knowledge expected of the player swung wildly–they seemed to expect me to know who revolutionary French generals were with no explanation, but not Daedalus and the Minotaur. The acting was generally enjoyable–there’s a lot of lying going on in the game and it’s conveyed well. The pricetag is too high to recommend.</li><li>(0/5) The Grandma’s Recipe (Unus Annus). This game is unplayably bad–it’s just a random pixel hunt. Maybe it would be fun if you had watched the video it’s based on.</li><li>(3/5) The Room. Pretty fun! I think this is really designed for a touchscreen, but I managed to play it on my PC. Played it stoned, which I think helps with popular puzzle games–it has nice visuals but it’s a little too easy.</li><li>(3/5) This Call May Be Recorded. Goofy experimental game.</li><li>(4/5) TIS-100. Zachtronics. A programming game. I finally got done with the first set of puzzles and into the second this year. I had fun, definitely not for everyone.</li><li>(3/5) Trine. I played this 2-player. I think the difficulty was much better 2-player, but it doesn’t manage 2 players getting separated well. Sadly we skipped the story, which seemed like simple nice low-fantasy. Could have used goofier puzzles, it took itself a little too seriously and the levels were a bit same-y.</li><li>(2/5) Unrailed. Co-op railroad building game. It was okay but there wasn’t base-building. Overall not my thing. I’d say I would prefer something like Overcooked if it’s going to be timed? Graphics reminded me of autonauts.</li><li>(2/5) Vampire Night Shift. Art game. Gameplay could have used a bit of polish. Short but interesting.</li><li>(4/5) Wayward. To date, the best survival crafting system I’ve seen. You can use any pointy object and stick-like object, together with glue or twine, to make an arrow. The UI is not great, and there’s a very counter-intuitive difficulty system. You need to do a little too much tutorial reading, and it could use more goals. Overall very fun. Under constant development, so how it plays a given week is a crapshoot. The steam version finally works for me (last time I played it was worse than the free online alpha, now it’s the same or better). I recomend playing the free online version unless you want to support the author.</li><li>(1/5) We Need to Go Deeper. Multiplayer exploration game in a sub, with sidescrolling battle. Somehow incredibly unfun, together with high pricetag. Aesthetics reminded me of Don’t Starve somehow.</li><li>(2/5) We Were Here. Okay 2-player puzzle game. Crashed frequently, and there were some “huh” puzzles and UI. Free.</li><li>(3/5) Yes, your grace. Gorgeous pixel art graphics. The story is supposed to be very player-dependent, but I started getting the feeling that it wasn’t. I didn’t quite finish the game but I think I was well past halfway. Hard to resume after a save, you forget things. I got the feeling I wouldn’t replay it, which is a shame because it’s fun to see how things go differently in a second play with something like this.</li></ul>
<p>These are not all new to me, and very few came out in 2020. I removed any games I don’t remember and couldn’t google (a fair number, I play a lot of game jam games) as well as any with pornographic content.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/games/" rel="tag">games</a>, <a href="https://blog.za3k.com/tag/review/" rel="tag">review</a>, <a href="https://blog.za3k.com/tag/reviews/" rel="tag">reviews</a>, <a href="https://blog.za3k.com/tag/videogames/" rel="tag">videogames</a>, <a href="https://blog.za3k.com/tag/yearly-review/" rel="tag">yearly review</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/2020-videogames/" rel="bookmark" title="Permalink to 2020 Videogames"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: 2021-books
---
<!-- blogpost -->
-<article class="post-723 post type-post status-publish format-standard hentry category-non-technical tag-book-review tag-books tag-review tag-yearly-review" id="post-723">
-<h1 class="entry-title">2021 books</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-01-31T14:13:12-07:00"> <a href="https://blog.za3k.com/2021-books/" rel="bookmark" title="2:13 pm"><span class="entry-date">January 31, 2022</span> <span class="entry-time"> - 2:13 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-01-31T14:13:12-07:00">January 31, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Here’s a list of books I read in 2021. The ones in <strong>bold</strong> I recommend.</p>
<p><strong>Fiction:</strong><br/><br/>Enigma by Graeme Base<br/>City of Stairs by Robert Jackson Bennett<br/>Look to Windward (Culture 7) by Ian Banks<br/>Surface Detail (Culture 8) by Ian M Banks<br/>Pump Six by Paolo Bacigalupi<br/>Six of Crows by Leigh Bardugo<br/>Lexicon by Max Barry<br/>Mage Errant 1 by John Bierce<br/>Mage Errant 2 by John Bierce<br/>Mage Errant 3 by John Bierce<br/>Mage Errant 4 by John Bierce<br/>Mage Errant 5 by John Bierce<br/>The Atlas Six by Olivie Blake<br/>Lilith’s Brood (Xenogenesis 1) by Octavia E Butler<br/>Elegy Beach (Change 2) by Steven Boyett<br/>Curse of Charion by Louis Bujold<br/>Xenocide by Orson Scott Card<br/>Bohemian Gospel by Dan Carpenter<br/>Convergence (Foreigner 18) by C J Cherryh<br/>Emergence (Foreigner 19) by C J Cherryh<br/>Convergence (Foreigner 21) by C J Cherryh<br/>Iron Prince by Bryce O’Conner and Luke Chmilenko<br/>Murder on the Orient Express by Agatha Christie<br/>The Alchemist by Paulo Coelho<br/>Artemis Fowl (Artemis Fowl 1) by Eoin Colfer<br/>The Arctic Incident (Artemis Fowl 2) by Eoin Colfer<br/>Eternity Code (Artemis Fowl 3) by Eoin Colfer<br/>Opal Deception (Artemis Fowl 4) by Eoin Colfer<br/>Space Between Worlds by J Conrad and Micaiah Johnson<br/>Little Brother by Cory Doctrow<br/>Homeland (Little Brother 2) by Cory Doctrow<br/>Children of Chaos by Dave Duncan<br/>The Alchemist’s Apprentice by Dave Duncan<br/>The Alchemist’s Code by Dave Duncan<br/>The Alchemist’s Pursuit by Dave Duncan<br/>The Cutting Edge by Dave Duncan<br/>Upland Outlaws by Dave Duncan<br/>The Stricken Field by Dave Duncan<br/>Queen of Blood by Sarah Beth Durst<br/>Vita Nostra by Maryna and Serhiy Dyachenko<br/>How Rory Thorne Destroyed the Multiverse by K. Eason<br/>Malazan (Malazan 1) by Steven Erikson<br/><strong>Daughter of the Empire by Raymond Feist and Janny Wurts<br/></strong>Mistress of the Empire by Raymond Feist and Janny Wurts<br/>Servant of the Empire by Raymond Feist and Janny Wurts<br/>Dragon’s Egg (Cheela 1) by Robert L Forward<br/><strong><a href="https://www.royalroad.com/fiction/21220/mother-of-learning">Mother of Learning</a> by Domagoj Kurmaic/nobody103</strong><br/>Books of Magic by Neil Gaiman<br/>The Midnight Library by Matt Haig<br/>The Warehouse by Rob Hart<br/>Forging Hephestus by Drew Hayes<br/>Super Powereds, v1 by Drew Hayes<br/>Super Powereds, v2 by Drew Hayes<br/>Super Powereds, v3 by Drew Hayes<br/>Super Powereds, v4 by Drew Hayes<br/>Johannes Cabal by Johnathan L. Howard<br/>The Medusa Plague by Mary Kirchoff<br/><strong>Six Wakes by Muir Lafferty</strong><br/>King of Thorns by Mark Lawrence<br/>Emperor of Thorns by Mark Lawrence<br/>First Contacts by Murray Leinster<br/>Futurological Congress by Stanislaw Lem<br/>Perfect Vacuum by Stanislaw Lem<br/><strong>Tuf Voyaging by George R R Martin</strong><br/>Memory of Empire by Arkady Martine<br/>A Desolation Called Peace by Arkady Martine<br/>Middlegame by Seanan McGuire<br/>The Host by Stephanie Meyers<br/>The city & the city by China Mieville<br/>*The House that Made the 16 Loops of time by Tamsyn Muir<br/>Harrow the Ninth by Tamsyn Muir<br/><strong>Convenience Store Woman by Sayaka Murata</strong><br/>A Deadly Education by Naomi Novik<br/>The Last Graduate (Schoolomance 2) by Naomi Novik<br/>Stiletto (Chequey, book 2) by Daniel O’Malley<br/>Special Topics in Calamity Physics by Marisha Pessl<br/>Carpe Jugulum by Terry Pratchett<br/>Guards! Guards! by Terry Pratchett<br/>Jingo by Terry Pratchett<br/>The Last Continent by Terry Pratchett<br/>Monsterous Regiment by Terry Pratchett<br/>Men at Arms by Terry Pratchett<br/>Night Watch by Terry Pratchett<br/>Snuff by Terry Pratchett<br/>Sourcery by Terry Pratchett<br/>The Truth by Terry Pratchett<br/>The Woven Ring (Sol’s Harvest 1) by M D Presley<br/>Years of Rice + Salt by Kim Stanley Robinson<br/>The Torch That Ignites the Stars by Andrew Rowe<br/>Sleep Donation by Karen Russell<br/>A Darker Shade of Magic by V E Schwab<br/>Invisible Life of Addie LaRue by V E Schwab<br/>Vicious by V E Schwab<br/>Vengeance by V E Schwab<br/>Grasshopper Jungle by Andrew Smith<br/>Why Is This Night Different Than All Other Nights? by Lemony Snicket<br/>Dark Storm (Rhenwars 1) by M L Spenser<br/>Anathem by Neal Stephenson<br/>Cryptonomicon by Neal Stephenson<br/>Nimona by Noele Stevenson<br/>Hunter x Hunter manga v1-36 by Yoshihiro Togashi<br/>Worth the Candle by Alexander Wales<br/>Educated by Tara Westover<br/>Soulsmith (Cradle 2) by Will Wight<br/>Blackflame (Cradle 3) by Will Wight<br/>Skysworn (Cradle 4) by Will Wight<br/>Ghostwater (Cradle 5) by Will Wight<br/>Underlord (Cradle 6) by Will Wight<br/>Uncrowned (Cradle 7) by Will Wight<br/>Wintersteel (Cradle 8) by Will Wight<br/>Bloodlines (Cradle 9) by Will Wight<br/>Reaper (Cradle 10) by Will Wight<br/>The Crimson Vault (Travelers Gate 2) by Will Wight<br/>*<strong>Dinosaurs by Walter Jon Williams<br/></strong>Blind Lake by Robert Charles Wilson<br/>Thousand Li by Tao Wong<br/>Thousand Li 2 by Tao Wong<br/>Thousand Li 3 by Tao Wong<br/>Thousand Li 4 by Tao Wong<br/>Thousand Li 5 by Tao Wong<br/>Sorcerer’s Legacy by Janny Wurts (see also Feist)<br/><a href="https://ceruleanscrawling.wordpress.com/table-of-contents/">Heretical Edge</a> by ceruleuanscrawling<br/><a href="https://www.royalroad.com/fiction/41618/mark-of-the-fool-a-progression-fantasy">Mark of the Fool</a> by UnstoppableJuggernaut<br/><a href="https://scp-wiki.wikidot.com/antimemetics-division-hub">there is no antimemetics division</a> by qntm<br/><a href="https://www.royalroad.com/fiction/40182/only-villains-do-that">Only Villains Do That</a> by Webbonomicon<br/><a href="https://parahumans.wordpress.com/">Worm</a> by wildbow</p>
<p><strong>Nonfiction:</strong></p>
<p>Compiling with Continuations by Andrew W. Appel<br/>The Rule of Benedict by St Benedict (read the front material only)<br/>Programming Pearls by Jon Bentley<br/>Whole Brain Emulation Roadmap by Nick Bostrom<br/>Data Matching by Peter Christen<br/>Attack and Defense by James Davies and Akira Ishida<br/>Engines of Creation by K. Eric Drexler<br/><strong>Class by Paul Fussell</strong><br/>The Food Lab by J Kenzi Lopez-Alt<br/>Primitive Technology by John Plant<br/>Monero whitepaper by Nicolas van Saberhagen<br/>Secrets and Lies by Bruce Schneier<br/>The Cuckoo’s Egg by Clifford Stoll</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/book-review/" rel="tag">book review</a>, <a href="https://blog.za3k.com/tag/books/" rel="tag">books</a>, <a href="https://blog.za3k.com/tag/review/" rel="tag">review</a>, <a href="https://blog.za3k.com/tag/yearly-review/" rel="tag">yearly review</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/2021-books/" rel="bookmark" title="Permalink to 2021 books"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: 2022-books
---
<!-- blogpost -->
-<article class="post-971 post type-post status-publish format-standard hentry category-non-technical tag-book-review tag-books tag-review tag-yearly-review" id="post-971">
-<h1 class="entry-title">2022 books</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-01-04T19:20:18-07:00"> <a href="https://blog.za3k.com/2022-books/" rel="bookmark" title="7:20 pm"><span class="entry-date">January 4, 2023</span> <span class="entry-time"> - 7:20 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-01-04T21:49:19-07:00">January 4, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Here’s a list of books I read in 2022. The ones in bold I recommend.</p>
<p><strong>Fiction:</strong></p>
<p><strong>Nonfiction:</strong></p>
<p>The Art of Computer Programming v1 by Donald Knuth<br/>The Art of Computer Programming v2 by Donald Knuth<br/>Attack and Defense by James Davies<br/>Burning Wheel (RPG) by Luke Crane<br/>The Economist (magazine)<br/>Home Improvement 1-2-3<br/>Illustrated Guide to Everything Sold in Hardware Stores (1988) by Steve Ettlinger<br/>Inadequate Equilibria by Eliezer Yudkowsky<br/>The Prince by Niccolo Machiavelli<br/>Programming Crystal by Ivo Balbaert<br/>Sigbovik 2021<br/>Spymistress by William Stevenson<br/>What If? by Randall Munroe<br/>What If? 2 by Randall Munroe</p>
<p></p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/book-review/" rel="tag">book review</a>, <a href="https://blog.za3k.com/tag/books/" rel="tag">books</a>, <a href="https://blog.za3k.com/tag/review/" rel="tag">review</a>, <a href="https://blog.za3k.com/tag/yearly-review/" rel="tag">yearly review</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/2022-books/" rel="bookmark" title="Permalink to 2022 books"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: 2022-year-in-review
---
<!-- blogpost -->
-<article class="post-1013 post type-post status-publish format-standard hentry category-non-technical tag-personal tag-review tag-yearly" id="post-1013">
-<h1 class="entry-title">2022 Year in Review</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-04-23T17:09:30-07:00"> <a href="https://blog.za3k.com/2022-year-in-review/" rel="bookmark" title="5:09 pm"><span class="entry-date">April 23, 2023</span> <span class="entry-time"> - 5:09 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-04-23T17:09:30-07:00">April 23, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Here’s what happened in 2022 for me!</p>
<h2 class="wp-block-heading">Move</h2>
<p>You can read most of what I wrote here! On a blog! Of particular interest might be my new <a href="https://za3k.com/blog">index page</a>.</p>
<p>I also wrote a short story, <em>Earth II</em>. It’s not online because it’s bad.</p>
<p>I had to remove library.za3k.com because of DMCAs.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/personal/" rel="tag">personal</a>, <a href="https://blog.za3k.com/tag/review/" rel="tag">review</a>, <a href="https://blog.za3k.com/tag/yearly/" rel="tag">yearly</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/2022-year-in-review/" rel="bookmark" title="Permalink to 2022 Year in Review"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: 2023-flash-media-longevity-testing-3-years-later
---
<!-- blogpost -->
-<article class="post-979 post type-post status-publish format-standard hentry category-non-technical category-technical tag-archiving tag-backup tag-research" id="post-979">
-<h1 class="entry-title">2023 Flash media longevity testing (3 years later)</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-01-09T11:30:38-07:00"> <a href="https://blog.za3k.com/2023-flash-media-longevity-testing-3-years-later/" rel="bookmark" title="11:30 am"><span class="entry-date">January 9, 2023</span> <span class="entry-time"> - 11:30 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-01-09T11:30:39-07:00">January 9, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<ul>
<li><a href="https://www.reddit.com/r/DataHoarder/comments/e3nb2r/longterm_reliability_testing/">Year 0</a> – I filled 10 32-GB Kingston flash drives with random data.</li>
<li><a href="https://blog.za3k.com/usb-flash-longevity-testing-year-2/">FAQ</a></li>
<li><a href="https://www.reddit.com/r/DataHoarder/comments/102razr/flash_media_longevity_testing_3_years_later/">Reddit</a></li>
</ul>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/archiving/" rel="tag">archiving</a>, <a href="https://blog.za3k.com/tag/backup/" rel="tag">backup</a>, <a href="https://blog.za3k.com/tag/research/" rel="tag">research</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/2023-flash-media-longevity-testing-3-years-later/" rel="bookmark" title="Permalink to 2023 Flash media longevity testing (3 years later)"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: 3-more-games
---
<!-- blogpost -->
-<article class="post-560 post type-post status-publish format-standard hentry category-non-technical tag-game-design tag-games" id="post-560">
-<h1 class="entry-title">3 more Games</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2021-02-09T18:22:54-07:00"> <a href="https://blog.za3k.com/3-more-games/" rel="bookmark" title="6:22 pm"><span class="entry-date">February 9, 2021</span> <span class="entry-time"> - 6:22 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2021-02-09T18:45:17-07:00">February 9, 2021</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I’ve added a central <strong>games</strong> page <a href="https://za3k.com/mygames.md">https://za3k.com/mygames.md</a> to my website, with all the games I designed. The new games:</p>
<p><a href="https://za3k.com/archive/lootboxes.md">Loot Boxes</a>. Untested. Easy storytelling game for 2-4 players. The players have an inventory of absurd random items, and must solve challenges using each item in turn.</p>
<p><a href="https://za3k.com/archive/stupid_russia.md">Stupid Russia</a>. Tested. Party game for 10+ people. Each player is a spy director at the Stupid KGB, and must report as many codenames to the Inspector as possible, swapping secret information with other players. The players had fun, especially adopting bad accents. The rules were too hard to understand, and it was too much work and no fun for me as the Inspector. Overall I’d just recommend Stupid Conspiracies instead.</p>
<p><a href="https://za3k.com/archive/conspiracies.md">Stupid Conspiracies</a>. Untested. Party Game for 8+ people. Each player tries to recruit the others into their conspiracy, for about half an hour. It’s a re-write of the core idea in Stupid Russia. Overall, big party games are just too hard for me to organize.</p>
<p>I also playtested “No this cannot be! I AM INVINCIBLE!”. It ran about 45 minutes prep (not fun) and 45 minutes playtime, which was the main problem. Overall the play time was fun. I rewrote it to have MUCH easier prep, and for the game to be generally easier. I also re-wrote the rules of “Ninjas Ninjas Ninjas” without a playtest. I don’t think it will ever be too popular but it has a soft spot for me.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/game-design/" rel="tag">game design</a>, <a href="https://blog.za3k.com/tag/games/" rel="tag">games</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/3-more-games/" rel="bookmark" title="Permalink to 3 more Games"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: 3-new-games-deadly-education-rpg-logic-potions-emperical-zendo
---
<!-- blogpost -->
-<article class="post-573 post type-post status-publish format-standard hentry category-non-technical tag-game-design tag-games" id="post-573">
-<h1 class="entry-title">3 new games: Deadly Education RPG, Logic Potions, Emperical Zendo</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2021-03-19T09:56:45-07:00"> <a href="https://blog.za3k.com/3-new-games-deadly-education-rpg-logic-potions-emperical-zendo/" rel="bookmark" title="9:56 am"><span class="entry-date">March 19, 2021</span> <span class="entry-time"> - 9:56 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2021-06-05T15:38:40-07:00">June 5, 2021</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<ul><li><a href="https://za3k.com/archive/emperical_zendo.md">Emperical Zendo</a>, a semi-competitive game for 3-8 players based on the icehouse game Zendo. Vaguely based on rants by Bayesians.</li><li><a href="https://za3k.com/archive/logic_potions.md">Logic Potions</a>, a competitive game about deductive logic and making new rules for 2-4 players. Actual gameplay quickly gets complicated as players add more rules about brewing potions. Inspired by “Imaginary Go Fish” and “Emperical Zendo”.</li><li><a href="https://za3k.com/archive/deadly.md">Deadly Education RPG</a>, a traditional pen+paper RPG game based on Naomi Novik’s “Deadly Education”. Reading the book is not required.</li></ul>
<p>All three are untested as of posting.</p>
<p>See also: <a href="https://za3k.com/mygames.md">List of all games</a></p>
<p></p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/game-design/" rel="tag">game design</a>, <a href="https://blog.za3k.com/tag/games/" rel="tag">games</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/3-new-games-deadly-education-rpg-logic-potions-emperical-zendo/" rel="bookmark" title="Permalink to 3 new games: Deadly Education RPG, Logic Potions, Emperical Zendo"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: 30-days-of-learning-play-and-newness
---
<!-- blogpost -->
-<article class="post-1294 post type-post status-publish format-standard hentry category-non-technical tag-hack-a-day" id="post-1294">
-<h1 class="entry-title">30 days of learning, play, and newness</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2024-02-20T12:45:12-07:00"> <a href="https://blog.za3k.com/30-days-of-learning-play-and-newness/" rel="bookmark" title="12:45 pm"><span class="entry-date">February 20, 2024</span> <span class="entry-time"> - 12:45 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2024-02-20T12:45:13-07:00">February 20, 2024</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>So I’ve decided on my next project! I’m going to spend a month learning new things. Unlike hack-a-day, where the focus was mostly on doing something every day, here I’m trying to cultivate a different attitude. So the following are all encouraged:</p>
<ul>
<li>TV and other mindless activities</li>
<li>(tentatively) reading?</li>
</ul>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/30-days-of-learning-play-and-newness/" rel="bookmark" title="Permalink to 30 days of learning, play, and newness"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: a-mystery-in-the-text-editor
---
<!-- blogpost -->
-<article class="post-1351 post type-post status-publish format-standard hentry category-technical tag-command-line tag-linux" id="post-1351">
-<h1 class="entry-title">A mystery in the text editor</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2024-05-12T19:59:50-07:00"> <a href="https://blog.za3k.com/a-mystery-in-the-text-editor/" rel="bookmark" title="7:59 pm"><span class="entry-date">May 12, 2024</span> <span class="entry-time"> - 7:59 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2024-05-13T12:49:32-07:00">May 13, 2024</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Hello, Linux terminal users! Let me present you a simple feature you’ve all seen, but might not have noticed.</p>
<figure class="wp-block-image size-full"><a href="https://blog.za3k.com/wp-content/uploads/2024/05/01-mystery.png"><img alt="" class="wp-image-1352" decoding="async" fetchpriority="high" height="277" sizes="(max-width: 961px) 100vw, 961px" src="https://blog.za3k.com/wp-content/uploads/2024/05/01-mystery.png" srcset="https://blog.za3k.com/wp-content/uploads/2024/05/01-mystery.png 961w, https://blog.za3k.com/wp-content/uploads/2024/05/01-mystery-300x86.png 300w, https://blog.za3k.com/wp-content/uploads/2024/05/01-mystery-768x221.png 768w, https://blog.za3k.com/wp-content/uploads/2024/05/01-mystery-150x43.png 150w, https://blog.za3k.com/wp-content/uploads/2024/05/01-mystery-250x72.png 250w" width="961"/></a></figure>
echo -ne '\x1b[?1049l' # Restore terminal</code></pre>
<p>Yep. That works fine.</p>
<p>ANSI: <a href="https://gist.github.com/fnky/458719343aabd01cfb17a3a4f7296797">https://gist.github.com/fnky/458719343aabd01cfb17a3a4f7296797</a><br/>DEC: <a href="https://vt100.net/emu/ctrlseq_dec.html">https://vt100.net/emu/ctrlseq_dec.html</a><br/>DEC: <a href="https://vt100.net/docs/vt220-rm/chapter4.html#S4.6.18">https://vt100.net/docs/vt220-rm/chapter4.html#S4.6.18</a><br/>xterm’s control sequences: <a href="https://www.xfree86.org/current/ctlseqs.html">https://www.xfree86.org/current/ctlseqs.html</a></p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/command-line/" rel="tag">command-line</a>, <a href="https://blog.za3k.com/tag/linux/" rel="tag">linux</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/a-mystery-in-the-text-editor/" rel="bookmark" title="Permalink to A mystery in the text editor"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: a-pixel-art
---
<!-- blogpost -->
-<article class="post-101 post type-post status-publish format-standard hentry category-non-technical tag-art tag-computercraft tag-minecraft-2 tag-pixel-art" id="post-101">
-<h1 class="entry-title">A pixel art</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-01-18T17:12:54-07:00"> <a href="https://blog.za3k.com/a-pixel-art/" rel="bookmark" title="5:12 pm"><span class="entry-date">January 18, 2015</span> <span class="entry-time"> - 5:12 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-01-18T17:13:15-07:00">January 18, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p> </p>
<p><a href="https://blog.za3k.com/wp-content/uploads/2015/01/Screen-Shot-2015-01-13-at-11.12.20-AM.png"><img alt="A ninja turtle" class="alignnone wp-image-102 size-full" decoding="async" fetchpriority="high" height="660" sizes="(max-width: 1180px) 100vw, 1180px" src="https://blog.za3k.com/wp-content/uploads/2015/01/Screen-Shot-2015-01-13-at-11.12.20-AM.png" srcset="https://blog.za3k.com/wp-content/uploads/2015/01/Screen-Shot-2015-01-13-at-11.12.20-AM.png 1180w, https://blog.za3k.com/wp-content/uploads/2015/01/Screen-Shot-2015-01-13-at-11.12.20-AM-300x167.png 300w, https://blog.za3k.com/wp-content/uploads/2015/01/Screen-Shot-2015-01-13-at-11.12.20-AM-1024x572.png 1024w" width="1180"/></a></p>
<p> </p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/art/" rel="tag">art</a>, <a href="https://blog.za3k.com/tag/computercraft/" rel="tag">computercraft</a>, <a href="https://blog.za3k.com/tag/minecraft-2/" rel="tag">minecraft</a>, <a href="https://blog.za3k.com/tag/pixel-art/" rel="tag">pixel art</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/a-pixel-art/" rel="bookmark" title="Permalink to A pixel art"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: all-the-recipes
---
<!-- blogpost -->
-<article class="post-424 post type-post status-publish format-standard hentry category-technical tag-archiving tag-crawling tag-internet-archive tag-recipe" id="post-424">
-<h1 class="entry-title">All the recipes</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2017-07-06T18:20:09-07:00"> <a href="https://blog.za3k.com/all-the-recipes/" rel="bookmark" title="6:20 pm"><span class="entry-date">July 6, 2017</span> <span class="entry-time"> - 6:20 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2017-07-24T13:17:10-07:00">July 24, 2017</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I’ve crawled the largest english-language recipes sites, and parsed the results into JSON. Go do fun things with a database of 140,000 recipes!</p>
<p>Not much to say here, just a link: <a href="https://archive.org/details/recipes-en-201706">https://archive.org/details/recipes-en-201706</a></p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/archiving/" rel="tag">archiving</a>, <a href="https://blog.za3k.com/tag/crawling/" rel="tag">crawling</a>, <a href="https://blog.za3k.com/tag/internet-archive/" rel="tag">internet archive</a>, <a href="https://blog.za3k.com/tag/recipe/" rel="tag">recipe</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/all-the-recipes/" rel="bookmark" title="Permalink to All the recipes"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: amazon-aws
---
<!-- blogpost -->
-<article class="post-7 post type-post status-publish format-standard hentry category-technical tag-aws tag-cloud" id="post-7">
-<h1 class="entry-title">Amazon AWS</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2014-07-26T23:29:47-07:00"> <a href="https://blog.za3k.com/amazon-aws/" rel="bookmark" title="11:29 pm"><span class="entry-date">July 26, 2014</span> <span class="entry-time"> - 11:29 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2014-10-18T03:28:55-07:00">October 18, 2014</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I was originally planning to write a rosetta-stone style guide for similar commands between digital ocean, google compute, and AWS. Instead, I spent all day writing this <a href="https://github.com/vanceza/ec2-cli">CLI tool for EC2</a> which wraps the enormous and unintuitive AWS command-line tool. It’s not totally polished, namely you’ll have to hand-substitute some stuff at the top of the script that should properly go in a config file, but hopefully someone will find it useful.</p>
<p>As a warning it terminates, not just stops, all amazon instances when asked.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/aws/" rel="tag">AWS</a>, <a href="https://blog.za3k.com/tag/cloud/" rel="tag">cloud</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/amazon-aws/" rel="bookmark" title="Permalink to Amazon AWS"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: android-backup-on-arch-linux
---
<!-- blogpost -->
-<article class="post-63 post type-post status-publish format-standard hentry category-technical tag-android tag-arch-linux tag-backup tag-phone tag-system-administration" id="post-63">
-<h1 class="entry-title">Android backup on arch linux</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2014-11-23T13:51:31-07:00"> <a href="https://blog.za3k.com/android-backup-on-arch-linux/" rel="bookmark" title="1:51 pm"><span class="entry-date">November 23, 2014</span> <span class="entry-time"> - 1:51 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-04-24T02:41:58-07:00">April 24, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Edit: See <a href="https://blog.za3k.com/backup-android-on-plugin/" title="Backup android on plugin">here</a> for an automatic version of the backup portion.</p>
<p>Connecting android to Windows and Mac, pretty easy. On arch linux? Major pain. Here’s what I did, mostly via the help of the <a href="https://wiki.archlinux.org/index.php/MTP" title="arch wiki">arch wiki</a>:</p>
</pre>
</li>
</ol>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/android/" rel="tag">android</a>, <a href="https://blog.za3k.com/tag/arch-linux/" rel="tag">arch linux</a>, <a href="https://blog.za3k.com/tag/backup/" rel="tag">backup</a>, <a href="https://blog.za3k.com/tag/phone/" rel="tag">phone</a>, <a href="https://blog.za3k.com/tag/system-administration/" rel="tag">system administration</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/android-backup-on-arch-linux/" rel="bookmark" title="Permalink to Android backup on arch linux"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
<ol class="commentlist">
wordpress_slug: april-fools-puzzle-contest-solutions
---
<!-- blogpost -->
-<article class="post-1011 post type-post status-publish format-standard hentry category-non-technical tag-ircpuzzles tag-puzzles" id="post-1011">
-<h1 class="entry-title">April Fools Puzzle Contest Solutions</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-04-23T16:32:01-07:00"> <a href="https://blog.za3k.com/april-fools-puzzle-contest-solutions/" rel="bookmark" title="4:32 pm"><span class="entry-date">April 23, 2023</span> <span class="entry-time"> - 4:32 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-04-23T16:32:02-07:00">April 23, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>The April Fools Puzzle Contest is over. Congrats to the <a href="https://blog.ircpuzzles.org/2023/04/2023-april-fools-rankings/">winners</a>.</p>
<p>I wrote up solutions for <a href="https://blog.ircpuzzles.org/2023/04/2019-afpc-summary/">2019</a>, <a href="https://blog.ircpuzzles.org/2023/04/2020-afpc-summary/">2020</a>, <a href="https://blog.ircpuzzles.org/2023/04/2021-afpc-summary/">2021</a>, <a href="https://blog.ircpuzzles.org/2023/04/2022-afpc-summary/">2022</a>, and <a href="https://blog.ircpuzzles.org/category/solutions/">2023</a> (2023 not yet live).</p>
<p>Spoiler tags are available, so you see clues and incremental hints, if you missed the original contest and want to play one.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/ircpuzzles/" rel="tag">ircpuzzles</a>, <a href="https://blog.za3k.com/tag/puzzles/" rel="tag">puzzles</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/april-fools-puzzle-contest-solutions/" rel="bookmark" title="Permalink to April Fools Puzzle Contest Solutions"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: april-fools-puzzle-contest
---
<!-- blogpost -->
-<article class="post-1005 post type-post status-publish format-standard hentry category-non-technical tag-irc tag-puzzles" id="post-1005">
-<h1 class="entry-title">April Fools Puzzle Contest</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-04-04T11:33:24-07:00"> <a href="https://blog.za3k.com/april-fools-puzzle-contest/" rel="bookmark" title="11:33 am"><span class="entry-date">April 4, 2023</span> <span class="entry-time"> - 11:33 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-04-04T11:33:24-07:00">April 4, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>See <a href="https://blog.ircpuzzles.org/2023/04/2023-april-fools-live/">https://blog.ircpuzzles.org/2023/04/2023-april-fools-live/</a> for how to play.</p>
<p>Every year, the libera IRC network has a puzzle contest starting on 04-01. (It’s not an april fools joke). It’s fun but quite difficult.</p>
<p>This year I wrote about a third of the puzzles. Give them a try, either alone or as a team! It will be open indefinitely, but social activity will die off in a week or two.</p>
<p>As of writing, no one has won (finished all the puzzles) just yet.</p>
<p></p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/irc/" rel="tag">irc</a>, <a href="https://blog.za3k.com/tag/puzzles/" rel="tag">puzzles</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/april-fools-puzzle-contest/" rel="bookmark" title="Permalink to April Fools Puzzle Contest"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: archiving-all-bash-commands-typed
---
<!-- blogpost -->
-<article class="post-391 post type-post status-publish format-standard hentry category-technical tag-backup tag-bash tag-linux tag-sysadmin" id="post-391">
-<h1 class="entry-title">Archiving all bash commands typed</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-12-05T19:25:52-07:00"> <a href="https://blog.za3k.com/archiving-all-bash-commands-typed/" rel="bookmark" title="7:25 pm"><span class="entry-date">December 5, 2015</span> <span class="entry-time"> - 7:25 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-12-05T19:25:52-07:00">December 5, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>This one’s a quickie. Just a second of my config to record all bash commands to a file (.bash_eternal_history) forever. The default bash HISTFILESIZE is 500. Setting it to a non-numeric value will make the history file grow forever (although not your actual history size, which is controlled by HISTSIZE).</p>
<p>I do this in addition:</p>
PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND ; }"'echo $$ $USER \
"$(history 1)" >> ~/.bash_eternal_history'</pre>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/backup/" rel="tag">backup</a>, <a href="https://blog.za3k.com/tag/bash/" rel="tag">bash</a>, <a href="https://blog.za3k.com/tag/linux/" rel="tag">linux</a>, <a href="https://blog.za3k.com/tag/sysadmin/" rel="tag">sysadmin</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/archiving-all-bash-commands-typed/" rel="bookmark" title="Permalink to Archiving all bash commands typed"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: archiving-all-web-traffic
---
<!-- blogpost -->
-<article class="post-388 post type-post status-publish format-standard hentry category-technical tag-backup tag-http tag-https tag-mitm tag-proxy" id="post-388">
-<h1 class="entry-title">Archiving all web traffic</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-12-05T19:18:13-07:00"> <a href="https://blog.za3k.com/archiving-all-web-traffic/" rel="bookmark" title="7:18 pm"><span class="entry-date">December 5, 2015</span> <span class="entry-time"> - 7:18 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-12-06T01:06:20-07:00">December 6, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Today I’m going to walk through a setup on how to archive all web (HTTP/S) traffic passing over your Linux desktop. The basic approach is going to be to install a proxy which records traffic. It will record the traffic to WARC files. You can’t proxy non-HTTP traffic (for example, chat or email) because we’re using an HTTP proxy approach.</p>
<p>The end result is pretty slow for reasons I’m not totally sure of yet. It’s possible warcproxy isn’t streaming results.</p>
</li>
<li>Set up any browers, etc to use localhost:18000 as your proxy. You could also do some kind of global firewall config. Chromium in particular was pretty irritating on Arch Linux. It doesn’t respect $http_proxy, so you have to pass it separate options. This is also a good point to make sure anything you don’t want recorded BYPASSES the proxy (for example, maybe large things like youtube, etc).</li>
</ol>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/backup/" rel="tag">backup</a>, <a href="https://blog.za3k.com/tag/http/" rel="tag">http</a>, <a href="https://blog.za3k.com/tag/https/" rel="tag">https</a>, <a href="https://blog.za3k.com/tag/mitm/" rel="tag">mitm</a>, <a href="https://blog.za3k.com/tag/proxy/" rel="tag">proxy</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/archiving-all-web-traffic/" rel="bookmark" title="Permalink to Archiving all web traffic"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: archiving-github
---
<!-- blogpost -->
-<article class="post-41 post type-post status-publish format-standard hentry category-technical tag-backup tag-git tag-github tag-system-administration" id="post-41">
-<h1 class="entry-title">Archiving github</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2014-11-08T09:52:14-07:00"> <a href="https://blog.za3k.com/archiving-github/" rel="bookmark" title="9:52 am"><span class="entry-date">November 8, 2014</span> <span class="entry-time"> - 9:52 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2014-11-22T09:47:39-07:00">November 22, 2014</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p><a href="https://github.com/clockfort/GitHub-Backup" title="GitHub-Backup">GitHub-Backup</a> is a small project to archive github repos to a local computer. It advertises that one reason to use it is</p>
<blockquote><p>You are paranoid tinfoil-hat wearer who needs to back up everything in triplicate on a variety of outdated tape media.</p></blockquote>
<p>Then I just shoved everything into a cron task and we’re good to go.</p>
<pre>@hourly GitHub-Backup/github-backup.py -m -t vanceza /home/github/vanceza</pre>
<p>Edit: There’s a similar project for bitbucket I haven’t tried out: <a href="https://bitbucket.org/fboender/bbcloner">https://bitbucket.org/fboender/bbcloner</a></p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/backup/" rel="tag">backup</a>, <a href="https://blog.za3k.com/tag/git/" rel="tag">git</a>, <a href="https://blog.za3k.com/tag/github/" rel="tag">github</a>, <a href="https://blog.za3k.com/tag/system-administration/" rel="tag">system administration</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/archiving-github/" rel="bookmark" title="Permalink to Archiving github"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: archiving-gmail
---
<!-- blogpost -->
-<article class="post-59 post type-post status-publish format-standard hentry category-technical tag-backup tag-email tag-gmail" id="post-59">
-<h1 class="entry-title">Archiving gmail</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2014-11-23T13:14:46-07:00"> <a href="https://blog.za3k.com/archiving-gmail/" rel="bookmark" title="1:14 pm"><span class="entry-date">November 23, 2014</span> <span class="entry-time"> - 1:14 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2014-11-23T13:14:46-07:00">November 23, 2014</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I set up an automatic archiver for gmail, using the special-purpose tool <a href="http://gmvault.org/">gm-vault</a>. It was fairly straightforward, no tutorial here. The daily sync:</p>
<pre>@daily cd ~gmail && cronic gmvault sync -d "/home/gmail/vanceza@gmail.com" vanceza@gmail.com</pre>
<p>I’m specifying a backup folder here (-d) so I can easily support multiple accounts, one per line.</p>
<p><a href="http://habilis.net/cronic/" title="Cronic">Cronic</a> is a tool designed to make cron’s default email behavior better, so I get emailed only on actual backup failures.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/backup/" rel="tag">backup</a>, <a href="https://blog.za3k.com/tag/email/" rel="tag">email</a>, <a href="https://blog.za3k.com/tag/gmail/" rel="tag">gmail</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/archiving-gmail/" rel="bookmark" title="Permalink to Archiving gmail"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: archiving-twitch
---
<!-- blogpost -->
-<article class="post-327 post type-post status-publish format-standard hentry category-technical tag-backup tag-linux tag-osx tag-twitch" id="post-327">
-<h1 class="entry-title">Archiving Twitch</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-10-19T22:33:34-07:00"> <a href="https://blog.za3k.com/archiving-twitch/" rel="bookmark" title="10:33 pm"><span class="entry-date">October 19, 2015</span> <span class="entry-time"> - 10:33 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-10-19T23:12:30-07:00">October 19, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Install jq and youtube-dl</p>
<p>Get a list of the last 100 URLs:</p>
<pre>youtube-dl -a past_broadcasts.txt -o "%(upload_date)s.%(title)s.%(id)s.%(ext)s"</pre>
<p>Did it. youtube-dl is smart enough to avoid re-downloading videos it already has, so as long as you run this often enough (I do daily), you should avoid losing videos before they’re deleted.</p>
<p>Thanks <a href="http://www.omgwallhack.org/home/jrayhawk/">jrayhawk</a> for the API info.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/backup/" rel="tag">backup</a>, <a href="https://blog.za3k.com/tag/linux/" rel="tag">linux</a>, <a href="https://blog.za3k.com/tag/osx/" rel="tag">osx</a>, <a href="https://blog.za3k.com/tag/twitch/" rel="tag">twitch</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/archiving-twitch/" rel="bookmark" title="Permalink to Archiving Twitch"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: archiving-twitter
---
<!-- blogpost -->
-<article class="post-61 post type-post status-publish format-standard hentry category-technical tag-apis tag-backup tag-jq tag-system-administration tag-twitter" id="post-61">
-<h1 class="entry-title">Archiving twitter</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2014-11-23T14:35:14-07:00"> <a href="https://blog.za3k.com/archiving-twitter/" rel="bookmark" title="2:35 pm"><span class="entry-date">November 23, 2014</span> <span class="entry-time"> - 2:35 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2014-11-24T13:12:44-07:00">November 24, 2014</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>(<a href="https://za3k.com/~twitter_archive/">Output</a>)</p>
<p>I wanted to archive twitter so that I could</p>
<p>I ran into a bug with <a href="https://github.com/mispy/twitter_ebooks/issues/34">upstream incompatibilities</a> which is easily fixed. Another caveat is that the twitter API only allows access 3200 tweets back in time for an account–all the more reason to set up archiving ASAP. Twitter’s rate-limiting is also extreme (<a href="https://dev.twitter.com/rest/public/rate-limiting">15-180 req/15 min</a>), and I’m <a href="https://github.com/mispy/twitter_ebooks/issues/37">worried about</a> a problem where my naive script can’t make it through a list of more than 15 accounts even with no updates.</p>
<p> </p>
<p> </p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/apis/" rel="tag">apis</a>, <a href="https://blog.za3k.com/tag/backup/" rel="tag">backup</a>, <a href="https://blog.za3k.com/tag/jq/" rel="tag">jq</a>, <a href="https://blog.za3k.com/tag/system-administration/" rel="tag">system administration</a>, <a href="https://blog.za3k.com/tag/twitter/" rel="tag">twitter</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/archiving-twitter/" rel="bookmark" title="Permalink to Archiving twitter"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: articles-section
---
<!-- blogpost -->
-<article class="post-743 post type-post status-publish format-standard hentry category-non-technical tag-blog tag-website tag-za3k-com" id="post-743">
-<h1 class="entry-title">Articles section</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-07-06T11:26:32-07:00"> <a href="https://blog.za3k.com/articles-section/" rel="bookmark" title="11:26 am"><span class="entry-date">July 6, 2022</span> <span class="entry-time"> - 11:26 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-07-06T11:26:32-07:00">July 6, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I added an <a href="https://za3k.com/blog">articles section</a> to my website with all blog posts up until now.</p>
<p>I also fixed the very, very old <a href="https://za3k.com/archive/wordpress/">archived blog</a> from 2014.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/blog/" rel="tag">blog</a>, <a href="https://blog.za3k.com/tag/website/" rel="tag">website</a>, <a href="https://blog.za3k.com/tag/za3k-com/" rel="tag">za3k.com</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/articles-section/" rel="bookmark" title="Permalink to Articles section"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: backup-android-on-plugin
---
<!-- blogpost -->
-<article class="post-177 post type-post status-publish format-standard hentry category-technical tag-android tag-arch-linux tag-backup tag-linux" id="post-177">
-<h1 class="entry-title">Backup android on plugin</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-04-23T23:03:49-07:00"> <a href="https://blog.za3k.com/backup-android-on-plugin/" rel="bookmark" title="11:03 pm"><span class="entry-date">April 23, 2015</span> <span class="entry-time"> - 11:03 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-04-24T02:29:05-07:00">April 24, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>In a <a href="https://blog.za3k.com/android-backup-on-arch-linux/" title="Android backup on arch linux">previous post</a> I discussed how to backup android with rsync. In this post, I’ll improve on that solution so it happens when you plug the phone in, rather than manually. My solution happens to know I have only one phone; you should adjust accordingly.</p>
<p>The process is</p>
fusermount -u /media/android
</pre>
<p>The contents of /usr/local/bin/phone-backup are pretty me-specific so I’ll omit it, but it copies /media/android over to a server. (fun detail: MTP doesn’t show all information even on a rooted phone, so there’s more work to do)</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/android/" rel="tag">android</a>, <a href="https://blog.za3k.com/tag/arch-linux/" rel="tag">arch linux</a>, <a href="https://blog.za3k.com/tag/backup/" rel="tag">backup</a>, <a href="https://blog.za3k.com/tag/linux/" rel="tag">linux</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/backup-android-on-plugin/" rel="bookmark" title="Permalink to Backup android on plugin"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
<ol class="commentlist">
wordpress_slug: banh-chung
---
<!-- blogpost -->
-<article class="post-1296 post type-post status-publish format-standard hentry category-non-technical tag-cooking tag-recipe" id="post-1296">
-<h1 class="entry-title">Bánh Chưng</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2024-02-22T11:59:04-07:00"> <a href="https://blog.za3k.com/banh-chung/" rel="bookmark" title="11:59 am"><span class="entry-date">February 22, 2024</span> <span class="entry-time"> - 11:59 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2024-02-22T11:59:05-07:00">February 22, 2024</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>A few friends and I first experienced this traditional Vietnamese Tết (Lunar New Year) food while visiting years ago. We loved it, and recently I looked up how to make it myself. It’s not a well known food in the US, so I thought it would still be fun to share.</p>
<p>I followed the recipe from “<a href="https://enjoyasimplelife.blogspot.com/2012/01/vegetarian-sticky-rice-banh-chung-chay.html">Enjoy a simple life</a>“, but made a homemade cardboard mold as suggested by “<a href="https://takestwoeggs.com/banh-chung/">Takes Two Eggs</a>“.</p>
<li><a href="https://enjoyasimplelife.blogspot.com/2012/01/vegetarian-sticky-rice-banh-chung-chay.html">https://enjoyasimplelife.blogspot.com/2012/01/vegetarian-sticky-rice-banh-chung-chay.html</a></li>
<li><a href="https://takestwoeggs.com/banh-chung/">https://takestwoeggs.com/banh-chung/</a></li>
</ol>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/cooking/" rel="tag">cooking</a>, <a href="https://blog.za3k.com/tag/recipe/" rel="tag">recipe</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/banh-chung/" rel="bookmark" title="Permalink to Bánh Chưng"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: blast-furance
---
<!-- blogpost -->
-<article class="post-430 post type-post status-publish format-gallery has-post-thumbnail hentry category-non-technical tag-blast-furnace tag-diy tag-fire tag-furnace tag-metalworking post_format-post-format-gallery" id="post-430">
-<h1 class="entry-title">Blast Furance</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2017-07-24T12:58:32-07:00"> <a href="https://blog.za3k.com/blast-furance/" rel="bookmark" title="12:58 pm"><span class="entry-date">July 24, 2017</span> <span class="entry-time"> - 12:58 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2017-07-24T12:58:32-07:00">July 24, 2017</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>We made a blast furnace, following David Gingery’s <a href="https://www.amazon.com/Charcoal-Foundry-Build-Metal-Working/dp/1878087002">The Charcoal Foundry</a>. Here are some pictures of the firing process. We haven’t melted or cast any metal yet.</p>
<div class="wp-caption aligncenter" id="attachment_433" style="width: 1642px"><a href="https://blog.za3k.com/wp-content/uploads/2017/07/furnace-initial-burn.jpg"><img alt="" aria-describedby="caption-attachment-433" class="wp-image-433" decoding="async" fetchpriority="high" height="1224" src="https://blog.za3k.com/wp-content/uploads/2017/07/furnace-initial-burn.jpg" width="1632"/></a><p class="wp-caption-text" id="caption-attachment-433">Slow initial burn to drive out most of the water</p></div>
<div class="wp-caption aligncenter" id="attachment_435" style="width: 2458px"><a href="https://blog.za3k.com/wp-content/uploads/2017/07/furnace-fan.jpg"><img alt="" aria-describedby="caption-attachment-435" class="wp-image-435 size-full" decoding="async" height="3264" src="https://blog.za3k.com/wp-content/uploads/2017/07/furnace-fan.jpg" width="2448"/></a><p class="wp-caption-text" id="caption-attachment-435">You can tell we’re trained professionals by the fan setup</p></div>
<div class="wp-caption aligncenter" id="attachment_436" style="width: 3016px"><a href="https://blog.za3k.com/wp-content/uploads/2017/07/furnace-grill.jpg"><img alt="" aria-describedby="caption-attachment-436" class="wp-image-436 size-full" decoding="async" height="5344" loading="lazy" src="https://blog.za3k.com/wp-content/uploads/2017/07/furnace-grill.jpg" width="3006"/></a><p class="wp-caption-text" id="caption-attachment-436">Blast furnace meat is best meat</p></div>
<div class="wp-caption aligncenter" id="attachment_438" style="width: 2458px"><a href="https://blog.za3k.com/wp-content/uploads/2017/07/furnace-richard.jpg"><img alt="" aria-describedby="caption-attachment-438" class="wp-image-438 size-full" decoding="async" height="3264" loading="lazy" src="https://blog.za3k.com/wp-content/uploads/2017/07/furnace-richard.jpg" width="2448"/></a><p class="wp-caption-text" id="caption-attachment-438">Richard looking dubiously at the furnace</p></div>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/blast-furnace/" rel="tag">blast furnace</a>, <a href="https://blog.za3k.com/tag/diy/" rel="tag">diy</a>, <a href="https://blog.za3k.com/tag/fire/" rel="tag">fire</a>, <a href="https://blog.za3k.com/tag/furnace/" rel="tag">furnace</a>, <a href="https://blog.za3k.com/tag/metalworking/" rel="tag">metalworking</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/blast-furance/" rel="bookmark" title="Permalink to Blast Furance"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: blueprint-maker-13-complete
---
<!-- blogpost -->
-<article class="post-1259 post type-post status-publish format-standard hentry category-technical tag-art tag-followup tag-hack-a-day" id="post-1259">
-<h1 class="entry-title">Blueprint Maker (13) Complete</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-12-18T17:45:53-07:00"> <a href="https://blog.za3k.com/blueprint-maker-13-complete/" rel="bookmark" title="5:45 pm"><span class="entry-date">December 18, 2023</span> <span class="entry-time"> - 5:45 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-12-18T17:45:53-07:00">December 18, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>More followup for my house blueprint maker. The project is now done.</p>
<figure class="wp-block-image size-full"><a href="https://za3k.github.io/ha3k-13-blueprint/"><img alt="" class="wp-image-1260" decoding="async" fetchpriority="high" height="246" sizes="(max-width: 508px) 100vw, 508px" src="https://blog.za3k.com/wp-content/uploads/2023/12/2023-12-18-194312_1920x1080_scrot-crop.png" srcset="https://blog.za3k.com/wp-content/uploads/2023/12/2023-12-18-194312_1920x1080_scrot-crop.png 508w, https://blog.za3k.com/wp-content/uploads/2023/12/2023-12-18-194312_1920x1080_scrot-crop-300x145.png 300w, https://blog.za3k.com/wp-content/uploads/2023/12/2023-12-18-194312_1920x1080_scrot-crop-150x73.png 150w, https://blog.za3k.com/wp-content/uploads/2023/12/2023-12-18-194312_1920x1080_scrot-crop-250x121.png 250w" width="508"/></a></figure>
<li>Share your finished project with a link</li>
</ul>
<p>See the demo <a href="https://za3k.github.io/ha3k-13-blueprint/">here</a>. The source code is <a href="https://github.com/za3k/ha3k-13-blueprint">on github</a>.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/art/" rel="tag">art</a>, <a href="https://blog.za3k.com/tag/followup/" rel="tag">followup</a>, <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/blueprint-maker-13-complete/" rel="bookmark" title="Permalink to Blueprint Maker (13) Complete"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: board-game-travel-kit
---
<!-- blogpost -->
-<article class="post-1123 post type-post status-publish format-standard hentry category-non-technical tag-games tag-organization" id="post-1123">
-<h1 class="entry-title">Board Game Travel Kit</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-08-17T12:20:03-07:00"> <a href="https://blog.za3k.com/board-game-travel-kit/" rel="bookmark" title="12:20 pm"><span class="entry-date">August 17, 2023</span> <span class="entry-time"> - 12:20 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-08-17T12:21:35-07:00">August 17, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I condensed some of card games into one box:</p>
<figure class="wp-block-image size-large"><a href="https://blog.za3k.com/wp-content/uploads/2023/08/cards_open-scaled.jpg"><img alt="" class="wp-image-1124" decoding="async" fetchpriority="high" height="710" sizes="(max-width: 1024px) 100vw, 1024px" src="https://blog.za3k.com/wp-content/uploads/2023/08/cards_open-1024x710.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2023/08/cards_open-1024x710.jpg 1024w, https://blog.za3k.com/wp-content/uploads/2023/08/cards_open-300x208.jpg 300w, https://blog.za3k.com/wp-content/uploads/2023/08/cards_open-768x532.jpg 768w, https://blog.za3k.com/wp-content/uploads/2023/08/cards_open-1536x1065.jpg 1536w, https://blog.za3k.com/wp-content/uploads/2023/08/cards_open-2048x1420.jpg 2048w, https://blog.za3k.com/wp-content/uploads/2023/08/cards_open-150x104.jpg 150w, https://blog.za3k.com/wp-content/uploads/2023/08/cards_open-216x150.jpg 216w" width="1024"/></a><figcaption class="wp-element-caption">Left to right: Doomlings, Star Realms, The Mind, Chrononauts, FitzIt, Are you the traitor?, Are you a werewolf?, Hanabi, Set, Icehouse/Zendo rules, regular playing cards</figcaption></figure>
<p>I’ve noticed that board game boxes tend to be a little big. I combined five into one box:</p>
<figure class="wp-block-image size-large"><a href="https://blog.za3k.com/wp-content/uploads/2023/08/box_open-scaled.jpg"><img alt="" class="wp-image-1125" decoding="async" height="834" sizes="(max-width: 1024px) 100vw, 1024px" src="https://blog.za3k.com/wp-content/uploads/2023/08/box_open-1024x834.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2023/08/box_open-1024x834.jpg 1024w, https://blog.za3k.com/wp-content/uploads/2023/08/box_open-300x244.jpg 300w, https://blog.za3k.com/wp-content/uploads/2023/08/box_open-768x626.jpg 768w, https://blog.za3k.com/wp-content/uploads/2023/08/box_open-1536x1251.jpg 1536w, https://blog.za3k.com/wp-content/uploads/2023/08/box_open-2048x1668.jpg 2048w, https://blog.za3k.com/wp-content/uploads/2023/08/box_open-150x122.jpg 150w, https://blog.za3k.com/wp-content/uploads/2023/08/box_open-184x150.jpg 184w" width="1024"/></a><figcaption class="wp-element-caption">Azul, Settlers of Catan, Clank, Concept, Nuclear War</figcaption></figure>
<figure class="wp-block-image size-large"><a href="https://blog.za3k.com/wp-content/uploads/2023/08/both_closed.jpg"><img alt="" class="wp-image-1126" decoding="async" height="843" sizes="(max-width: 1024px) 100vw, 1024px" src="https://blog.za3k.com/wp-content/uploads/2023/08/both_closed-1024x843.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2023/08/both_closed-1024x843.jpg 1024w, https://blog.za3k.com/wp-content/uploads/2023/08/both_closed-300x247.jpg 300w, https://blog.za3k.com/wp-content/uploads/2023/08/both_closed-768x632.jpg 768w, https://blog.za3k.com/wp-content/uploads/2023/08/both_closed-1536x1264.jpg 1536w, https://blog.za3k.com/wp-content/uploads/2023/08/both_closed-2048x1686.jpg 2048w, https://blog.za3k.com/wp-content/uploads/2023/08/both_closed-150x123.jpg 150w, https://blog.za3k.com/wp-content/uploads/2023/08/both_closed-182x150.jpg 182w" width="1024"/></a><figcaption class="wp-element-caption">This is “portable” if you have a car trunk, maybe! It’s heavy as heck.</figcaption></figure>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/games/" rel="tag">games</a>, <a href="https://blog.za3k.com/tag/organization/" rel="tag">organization</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/board-game-travel-kit/" rel="bookmark" title="Permalink to Board Game Travel Kit"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: capturing-video-on-debian-linux-with-the-blackmagic-intensity-pro-4k-card
---
<!-- blogpost -->
-<article class="post-462 post type-post status-publish format-standard hentry category-technical tag-blackmagic tag-linux tag-streaming" id="post-462">
-<h1 class="entry-title">Capturing video on Debian Linux with the Blackmagic Intensity Pro 4K card</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2019-08-09T00:49:39-07:00"> <a href="https://blog.za3k.com/capturing-video-on-debian-linux-with-the-blackmagic-intensity-pro-4k-card/" rel="bookmark" title="12:49 am"><span class="entry-date">August 9, 2019</span> <span class="entry-time"> - 12:49 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2020-05-17T12:55:33-07:00">May 17, 2020</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Most of this should apply for any linux system, other than the driver install step. Also, I believe most of it applies to DeckLink and Intensity cards as well.</p>
<p>My main source is <a href="https://gist.github.com/afriza/879fed4ede539a5a6501e0f046f71463">https://gist.github.com/afriza/879fed4ede539a5a6501e0f046f71463</a>. I’ve re-written for clarity and Debian.</p>
<p>Sources:</p>
<ul><li><a href="https://gist.github.com/afriza/879fed4ede539a5a6501e0f046f71463">https://gist.github.com/afriza/879fed4ede539a5a6501e0f046f71463</a></li><li><a href="https://ffmpeg.org/ffmpeg-devices.html#decklink">https://ffmpeg.org/ffmpeg-devices.html#decklink</a></li></ul>
<p></p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/blackmagic/" rel="tag">blackmagic</a>, <a href="https://blog.za3k.com/tag/linux/" rel="tag">linux</a>, <a href="https://blog.za3k.com/tag/streaming/" rel="tag">streaming</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/capturing-video-on-debian-linux-with-the-blackmagic-intensity-pro-4k-card/" rel="bookmark" title="Permalink to Capturing video on Debian Linux with the Blackmagic Intensity Pro 4K card"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: cardboard-mail-holders
---
<!-- blogpost -->
-<article class="post-248 post type-post status-publish format-standard has-post-thumbnail hentry category-non-technical tag-cardboard tag-crafts tag-lost-purposes tag-organization tag-papercrafts" id="post-248">
-<h1 class="entry-title">Cardboard mail holders</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-09-29T19:26:06-07:00"> <a href="https://blog.za3k.com/cardboard-mail-holders/" rel="bookmark" title="7:26 pm"><span class="entry-date">September 29, 2015</span> <span class="entry-time"> - 7:26 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-10-17T19:28:56-07:00">October 17, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Our house has seven people, so today I made some mail holders to put on our doors.</p>
<p> </p>
<p><a href="https://blog.za3k.com/wp-content/uploads/2015/09/cardboard_near0.5.jpg"><img alt="cardboard_near0.5" class="alignnone wp-image-250 size-large" decoding="async" fetchpriority="high" height="607" sizes="(max-width: 810px) 100vw, 810px" src="https://blog.za3k.com/wp-content/uploads/2015/09/cardboard_near0.5-1024x768.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2015/09/cardboard_near0.5-1024x768.jpg 1024w, https://blog.za3k.com/wp-content/uploads/2015/09/cardboard_near0.5-300x225.jpg 300w, https://blog.za3k.com/wp-content/uploads/2015/09/cardboard_near0.5.jpg 1632w" width="810"/></a></p>
<p>I basically had some long cardboard boxes, and cut them in half. Then I added new ends and separators in the middle.</p>
<p>I’m not sure if they’ll actually get used. Mail on the floor looks bad, but these aren’t that hot either. If you make some and want to improve the look, you can cover everything in paper or cardstock.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/cardboard/" rel="tag">cardboard</a>, <a href="https://blog.za3k.com/tag/crafts/" rel="tag">crafts</a>, <a href="https://blog.za3k.com/tag/lost-purposes/" rel="tag">lost purposes</a>, <a href="https://blog.za3k.com/tag/organization/" rel="tag">organization</a>, <a href="https://blog.za3k.com/tag/papercrafts/" rel="tag">papercrafts</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/cardboard-mail-holders/" rel="bookmark" title="Permalink to Cardboard mail holders"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: configuring-mailxs-mailrc-with-gmail
---
<!-- blogpost -->
-<article class="post-33 post type-post status-publish format-standard hentry category-technical tag-configuration tag-linux tag-mailx" id="post-33">
-<h1 class="entry-title">Configuring mailx’s .mailrc with Gmail</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2014-10-30T08:56:07-07:00"> <a href="https://blog.za3k.com/configuring-mailxs-mailrc-with-gmail/" rel="bookmark" title="8:56 am"><span class="entry-date">October 30, 2014</span> <span class="entry-time"> - 8:56 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2014-10-30T08:57:14-07:00">October 30, 2014</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Here’s how I added gmail to .mailrc for the BSD program mailx, provided by the <em>s-nail</em> package in arch.</p>
<pre>account gmail {
</pre>
<p>Replace <strong>PASS</strong> with your actual password, and <strong>example@gmail.com</strong> with your actual email. Read the documentation if you want to avoid plaintext passwords.</p>
<p>You can send mail with ‘mail -A gmail <params>’. If you have only one account, remove the first and last line and use ‘mail <params>’</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/configuration/" rel="tag">configuration</a>, <a href="https://blog.za3k.com/tag/linux/" rel="tag">linux</a>, <a href="https://blog.za3k.com/tag/mailx/" rel="tag">mailx</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/configuring-mailxs-mailrc-with-gmail/" rel="bookmark" title="Permalink to Configuring mailx’s .mailrc with Gmail"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: controlling-a-computercraft-turtle-remotely
---
<!-- blogpost -->
-<article class="post-313 post type-post status-publish format-standard has-post-thumbnail hentry category-technical tag-computercraft tag-hacks tag-minecraft-2" id="post-313">
-<h1 class="entry-title">Controlling a computercraft turtle remotely</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-10-18T18:27:48-07:00"> <a href="https://blog.za3k.com/controlling-a-computercraft-turtle-remotely/" rel="bookmark" title="6:27 pm"><span class="entry-date">October 18, 2015</span> <span class="entry-time"> - 6:27 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-11-29T23:04:07-07:00">November 29, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p><a href="https://blog.za3k.com/wp-content/uploads/2015/10/Screen-Shot-2015-10-18-at-7.16.59-PM.png"><img alt="Screen Shot 2015-10-18 at 7.16.59 PM" class="alignnone wp-image-321 size-large" decoding="async" fetchpriority="high" height="460" sizes="(max-width: 810px) 100vw, 810px" src="https://blog.za3k.com/wp-content/uploads/2015/10/Screen-Shot-2015-10-18-at-7.16.59-PM-1024x582.png" srcset="https://blog.za3k.com/wp-content/uploads/2015/10/Screen-Shot-2015-10-18-at-7.16.59-PM-1024x582.png 1024w, https://blog.za3k.com/wp-content/uploads/2015/10/Screen-Shot-2015-10-18-at-7.16.59-PM-300x170.png 300w, https://blog.za3k.com/wp-content/uploads/2015/10/Screen-Shot-2015-10-18-at-7.16.59-PM-250x142.png 250w, https://blog.za3k.com/wp-content/uploads/2015/10/Screen-Shot-2015-10-18-at-7.16.59-PM-150x85.png 150w, https://blog.za3k.com/wp-content/uploads/2015/10/Screen-Shot-2015-10-18-at-7.16.59-PM.png 1592w" width="810"/></a><a href="https://blog.za3k.com/wp-content/uploads/2015/10/Screen-Shot-2015-10-18-at-7.17.30-PM.png"><img alt="Screen Shot 2015-10-18 at 7.17.30 PM" class="aligncenter wp-image-323 size-medium" decoding="async" height="197" sizes="(max-width: 300px) 100vw, 300px" src="https://blog.za3k.com/wp-content/uploads/2015/10/Screen-Shot-2015-10-18-at-7.17.30-PM-300x197.png" srcset="https://blog.za3k.com/wp-content/uploads/2015/10/Screen-Shot-2015-10-18-at-7.17.30-PM-300x197.png 300w, https://blog.za3k.com/wp-content/uploads/2015/10/Screen-Shot-2015-10-18-at-7.17.30-PM-1024x675.png 1024w, https://blog.za3k.com/wp-content/uploads/2015/10/Screen-Shot-2015-10-18-at-7.17.30-PM-227x150.png 227w, https://blog.za3k.com/wp-content/uploads/2015/10/Screen-Shot-2015-10-18-at-7.17.30-PM-150x98.png 150w, https://blog.za3k.com/wp-content/uploads/2015/10/Screen-Shot-2015-10-18-at-7.17.30-PM.png 1330w" width="300"/></a><span id="more-313"></span></p>
<ol>
</li>
<li>Run: rlwrap ./sshbot <ID>, where <ID> is the turtle’s ID. You should be able to send commands to the computer now.</li>
</ol>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/computercraft/" rel="tag">computercraft</a>, <a href="https://blog.za3k.com/tag/hacks/" rel="tag">hacks</a>, <a href="https://blog.za3k.com/tag/minecraft-2/" rel="tag">minecraft</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/controlling-a-computercraft-turtle-remotely/" rel="bookmark" title="Permalink to Controlling a computercraft turtle remotely"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
<ol class="commentlist">
wordpress_slug: cookbook
---
<!-- blogpost -->
-<article class="post-525 post type-post status-publish format-standard has-post-thumbnail hentry category-non-technical tag-announcements tag-cooking tag-documents tag-recipe" id="post-525">
-<h1 class="entry-title">Cookbook</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2020-05-15T16:31:18-07:00"> <a href="https://blog.za3k.com/cookbook/" rel="bookmark" title="4:31 pm"><span class="entry-date">May 15, 2020</span> <span class="entry-time"> - 4:31 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2021-06-05T15:40:30-07:00">June 5, 2021</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I filled up my paper notebook I use to keep recipes. I typed it up and edited it. It’s available for free online, as a .txt or .pdf file: <a href="https://github.com/za3k/cookbook/releases">https://github.com/za3k/cookbook/releases</a></p>
<p>Note that most of these recipes are from online or printed sources. Some are written by me, family, or friends.</p>
<figure class="wp-block-image size-large"><img alt="" class="wp-image-529" decoding="async" fetchpriority="high" height="384" src="https://blog.za3k.com/wp-content/uploads/2020/05/inside.jpeg" width="512"/></figure>
<figure class="wp-block-image size-large"><img alt="" class="wp-image-530" decoding="async" height="384" src="https://blog.za3k.com/wp-content/uploads/2020/05/outside.jpeg" width="512"/></figure>
<figure class="wp-block-image size-large"><img alt="" class="wp-image-531" decoding="async" height="384" src="https://blog.za3k.com/wp-content/uploads/2020/05/toc.jpeg" width="512"/></figure>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/announcements/" rel="tag">announcements</a>, <a href="https://blog.za3k.com/tag/cooking/" rel="tag">cooking</a>, <a href="https://blog.za3k.com/tag/documents/" rel="tag">documents</a>, <a href="https://blog.za3k.com/tag/recipe/" rel="tag">recipe</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/cookbook/" rel="bookmark" title="Permalink to Cookbook"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: crawling-etiquette
---
<!-- blogpost -->
-<article class="post-594 post type-post status-publish format-standard hentry category-technical tag-programming tag-technical-advice tag-web-crawling" id="post-594">
-<h1 class="entry-title">Crawling Etiquette</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2021-06-05T15:29:36-07:00"> <a href="https://blog.za3k.com/crawling-etiquette/" rel="bookmark" title="3:29 pm"><span class="entry-date">June 5, 2021</span> <span class="entry-time"> - 3:29 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2021-06-05T15:40:05-07:00">June 5, 2021</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I participate in a mentoring program, and recently one of the people I mentor asked me about whether it was okay to crawl something. I thought I would share my response, which is posted below nearly verbatim.</p>
<p>For this article, I’m skipping the subject of how to scrape websites (as off-topic), or how to avoid bans.</p>
<p>What a company will do once you publicly post all the information on their site is another matter, and I have less advice there. There are several sites that offer information about historical Amazon prices, for what that’s worth.</p>
<p>You may find <a href="https://privacy-pc.com/articles/that-awesome-time-i-was-sued-for-two-billion-dollars-jason-scotts-extraordinary-experience.html">this article</a> interesting (but unhelpful) if you are concerned about being sued. Jason Scott is one of the main technical people at the Internet Archive, and people sometimes object to things he posts online.</p>
<p>In my personal opinion, suing people or bringing criminal charges does not work in general, because most people scraping do not live in the USA, and may use technical means to disguise who they are. Scrapers may be impossible to sue or charge with anything. In short, a policy of trying to sue people who scape your site, will result in your site still being scraped. Also, most people running a site don’t have the resources to sue anyone in any case. So you shouldn’t expect this to be a common outcome, but basically a small percentage of people (mostly crackpots) and companies (RIAA and publishers) may.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/programming/" rel="tag">programming</a>, <a href="https://blog.za3k.com/tag/technical-advice/" rel="tag">technical advice</a>, <a href="https://blog.za3k.com/tag/web-crawling/" rel="tag">web crawling</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/crawling-etiquette/" rel="bookmark" title="Permalink to Crawling Etiquette"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: cron-email-and-sending-email-to-only-one-address
---
<!-- blogpost -->
-<article class="post-535 post type-post status-publish format-standard hentry category-technical tag-cron tag-email tag-linux tag-system-administration" id="post-535">
-<h1 class="entry-title">Cron email, and sending email to only one address</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2020-05-18T22:13:02-07:00"> <a href="https://blog.za3k.com/cron-email-and-sending-email-to-only-one-address/" rel="bookmark" title="10:13 pm"><span class="entry-date">May 18, 2020</span> <span class="entry-time"> - 10:13 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2020-05-18T22:16:46-07:00">May 18, 2020</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>So you want to know when your monitoring system fails, or your cron jobs don’t run? Add this to your crontab:</p>
<pre class="wp-block-code"><code>MAILTO=me@me.com</code></pre>
echo "`hostname`.za3k.com" | sudo tee /etc/nullmailer/helohost # required to connect to my server. otherwise default to 'me'
echo "smtp.za3k.com smtp --port=587 --starttls" | sudo tee /etc/nullmailer/remotes && sudo chmod 600 /etc/nullmailer/remotes</code></pre>
<p>Now just run <code>echo "Subject: sendmail test" | /usr/lib/sendmail -v admin@za3k.com</code> to test and you’re done!</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/cron/" rel="tag">cron</a>, <a href="https://blog.za3k.com/tag/email/" rel="tag">email</a>, <a href="https://blog.za3k.com/tag/linux/" rel="tag">linux</a>, <a href="https://blog.za3k.com/tag/system-administration/" rel="tag">system administration</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/cron-email-and-sending-email-to-only-one-address/" rel="bookmark" title="Permalink to Cron email, and sending email to only one address"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: dd-spells-srd-vs-5e-players-handbook
---
<!-- blogpost -->
-<article class="post-997 post type-post status-publish format-standard hentry category-non-technical tag-dungeons-and-dragons tag-games tag-research" id="post-997">
-<h1 class="entry-title">D&D Spells: SRD vs 5e Player’s Handbook</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-03-18T15:23:11-07:00"> <a href="https://blog.za3k.com/dd-spells-srd-vs-5e-players-handbook/" rel="bookmark" title="3:23 pm"><span class="entry-date">March 18, 2023</span> <span class="entry-time"> - 3:23 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-04-04T11:34:34-07:00">April 4, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I’ve been working on a spell guide for D&D games. During the process, I researched the differences between the Dungeons and Dragons <a href="https://www.amazon.com/Players-Handbook-Dungeons-Dragons-Wizards/dp/0786965606">5e Player’s Handbook</a> (PHB) and the <a href="https://dnd.wizards.com/resources/systems-reference-document">5e System Reference Document</a> (SRD).</p>
<p>For those that don’t know, in 3e Wizards of the Coast released the core rules of the game for free. They’ve continued to do so for 3.5, 4, and 5e. The 5e rules were released under Creative Commons recently (thanks!), in response to some community backlash over proposed licensing changes (eek!).</p>
<li><em>mordenkainen’s sword </em>becomes <em>arcane sword</em></li>
<li><em>nystul’s magic aura</em> becomes <em>arcanist’s magic aura</em></li>
</ul>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/dungeons-and-dragons/" rel="tag">dungeons and dragons</a>, <a href="https://blog.za3k.com/tag/games/" rel="tag">games</a>, <a href="https://blog.za3k.com/tag/research/" rel="tag">research</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/dd-spells-srd-vs-5e-players-handbook/" rel="bookmark" title="Permalink to D&D Spells: SRD vs 5e Player’s Handbook"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: dd-story-time
---
<!-- blogpost -->
-<article class="post-1114 post type-post status-publish format-standard hentry category-non-technical tag-roleplaying" id="post-1114">
-<h1 class="entry-title">D&D Story Time</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-07-20T09:17:10-07:00"> <a href="https://blog.za3k.com/dd-story-time/" rel="bookmark" title="9:17 am"><span class="entry-date">July 20, 2023</span> <span class="entry-time"> - 9:17 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-07-20T09:17:10-07:00">July 20, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>In my recent campaign, I had a handout for the players. I took it out, and on a whim, I thought <em>« a handout is boring</em> ».</p>
<p>I tore it into quarters in front of their eyes. I wrote on back of the handout pieces “<strong>5</strong>“, “<strong>10</strong>“, “<strong>15</strong>“, “<strong>20</strong>“. <em>“Make me an investigation check,”</em> I intoned in my best DM voice. “<em>I will grant you any pieces under your roll.</em>“</p>
<figure class="wp-block-image size-medium"><a href="https://blog.za3k.com/wp-content/uploads/2023/07/scraps.jpg"><img alt="" class="wp-image-1115" decoding="async" fetchpriority="high" height="300" sizes="(max-width: 287px) 100vw, 287px" src="https://blog.za3k.com/wp-content/uploads/2023/07/scraps-287x300.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2023/07/scraps-287x300.jpg 287w, https://blog.za3k.com/wp-content/uploads/2023/07/scraps-979x1024.jpg 979w, https://blog.za3k.com/wp-content/uploads/2023/07/scraps-768x804.jpg 768w, https://blog.za3k.com/wp-content/uploads/2023/07/scraps-1468x1536.jpg 1468w, https://blog.za3k.com/wp-content/uploads/2023/07/scraps-1957x2048.jpg 1957w, https://blog.za3k.com/wp-content/uploads/2023/07/scraps-143x150.jpg 143w" width="287"/></a></figure>
<p>They got 23, so I gave them all four scraps. They taped it back together and got the whole handout.</p>
<p>And they remembered that handout. They told players <em>in other campaigns</em> about the handout.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/roleplaying/" rel="tag">roleplaying</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/dd-story-time/" rel="bookmark" title="Permalink to D&D Story Time"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: ddos
---
<!-- blogpost -->
-<article class="post-402 post type-post status-publish format-standard hentry category-non-technical tag-meta tag-websites" id="post-402">
-<h1 class="entry-title">DDoS</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2016-06-20T17:27:24-07:00"> <a href="https://blog.za3k.com/ddos/" rel="bookmark" title="5:27 pm"><span class="entry-date">June 20, 2016</span> <span class="entry-time"> - 5:27 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2020-05-17T12:56:44-07:00">May 17, 2020</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>za3k.com was the site of a DDoS attack. I’m pretty sure this was because my wordpress installation was compromised, and the hacker who took control of my server was herself DDoSed.</p>
<p>More updates to come, but the short story is that I’ll be formalizing my install and eventually containerizing + hardening everything</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/meta/" rel="tag">meta</a>, <a href="https://blog.za3k.com/tag/websites/" rel="tag">websites</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/ddos/" rel="bookmark" title="Permalink to DDoS"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
<ol class="commentlist">
wordpress_slug: default-twitter-icons
---
<!-- blogpost -->
-<article class="post-119 post type-post status-publish format-standard hentry category-non-technical tag-design tag-icon tag-informative tag-twitter" id="post-119">
-<h1 class="entry-title">Default twitter icons</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-03-08T15:02:31-07:00"> <a href="https://blog.za3k.com/default-twitter-icons/" rel="bookmark" title="3:02 pm"><span class="entry-date">March 8, 2015</span> <span class="entry-time"> - 3:02 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-03-08T15:02:59-07:00">March 8, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>The default twitter icon is an egg. There are six available. One is chosen at random for each new user.</p>
<p><a href="https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_1_bigger.png"><img alt="default_profile_1_bigger" class="alignnone size-full wp-image-120" decoding="async" height="73" src="https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_1_bigger.png" width="73"/></a> <a href="https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_2_bigger.png"><img alt="default_profile_2_bigger" class="alignnone size-medium wp-image-121" decoding="async" height="73" src="https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_2_bigger.png" width="73"/></a> <a href="https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_3_bigger.png"><img alt="default_profile_3_bigger" class="alignnone size-medium wp-image-122" decoding="async" height="73" src="https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_3_bigger.png" width="73"/></a> <a href="https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_4_bigger.png"><img alt="default_profile_4_bigger" class="alignnone size-medium wp-image-123" decoding="async" height="73" loading="lazy" src="https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_4_bigger.png" width="73"/></a> <a href="https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_5_bigger.png"><img alt="default_profile_5_bigger" class="alignnone size-medium wp-image-124" decoding="async" height="73" loading="lazy" src="https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_5_bigger.png" width="73"/></a> <a href="https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_6_bigger.png"><img alt="default_profile_6_bigger" class="alignnone size-full wp-image-125" decoding="async" height="73" loading="lazy" src="https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_6_bigger.png" width="73"/></a></p>
</ol>
<p>Large versions of those icons:</p>
<p><a href="https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_1.png"><img alt="default_profile_1" class="alignnone size-medium wp-image-126" decoding="async" height="300" loading="lazy" sizes="(max-width: 300px) 100vw, 300px" src="https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_1-300x300.png" srcset="https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_1-300x300.png 300w, https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_1-150x150.png 150w, https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_1.png 500w" width="300"/></a> <a href="https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_2.png"><img alt="default_profile_2" class="alignnone size-medium wp-image-127" decoding="async" height="300" loading="lazy" sizes="(max-width: 300px) 100vw, 300px" src="https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_2-300x300.png" srcset="https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_2-300x300.png 300w, https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_2-150x150.png 150w, https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_2.png 500w" width="300"/></a> <a href="https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_3.png"><img alt="default_profile_3" class="alignnone size-medium wp-image-128" decoding="async" height="300" loading="lazy" sizes="(max-width: 300px) 100vw, 300px" src="https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_3-300x300.png" srcset="https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_3-300x300.png 300w, https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_3-150x150.png 150w, https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_3.png 500w" width="300"/></a> <a href="https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_4.png"><img alt="default_profile_4" class="alignnone size-medium wp-image-129" decoding="async" height="300" loading="lazy" sizes="(max-width: 300px) 100vw, 300px" src="https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_4-300x300.png" srcset="https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_4-300x300.png 300w, https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_4-150x150.png 150w, https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_4.png 500w" width="300"/></a> <a href="https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_5.png"><img alt="default_profile_5" class="alignnone size-medium wp-image-130" decoding="async" height="300" loading="lazy" sizes="(max-width: 300px) 100vw, 300px" src="https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_5-300x300.png" srcset="https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_5-300x300.png 300w, https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_5-150x150.png 150w, https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_5.png 500w" width="300"/></a> <a href="https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_6.png"><img alt="default_profile_6" class="alignnone size-medium wp-image-131" decoding="async" height="300" loading="lazy" sizes="(max-width: 300px) 100vw, 300px" src="https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_6-300x300.png" srcset="https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_6-300x300.png 300w, https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_6-150x150.png 150w, https://blog.za3k.com/wp-content/uploads/2015/03/default_profile_6.png 500w" width="300"/></a></p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/design/" rel="tag">design</a>, <a href="https://blog.za3k.com/tag/icon/" rel="tag">icon</a>, <a href="https://blog.za3k.com/tag/informative/" rel="tag">informative</a>, <a href="https://blog.za3k.com/tag/twitter/" rel="tag">twitter</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/default-twitter-icons/" rel="bookmark" title="Permalink to Default twitter icons"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: dependency-resolution-in-javascript
---
<!-- blogpost -->
-<article class="post-353 post type-post status-publish format-standard hentry category-technical tag-control-flow tag-javascript tag-node tag-npm" id="post-353">
-<h1 class="entry-title">Dependency Resolution in Javascript</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-11-02T18:36:11-07:00"> <a href="https://blog.za3k.com/dependency-resolution-in-javascript/" rel="bookmark" title="6:36 pm"><span class="entry-date">November 2, 2015</span> <span class="entry-time"> - 6:36 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-11-02T18:36:57-07:00">November 2, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Sometimes I have a bunch of dependencies. Say, UI components that need other UI components to be loaded. I’d really just like to have everything declare dependencies and magically everything is loaded in the right order. It turns out that if use “require” type files this isn’t bad (google “dependency injection”), but for anything other than code loading you’re a bit lost. I did find <a href="https://github.com/jriecken/dependency-graph">dependency-graph</a>, but this requires the full list of components to run. I wanted a version would you could add components whenever you wanted–an <a href="https://en.wikipedia.org/wiki/Online_algorithm">online</a> framework.</p>
<p>My take is here: <a href="https://github.com/vanceza/dependencies-online">https://github.com/vanceza/dependencies-online</a></p>
<p>It has no requirements, and is available on npm as <strong>dependencies-online</strong>.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/control-flow/" rel="tag">control flow</a>, <a href="https://blog.za3k.com/tag/javascript/" rel="tag">javascript</a>, <a href="https://blog.za3k.com/tag/node/" rel="tag">node</a>, <a href="https://blog.za3k.com/tag/npm/" rel="tag">npm</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/dependency-resolution-in-javascript/" rel="bookmark" title="Permalink to Dependency Resolution in Javascript"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: diy-hard-drive-carrying-case
---
<!-- blogpost -->
-<article class="post-418 post type-post status-publish format-standard has-post-thumbnail hentry category-non-technical tag-carrying-case tag-case tag-diy tag-eva-foam tag-foam tag-hard-drive tag-hardware tag-hdd" id="post-418">
-<h1 class="entry-title">DIY Hard drive carrying case</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2017-07-04T16:29:56-07:00"> <a href="https://blog.za3k.com/diy-hard-drive-carrying-case/" rel="bookmark" title="4:29 pm"><span class="entry-date">July 4, 2017</span> <span class="entry-time"> - 4:29 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2017-07-04T16:29:56-07:00">July 4, 2017</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Today’s project was a hard drive carrying case. I wanted something to securely store hard drives. When I looked around on ebay and amazon, I saw some <a href="https://www.amazon.com/gp/product/B007OXK0YM/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&tag=za3k-20&camp=1789&creative=9325&linkCode=as2&creativeASIN=B007OXK0YM&linkId=350884a6d81cab8bc2fd02af3ba9ce42">nice cases</a> and some crappy plastic molded ones. Even the terrible ones were at least $50, so I made my own.</p>
<p><a href="https://blog.za3k.com/wp-content/uploads/2017/07/1.jpg"><img alt="HDD Carrying Case Exerior" class="aligncenter size-full wp-image-421" decoding="async" fetchpriority="high" height="1996" src="https://blog.za3k.com/wp-content/uploads/2017/07/1.jpg" width="3261"/></a></p>
<p>I bought a used ammo case at the rather excellent local army surplus store. Then I padded all sides. I had spare <a href="https://en.wikipedia.org/wiki/Ethylene-vinyl_acetate">EVA foam</a> “puzzle piece” style mats from a gym setup lying around. I cut out the pieces with scissors. That’s it. I was expecting more steps, but nothing needed glued in place. I was planning on adding inserts for the empty slots, but it seems secure enough. If you’re making one, you could also glue the top onto the lid, so you don’t have to take it out manually.</p>
<p><a href="https://blog.za3k.com/wp-content/uploads/2017/07/2.v01.jpg"><img alt="HDD Case Interior" class="alignnone size-full wp-image-420" decoding="async" height="1146" src="https://blog.za3k.com/wp-content/uploads/2017/07/2.v01.jpg" width="2174"/></a></p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/carrying-case/" rel="tag">carrying case</a>, <a href="https://blog.za3k.com/tag/case/" rel="tag">case</a>, <a href="https://blog.za3k.com/tag/diy/" rel="tag">diy</a>, <a href="https://blog.za3k.com/tag/eva-foam/" rel="tag">eva foam</a>, <a href="https://blog.za3k.com/tag/foam/" rel="tag">foam</a>, <a href="https://blog.za3k.com/tag/hard-drive/" rel="tag">hard drive</a>, <a href="https://blog.za3k.com/tag/hardware/" rel="tag">hardware</a>, <a href="https://blog.za3k.com/tag/hdd/" rel="tag">hdd</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/diy-hard-drive-carrying-case/" rel="bookmark" title="Permalink to DIY Hard drive carrying case"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: diy-keyboards-and-how-keyboards-work
---
<!-- blogpost -->
-<article class="post-1059 post type-post status-publish format-standard hentry category-technical tag-hacks tag-hardware tag-zorchpad" id="post-1059">
-<h1 class="entry-title">DIY keyboards (and how keyboards work)</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-06-09T13:28:55-07:00"> <a href="https://blog.za3k.com/diy-keyboards-and-how-keyboards-work/" rel="bookmark" title="1:28 pm"><span class="entry-date">June 9, 2023</span> <span class="entry-time"> - 1:28 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-06-12T13:20:11-07:00">June 12, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I’ve been pondering simple input methods for microcontrollers. One obvious idea is, a keyboard! But for some reason, my USB keyboards use a staggering amount of power compared to my microcontrollers–1W of power for my mechanical keyboards, maybe 0.1W for the regular ones.</p>
<p>Let’s look inside a commercial keyboard, and see if we can hook up to it:</p>
<figure class="wp-block-image size-large"><a href="https://blog.za3k.com/wp-content/uploads/2023/06/graphite_parts-scaled.jpg"><img alt="" class="wp-image-1065" data-id="1065" decoding="async" height="442" loading="lazy" sizes="(max-width: 1024px) 100vw, 1024px" src="https://blog.za3k.com/wp-content/uploads/2023/06/graphite_parts-1024x442.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2023/06/graphite_parts-1024x442.jpg 1024w, https://blog.za3k.com/wp-content/uploads/2023/06/graphite_parts-300x129.jpg 300w, https://blog.za3k.com/wp-content/uploads/2023/06/graphite_parts-768x331.jpg 768w, https://blog.za3k.com/wp-content/uploads/2023/06/graphite_parts-1536x662.jpg 1536w, https://blog.za3k.com/wp-content/uploads/2023/06/graphite_parts-2048x883.jpg 2048w, https://blog.za3k.com/wp-content/uploads/2023/06/graphite_parts-150x65.jpg 150w, https://blog.za3k.com/wp-content/uploads/2023/06/graphite_parts-250x108.jpg 250w" width="1024"/></a></figure>
<figure class="wp-block-image size-large"><a href="https://blog.za3k.com/wp-content/uploads/2023/06/graphite_done-scaled.jpg"><img alt="" class="wp-image-1066" data-id="1066" decoding="async" height="666" loading="lazy" sizes="(max-width: 1024px) 100vw, 1024px" src="https://blog.za3k.com/wp-content/uploads/2023/06/graphite_done-1024x666.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2023/06/graphite_done-1024x666.jpg 1024w, https://blog.za3k.com/wp-content/uploads/2023/06/graphite_done-300x195.jpg 300w, https://blog.za3k.com/wp-content/uploads/2023/06/graphite_done-768x499.jpg 768w, https://blog.za3k.com/wp-content/uploads/2023/06/graphite_done-1536x999.jpg 1536w, https://blog.za3k.com/wp-content/uploads/2023/06/graphite_done-2048x1331.jpg 2048w, https://blog.za3k.com/wp-content/uploads/2023/06/graphite_done-150x98.jpg 150w, https://blog.za3k.com/wp-content/uploads/2023/06/graphite_done-231x150.jpg 231w" width="1024"/></a></figure>
</figure>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/hacks/" rel="tag">hacks</a>, <a href="https://blog.za3k.com/tag/hardware/" rel="tag">hardware</a>, <a href="https://blog.za3k.com/tag/zorchpad/" rel="tag">zorchpad</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/diy-keyboards-and-how-keyboards-work/" rel="bookmark" title="Permalink to DIY keyboards (and how keyboards work)"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
<ol class="commentlist">
wordpress_slug: domain-names-for-sale
---
<!-- blogpost -->
-<article class="post-109 post type-post status-publish format-standard hentry category-non-technical tag-domain-names tag-offers" id="post-109">
-<h1 class="entry-title">Domain names for sale</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-01-22T21:32:15-07:00"> <a href="https://blog.za3k.com/domain-names-for-sale/" rel="bookmark" title="9:32 pm"><span class="entry-date">January 22, 2015</span> <span class="entry-time"> - 9:32 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-04-29T00:43:52-07:00">April 29, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>For sale: <a class="twitter-timeline-link" href="http://hotw.ink/" style="color: #0084b4;">hotw.ink</a><span style="color: #292f33;">, </span><a class="twitter-timeline-link" href="http://dripbrew.coffee/" style="color: #0084b4;">dripbrew.coffee</a><span style="color: #292f33;">, </span><a class="twitter-timeline-link" href="http://brewed.coffee/" style="color: #0084b4;">brewed.coffee</a>, <a href="http://forget.io">forget.io</a></p>
<p>Contact me (make a comment or email) with offers.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/domain-names/" rel="tag">domain names</a>, <a href="https://blog.za3k.com/tag/offers/" rel="tag">offers</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/domain-names-for-sale/" rel="bookmark" title="Permalink to Domain names for sale"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: dungeon-master-ii-spell-runes
---
<!-- blogpost -->
-<article class="post-1107 post type-post status-publish format-standard hentry category-non-technical tag-art tag-video-games" id="post-1107">
-<h1 class="entry-title">Dungeon Master II Spell Runes</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-07-17T13:58:49-07:00"> <a href="https://blog.za3k.com/dungeon-master-ii-spell-runes/" rel="bookmark" title="1:58 pm"><span class="entry-date">July 17, 2023</span> <span class="entry-time"> - 1:58 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-07-17T13:58:50-07:00">July 17, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I’m a fan of the game <a href="https://en.wikipedia.org/wiki/Dungeon_Master_II:_The_Legend_of_Skullkeep">Dungeon Master II</a> (1993). In fact, I’m planning to get a tattoo of the rune system. So I looked around for a reference image. Here’s one from the game manual:</p>
<figure class="wp-block-image size-full is-resized"><a href="https://blog.za3k.com/wp-content/uploads/2023/07/glyphs-detailed.gif"><img alt="" class="wp-image-1112" decoding="async" fetchpriority="high" height="400" src="https://blog.za3k.com/wp-content/uploads/2023/07/glyphs-detailed.gif" width="303"/></a></figure>
<p>But there’s one problem–an entire row of runes is missing. Here’s a corrected one I made.</p>
<figure class="wp-block-image size-full"><a href="https://blog.za3k.com/wp-content/uploads/2023/07/dm2runes-2.png"><img alt="" class="wp-image-1110" decoding="async" height="608" sizes="(max-width: 360px) 100vw, 360px" src="https://blog.za3k.com/wp-content/uploads/2023/07/dm2runes-2.png" srcset="https://blog.za3k.com/wp-content/uploads/2023/07/dm2runes-2.png 360w, https://blog.za3k.com/wp-content/uploads/2023/07/dm2runes-2-178x300.png 178w, https://blog.za3k.com/wp-content/uploads/2023/07/dm2runes-2-89x150.png 89w" width="360"/></a></figure>
<figure class="wp-block-image size-full"><a href="https://blog.za3k.com/wp-content/uploads/2023/07/just_runes.png"><img alt="" class="wp-image-1111" decoding="async" height="412" loading="lazy" sizes="(max-width: 720px) 100vw, 720px" src="https://blog.za3k.com/wp-content/uploads/2023/07/just_runes.png" srcset="https://blog.za3k.com/wp-content/uploads/2023/07/just_runes.png 720w, https://blog.za3k.com/wp-content/uploads/2023/07/just_runes-300x172.png 300w, https://blog.za3k.com/wp-content/uploads/2023/07/just_runes-150x86.png 150w, https://blog.za3k.com/wp-content/uploads/2023/07/just_runes-250x143.png 250w" width="720"/></a></figure>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/art/" rel="tag">art</a>, <a href="https://blog.za3k.com/tag/video-games/" rel="tag">video games</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/dungeon-master-ii-spell-runes/" rel="bookmark" title="Permalink to Dungeon Master II Spell Runes"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: e-ink-laptop
---
<!-- blogpost -->
-<article class="post-801 post type-post status-publish format-standard hentry category-non-technical category-technical tag-eink tag-electronics tag-physical tag-prototype" id="post-801">
-<h1 class="entry-title">e-ink “laptop”</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-10-12T15:45:27-07:00"> <a href="https://blog.za3k.com/e-ink-laptop/" rel="bookmark" title="3:45 pm"><span class="entry-date">October 12, 2022</span> <span class="entry-time"> - 3:45 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-10-13T10:30:55-07:00">October 13, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I’ve been prototyping an e-ink laptop.</p>
<figure class="wp-block-image size-large"><a href="https://blog.za3k.com/wp-content/uploads/2022/10/front_view_open-scaled.jpg"><img alt="a wooden box with a keyboard inside and an e-ink screen mounted to it" class="wp-image-802" decoding="async" fetchpriority="high" height="768" sizes="(max-width: 1024px) 100vw, 1024px" src="https://blog.za3k.com/wp-content/uploads/2022/10/front_view_open-1024x768.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2022/10/front_view_open-1024x768.jpg 1024w, https://blog.za3k.com/wp-content/uploads/2022/10/front_view_open-300x225.jpg 300w, https://blog.za3k.com/wp-content/uploads/2022/10/front_view_open-768x576.jpg 768w, https://blog.za3k.com/wp-content/uploads/2022/10/front_view_open-1536x1152.jpg 1536w, https://blog.za3k.com/wp-content/uploads/2022/10/front_view_open-2048x1536.jpg 2048w, https://blog.za3k.com/wp-content/uploads/2022/10/front_view_open-150x113.jpg 150w, https://blog.za3k.com/wp-content/uploads/2022/10/front_view_open-200x150.jpg 200w" width="1024"/></a></figure>
<p>Power budget (at 5V):</p>
<ul><li>Keyboard: 500mW. Other USB keyboards use zero to within my measurement abilities.</li><li>Screen: 0-250mW when updating. Hard to measure.</li><li>Pi 3: 2000mW. I have the wifi chip enabled (the default) but I’m not actively connected to wifi.</li><li>Pi Zero W: 650mW</li></ul>
<p>A real-life test showed 5-6 hour battery life. Theory says (13Wh/battery * 4 batteries / 2.7 watts)=20 hours battery life. I’m investigating the discrepancy. In theory, swapping for a Pi Zero W and a better keyboard would give 72-hour battery life.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/eink/" rel="tag">eink</a>, <a href="https://blog.za3k.com/tag/electronics/" rel="tag">electronics</a>, <a href="https://blog.za3k.com/tag/physical/" rel="tag">physical</a>, <a href="https://blog.za3k.com/tag/prototype/" rel="tag">prototype</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/e-ink-laptop/" rel="bookmark" title="Permalink to e-ink “laptop”"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: easel-toy
---
<!-- blogpost -->
-<article class="post-1130 post type-post status-publish format-standard hentry category-non-technical tag-godot tag-video-games" id="post-1130">
-<h1 class="entry-title">Easel Toy</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-08-28T10:43:52-07:00"> <a href="https://blog.za3k.com/easel-toy/" rel="bookmark" title="10:43 am"><span class="entry-date">August 28, 2023</span> <span class="entry-time"> - 10:43 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-08-28T10:45:03-07:00">August 28, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>My friend Callen taught me some Godot, and we made an <a href="https://za3k.com/archive/easel/Cards_on_Slots.html">Easel Toy</a>. You combine colors to make other colors. Nothing fancy.</p>
<figure class="wp-block-image size-large"><a href="https://za3k.com/archive/easel/Cards_on_Slots.html"><img alt="" class="wp-image-1131" decoding="async" fetchpriority="high" height="648" sizes="(max-width: 1024px) 100vw, 1024px" src="https://blog.za3k.com/wp-content/uploads/2023/08/2023-08-28-134208_1920x1080_scrot-crop-1024x648.png" srcset="https://blog.za3k.com/wp-content/uploads/2023/08/2023-08-28-134208_1920x1080_scrot-crop-1024x648.png 1024w, https://blog.za3k.com/wp-content/uploads/2023/08/2023-08-28-134208_1920x1080_scrot-crop-300x190.png 300w, https://blog.za3k.com/wp-content/uploads/2023/08/2023-08-28-134208_1920x1080_scrot-crop-768x486.png 768w, https://blog.za3k.com/wp-content/uploads/2023/08/2023-08-28-134208_1920x1080_scrot-crop-150x95.png 150w, https://blog.za3k.com/wp-content/uploads/2023/08/2023-08-28-134208_1920x1080_scrot-crop-237x150.png 237w, https://blog.za3k.com/wp-content/uploads/2023/08/2023-08-28-134208_1920x1080_scrot-crop.png 1038w" width="1024"/></a></figure>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/godot/" rel="tag">godot</a>, <a href="https://blog.za3k.com/tag/video-games/" rel="tag">video games</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/easel-toy/" rel="bookmark" title="Permalink to Easel Toy"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: encrypted-root-on-debian-part-2-unattended-boot
---
<!-- blogpost -->
-<article class="post-630 post type-post status-publish format-standard hentry category-technical tag-debian tag-linux tag-system-administration" id="post-630">
-<h1 class="entry-title">Encrypted root on debian part 2: unattended boot</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2021-06-11T17:50:31-07:00"> <a href="https://blog.za3k.com/encrypted-root-on-debian-part-2-unattended-boot/" rel="bookmark" title="5:50 pm"><span class="entry-date">June 11, 2021</span> <span class="entry-time"> - 5:50 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2021-06-11T18:12:38-07:00">June 11, 2021</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I want my debian boot to work as follows:</p>
<ol><li>If it’s in my house, it can boot without my being there. To make that happen, I’ll put the root disk key on a USB stick, which I keep in the computer.</li><li>If it’s not in my house, it needs a password to boot. This is the normal boot process.</li></ol>
<p>Finally, re-generate your initramfs. I recommend either having a live USB or keeping a backup initramfs.</p>
<pre class="wp-block-code"><code>sudo update-initramfs -u</code></pre>
<p>[1] This post is loosely based on a chain of tutorials based on each other, including <a href="https://www.oxygenimpaired.com/ubuntu-with-grub2-luks-encrypted-lvm-root-hidden-usb-keyfile">this</a><br/>[2] However, those collectively looked both out of date and like they were written without true understanding, and I wanted to clean up the mess. More definitive information was sourced from the actual <a href="https://cryptsetup-team.pages.debian.net/cryptsetup/README.initramfs.html">cryptsetup</a> documentation.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/debian/" rel="tag">debian</a>, <a href="https://blog.za3k.com/tag/linux/" rel="tag">linux</a>, <a href="https://blog.za3k.com/tag/system-administration/" rel="tag">system administration</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/encrypted-root-on-debian-part-2-unattended-boot/" rel="bookmark" title="Permalink to Encrypted root on debian part 2: unattended boot"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: etherpad
---
<!-- blogpost -->
-<article class="post-24 post type-post status-publish format-standard hentry category-non-technical" id="post-24">
-<h1 class="entry-title">Etherpad</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2014-10-19T12:19:32-07:00"> <a href="https://blog.za3k.com/etherpad/" rel="bookmark" title="12:19 pm"><span class="entry-date">October 19, 2014</span> <span class="entry-time"> - 12:19 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2014-10-30T02:15:47-07:00">October 30, 2014</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I host an <a href="https://etherpad.za3k.com">etherpad</a>, which I just made public. You can make your own notes and edit them.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_bookmark">Bookmark the <a href="https://blog.za3k.com/etherpad/" rel="bookmark" title="Permalink to Etherpad">permalink</a>. </span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: even-more-uri-handlers-in-linux
---
<!-- blogpost -->
-<article class="post-1403 post type-post status-publish format-standard hentry category-technical tag-linux" id="post-1403">
-<h1 class="entry-title">Even more URI handlers in Linux</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2024-06-18T16:57:08-07:00"> <a href="https://blog.za3k.com/even-more-uri-handlers-in-linux/" rel="bookmark" title="4:57 pm"><span class="entry-date">June 18, 2024</span> <span class="entry-time"> - 4:57 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2024-06-18T17:01:53-07:00">June 18, 2024</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Sometimes Linux wants to open files. I mostly use the command line, so I wrote some helper programs to open things in terminals.</p>
<ul>
<li><code>open-directory</code> opens a terminal with that working directory. I set it as my program to open all directories.</li>
</ul>
<p>They’re both available in <a href="https://github.com/za3k/short-programs?tab=readme-ov-file#open-directorytext-file">short-programs</a>. Both default to xterm.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/linux/" rel="tag">linux</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/even-more-uri-handlers-in-linux/" rel="bookmark" title="Permalink to Even more URI handlers in Linux"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: fabric1-aur-package
---
<!-- blogpost -->
-<article class="post-542 post type-post status-publish format-standard hentry category-technical tag-fabric tag-linux tag-open-source" id="post-542">
-<h1 class="entry-title">fabric1 AUR package</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2020-06-04T18:30:31-07:00"> <a href="https://blog.za3k.com/fabric1-aur-package/" rel="bookmark" title="6:30 pm"><span class="entry-date">June 4, 2020</span> <span class="entry-time"> - 6:30 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2021-06-05T15:38:23-07:00">June 5, 2021</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Fabric is a system administration tool used to run commands on remote machines over SSH. You program it using python. In 2018, Fabric 2 came out. In a lot of ways it’s better, but it’s incompatible, and removes some features I really need. I talked to the Fabric dev (bitprophet) and he seemed on board with keeping a Fabric 1 package around (and maybe renaming the current package to Fabric 2).</p>
<p>Here’s an arch package: <a href="https://aur.archlinux.org/packages/fabric1/">https://aur.archlinux.org/packages/fabric1/</a></p>
<p>Currently Fabric 1 runs only on Python2. But there was a project to port it to Python 3 (confusingly named fabric3), which is currently attempting to merge into mainline fabric. Once that’s done, I’m hoping to see a ‘fabric1’ and ‘fabric2’ package in all the main distros.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/fabric/" rel="tag">fabric</a>, <a href="https://blog.za3k.com/tag/linux/" rel="tag">linux</a>, <a href="https://blog.za3k.com/tag/open-source/" rel="tag">open source</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/fabric1-aur-package/" rel="bookmark" title="Permalink to fabric1 AUR package"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: first-aid-kit
---
<!-- blogpost -->
-<article class="post-1016 post type-post status-publish format-standard hentry category-non-technical tag-first-aid" id="post-1016">
-<h1 class="entry-title">First Aid Kit</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-04-27T14:50:28-07:00"> <a href="https://blog.za3k.com/first-aid-kit/" rel="bookmark" title="2:50 pm"><span class="entry-date">April 27, 2023</span> <span class="entry-time"> - 2:50 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-05-02T14:28:51-07:00">May 2, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<figure class="wp-block-image size-large"><a href="https://blog.za3k.com/wp-content/uploads/2023/04/PXL_20221014_050139562-crop-scaled.jpg"><img alt="" class="wp-image-1018" decoding="async" fetchpriority="high" height="713" sizes="(max-width: 1024px) 100vw, 1024px" src="https://blog.za3k.com/wp-content/uploads/2023/04/PXL_20221014_050139562-crop-1024x713.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2023/04/PXL_20221014_050139562-crop-1024x713.jpg 1024w, https://blog.za3k.com/wp-content/uploads/2023/04/PXL_20221014_050139562-crop-300x209.jpg 300w, https://blog.za3k.com/wp-content/uploads/2023/04/PXL_20221014_050139562-crop-768x535.jpg 768w, https://blog.za3k.com/wp-content/uploads/2023/04/PXL_20221014_050139562-crop-1536x1070.jpg 1536w, https://blog.za3k.com/wp-content/uploads/2023/04/PXL_20221014_050139562-crop-2048x1427.jpg 2048w, https://blog.za3k.com/wp-content/uploads/2023/04/PXL_20221014_050139562-crop-150x105.jpg 150w, https://blog.za3k.com/wp-content/uploads/2023/04/PXL_20221014_050139562-crop-215x150.jpg 215w" width="1024"/></a></figure>
<figure class="wp-block-image size-large"><a href="https://blog.za3k.com/wp-content/uploads/2023/04/PXL_20221014_050159341-crop-scaled.jpg"><img alt="" class="wp-image-1019" decoding="async" height="720" sizes="(max-width: 1024px) 100vw, 1024px" src="https://blog.za3k.com/wp-content/uploads/2023/04/PXL_20221014_050159341-crop-1024x720.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2023/04/PXL_20221014_050159341-crop-1024x720.jpg 1024w, https://blog.za3k.com/wp-content/uploads/2023/04/PXL_20221014_050159341-crop-300x211.jpg 300w, https://blog.za3k.com/wp-content/uploads/2023/04/PXL_20221014_050159341-crop-768x540.jpg 768w, https://blog.za3k.com/wp-content/uploads/2023/04/PXL_20221014_050159341-crop-1536x1080.jpg 1536w, https://blog.za3k.com/wp-content/uploads/2023/04/PXL_20221014_050159341-crop-2048x1441.jpg 2048w, https://blog.za3k.com/wp-content/uploads/2023/04/PXL_20221014_050159341-crop-150x106.jpg 150w, https://blog.za3k.com/wp-content/uploads/2023/04/PXL_20221014_050159341-crop-213x150.jpg 213w" width="1024"/></a></figure>
Atorvastatin, 40mg, x50 - Medium white oblong pill labeled ATV40.
Prescription: Take one pill daily to reduce cholesterol.</code></pre>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/first-aid/" rel="tag">first aid</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/first-aid-kit/" rel="bookmark" title="Permalink to First Aid Kit"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: flash-media-longevity-testing-4-years-later
---
<!-- blogpost -->
-<article class="post-1271 post type-post status-publish format-standard hentry category-technical tag-archiving tag-research tag-slow tag-usb" id="post-1271">
-<h1 class="entry-title">Flash media longevity testing – 4 years later</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2024-01-01T11:55:32-07:00"> <a href="https://blog.za3k.com/flash-media-longevity-testing-4-years-later/" rel="bookmark" title="11:55 am"><span class="entry-date">January 1, 2024</span> <span class="entry-time"> - 11:55 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2024-01-01T11:55:32-07:00">January 1, 2024</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<ul>
<li><a href="https://www.reddit.com/r/DataHoarder/comments/e3nb2r/longterm_reliability_testing/">Year 0</a> – I filled 10 32-GB Kingston flash drives with random data.</li>
year 29+: repeat years 21-28
</code></pre>
<p>FAQ: <a href="https://blog.za3k.com/usb-flash-longevity-testing-year-2/">https://blog.za3k.com/usb-flash-longevity-testing-year-2/</a></p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/archiving/" rel="tag">archiving</a>, <a href="https://blog.za3k.com/tag/research/" rel="tag">research</a>, <a href="https://blog.za3k.com/tag/slow/" rel="tag">slow</a>, <a href="https://blog.za3k.com/tag/usb/" rel="tag">usb</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/flash-media-longevity-testing-4-years-later/" rel="bookmark" title="Permalink to Flash media longevity testing – 4 years later"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: games-i-like
---
<!-- blogpost -->
-<article class="post-142 post type-post status-publish format-standard hentry category-non-technical tag-games tag-reviews tag-video-games tag-website-update" id="post-142">
-<h1 class="entry-title">Games I Like</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-03-15T19:34:16-07:00"> <a href="https://blog.za3k.com/games-i-like/" rel="bookmark" title="7:34 pm"><span class="entry-date">March 15, 2015</span> <span class="entry-time"> - 7:34 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-03-15T19:34:16-07:00">March 15, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I wrote a list of video games which I’ve enjoyed especially <a href="https://za3k.com/games.md">here</a>.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/games/" rel="tag">games</a>, <a href="https://blog.za3k.com/tag/reviews/" rel="tag">reviews</a>, <a href="https://blog.za3k.com/tag/video-games/" rel="tag">video games</a>, <a href="https://blog.za3k.com/tag/website-update/" rel="tag">website update</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/games-i-like/" rel="bookmark" title="Permalink to Games I Like"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: garden-signs-on-wall-tiles-pt-2
---
<!-- blogpost -->
-<article class="post-1332 post type-post status-publish format-standard hentry category-uncategorized" id="post-1332">
-<h1 class="entry-title">Garden signs on wall tiles (pt 2)</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2024-05-01T14:25:59-07:00"> <a href="https://blog.za3k.com/garden-signs-on-wall-tiles-pt-2/" rel="bookmark" title="2:25 pm"><span class="entry-date">May 1, 2024</span> <span class="entry-time"> - 2:25 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2024-05-01T14:28:24-07:00">May 1, 2024</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/uncategorized/" rel="tag">Uncategorized</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I tested with <a href="https://blog.za3k.com/garden-signs-on-wall-tiles/">one tile</a>. Now I made signs for my whole garden. </p>
<p>To start, I covered each marble tile in painter’s tape.</p>
<li>You should switch x-acto blades more often than you think.</li>
<li>I should have spent even more time on an easy-to-cut font. The “a”, “e”, and “r” are too hard in this font.</li>
</ul>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_bookmark">Bookmark the <a href="https://blog.za3k.com/garden-signs-on-wall-tiles-pt-2/" rel="bookmark" title="Permalink to Garden signs on wall tiles (pt 2)">permalink</a>. </span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: garden-signs-on-wall-tiles
---
<!-- blogpost -->
-<article class="post-1317 post type-post status-publish format-standard hentry category-non-technical tag-art tag-crafts tag-gardening" id="post-1317">
-<h1 class="entry-title">Garden signs on wall tiles</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2024-04-24T09:21:20-07:00"> <a href="https://blog.za3k.com/garden-signs-on-wall-tiles/" rel="bookmark" title="9:21 am"><span class="entry-date">April 24, 2024</span> <span class="entry-time"> - 9:21 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2024-04-24T09:26:20-07:00">April 24, 2024</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I’m making labels for my garden sections by painting tiles.</p>
<figure class="wp-block-image size-large"><a href="https://blog.za3k.com/wp-content/uploads/2024/04/001_blank.jpg"><img alt="" class="wp-image-1318" decoding="async" fetchpriority="high" height="407" sizes="(max-width: 1024px) 100vw, 1024px" src="https://blog.za3k.com/wp-content/uploads/2024/04/001_blank-1024x407.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2024/04/001_blank-1024x407.jpg 1024w, https://blog.za3k.com/wp-content/uploads/2024/04/001_blank-300x119.jpg 300w, https://blog.za3k.com/wp-content/uploads/2024/04/001_blank-768x305.jpg 768w, https://blog.za3k.com/wp-content/uploads/2024/04/001_blank-1536x610.jpg 1536w, https://blog.za3k.com/wp-content/uploads/2024/04/001_blank-150x60.jpg 150w, https://blog.za3k.com/wp-content/uploads/2024/04/001_blank-250x99.jpg 250w, https://blog.za3k.com/wp-content/uploads/2024/04/001_blank.jpg 1602w" width="1024"/></a></figure>
<figure class="wp-block-image size-large"><a href="https://blog.za3k.com/wp-content/uploads/2024/04/008_z_bracket-1.jpg"><img alt="" class="wp-image-1328" decoding="async" height="604" loading="lazy" sizes="(max-width: 1024px) 100vw, 1024px" src="https://blog.za3k.com/wp-content/uploads/2024/04/008_z_bracket-1-1024x604.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2024/04/008_z_bracket-1-1024x604.jpg 1024w, https://blog.za3k.com/wp-content/uploads/2024/04/008_z_bracket-1-300x177.jpg 300w, https://blog.za3k.com/wp-content/uploads/2024/04/008_z_bracket-1-768x453.jpg 768w, https://blog.za3k.com/wp-content/uploads/2024/04/008_z_bracket-1-1536x906.jpg 1536w, https://blog.za3k.com/wp-content/uploads/2024/04/008_z_bracket-1-2048x1208.jpg 2048w, https://blog.za3k.com/wp-content/uploads/2024/04/008_z_bracket-1-150x88.jpg 150w, https://blog.za3k.com/wp-content/uploads/2024/04/008_z_bracket-1-250x147.jpg 250w" width="1024"/></a></figure>
<p>I attach the tile to my raised beds using <a href="https://www.google.com/search?q=z-bracket&tbm=isch">z-brackets</a> sized to fit the tile thickness and a screwdriver. They look fine on the dirt too.</p>
<p>Looks nice! Maybe I’ll switch to a higher-contract color paint for white?</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/art/" rel="tag">art</a>, <a href="https://blog.za3k.com/tag/crafts/" rel="tag">crafts</a>, <a href="https://blog.za3k.com/tag/gardening/" rel="tag">gardening</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/garden-signs-on-wall-tiles/" rel="bookmark" title="Permalink to Garden signs on wall tiles"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: getting-rid-of-mold
---
<!-- blogpost -->
-<article class="post-1273 post type-post status-publish format-standard hentry category-non-technical tag-bad-advice tag-cleaning" id="post-1273">
-<h1 class="entry-title">Getting rid of mold</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2024-01-04T09:43:44-07:00"> <a href="https://blog.za3k.com/getting-rid-of-mold/" rel="bookmark" title="9:43 am"><span class="entry-date">January 4, 2024</span> <span class="entry-time"> - 9:43 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2024-01-04T13:29:49-07:00">January 4, 2024</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Take everything in this article with a cup of salt, I’m not even close to an expert.</p>
<p>Recently I’ve been itchy, so I’m treating a couple areas of my house for mold and mildew–the walls of my basement, and a new couch I got. I’ve been researching mold treatments. Some of them are clearly absolute nonsense<em>.</em></p>
</ul>
<p>I do not think high or low temperatures will work to kill molds generally, from my research.</p>
<p>The hardest part of this research is that I <em>don’t</em> have a large, visible mold patch. I’m just itchy. So don’t expect a report back about whether this stuff worked, honestly.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/bad-advice/" rel="tag">bad advice</a>, <a href="https://blog.za3k.com/tag/cleaning/" rel="tag">cleaning</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/getting-rid-of-mold/" rel="bookmark" title="Permalink to Getting rid of mold"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: getting-the-adafruit-pro-trinket-3-3v-to-work-in-arch-linux
---
<!-- blogpost -->
-<article class="post-410 post type-post status-publish format-standard hentry category-technical tag-arch-linux tag-arduino tag-hardware tag-linux tag-microcontroller tag-pro-trinket tag-software" id="post-410">
-<h1 class="entry-title">Getting the Adafruit Pro Trinket 3.3V to work in Arch Linux</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2017-07-02T20:41:58-07:00"> <a href="https://blog.za3k.com/getting-the-adafruit-pro-trinket-3-3v-to-work-in-arch-linux/" rel="bookmark" title="8:41 pm"><span class="entry-date">July 2, 2017</span> <span class="entry-time"> - 8:41 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2017-07-02T20:41:58-07:00">July 2, 2017</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I’m on Linux, and here’s what I did to get the <strong>Adafruit Pro Trinket</strong> (3.3V version) to work. I think most of this should work for other Adafruit boards as well. I’m on <strong>Arch Linux</strong>, but other distros will be similar, just find the right paths for everything. Your version of udev may vary on older distros especially.</p>
<ol>
<p>Sources:<br/>
<a href="http://www.bacspc.com/2015/07/28/arch-linux-and-trinket/">http://www.bacspc.com/2015/07/28/arch-linux-and-trinket/</a><br/>
<a href="http://andijcr.github.io/blog/2014/07/31/notes-on-trinket-on-ubuntu-14.04/">http://andijcr.github.io/blog/2014/07/31/notes-on-trinket-on-ubuntu-14.04/</a></p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/arch-linux/" rel="tag">arch linux</a>, <a href="https://blog.za3k.com/tag/arduino/" rel="tag">arduino</a>, <a href="https://blog.za3k.com/tag/hardware/" rel="tag">hardware</a>, <a href="https://blog.za3k.com/tag/linux/" rel="tag">linux</a>, <a href="https://blog.za3k.com/tag/microcontroller/" rel="tag">microcontroller</a>, <a href="https://blog.za3k.com/tag/pro-trinket/" rel="tag">pro trinket</a>, <a href="https://blog.za3k.com/tag/software/" rel="tag">software</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/getting-the-adafruit-pro-trinket-3-3v-to-work-in-arch-linux/" rel="bookmark" title="Permalink to Getting the Adafruit Pro Trinket 3.3V to work in Arch Linux"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: github-com-archive-background-research
---
<!-- blogpost -->
-<article class="post-443 post type-post status-publish format-standard hentry category-technical tag-archiving tag-backup tag-compression tag-data-science tag-deduplication tag-exploratory tag-git tag-github tag-linux" id="post-443">
-<h1 class="entry-title">github.com archive – Background Research</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2017-10-05T23:57:50-07:00"> <a href="https://blog.za3k.com/github-com-archive-background-research/" rel="bookmark" title="11:57 pm"><span class="entry-date">October 5, 2017</span> <span class="entry-time"> - 11:57 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2017-11-05T16:49:34-07:00">November 5, 2017</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>My current project is to archive git repos, starting with all of github.com. As you might imagine, size is an issue, so in this post I do some investigation on how to better compress things. It’s currently Oct, 2017, for when you read this years later and your eyes bug out at how tiny the numbers are.</p>
<p>Let’s look at the list of repositories and see what we can figure out.</p>
<li>125GB. Same, with ‘git repack -adk’)</li>
</ul>
<p>Throwing out everything but the objects allows other fun options, but there aren’t any standard tools and I’m out of time. Maybe next time. Ta for now.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/archiving/" rel="tag">archiving</a>, <a href="https://blog.za3k.com/tag/backup/" rel="tag">backup</a>, <a href="https://blog.za3k.com/tag/compression/" rel="tag">compression</a>, <a href="https://blog.za3k.com/tag/data-science/" rel="tag">data science</a>, <a href="https://blog.za3k.com/tag/deduplication/" rel="tag">deduplication</a>, <a href="https://blog.za3k.com/tag/exploratory/" rel="tag">exploratory</a>, <a href="https://blog.za3k.com/tag/git/" rel="tag">git</a>, <a href="https://blog.za3k.com/tag/github/" rel="tag">github</a>, <a href="https://blog.za3k.com/tag/linux/" rel="tag">linux</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/github-com-archive-background-research/" rel="bookmark" title="Permalink to github.com archive – Background Research"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: good-time-estimation
---
<!-- blogpost -->
-<article class="post-1024 post type-post status-publish format-standard hentry category-non-technical" id="post-1024">
-<h1 class="entry-title">Good Time Estimation</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-05-08T17:41:01-07:00"> <a href="https://blog.za3k.com/good-time-estimation/" rel="bookmark" title="5:41 pm"><span class="entry-date">May 8, 2023</span> <span class="entry-time"> - 5:41 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-05-08T17:45:58-07:00">May 8, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>As a programmer, one task I have to do often is estimate how a long a task will take. But as a programmer, most tasks I do have never been done before, and will never be done again, so estimating how long they will take is a little tricky. Here are some tips I’ve learned over the years.</p>
<h2 class="wp-block-heading">Always use clock time.</h2>
<p>Some tasks are more variable. Saying “something will take 1 hour” is vague. Saying “something will almost certainly take between 30 minutes and 4 hours” is more precise. How big should that range be? That’s called a credible interval.<br/><br/>Train your credible intervals. I trained mine using bug fixing, something which happens several times a day, is hard to predict, and you have little control over (you can’t “call it done” early). Customer calls could be another great candidate.</p>
<p>I trained on bugfixes using 50%, 90%, and 99% intervals. There are specific mathematical scoring rules, but basically if something is in your 50% interval more than half the time, narrow it; if your interval is correct less than half the time, widen it.</p>
<p>Credit: Eliezer Yudkowsky (personal website, no longer up)</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_bookmark">Bookmark the <a href="https://blog.za3k.com/good-time-estimation/" rel="bookmark" title="Permalink to Good Time Estimation">permalink</a>. </span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-2023-2
---
<!-- blogpost -->
-<article class="post-1136 post type-post status-publish format-standard hentry category-non-technical tag-hack-a-day" id="post-1136">
-<h1 class="entry-title">Hack-A-Day 2023</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-11-01T07:29:28-07:00"> <a href="https://blog.za3k.com/hack-a-day-2023-2/" rel="bookmark" title="7:29 am"><span class="entry-date">November 1, 2023</span> <span class="entry-time"> - 7:29 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-11-01T07:29:28-07:00">November 1, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<h2 class="wp-block-heading"></h2>
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>I’m a programmer, so I’m doing a new computer programming project every day. But you can do any kind of project, whatever you pick is great.</p>
<p><a href="https://za3k.com/hack-a-day-rules">READ MORE</a></p>
<p>I encourage you to join. I would guess this takes 2-4 hours a day (similar to NaNoWriMo). But if you don’t have that kind of time, please do still join for as many days as you can! And if you want to collaborate with me, set aside a free day and message me by email. My calendar is at <a href="https://zachary.youcanbook.me/">zachary.youcanbook.me</a>. Feel free to grab any day starting the 4th!</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-2023-2/" rel="bookmark" title="Permalink to Hack-A-Day 2023"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-2023-is-done
---
<!-- blogpost -->
-<article class="post-1238 post type-post status-publish format-standard hentry category-non-technical tag-hack-a-day" id="post-1238">
-<h1 class="entry-title">Hack-A-Day 2023 is done</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-12-06T17:44:40-07:00"> <a href="https://blog.za3k.com/hack-a-day-2023-is-done/" rel="bookmark" title="5:44 pm"><span class="entry-date">December 6, 2023</span> <span class="entry-time"> - 5:44 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-12-06T17:44:41-07:00">December 6, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Hack-A-Day 2023 is complete. I did 20 projects in 30 days. Pretty good considering I got a new job and moved!</p>
<p>The overview of the month is <a href="https://za3k.com/hackaday">here</a> and highly recommended.</p>
<li><a href="https://blog.za3k.com/hack-a-day-day-29-speed-reading/">Speed Reading</a> (29) works better on a phone. It also saves your progress.</li>
<li><a href="https://blog.za3k.com/hack-a-day-day-30-music-of-the-celestial-spheres/">Music of the Spheres</a> (30) works on a phone. It’s also louder.</li>
</ul>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-2023-is-done/" rel="bookmark" title="Permalink to Hack-A-Day 2023 is done"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-2023
---
<!-- blogpost -->
-<article class="post-1090 post type-post status-publish format-standard hentry category-non-technical category-technical tag-event tag-hack-a-day tag-social" id="post-1090">
-<h1 class="entry-title">Hack-A-Day 2023</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-07-08T09:28:53-07:00"> <a href="https://blog.za3k.com/hack-a-day-2023/" rel="bookmark" title="9:28 am"><span class="entry-date">July 8, 2023</span> <span class="entry-time"> - 9:28 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-07-08T09:33:04-07:00">July 8, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>HACK (noun)</p>
<p>I’m a programmer, so I’m doing a new computer programming project every day. But you can do any kind of project, whatever you pick is great.</p>
<p><a href="https://za3k.com/hack-a-day-rules">READ MORE</a></p>
<p>I will post again nearer to November! Just giving blog readers an advance heads-up.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/event/" rel="tag">event</a>, <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/social/" rel="tag">social</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-2023/" rel="bookmark" title="Permalink to Hack-A-Day 2023"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-day-01-perquackey
---
<!-- blogpost -->
-<article class="post-1138 post type-post status-publish format-standard hentry category-non-technical category-technical tag-games tag-hack-a-day" id="post-1138">
-<h1 class="entry-title">Hack-A-Day: Day 01, Perquackey</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-11-01T16:30:57-07:00"> <a href="https://blog.za3k.com/hack-a-day-day-01-perquackey/" rel="bookmark" title="4:30 pm"><span class="entry-date">November 1, 2023</span> <span class="entry-time"> - 4:30 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-11-30T20:13:03-07:00">November 30, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p></p>
<p>Today I chose to write a web version of a word game my family has loved for a long time, but which is sadly out of print.</p>
<p>It is meant to be played multi-player, but you’re welcome to try it out single-player online. Have fun!</p>
<figure class="wp-block-image size-large"><a href="https://za3k.github.io/ha3k-01-perquackey/"><img alt="" class="wp-image-1139" decoding="async" fetchpriority="high" height="399" sizes="(max-width: 1024px) 100vw, 1024px" src="https://blog.za3k.com/wp-content/uploads/2023/11/2023-11-01-192758_1920x1080_scrot-crop-1024x399.png" srcset="https://blog.za3k.com/wp-content/uploads/2023/11/2023-11-01-192758_1920x1080_scrot-crop-1024x399.png 1024w, https://blog.za3k.com/wp-content/uploads/2023/11/2023-11-01-192758_1920x1080_scrot-crop-300x117.png 300w, https://blog.za3k.com/wp-content/uploads/2023/11/2023-11-01-192758_1920x1080_scrot-crop-768x300.png 768w, https://blog.za3k.com/wp-content/uploads/2023/11/2023-11-01-192758_1920x1080_scrot-crop-150x59.png 150w, https://blog.za3k.com/wp-content/uploads/2023/11/2023-11-01-192758_1920x1080_scrot-crop-250x98.png 250w, https://blog.za3k.com/wp-content/uploads/2023/11/2023-11-01-192758_1920x1080_scrot-crop.png 1287w" width="1024"/></a></figure>
<p>Source code <a href="https://github.com/za3k/ha3k-01-perquackey">here</a></p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/games/" rel="tag">games</a>, <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-day-01-perquackey/" rel="bookmark" title="Permalink to Hack-A-Day: Day 01, Perquackey"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-day-04-lashed-table
---
<!-- blogpost -->
-<article class="post-1147 post type-post status-publish format-standard hentry category-non-technical tag-furniture tag-hack-a-day tag-physical tag-woodworking" id="post-1147">
-<h1 class="entry-title">Hack-A-Day, Day 04: Lashed Table</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-11-04T15:58:18-07:00"> <a href="https://blog.za3k.com/hack-a-day-day-04-lashed-table/" rel="bookmark" title="3:58 pm"><span class="entry-date">November 4, 2023</span> <span class="entry-time"> - 3:58 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-11-04T15:59:51-07:00">November 4, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Lashed furniture is made using sticks and rope or twine. Today’s project was to make one out of bamboo and brown paracord. The frame is shown–imagine boards or many pieces of bamboo forming a top.</p>
<figure class="wp-block-image size-large"><a href="https://blog.za3k.com/wp-content/uploads/2023/11/table.jpg"><img alt="" class="wp-image-1148" decoding="async" fetchpriority="high" height="1002" sizes="(max-width: 1024px) 100vw, 1024px" src="https://blog.za3k.com/wp-content/uploads/2023/11/table-1024x1002.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2023/11/table-1024x1002.jpg 1024w, https://blog.za3k.com/wp-content/uploads/2023/11/table-300x294.jpg 300w, https://blog.za3k.com/wp-content/uploads/2023/11/table-768x752.jpg 768w, https://blog.za3k.com/wp-content/uploads/2023/11/table-150x147.jpg 150w, https://blog.za3k.com/wp-content/uploads/2023/11/table-153x150.jpg 153w, https://blog.za3k.com/wp-content/uploads/2023/11/table.jpg 1406w" width="1024"/></a><figcaption class="wp-element-caption">Hello to the young lady who decided to pose and join in the photo!</figcaption></figure>
<p>We found this little $5 tool to be incredibly good for cutting bamboo. It’s designed for almost the same thing, cutting metal pipes.</p>
<figure class="wp-block-image size-medium"><a href="https://blog.za3k.com/wp-content/uploads/2023/11/pipe-cutter.webp"><img alt="" class="wp-image-1149" decoding="async" height="300" sizes="(max-width: 300px) 100vw, 300px" src="https://blog.za3k.com/wp-content/uploads/2023/11/pipe-cutter-300x300.webp" srcset="https://blog.za3k.com/wp-content/uploads/2023/11/pipe-cutter-300x300.webp 300w, https://blog.za3k.com/wp-content/uploads/2023/11/pipe-cutter-150x150.webp 150w, https://blog.za3k.com/wp-content/uploads/2023/11/pipe-cutter.webp 600w" width="300"/></a></figure>
<p>It wasn’t bad for a first try. That said, we decided the top wasn’t flat enough to give a good finish, so the whole thing is going to be burned at the next bonfire.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/furniture/" rel="tag">furniture</a>, <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/physical/" rel="tag">physical</a>, <a href="https://blog.za3k.com/tag/woodworking/" rel="tag">woodworking</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-day-04-lashed-table/" rel="bookmark" title="Permalink to Hack-A-Day, Day 04: Lashed Table"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
<ol class="commentlist">
wordpress_slug: hack-a-day-day-06-doodlemoji-alchemy
---
<!-- blogpost -->
-<article class="post-1164 post type-post status-publish format-standard hentry category-non-technical category-technical tag-games tag-hack-a-day tag-video-games" id="post-1164">
-<h1 class="entry-title">Hack-A-Day, Day 07: Doodlemoji Alchemy</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-11-07T21:42:27-07:00"> <a href="https://blog.za3k.com/hack-a-day-day-06-doodlemoji-alchemy/" rel="bookmark" title="9:42 pm"><span class="entry-date">November 7, 2023</span> <span class="entry-time"> - 9:42 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-11-11T11:38:50-07:00">November 11, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I made a small game called Doodlemoji Alchemy, together with my friend Jennifer, as part of <a href="https://za3k.com/hackaday">Hack-A-Day</a>.</p>
<p>You can play it <a href="https://za3k.github.io/ha3k-07-doodle-alchemy/">here</a>.</p>
<figure class="wp-block-image size-full"><a href="https://za3k.github.io/ha3k-07-doodle-alchemy/" rel="noreferrer noopener" target="_blank"><img alt="" class="wp-image-1166" decoding="async" height="614" sizes="(max-width: 631px) 100vw, 631px" src="https://blog.za3k.com/wp-content/uploads/2023/11/choice.png" srcset="https://blog.za3k.com/wp-content/uploads/2023/11/choice.png 631w, https://blog.za3k.com/wp-content/uploads/2023/11/choice-300x292.png 300w, https://blog.za3k.com/wp-content/uploads/2023/11/choice-150x146.png 150w, https://blog.za3k.com/wp-content/uploads/2023/11/choice-154x150.png 154w" width="631"/></a></figure>
<p>Sometimes you discover a new one!</p>
<figure class="wp-block-image size-full"><a href="https://za3k.github.io/ha3k-07-doodle-alchemy/" rel="noreferrer noopener" target="_blank"><img alt="" class="wp-image-1167" decoding="async" height="614" sizes="(max-width: 568px) 100vw, 568px" src="https://blog.za3k.com/wp-content/uploads/2023/11/main.png" srcset="https://blog.za3k.com/wp-content/uploads/2023/11/main.png 568w, https://blog.za3k.com/wp-content/uploads/2023/11/main-278x300.png 278w, https://blog.za3k.com/wp-content/uploads/2023/11/main-139x150.png 139w" width="568"/></a></figure>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/games/" rel="tag">games</a>, <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/video-games/" rel="tag">video games</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-day-06-doodlemoji-alchemy/" rel="bookmark" title="Permalink to Hack-A-Day, Day 07: Doodlemoji Alchemy"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-day-06
---
<!-- blogpost -->
-<article class="post-1152 post type-post status-publish format-standard hentry category-technical tag-graphics tag-hack-a-day tag-raytracing" id="post-1152">
-<h1 class="entry-title">Hack-A-Day, Day 06: Raytracing Redux (realtime video)</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-11-07T07:33:14-07:00"> <a href="https://blog.za3k.com/hack-a-day-day-06/" rel="bookmark" title="7:33 am"><span class="entry-date">November 7, 2023</span> <span class="entry-time"> - 7:33 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-11-11T11:39:03-07:00">November 11, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Today’s update is a short one. I ported my raytracer from <a href="https://blog.za3k.com/hack-a-day-day-2-raytracing/">day 02</a>, to the Nvidia GPU: <a href="https://github.com/za3k/ha3k-06-raytracer">ha3k-06-raytracer</a></p>
<p>The visuals are pretty much the same. Incidentally I discovered the striations on the ground disappear if we increase the floating point precision.</p>
<p><s>I didn’t get video working yesterday, or anything else visually new. I will call this one a failure overall, because I have nothing interesting to show off.</s> I learned stuff and made progress though, so it’s not so bad.</p>
<p>Here’s a working video!</p>
<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/y4TcrxRg4aw?si=ca7wFptQ99gffghI" title="YouTube video player" width="560"></iframe>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/graphics/" rel="tag">graphics</a>, <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/raytracing/" rel="tag">raytracing</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-day-06/" rel="bookmark" title="Permalink to Hack-A-Day, Day 06: Raytracing Redux (realtime video)"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-day-08-receipt-zine
---
<!-- blogpost -->
-<article class="post-1169 post type-post status-publish format-standard hentry category-non-technical tag-art tag-hack-a-day tag-silly tag-writing" id="post-1169">
-<h1 class="entry-title">Hack-A-Day, Day 08: Receipt Zine</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-11-08T15:40:14-07:00"> <a href="https://blog.za3k.com/hack-a-day-day-08-receipt-zine/" rel="bookmark" title="3:40 pm"><span class="entry-date">November 8, 2023</span> <span class="entry-time"> - 3:40 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-11-08T15:40:14-07:00">November 8, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I’ve wanted to make a receipt-printer zine for a while. Here’s the next best thing, a digital verson.</p>
<p>Click the image for a silly little zine.</p>
<figure class="wp-block-image size-full"><a href="https://za3k.github.io/ha3k-08-receipt/"><img alt="" class="wp-image-1170" decoding="async" fetchpriority="high" height="847" sizes="(max-width: 372px) 100vw, 372px" src="https://blog.za3k.com/wp-content/uploads/2023/11/zine.png" srcset="https://blog.za3k.com/wp-content/uploads/2023/11/zine.png 372w, https://blog.za3k.com/wp-content/uploads/2023/11/zine-132x300.png 132w, https://blog.za3k.com/wp-content/uploads/2023/11/zine-66x150.png 66w" width="372"/></a></figure>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/art/" rel="tag">art</a>, <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/silly/" rel="tag">silly</a>, <a href="https://blog.za3k.com/tag/writing/" rel="tag">writing</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-day-08-receipt-zine/" rel="bookmark" title="Permalink to Hack-A-Day, Day 08: Receipt Zine"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-day-10-typewriter
---
<!-- blogpost -->
-<article class="post-1173 post type-post status-publish format-standard hentry category-non-technical tag-hack-a-day tag-throwaway" id="post-1173">
-<h1 class="entry-title">Hack-A-Day, Day 10: Typewriter</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-11-10T19:24:36-07:00"> <a href="https://blog.za3k.com/hack-a-day-day-10-typewriter/" rel="bookmark" title="7:24 pm"><span class="entry-date">November 10, 2023</span> <span class="entry-time"> - 7:24 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-11-11T11:39:10-07:00">November 11, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Try it out <a href="https://za3k.github.io/ha3k-10-typewriter/">here</a>. Code is on <a href="https://github.com/za3k/ha3k-10-typewriter">github</a>.</p>
<figure class="wp-block-image size-large"><a href="https://za3k.github.io/ha3k-10-typewriter/"><img alt="" class="wp-image-1174" decoding="async" fetchpriority="high" height="459" sizes="(max-width: 1024px) 100vw, 1024px" src="https://blog.za3k.com/wp-content/uploads/2023/11/screenshot-1024x459.png" srcset="https://blog.za3k.com/wp-content/uploads/2023/11/screenshot-1024x459.png 1024w, https://blog.za3k.com/wp-content/uploads/2023/11/screenshot-300x134.png 300w, https://blog.za3k.com/wp-content/uploads/2023/11/screenshot-768x344.png 768w, https://blog.za3k.com/wp-content/uploads/2023/11/screenshot-150x67.png 150w, https://blog.za3k.com/wp-content/uploads/2023/11/screenshot-250x112.png 250w, https://blog.za3k.com/wp-content/uploads/2023/11/screenshot.png 1040w" width="1024"/></a></figure>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-day-10-typewriter/" rel="bookmark" title="Permalink to Hack-A-Day, Day 10: Typewriter"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-day-11-raytraced-rain
---
<!-- blogpost -->
-<article class="post-1184 post type-post status-publish format-standard hentry category-non-technical category-technical tag-graphics tag-hack-a-day tag-raytracing tag-video" id="post-1184">
-<h1 class="entry-title">Hack-A-Day, Day 11: Raytraced Rain</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-11-11T23:23:47-07:00"> <a href="https://blog.za3k.com/hack-a-day-day-11-raytraced-rain/" rel="bookmark" title="11:23 pm"><span class="entry-date">November 11, 2023</span> <span class="entry-time"> - 11:23 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-11-11T23:23:47-07:00">November 11, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>A simple screensaver made in my raytracer. Code is <a href="https://github.com/za3k/ha3k-11-raytracer-rain">on github</a>.</p>
<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/FewtsNn8dg0?si=tcTHe0v4WhGp_lkW" title="YouTube video player" width="560"></iframe>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/graphics/" rel="tag">graphics</a>, <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/raytracing/" rel="tag">raytracing</a>, <a href="https://blog.za3k.com/tag/video/" rel="tag">video</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-day-11-raytraced-rain/" rel="bookmark" title="Permalink to Hack-A-Day, Day 11: Raytraced Rain"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-day-12-screensavers
---
<!-- blogpost -->
-<article class="post-1186 post type-post status-publish format-standard hentry category-non-technical tag-hack-a-day tag-throwaway" id="post-1186">
-<h1 class="entry-title">Hack-A-Day, Day 12: Screensavers</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-11-12T11:15:25-07:00"> <a href="https://blog.za3k.com/hack-a-day-day-12-screensavers/" rel="bookmark" title="11:15 am"><span class="entry-date">November 12, 2023</span> <span class="entry-time"> - 11:15 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-11-12T11:15:26-07:00">November 12, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>A “silly screensaver”. Demo is <a href="https://za3k.github.io/ha3k-12-screensaver/">here</a>. Source code is <a href="https://github.com/za3k/ha3k-12-screensaver">on github</a>.</p>
<figure class="wp-block-image size-full"><a href="https://za3k.github.io/ha3k-12-screensaver/"><img alt="" class="wp-image-1187" decoding="async" fetchpriority="high" height="611" sizes="(max-width: 1021px) 100vw, 1021px" src="https://blog.za3k.com/wp-content/uploads/2023/11/screenshot-1.png" srcset="https://blog.za3k.com/wp-content/uploads/2023/11/screenshot-1.png 1021w, https://blog.za3k.com/wp-content/uploads/2023/11/screenshot-1-300x180.png 300w, https://blog.za3k.com/wp-content/uploads/2023/11/screenshot-1-768x460.png 768w, https://blog.za3k.com/wp-content/uploads/2023/11/screenshot-1-150x90.png 150w, https://blog.za3k.com/wp-content/uploads/2023/11/screenshot-1-250x150.png 250w" width="1021"/></a></figure>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-day-12-screensavers/" rel="bookmark" title="Permalink to Hack-A-Day, Day 12: Screensavers"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-day-13-blueprint-maker
---
<!-- blogpost -->
-<article class="post-1189 post type-post status-publish format-standard hentry category-non-technical tag-hack-a-day tag-throwaway tag-unfinished" id="post-1189">
-<h1 class="entry-title">Hack-A-Day, Day 13: Blueprint Maker</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-11-13T21:45:06-07:00"> <a href="https://blog.za3k.com/hack-a-day-day-13-blueprint-maker/" rel="bookmark" title="9:45 pm"><span class="entry-date">November 13, 2023</span> <span class="entry-time"> - 9:45 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-11-13T21:45:07-07:00">November 13, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Hack-A-Day is a challenge to try and finish 30 projects in 30 days in November.</p>
<p>Today I tried to write a tool to make a floorplan. You can try it <a href="https://za3k.github.io/ha3k-13-blueprint/">here</a>. As usual the source code is <a href="https://github.com/za3k/ha3k-13-blueprint">on github</a>.</p>
<li>sharing finished projects (stretch goal, not done)</li>
</ul>
<p>What I did do was pleasantly high-quality, and I made pretty good progress.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>, <a href="https://blog.za3k.com/tag/unfinished/" rel="tag">unfinished</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-day-13-blueprint-maker/" rel="bookmark" title="Permalink to Hack-A-Day, Day 13: Blueprint Maker"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-day-14-bytebeat-synth
---
<!-- blogpost -->
-<article class="post-1193 post type-post status-publish format-standard hentry category-non-technical category-technical tag-hack-a-day tag-music tag-throwaway" id="post-1193">
-<h1 class="entry-title">Hack-A-Day, Day 14: Bytebeat Synth</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-11-14T15:18:54-07:00"> <a href="https://blog.za3k.com/hack-a-day-day-14-bytebeat-synth/" rel="bookmark" title="3:18 pm"><span class="entry-date">November 14, 2023</span> <span class="entry-time"> - 3:18 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-11-14T15:18:55-07:00">November 14, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>My friend Kragen and I wrote a little bytebeat synth tool. You can mess around and have fun. Demo <a href="https://za3k.github.io/ha3k-14-synth/">here</a>, code is <a href="https://github.com/za3k/ha3k-14-synth">on github</a>.</p>
<figure class="wp-block-image size-full"><a href="https://za3k.github.io/ha3k-14-synth/"><img alt="" class="wp-image-1194" decoding="async" fetchpriority="high" height="811" sizes="(max-width: 1023px) 100vw, 1023px" src="https://blog.za3k.com/wp-content/uploads/2023/11/screenshot-4.png" srcset="https://blog.za3k.com/wp-content/uploads/2023/11/screenshot-4.png 1023w, https://blog.za3k.com/wp-content/uploads/2023/11/screenshot-4-300x238.png 300w, https://blog.za3k.com/wp-content/uploads/2023/11/screenshot-4-768x609.png 768w, https://blog.za3k.com/wp-content/uploads/2023/11/screenshot-4-150x119.png 150w, https://blog.za3k.com/wp-content/uploads/2023/11/screenshot-4-189x150.png 189w" width="1023"/></a></figure>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/music/" rel="tag">music</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-day-14-bytebeat-synth/" rel="bookmark" title="Permalink to Hack-A-Day, Day 14: Bytebeat Synth"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-day-17-tower-of-choices
---
<!-- blogpost -->
-<article class="post-1197 post type-post status-publish format-standard hentry category-non-technical tag-game-design tag-games tag-hack-a-day tag-roleplaying tag-throwaway" id="post-1197">
-<h1 class="entry-title">Hack-A-Day, Day 17: Tower of Choices</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-11-18T09:33:42-07:00"> <a href="https://blog.za3k.com/hack-a-day-day-17-tower-of-choices/" rel="bookmark" title="9:33 am"><span class="entry-date">November 18, 2023</span> <span class="entry-time"> - 9:33 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-11-18T09:33:42-07:00">November 18, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Today’s hack-a-day project was a pencil-and-paper RPG. Based on feedback from people reading the rules, it’s <em>notably bad</em> and I don’t recommend it. Rules <a href="https://za3k.com/games/tower_of_choices">here</a>.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/game-design/" rel="tag">game design</a>, <a href="https://blog.za3k.com/tag/games/" rel="tag">games</a>, <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/roleplaying/" rel="tag">roleplaying</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-day-17-tower-of-choices/" rel="bookmark" title="Permalink to Hack-A-Day, Day 17: Tower of Choices"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-day-18-a-i-grab-bag
---
<!-- blogpost -->
-<article class="post-1199 post type-post status-publish format-standard hentry category-technical tag-general-ai tag-hack-a-day" id="post-1199">
-<h1 class="entry-title">Hack-A-Day, Day 18: A.I. Grab-bag</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-11-20T08:50:26-07:00"> <a href="https://blog.za3k.com/hack-a-day-day-18-a-i-grab-bag/" rel="bookmark" title="8:50 am"><span class="entry-date">November 20, 2023</span> <span class="entry-time"> - 8:50 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-11-20T10:10:28-07:00">November 20, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Today I got a variety of modern A.I. tools to work in <a href="https://github.com/za3k/ha3k-18-ai-grabbag">a python library</a>. This one is mostly install instructions, but it was useful for me, at least.</p>
<p>I took a day off after.</p>
<li>Generating chat at 0.05x – 0.5x realtime (3-30 wpm) on GPU.</li>
</ul>
<p>I didn’t get image generation working on my allotted time.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/general-ai/" rel="tag">general ai</a>, <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-day-18-a-i-grab-bag/" rel="bookmark" title="Permalink to Hack-A-Day, Day 18: A.I. Grab-bag"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-day-2-raytracing
---
<!-- blogpost -->
-<article class="post-1141 post type-post status-publish format-standard hentry category-technical tag-graphics tag-hack-a-day tag-raytracing" id="post-1141">
-<h1 class="entry-title">Hack-A-Day, Day 02: Raytracing</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-11-02T21:38:58-07:00"> <a href="https://blog.za3k.com/hack-a-day-day-2-raytracing/" rel="bookmark" title="9:38 pm"><span class="entry-date">November 2, 2023</span> <span class="entry-time"> - 9:38 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-11-11T11:39:34-07:00">November 11, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Today I wrote a simple raytracer. A raytracer is a very simple way to draw excellent graphics. For each pixel, it follows an imaginary “line” out from the viewer through that pixel into the computer world. Then it colors the pixel based on what the line hits. Unfortunately, it also takes a lot of computing power.</p>
<p>Mine is based on the explanation (and code) from “<a href="https://raytracing.github.io/books/RayTracingInOneWeekend.html">Ray Tracing in One Weekend</a>“, and the code from “<a href="http://canonical.org/~kragen/sw/aspmisc/my-very-first-raytracer.html">My Very First Raytracer</a>“.</p>
<figure class="aligncenter size-full"><a href="https://github.com/za3k/ha3k-02"><img alt="" class="wp-image-1143" decoding="async" fetchpriority="high" height="600" sizes="(max-width: 800px) 100vw, 800px" src="https://blog.za3k.com/wp-content/uploads/2023/11/v11b.png" srcset="https://blog.za3k.com/wp-content/uploads/2023/11/v11b.png 800w, https://blog.za3k.com/wp-content/uploads/2023/11/v11b-300x225.png 300w, https://blog.za3k.com/wp-content/uploads/2023/11/v11b-768x576.png 768w, https://blog.za3k.com/wp-content/uploads/2023/11/v11b-150x113.png 150w, https://blog.za3k.com/wp-content/uploads/2023/11/v11b-200x150.png 200w" width="800"/></a><figcaption class="wp-element-caption">Matte spheres in different shades of grey. The blue in the spheres is reflected from the sky.</figcaption></figure></div>
<p>The motivation for this project was to learn how to make things run faster on a graphics card. I quickly realized (before I wrote a line of code) that I’d need the basic raytracer to be its own project. Having it run faster will have to be a job for another day!</p>
<div class="wp-block-image">
-<figure class="aligncenter size-full"><a href="https://github.com/za3k/ha3k-02"><img alt="" class="wp-image-1144" decoding="async" height="600" sizes="(max-width: 800px) 100vw, 800px" src="https://blog.za3k.com/wp-content/uploads/2023/11/v15c.png" srcset="https://blog.za3k.com/wp-content/uploads/2023/11/v15c.png 800w, https://blog.za3k.com/wp-content/uploads/2023/11/v15c-300x225.png 300w, https://blog.za3k.com/wp-content/uploads/2023/11/v15c-768x576.png 768w, https://blog.za3k.com/wp-content/uploads/2023/11/v15c-150x113.png 150w, https://blog.za3k.com/wp-content/uploads/2023/11/v15c-200x150.png 200w" width="800"/></a><figcaption class="wp-element-caption">A final demo scene, showing off reflectivity and metal surfaces.<br/>Note the pincushion distortion of the overall render, and striations on the ground.</figcaption></figure></div> </div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/graphics/" rel="tag">graphics</a>, <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/raytracing/" rel="tag">raytracing</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-day-2-raytracing/" rel="bookmark" title="Permalink to Hack-A-Day, Day 02: Raytracing"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+<figure class="aligncenter size-full"><a href="https://github.com/za3k/ha3k-02"><img alt="" class="wp-image-1144" decoding="async" height="600" sizes="(max-width: 800px) 100vw, 800px" src="https://blog.za3k.com/wp-content/uploads/2023/11/v15c.png" srcset="https://blog.za3k.com/wp-content/uploads/2023/11/v15c.png 800w, https://blog.za3k.com/wp-content/uploads/2023/11/v15c-300x225.png 300w, https://blog.za3k.com/wp-content/uploads/2023/11/v15c-768x576.png 768w, https://blog.za3k.com/wp-content/uploads/2023/11/v15c-150x113.png 150w, https://blog.za3k.com/wp-content/uploads/2023/11/v15c-200x150.png 200w" width="800"/></a><figcaption class="wp-element-caption">A final demo scene, showing off reflectivity and metal surfaces.<br/>Note the pincushion distortion of the overall render, and striations on the ground.</figcaption></figure></div> </div>
<!-- comments -->
wordpress_slug: hack-a-day-day-20-hillsfar-lockpicking-spritesheet
---
<!-- blogpost -->
-<article class="post-1203 post type-post status-publish format-standard hentry category-non-technical category-technical tag-art tag-clone tag-game tag-hack-a-day tag-pixel-art tag-video-game" id="post-1203">
-<h1 class="entry-title">Hack-A-Day, Day 20: Hillsfar Lockpicking Spritesheet</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-11-20T20:57:20-07:00"> <a href="https://blog.za3k.com/hack-a-day-day-20-hillsfar-lockpicking-spritesheet/" rel="bookmark" title="8:57 pm"><span class="entry-date">November 20, 2023</span> <span class="entry-time"> - 8:57 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-12-31T16:24:44-07:00">December 31, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>For today’s hack-a-day, I meant to clone the <a href="https://en.wikipedia.org/wiki/Hillsfar">Hillsfar</a> lockpicking minigame. Instead, I spent all day just extracting the sprites. But I had a nice chill time, so it was great.</p>
<p>Edit: See the <a href="https://blog.za3k.com/hillsfar-lockpicking-20-complete/">updated post</a> for the finished game.</p>
<figure class="wp-block-image size-large"><a href="https://blog.za3k.com/wp-content/uploads/2023/11/out.png"><img alt="" class="wp-image-1205" decoding="async" height="597" sizes="(max-width: 1024px) 100vw, 1024px" src="https://blog.za3k.com/wp-content/uploads/2023/11/out-1024x597.png" srcset="https://blog.za3k.com/wp-content/uploads/2023/11/out-1024x597.png 1024w, https://blog.za3k.com/wp-content/uploads/2023/11/out-300x175.png 300w, https://blog.za3k.com/wp-content/uploads/2023/11/out-768x448.png 768w, https://blog.za3k.com/wp-content/uploads/2023/11/out-150x87.png 150w, https://blog.za3k.com/wp-content/uploads/2023/11/out-250x146.png 250w, https://blog.za3k.com/wp-content/uploads/2023/11/out.png 1055w" width="1024"/></a></figure>
<p>I made it by splitting up screenshots:</p>
<figure class="wp-block-image size-full"><a href="https://blog.za3k.com/wp-content/uploads/2023/11/hillsfar-lockpick-parts.png"><img alt="" class="wp-image-1206" decoding="async" height="400" sizes="(max-width: 640px) 100vw, 640px" src="https://blog.za3k.com/wp-content/uploads/2023/11/hillsfar-lockpick-parts.png" srcset="https://blog.za3k.com/wp-content/uploads/2023/11/hillsfar-lockpick-parts.png 640w, https://blog.za3k.com/wp-content/uploads/2023/11/hillsfar-lockpick-parts-300x188.png 300w, https://blog.za3k.com/wp-content/uploads/2023/11/hillsfar-lockpick-parts-150x94.png 150w, https://blog.za3k.com/wp-content/uploads/2023/11/hillsfar-lockpick-parts-240x150.png 240w" width="640"/></a></figure>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/art/" rel="tag">art</a>, <a href="https://blog.za3k.com/tag/clone/" rel="tag">clone</a>, <a href="https://blog.za3k.com/tag/game/" rel="tag">game</a>, <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/pixel-art/" rel="tag">pixel art</a>, <a href="https://blog.za3k.com/tag/video-game/" rel="tag">video game</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-day-20-hillsfar-lockpicking-spritesheet/" rel="bookmark" title="Permalink to Hack-A-Day, Day 20: Hillsfar Lockpicking Spritesheet"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-day-22-homemade-pcbs
---
<!-- blogpost -->
-<article class="post-1208 post type-post status-publish format-standard hentry category-technical tag-circuits tag-electronics tag-hack-a-day tag-pcb" id="post-1208">
-<h1 class="entry-title">Hack-a-Day, Day 22: Homemade PCBs</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-11-22T21:15:14-07:00"> <a href="https://blog.za3k.com/hack-a-day-day-22-homemade-pcbs/" rel="bookmark" title="9:15 pm"><span class="entry-date">November 22, 2023</span> <span class="entry-time"> - 9:15 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-11-22T21:45:57-07:00">November 22, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Today I learned how to make PCBs. I didn’t invent anything here, this is all pretty well known by the PCB-making community, but it’s not well-known to<em> me</em>. So I taught myself a bit!</p>
<p>The first part was the design an electronic circuit. I decided I was short on time, so I grabbed an <a href="https://www.circuits-diy.com/simple-continuity-tester-circuit-using-555-timer-ic/">existing schematic</a>.</p>
<p>Meanwhile, I made an order at PCBWay. It’s still under review.</p>
<p>Edit: after some advice from a friend, I peeled off this paper more aggressively, and scrubbed it off. The ink was fine. It doesn’t look great, but I think this is mostly the wrinkles during transfer. It’s a little blurry, I’ll have to do a third attempt before I try etching.</p>
<figure class="wp-block-image size-large"><a href="https://blog.za3k.com/wp-content/uploads/2023/11/PXL_20231123_044211359-crop.jpg"><img alt="" class="wp-image-1225" decoding="async" height="1024" loading="lazy" sizes="(max-width: 875px) 100vw, 875px" src="https://blog.za3k.com/wp-content/uploads/2023/11/PXL_20231123_044211359-crop-875x1024.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2023/11/PXL_20231123_044211359-crop-875x1024.jpg 875w, https://blog.za3k.com/wp-content/uploads/2023/11/PXL_20231123_044211359-crop-256x300.jpg 256w, https://blog.za3k.com/wp-content/uploads/2023/11/PXL_20231123_044211359-crop-768x899.jpg 768w, https://blog.za3k.com/wp-content/uploads/2023/11/PXL_20231123_044211359-crop-1312x1536.jpg 1312w, https://blog.za3k.com/wp-content/uploads/2023/11/PXL_20231123_044211359-crop-1750x2048.jpg 1750w, https://blog.za3k.com/wp-content/uploads/2023/11/PXL_20231123_044211359-crop-128x150.jpg 128w" width="875"/></a></figure>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/circuits/" rel="tag">circuits</a>, <a href="https://blog.za3k.com/tag/electronics/" rel="tag">electronics</a>, <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/pcb/" rel="tag">pcb</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-day-22-homemade-pcbs/" rel="bookmark" title="Permalink to Hack-a-Day, Day 22: Homemade PCBs"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-day-23-packing
---
<!-- blogpost -->
-<article class="post-1227 post type-post status-publish format-standard hentry category-non-technical tag-hack-a-day tag-moving" id="post-1227">
-<h1 class="entry-title">Hack-A-Day, Day 23: Packing</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-11-23T17:29:27-07:00"> <a href="https://blog.za3k.com/hack-a-day-day-23-packing/" rel="bookmark" title="5:29 pm"><span class="entry-date">November 23, 2023</span> <span class="entry-time"> - 5:29 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-12-06T17:46:08-07:00">December 6, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I’m moving, so I have to pack. I thought I’d make it fun with two projects.</p>
<p>First, I entered everything I was packing into a text file, <strong>stuff.md</strong>. That way, I can find stuff later. I have two friends who have done something like this, so I’m curious how it will go for me. Here is a sample:</p>
</blockquote>
<p>Second, I took a time lapse video of packing. I wish I had time-lapsed moving in at my current place, but I just wasn’t set up for it. Sadly, my camera battery died after 90 minutes, so I only have a very short video. Next time I’ll plug in a power cable. Here is a <a href="https://www.youtube.com/watch?v=hEYZWD2gQsQ">short example video</a>.</p>
<p>Both are much too personal for me to post on the web in full.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/moving/" rel="tag">moving</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-day-23-packing/" rel="bookmark" title="Permalink to Hack-A-Day, Day 23: Packing"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-day-28-90s-sitcom
---
<!-- blogpost -->
-<article class="post-1230 post type-post status-publish format-standard hentry category-non-technical category-technical tag-hack-a-day tag-silly tag-video" id="post-1230">
-<h1 class="entry-title">Hack-A-Day, Day 28: 90s Sitcom</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-11-28T20:52:11-07:00"> <a href="https://blog.za3k.com/hack-a-day-day-28-90s-sitcom/" rel="bookmark" title="8:52 pm"><span class="entry-date">November 28, 2023</span> <span class="entry-time"> - 8:52 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-11-28T20:52:12-07:00">November 28, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Two friends and I wrote the intro to “Pint-Sized”, a 90s sitcom that never existed.</p>
<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/6sW5rQTj1cE?si=VrMohP8qPSYOnt9-" title="YouTube video player" width="560"></iframe>
<p>We used DALL-E and stable diffusion for images, <a href="https://www.photopea.com/">Photopea</a> to add captions, and Google’s <a href="https://aitestkitchen.withgoogle.com/experiments/music-lm">AI Test Kitchen</a> for the backing music. Cheers were added with audacity. The video was edited together with ffmpeg.</p>
<p>Credits: za3k, stetson blake, jeremy mcintyre</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/silly/" rel="tag">silly</a>, <a href="https://blog.za3k.com/tag/video/" rel="tag">video</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-day-28-90s-sitcom/" rel="bookmark" title="Permalink to Hack-A-Day, Day 28: 90s Sitcom"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-day-29-speed-reading
---
<!-- blogpost -->
-<article class="post-1232 post type-post status-publish format-standard hentry category-non-technical tag-hack-a-day" id="post-1232">
-<h1 class="entry-title">Hack-A-Day, Day 29: Speed Reading</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-11-30T18:21:34-07:00"> <a href="https://blog.za3k.com/hack-a-day-day-29-speed-reading/" rel="bookmark" title="6:21 pm"><span class="entry-date">November 30, 2023</span> <span class="entry-time"> - 6:21 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-11-30T18:21:35-07:00">November 30, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Yesterday’s project was <a href="https://za3k.github.io/ha3k-29-speedread/">Speed Reading</a>. Experience what it’s like to read <em>Don Quixote</em> faster than you’re comfortable with. Source is <a href="https://github.com/za3k/ha3k-29-speedread">on github</a> as usual.</p>
<p></p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-day-29-speed-reading/" rel="bookmark" title="Permalink to Hack-A-Day, Day 29: Speed Reading"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-day-30-music-of-the-celestial-spheres
---
<!-- blogpost -->
-<article class="post-1234 post type-post status-publish format-standard hentry category-non-technical tag-hack-a-day tag-music" id="post-1234">
-<h1 class="entry-title">Hack-A-Day, Day 30: Music of the (Celestial) Spheres</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-11-30T18:25:52-07:00"> <a href="https://blog.za3k.com/hack-a-day-day-30-music-of-the-celestial-spheres/" rel="bookmark" title="6:25 pm"><span class="entry-date">November 30, 2023</span> <span class="entry-time"> - 6:25 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-11-30T18:25:53-07:00">November 30, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Hack-a-Day is a challenge to complete ~30 fun new projects in 30 days. In my case, I aimed for 20, because I knew I was getting a job and moving. I just barely made it with this last entry, a collaboration with nsh.</p>
<p>Music of the Spheres lets you hear songs on different tonal scales. Listen to the warped melodies. Watch the pretty planets orbit. Surely their sizes and orbits are significant and connected to the tonal scales? Go mad with afterimages of… okay, well it’s kinda fun, anyway. Demo is <a href="https://za3k.github.io/ha3k-30-musicofspheres/">here</a>, code is <a href="https://github.com/za3k/ha3k-30-musicofspheres">on github</a>.</p>
<figure class="wp-block-image size-full"><a href="https://za3k.github.io/ha3k-30-musicofspheres/"><img alt="" class="wp-image-1235" decoding="async" fetchpriority="high" height="386" sizes="(max-width: 450px) 100vw, 450px" src="https://blog.za3k.com/wp-content/uploads/2023/11/screenshot-5.png" srcset="https://blog.za3k.com/wp-content/uploads/2023/11/screenshot-5.png 450w, https://blog.za3k.com/wp-content/uploads/2023/11/screenshot-5-300x257.png 300w, https://blog.za3k.com/wp-content/uploads/2023/11/screenshot-5-150x129.png 150w, https://blog.za3k.com/wp-content/uploads/2023/11/screenshot-5-175x150.png 175w" width="450"/></a></figure>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/music/" rel="tag">music</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-day-30-music-of-the-celestial-spheres/" rel="bookmark" title="Permalink to Hack-A-Day, Day 30: Music of the (Celestial) Spheres"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-hack-a-battle
---
<!-- blogpost -->
-<article class="post-922 post type-post status-publish format-standard hentry category-non-technical category-technical tag-art tag-hack-a-day tag-music tag-november tag-throwaway tag-video-game tag-visualizer" id="post-922">
-<h1 class="entry-title">Hack-A-Day: Hack-A-Battle</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-11-22T09:15:34-07:00"> <a href="https://blog.za3k.com/hack-a-day-hack-a-battle/" rel="bookmark" title="9:15 am"><span class="entry-date">November 22, 2022</span> <span class="entry-time"> - 9:15 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-11-22T09:24:22-07:00">November 22, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>It’s november, and I’ve decided this month that I’m going to do 30 projects in 30 days. It’s an all-month hack-a-thon!</p>
<p>Yesterday’s project was <a href="https://tilde.za3k.com/hackaday/battle/">Hack-A-Battle</a> (<a href="https://tilde.za3k.com/hackaday/battle/">demo</a>, <a href="https://github.com/za3k/day21_battle">source</a>). It’s two dueling music visualizers (sound warning!). Red vs blue. As each hits the other with bullets, they lose heath. As a band takes damage, it gets dimmer and quieter. Eventually one band will win out and be the only one playing.</p>
<li>I wasn’t super pleased with the code. It was so-so</li>
<li>I wanted you to be able to upload your own songs and duel a friend</li>
</ul>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/art/" rel="tag">art</a>, <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/music/" rel="tag">music</a>, <a href="https://blog.za3k.com/tag/november/" rel="tag">november</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>, <a href="https://blog.za3k.com/tag/video-game/" rel="tag">video game</a>, <a href="https://blog.za3k.com/tag/visualizer/" rel="tag">visualizer</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-hack-a-battle/" rel="bookmark" title="Permalink to Hack-A-Day: Hack-A-Battle"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-hack-a-blog
---
<!-- blogpost -->
-<article class="post-832 post type-post status-publish format-standard hentry category-non-technical category-technical tag-blog tag-hack-a-day tag-november tag-throwaway" id="post-832">
-<h1 class="entry-title">Hack-A-Day: Hack-A-Blog</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-11-03T17:52:52-07:00"> <a href="https://blog.za3k.com/hack-a-day-hack-a-blog/" rel="bookmark" title="5:52 pm"><span class="entry-date">November 3, 2022</span> <span class="entry-time"> - 5:52 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-11-13T23:19:02-07:00">November 13, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>It’s november, and I’ve decided this month that I’m going to do 30 projects in 30 days. It’s an all-month hack-a-thon!</p>
<p>Today’s project is the <a href="https://tilde.za3k.com/hackaday/blog/">Hack-A-Blog</a>. (<a href="https://tilde.za3k.com/hackaday/blog/">demo</a>, <a href="https://github.com/za3k/day03_blog">source</a>).</p>
<figure class="wp-block-image size-large is-resized"><a href="https://tilde.za3k.com/hackaday/blog/"><img alt="" class="wp-image-840" decoding="async" fetchpriority="high" height="552" sizes="(max-width: 838px) 100vw, 838px" src="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-1024x675.png" srcset="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-1024x675.png 1024w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-300x198.png 300w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-768x506.png 768w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-150x99.png 150w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-228x150.png 228w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot.png 1175w" width="838"/></a></figure>
<p>Check out the link above to try out the live demo. I’m proud of getting this one done in time. I think the next days will be easier, as I figured some things out already.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/blog/" rel="tag">blog</a>, <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/november/" rel="tag">november</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-hack-a-blog/" rel="bookmark" title="Permalink to Hack-A-Day: Hack-A-Blog"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-hack-a-bug
---
<!-- blogpost -->
-<article class="post-958 post type-post status-publish format-standard hentry category-technical tag-bugs tag-december tag-hack-a-day tag-throwaway" id="post-958">
-<h1 class="entry-title">Hack-A-Day: Hack-A-Bug</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-12-05T21:15:50-07:00"> <a href="https://blog.za3k.com/hack-a-day-hack-a-bug/" rel="bookmark" title="9:15 pm"><span class="entry-date">December 5, 2022</span> <span class="entry-time"> - 9:15 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-12-05T21:15:50-07:00">December 5, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I’m continuing Hack-A-Day, I think. Today’s project is <a href="https://tilde.za3k.com/hackaday/bug/">Hack-A-Bug</a> (<a href="https://tilde.za3k.com/hackaday/bug/">demo</a>, <a href="https://github.com/za3k/day31_bug">source</a>). It’s a bug reporter I can add with one line to any of my projects.</p>
<figure class="wp-block-image size-full"><a href="https://tilde.za3k.com/hackaday/bug/"><img alt="" class="wp-image-959" decoding="async" fetchpriority="high" height="572" sizes="(max-width: 538px) 100vw, 538px" src="https://blog.za3k.com/wp-content/uploads/2022/12/screenshot.png" srcset="https://blog.za3k.com/wp-content/uploads/2022/12/screenshot.png 538w, https://blog.za3k.com/wp-content/uploads/2022/12/screenshot-282x300.png 282w, https://blog.za3k.com/wp-content/uploads/2022/12/screenshot-141x150.png 141w" width="538"/></a></figure>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/bugs/" rel="tag">bugs</a>, <a href="https://blog.za3k.com/tag/december/" rel="tag">december</a>, <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-hack-a-bug/" rel="bookmark" title="Permalink to Hack-A-Day: Hack-A-Bug"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-hack-a-chat
---
<!-- blogpost -->
-<article class="post-835 post type-post status-publish format-standard hentry category-non-technical category-technical tag-chat tag-hack-a-day tag-november tag-throwaway" id="post-835">
-<h1 class="entry-title">Hack-A-Day: Hack-A-Chat</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-11-04T17:18:00-07:00"> <a href="https://blog.za3k.com/hack-a-day-hack-a-chat/" rel="bookmark" title="5:18 pm"><span class="entry-date">November 4, 2022</span> <span class="entry-time"> - 5:18 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-11-13T23:18:50-07:00">November 13, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>It’s november, and I’ve decided this month that I’m going to do 30 projects in 30 days. It’s an all-month hack-a-thon!</p>
<p>Today’s project is <a href="https://tilde.za3k.com/hackaday/chat/">Hack-A-Chat</a>. (<a href="https://tilde.za3k.com/hackaday/chat/">demo</a>, <a href="https://github.com/za3k/day04_chat">source</a>). It’s a free web chat for anyone that goes to the website.</p>
<figure class="wp-block-image size-large"><a href="https://tilde.za3k.com/hackaday/chat/"><img alt="" class="wp-image-836" decoding="async" fetchpriority="high" height="553" sizes="(max-width: 1024px) 100vw, 1024px" src="https://blog.za3k.com/wp-content/uploads/2022/11/2022-11-04-201210_1920x1080_scrot-crop-1024x553.png" srcset="https://blog.za3k.com/wp-content/uploads/2022/11/2022-11-04-201210_1920x1080_scrot-crop-1024x553.png 1024w, https://blog.za3k.com/wp-content/uploads/2022/11/2022-11-04-201210_1920x1080_scrot-crop-300x162.png 300w, https://blog.za3k.com/wp-content/uploads/2022/11/2022-11-04-201210_1920x1080_scrot-crop-768x415.png 768w, https://blog.za3k.com/wp-content/uploads/2022/11/2022-11-04-201210_1920x1080_scrot-crop-150x81.png 150w, https://blog.za3k.com/wp-content/uploads/2022/11/2022-11-04-201210_1920x1080_scrot-crop-250x135.png 250w, https://blog.za3k.com/wp-content/uploads/2022/11/2022-11-04-201210_1920x1080_scrot-crop.png 1182w" width="1024"/></a></figure>
<p>Check out the link above to try out the live demo.</p>
<p>So far, not much easier. Another 8-hour day. I was hoping to do something with WebRTC today, but I didn’t get to it.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/chat/" rel="tag">chat</a>, <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/november/" rel="tag">november</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-hack-a-chat/" rel="bookmark" title="Permalink to Hack-A-Day: Hack-A-Chat"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-hack-a-clock
---
<!-- blogpost -->
-<article class="post-934 post type-post status-publish format-standard hentry category-non-technical category-technical tag-hack-a-day tag-november tag-throwaway tag-time" id="post-934">
-<h1 class="entry-title">Hack-A-Day: Hack-A-Clock</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-11-25T21:08:03-07:00"> <a href="https://blog.za3k.com/hack-a-day-hack-a-clock/" rel="bookmark" title="9:08 pm"><span class="entry-date">November 25, 2022</span> <span class="entry-time"> - 9:08 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-11-25T21:08:03-07:00">November 25, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Thursday’s project was <a href="https://tilde.za3k.com/hackaday/clock/">Hack-A-Clock</a> (<a href="https://tilde.za3k.com/hackaday/clock/">demo</a>, <a href="https://github.com/za3k/day24_clock">source</a>). It is a decimal time clock, displaying the time in revolutionary french time (minus their weird calendar).</p>
<figure class="wp-block-image size-full"><a href="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-21.png"><img alt="" class="wp-image-935" decoding="async" fetchpriority="high" height="330" sizes="(max-width: 790px) 100vw, 790px" src="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-21.png" srcset="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-21.png 790w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-21-300x125.png 300w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-21-768x321.png 768w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-21-150x63.png 150w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-21-250x104.png 250w" width="790"/></a><figcaption class="wp-element-caption"><a href="https://tilde.za3k.com/hackaday/clock/">https://tilde.za3k.com/hackaday/clock/</a></figcaption></figure>
<p>This is another “phone it in” project but I think it would have been okay with more accompanying explanation and better styling.</p>
<p></p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/november/" rel="tag">november</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>, <a href="https://blog.za3k.com/tag/time/" rel="tag">time</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-hack-a-clock/" rel="bookmark" title="Permalink to Hack-A-Day: Hack-A-Clock"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-hack-a-crop
---
<!-- blogpost -->
-<article class="post-910 post type-post status-publish format-standard hentry category-non-technical category-technical tag-hack-a-day tag-image tag-november tag-throwaway tag-tools" id="post-910">
-<h1 class="entry-title">Hack-A-Day: Hack-A-Crop</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-11-18T18:25:42-07:00"> <a href="https://blog.za3k.com/hack-a-day-hack-a-crop/" rel="bookmark" title="6:25 pm"><span class="entry-date">November 18, 2022</span> <span class="entry-time"> - 6:25 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-11-18T18:25:46-07:00">November 18, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>It’s november, and I’ve decided this month that I’m going to do 30 projects in 30 days. It’s an all-month hack-a-thon!</p>
<p>Today’s project is <a href="https://tilde.za3k.com/hackaday/crop/">Hack-A-Crop</a> (<a href="https://tilde.za3k.com/hackaday/crop/">demo</a>, <a href="https://github.com/za3k/day18_crop">source</a>). It crops an image to a fixed size.</p>
<figure class="wp-block-image size-full"><a href="https://tilde.za3k.com/hackaday/crop/"><img alt="" class="wp-image-911" decoding="async" fetchpriority="high" height="483" sizes="(max-width: 926px) 100vw, 926px" src="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-16.png" srcset="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-16.png 926w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-16-300x156.png 300w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-16-768x401.png 768w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-16-150x78.png 150w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-16-250x130.png 250w" width="926"/></a></figure>
<p>I got help from several people on the CSS, thanks to instantly sharing my work via <a href="https://ngrok.com/">ngrok</a> from my laptop. Thanks people! Thanks ngrok!</p>
<p>Today’s project was in anticipation of showing off what I did at the end of the month. I want a small thumbnail for each project.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/image/" rel="tag">image</a>, <a href="https://blog.za3k.com/tag/november/" rel="tag">november</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>, <a href="https://blog.za3k.com/tag/tools/" rel="tag">tools</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-hack-a-crop/" rel="bookmark" title="Permalink to Hack-A-Day: Hack-A-Crop"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-hack-a-dictionary
---
<!-- blogpost -->
-<article class="post-862 post type-post status-publish format-standard hentry category-non-technical category-technical tag-dictionary tag-english tag-hack-a-day tag-november tag-throwaway tag-words" id="post-862">
-<h1 class="entry-title">Hack-A-Day: Hack-A-Dictionary</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-11-08T13:55:43-07:00"> <a href="https://blog.za3k.com/hack-a-day-hack-a-dictionary/" rel="bookmark" title="1:55 pm"><span class="entry-date">November 8, 2022</span> <span class="entry-time"> - 1:55 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-11-13T23:17:08-07:00">November 13, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>It’s november, and I’ve decided this month that I’m going to do 30 projects in 30 days. It’s an all-month hack-a-thon!</p>
<p>Today’s project is <a href="https://tilde.za3k.com/hackaday/dictionary/">Hack-A-Dictionary</a> (<a href="https://tilde.za3k.com/hackaday/dictionary/">demo</a>, <a href="https://github.com/za3k/day08_dictionary">source</a>). It looks up words.</p>
<figure class="wp-block-image size-full"><a href="https://tilde.za3k.com/hackaday/dictionary/"><img alt="" class="wp-image-863" decoding="async" fetchpriority="high" height="251" sizes="(max-width: 736px) 100vw, 736px" src="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-7.png" srcset="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-7.png 736w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-7-300x102.png 300w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-7-150x51.png 150w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-7-250x85.png 250w" width="736"/></a></figure>
<p>OK, I’ll be honest. I’m phoning this one in. I needed a break.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/dictionary/" rel="tag">dictionary</a>, <a href="https://blog.za3k.com/tag/english/" rel="tag">english</a>, <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/november/" rel="tag">november</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>, <a href="https://blog.za3k.com/tag/words/" rel="tag">words</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-hack-a-dictionary/" rel="bookmark" title="Permalink to Hack-A-Day: Hack-A-Dictionary"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-hack-a-farm
---
<!-- blogpost -->
-<article class="post-947 post type-post status-publish format-standard hentry category-non-technical category-technical tag-games tag-hack-a-day tag-linux tag-throwaway tag-video-games" id="post-947">
-<h1 class="entry-title">Hack-A-Day: Hack-A-Farm</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-11-27T21:03:15-07:00"> <a href="https://blog.za3k.com/hack-a-day-hack-a-farm/" rel="bookmark" title="9:03 pm"><span class="entry-date">November 27, 2022</span> <span class="entry-time"> - 9:03 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-11-27T21:03:16-07:00">November 27, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>It’s november, and I’ve decided this month that I’m going to do 30 projects in 30 days. It’s an all-month hack-a-thon!</p>
<p>Today’s project is <a href="https://tilde.za3k.com/hackaday/farm/">Hack-A-Farm</a> (<a href="https://tilde.za3k.com/hackaday/farm/">demo</a>, <a href="https://github.com/za3k/day27_farm">source</a>). It’s a simple tile-based RPG. You can walk around as a chicken, admire your house, and plant and harvest two types of crops. </p>
<p>My main goal with this project was to work with spritesheets or animation before, which I had never done. Showing off the individual tiles is deliberate. Also, the game should respond well to smaller and larger screens, I hope.</p>
<p>I had a good time with this one, and I’m happy with how much I got done in a day. I originally planned to do more fluid walking (it was called Hack-A-Walk), but it was more fun to add crops instead.</p>
<p>I re-used some of the logic from Hack-A-Minigame and Hack-A-Snake. I’ve been finding d3 to be mildly useful, if a little annoying.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/games/" rel="tag">games</a>, <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/linux/" rel="tag">linux</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>, <a href="https://blog.za3k.com/tag/video-games/" rel="tag">video games</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-hack-a-farm/" rel="bookmark" title="Permalink to Hack-A-Day: Hack-A-Farm"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-hack-a-hang
---
<!-- blogpost -->
-<article class="post-918 post type-post status-publish format-standard hentry category-non-technical category-technical tag-audio tag-hack-a-day tag-november tag-social tag-throwaway tag-video tag-webrtc" id="post-918">
-<h1 class="entry-title">Hack-A-Day: Hack-A-Hang</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-11-19T21:04:04-07:00"> <a href="https://blog.za3k.com/hack-a-day-hack-a-hang/" rel="bookmark" title="9:04 pm"><span class="entry-date">November 19, 2022</span> <span class="entry-time"> - 9:04 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-11-19T21:13:00-07:00">November 19, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>It’s november, and I’ve decided this month that I’m going to do 30 projects in 30 days. It’s an all-month hack-a-thon!</p>
<p>Today’s project is <a href="https://tilde.za3k.com/hackaday/hang/">Hack-A-Hang</a> (<a href="https://tilde.za3k.com/hackaday/hang/">demo</a>, <a href="https://github.com/za3k/day19_hang">source</a>). It’s a place to hang out. It has text chat, video, and audio.</p>
<p>Unfortunately while everything works great on my machine, there’s a bad problem in production, and I ran out of time on this one. I’ll try to get it fixed before the end of the month if it’s easy.</p>
<figure class="wp-block-image size-full"><a href="https://tilde.za3k.com/hackaday/hang/"><img alt="" class="wp-image-919" decoding="async" fetchpriority="high" height="695" sizes="(max-width: 570px) 100vw, 570px" src="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-17.png" srcset="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-17.png 570w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-17-246x300.png 246w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-17-123x150.png 123w" width="570"/></a></figure>
<p>Hoo boy, this was one of the technically hardest ones so far. WebRTC is no joke. And not hard in a way where you have to think, hard in a way where the debugging tools are terrible. (Drag and drop was another tough one)</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/audio/" rel="tag">audio</a>, <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/november/" rel="tag">november</a>, <a href="https://blog.za3k.com/tag/social/" rel="tag">social</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>, <a href="https://blog.za3k.com/tag/video/" rel="tag">video</a>, <a href="https://blog.za3k.com/tag/webrtc/" rel="tag">webrtc</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-hack-a-hang/" rel="bookmark" title="Permalink to Hack-A-Day: Hack-A-Hang"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-hack-a-hell
---
<!-- blogpost -->
-<article class="post-927 post type-post status-publish format-standard hentry category-non-technical category-technical tag-game tag-hack-a-day tag-november tag-throwaway tag-video-games" id="post-927">
-<h1 class="entry-title">Hack-A-Day: Hack-A-Hell</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-11-22T19:37:06-07:00"> <a href="https://blog.za3k.com/hack-a-day-hack-a-hell/" rel="bookmark" title="7:37 pm"><span class="entry-date">November 22, 2022</span> <span class="entry-time"> - 7:37 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-11-22T19:41:37-07:00">November 22, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>It’s november, and I’ve decided this month that I’m going to do 30 projects in 30 days. It’s an all-month hack-a-thon!</p>
<p>Today’s project is <a href="https://tilde.za3k.com/hackaday/hell/">Hack-A-Hell</a> (<a href="https://tilde.za3k.com/hackaday/hell/">demo</a>, <a href="https://github.com/za3k/day22_hell">source</a>). It’s a bullet hell game combined with a music visualizer.</p>
<p>I’m happy with this one, although it took way too long given yesterday’s project! I keep thinking I’ll be able to modify or re-use things quickly, and it’s not true.</p>
<p></p>
<p>P.S. Taking the next day or two off for thanksgiving</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/game/" rel="tag">game</a>, <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/november/" rel="tag">november</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>, <a href="https://blog.za3k.com/tag/video-games/" rel="tag">video games</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-hack-a-hell/" rel="bookmark" title="Permalink to Hack-A-Day: Hack-A-Hell"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-hack-a-homepage
---
<!-- blogpost -->
-<article class="post-851 post type-post status-publish format-standard hentry category-non-technical category-technical tag-hack-a-day tag-homepage tag-november tag-throwaway" id="post-851">
-<h1 class="entry-title">Hack-A-Day: Hack-A-Homepage</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-11-05T18:10:35-07:00"> <a href="https://blog.za3k.com/hack-a-day-hack-a-homepage/" rel="bookmark" title="6:10 pm"><span class="entry-date">November 5, 2022</span> <span class="entry-time"> - 6:10 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-11-13T23:18:03-07:00">November 13, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>It’s november, and I’ve decided this month that I’m going to do 30 projects in 30 days. It’s an all-month hack-a-thon!</p>
<p>Today’s (catch-up) project is <a href="https://tilde.za3k.com/hackaday/homepage/v/zachary">Hack-A-Homepage</a> (<a href="https://tilde.za3k.com/hackaday/homepage/v/zachary">demo</a>, <a href="https://github.com/za3k/day01_homepage">source</a>). You can enter various information about yourself, such as links to your social media, and make your own little homepage.</p>
<figure class="wp-block-image size-full"><a href="https://tilde.za3k.com/hackaday/homepage/v/zachary"><img alt="" class="wp-image-853" decoding="async" fetchpriority="high" height="444" sizes="(max-width: 739px) 100vw, 739px" src="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-5.png" srcset="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-5.png 739w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-5-300x180.png 300w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-5-150x90.png 150w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-5-250x150.png 250w" width="739"/></a></figure>
<figure class="wp-block-image size-full"><a href="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-4.png"><img alt="" class="wp-image-852" decoding="async" height="324" sizes="(max-width: 772px) 100vw, 772px" src="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-4.png" srcset="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-4.png 772w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-4-300x126.png 300w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-4-768x322.png 768w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-4-150x63.png 150w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-4-250x105.png 250w" width="772"/></a></figure>
<p>This one took about another hour. I think it’s okay, but today was definitely a “do the numbers” game to catch up. Tomorrow I want to do something more fun and new.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/homepage/" rel="tag">homepage</a>, <a href="https://blog.za3k.com/tag/november/" rel="tag">november</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-hack-a-homepage/" rel="bookmark" title="Permalink to Hack-A-Day: Hack-A-Homepage"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-hack-a-line
---
<!-- blogpost -->
-<article class="post-879 post type-post status-publish format-standard hentry category-non-technical category-technical tag-games tag-go tag-hack-a-day tag-november tag-throwaway tag-video-games" id="post-879">
-<h1 class="entry-title">Hack-A-Day: Hack-A-Line</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-11-13T22:27:14-07:00"> <a href="https://blog.za3k.com/hack-a-day-hack-a-line/" rel="bookmark" title="10:27 pm"><span class="entry-date">November 13, 2022</span> <span class="entry-time"> - 10:27 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-11-13T23:15:35-07:00">November 13, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>It’s november, and I’ve decided this month that I’m going to do 30 projects in 30 days. It’s an all-month hack-a-thon!</p>
<p>Today’s project is <a href="https://tilde.za3k.com/hackaday/line/">Hack-A-Line</a> (<a href="https://tilde.za3k.com/hackaday/line/">demo</a>, <a href="https://github.com/za3k/day13_line">source</a>). Hack-A-Line is a 5-in-a-row game for two players. You play online against each other by sharing a link.</p>
<figure class="wp-block-image size-full"><a href="https://tilde.za3k.com/hackaday/line/"><img alt="" class="wp-image-880" decoding="async" fetchpriority="high" height="886" sizes="(max-width: 808px) 100vw, 808px" src="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-11.png" srcset="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-11.png 808w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-11-274x300.png 274w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-11-768x842.png 768w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-11-137x150.png 137w" width="808"/></a></figure>
<p>I’m okay with this one, except that there’s one really bad display bug that kind of ruins it. I’m starting to develop a list of projects where I might want to go back and fix something after this month.</p>
<p>I skipped yesterday because I needed a break.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/games/" rel="tag">games</a>, <a href="https://blog.za3k.com/tag/go/" rel="tag">go</a>, <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/november/" rel="tag">november</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>, <a href="https://blog.za3k.com/tag/video-games/" rel="tag">video games</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-hack-a-line/" rel="bookmark" title="Permalink to Hack-A-Day: Hack-A-Line"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-hack-a-link-2
---
<!-- blogpost -->
-<article class="post-931 post type-post status-publish format-standard hentry category-non-technical category-technical tag-hack-a-day tag-november tag-throwaway" id="post-931">
-<h1 class="entry-title">Hack-A-Day: Hack-A-Link 2</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-11-25T21:05:38-07:00"> <a href="https://blog.za3k.com/hack-a-day-hack-a-link-2/" rel="bookmark" title="9:05 pm"><span class="entry-date">November 25, 2022</span> <span class="entry-time"> - 9:05 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-11-25T21:05:38-07:00">November 25, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>It’s november, and I’ve decided this month that I’m going to do 30 projects in 30 days. It’s an all-month hack-a-thon!</p>
<p>Wednesday’s project was <a href="https://tilde.za3k.com/hackaday/link/">Hack-A-Link 2</a> (<a href="https://tilde.za3k.com/hackaday/link/">demo</a>, <a href="https://github.com/za3k/day02_link">source</a>). It’s an open link directory.</p>
<figure class="wp-block-image size-full"><a href="https://tilde.za3k.com/hackaday/link/"><img alt="" class="wp-image-932" decoding="async" fetchpriority="high" height="201" sizes="(max-width: 425px) 100vw, 425px" src="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-20.png" srcset="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-20.png 425w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-20-300x142.png 300w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-20-150x71.png 150w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-20-250x118.png 250w" width="425"/></a></figure>
<p>This was very much a “phone it in” project. I do think it could have been better if I had added descriptions, too.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/november/" rel="tag">november</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-hack-a-link-2/" rel="bookmark" title="Permalink to Hack-A-Day: Hack-A-Link 2"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-hack-a-link
---
<!-- blogpost -->
-<article class="post-849 post type-post status-publish format-standard hentry category-non-technical category-technical tag-hack-a-day tag-link-shortener tag-november tag-throwaway" id="post-849">
-<h1 class="entry-title">Hack-A-Day: Hack-A-Link</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-11-05T16:41:54-07:00"> <a href="https://blog.za3k.com/hack-a-day-hack-a-link/" rel="bookmark" title="4:41 pm"><span class="entry-date">November 5, 2022</span> <span class="entry-time"> - 4:41 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-11-13T23:18:19-07:00">November 13, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>It’s november, and I’ve decided this month that I’m going to do 30 projects in 30 days. It’s an all-month hack-a-thon!</p>
<p>Today’s (catch-up) project is <a href="https://tilde.za3k.com/hackaday/link">Hack-A-Link</a> (<a href="https://tilde.za3k.com/hackaday/link">demo</a>, <a href="https://github.com/za3k/day02_link">source</a>). You can enter a long link, and it will be shortened.</p>
<figure class="wp-block-image size-full"><a href="https://tilde.za3k.com/hackaday/link"><img alt="" class="wp-image-847" decoding="async" fetchpriority="high" height="243" sizes="(max-width: 736px) 100vw, 736px" src="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-3.png" srcset="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-3.png 736w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-3-300x99.png 300w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-3-150x50.png 150w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-3-250x83.png 250w" width="736"/></a></figure>
<p>This one was also pretty easy. About an hour.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/link-shortener/" rel="tag">link shortener</a>, <a href="https://blog.za3k.com/tag/november/" rel="tag">november</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-hack-a-link/" rel="bookmark" title="Permalink to Hack-A-Day: Hack-A-Link"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-hack-a-machine
---
<!-- blogpost -->
-<article class="post-871 post type-post status-publish format-standard hentry category-technical tag-compiler tag-emulator tag-hack-a-day tag-nerdery tag-november tag-throwaway tag-vm" id="post-871">
-<h1 class="entry-title">Hack-A-Day: Hack-A-Machine</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-11-10T22:16:17-07:00"> <a href="https://blog.za3k.com/hack-a-day-hack-a-machine/" rel="bookmark" title="10:16 pm"><span class="entry-date">November 10, 2022</span> <span class="entry-time"> - 10:16 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-11-13T23:16:34-07:00">November 13, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>It’s november, and I’ve decided this month that I’m going to do 30 projects in 30 days. It’s an all-month hack-a-thon!</p>
<p>Today’s project is <a href="https://tilde.za3k.com/hackaday/machine/">Hack-A-Machine</a> (<a href="https://tilde.za3k.com/hackaday/machine/">demo</a>, <a href="https://github.com/za3k/day10_machine">source</a>). It’s a whimsical VM you can play around with. </p>
<li>the entire machine 100% working (I tested a little!)</li>
<li>fixing all the bugs (there’s a particularly nasty one where you have to save before you run)</li>
</ul>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/compiler/" rel="tag">compiler</a>, <a href="https://blog.za3k.com/tag/emulator/" rel="tag">emulator</a>, <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/nerdery/" rel="tag">nerdery</a>, <a href="https://blog.za3k.com/tag/november/" rel="tag">november</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>, <a href="https://blog.za3k.com/tag/vm/" rel="tag">vm</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-hack-a-machine/" rel="bookmark" title="Permalink to Hack-A-Day: Hack-A-Machine"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-hack-a-mandelbrot
---
<!-- blogpost -->
-<article class="post-867 post type-post status-publish format-standard hentry category-non-technical category-technical tag-art tag-hack-a-day tag-math tag-throwaway" id="post-867">
-<h1 class="entry-title">Hack-A-Day: Hack-A-Mandelbrot</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-11-09T14:01:51-07:00"> <a href="https://blog.za3k.com/hack-a-day-hack-a-mandelbrot/" rel="bookmark" title="2:01 pm"><span class="entry-date">November 9, 2022</span> <span class="entry-time"> - 2:01 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-11-13T23:16:54-07:00">November 13, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>It’s november, and I’ve decided this month that I’m going to do 30 projects in 30 days. It’s an all-month hack-a-thon!</p>
<p>Today’s project is <a href="https://tilde.za3k.com/hackaday/mandelbrot/">Hack-A-Mandelbrot</a> (<a href="https://tilde.za3k.com/hackaday/mandelbrot/">demo</a>, <a href="https://github.com/za3k/day09_mandelbrot">source</a>). Interactively explore the fractal world of the Mandelbrot set.</p>
<figure class="wp-block-image size-full"><a href="https://tilde.za3k.com/hackaday/mandelbrot/"><img alt="" class="wp-image-868" decoding="async" fetchpriority="high" height="795" sizes="(max-width: 794px) 100vw, 794px" src="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-8.png" srcset="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-8.png 794w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-8-300x300.png 300w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-8-150x150.png 150w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-8-768x769.png 768w" width="794"/></a></figure>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/art/" rel="tag">art</a>, <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/math/" rel="tag">math</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-hack-a-mandelbrot/" rel="bookmark" title="Permalink to Hack-A-Day: Hack-A-Mandelbrot"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-hack-a-minigame
---
<!-- blogpost -->
-<article class="post-940 post type-post status-publish format-standard hentry category-non-technical category-technical tag-game tag-hack-a-day tag-meta tag-november tag-throwaway tag-video-game" id="post-940">
-<h1 class="entry-title">Hack-A-Day: Hack-A-Minigame</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-11-26T15:11:46-07:00"> <a href="https://blog.za3k.com/hack-a-day-hack-a-minigame/" rel="bookmark" title="3:11 pm"><span class="entry-date">November 26, 2022</span> <span class="entry-time"> - 3:11 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-11-26T15:11:46-07:00">November 26, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>It’s november, and I’ve decided this month that I’m going to do 30 projects in 30 days. It’s an all-month hack-a-thon!</p>
<p>Today’s project is <a href="https://tilde.za3k.com/hackaday/mini/">Hack-A-Minigame </a>(<a href="https://tilde.za3k.com/hackaday/mini/">demo</a>, <a href="https://github.com/za3k/day26_mini">source</a>). It’s the classic Snake, but the twist is you can only save and load the game. Rather than controlling the snake, it moves at random under AI control. You have to repeatedly save and load to make progress.</p>
<figure class="wp-block-image size-full"><a href="https://tilde.za3k.com/hackaday/mini/"><img alt="" class="wp-image-941" decoding="async" fetchpriority="high" height="504" sizes="(max-width: 680px) 100vw, 680px" src="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-23.png" srcset="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-23.png 680w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-23-300x222.png 300w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-23-150x111.png 150w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-23-202x150.png 202w" width="680"/></a></figure>
<p>Credit to Jeff Lait’s “<a href="http://www.zincland.com/7drl/savescummer/">Save Scummer</a>” 7-day roguelike for inspiration. Although actually, this whole minigame is mostly for a future project!</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/game/" rel="tag">game</a>, <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/meta/" rel="tag">meta</a>, <a href="https://blog.za3k.com/tag/november/" rel="tag">november</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>, <a href="https://blog.za3k.com/tag/video-game/" rel="tag">video game</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-hack-a-minigame/" rel="bookmark" title="Permalink to Hack-A-Day: Hack-A-Minigame"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-hack-a-paste
---
<!-- blogpost -->
-<article class="post-842 post type-post status-publish format-standard hentry category-non-technical category-technical tag-hack-a-day tag-november tag-pastebin tag-throwaway" id="post-842">
-<h1 class="entry-title">Hack-A-Day: Hack-A-Paste</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-11-05T15:42:40-07:00"> <a href="https://blog.za3k.com/hack-a-day-hack-a-paste/" rel="bookmark" title="3:42 pm"><span class="entry-date">November 5, 2022</span> <span class="entry-time"> - 3:42 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-11-13T23:18:35-07:00">November 13, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>It’s november, and I’ve decided this month that I’m going to do 30 projects in 30 days. It’s an all-month hack-a-thon!</p>
<p>Today’s project is <a href="https://tilde.za3k.com/hackaday/paste">Hack-A-Paste</a> (<a href="https://tilde.za3k.com/hackaday/paste">demo</a>, <a href="https://github.com/za3k/day05_paste">source</a>). You can upload text and share it with others.</p>
<figure class="wp-block-image size-full"><a href="https://tilde.za3k.com/hackaday/paste"><img alt="" class="wp-image-843" decoding="async" fetchpriority="high" height="358" sizes="(max-width: 735px) 100vw, 735px" src="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-1.png" srcset="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-1.png 735w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-1-300x146.png 300w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-1-150x73.png 150w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-1-250x122.png 250w" width="735"/></a></figure>
<p>Today’s project was an easy one, because I was busy. Took an hour or two.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/november/" rel="tag">november</a>, <a href="https://blog.za3k.com/tag/pastebin/" rel="tag">pastebin</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-hack-a-paste/" rel="bookmark" title="Permalink to Hack-A-Day: Hack-A-Paste"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-hack-a-snake
---
<!-- blogpost -->
-<article class="post-944 post type-post status-publish format-standard hentry category-non-technical category-technical tag-games tag-hack-a-day tag-november tag-throwaway tag-video-game" id="post-944">
-<h1 class="entry-title">Hack-A-Day: Hack-A-Snake</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-11-27T14:57:02-07:00"> <a href="https://blog.za3k.com/hack-a-day-hack-a-snake/" rel="bookmark" title="2:57 pm"><span class="entry-date">November 27, 2022</span> <span class="entry-time"> - 2:57 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-11-27T14:57:03-07:00">November 27, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>It’s november, and I’ve decided this month that I’m going to do 30 projects in 30 days. It’s an all-month hack-a-thon!</p>
<p>Today’s project is <a href="https://tilde.za3k.com/hackaday/snake/">Hack-A-Snake</a> (<a href="https://tilde.za3k.com/hackaday/snake/">demo</a>, <a href="https://github.com/za3k/day12_snake">source</a>). Yesterday I wrote a <a href="https://blog.za3k.com/hack-a-day-hack-a-minigame/">game where an AI plays snake</a>. Today I thought, hey, I should release that with keyboard controls so people can just play Snake.</p>
<figure class="wp-block-image size-full"><a href="https://tilde.za3k.com/hackaday/snake/"><img alt="" class="wp-image-945" decoding="async" height="188" sizes="(max-width: 184px) 100vw, 184px" src="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-24.png" srcset="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-24.png 184w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-24-147x150.png 147w" width="184"/></a></figure>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/games/" rel="tag">games</a>, <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/november/" rel="tag">november</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>, <a href="https://blog.za3k.com/tag/video-game/" rel="tag">video game</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-hack-a-snake/" rel="bookmark" title="Permalink to Hack-A-Day: Hack-A-Snake"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-hack-a-song
---
<!-- blogpost -->
-<article class="post-904 post type-post status-publish format-standard hentry category-non-technical category-technical tag-hack-a-day tag-music tag-november tag-throwaway" id="post-904">
-<h1 class="entry-title">Hack-A-Day: Hack-A-Song</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-11-16T14:28:25-07:00"> <a href="https://blog.za3k.com/hack-a-day-hack-a-song/" rel="bookmark" title="2:28 pm"><span class="entry-date">November 16, 2022</span> <span class="entry-time"> - 2:28 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-11-17T13:22:33-07:00">November 17, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>It’s november, and I’ve decided this month that I’m going to do 30 projects in 30 days. It’s an all-month hack-a-thon!</p>
<p>Today’s project is <a href="https://tilde.za3k.com/hackaday/song/">Hack-A-Song</a> (<a href="https://tilde.za3k.com/hackaday/song/">demo</a>, <a href="https://github.com/za3k/day16_song">source</a>). It plays greensleeves, and you can edit the music to play something else, too.</p>
<figure class="wp-block-image size-full"><a href="https://tilde.za3k.com/hackaday/song/"><img alt="" class="wp-image-905" decoding="async" fetchpriority="high" height="428" sizes="(max-width: 736px) 100vw, 736px" src="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-14.png" srcset="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-14.png 736w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-14-300x174.png 300w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-14-150x87.png 150w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-14-250x145.png 250w" width="736"/></a></figure>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/music/" rel="tag">music</a>, <a href="https://blog.za3k.com/tag/november/" rel="tag">november</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-hack-a-song/" rel="bookmark" title="Permalink to Hack-A-Day: Hack-A-Song"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-hack-a-sound
---
<!-- blogpost -->
-<article class="post-900 post type-post status-publish format-standard hentry category-non-technical category-technical tag-creative tag-hack-a-day tag-music tag-november tag-throwaway tag-toy" id="post-900">
-<h1 class="entry-title">Hack-A-Day: Hack-A-Sound</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-11-15T18:45:21-07:00"> <a href="https://blog.za3k.com/hack-a-day-hack-a-sound/" rel="bookmark" title="6:45 pm"><span class="entry-date">November 15, 2022</span> <span class="entry-time"> - 6:45 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-11-15T18:47:17-07:00">November 15, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>It’s november, and I’ve decided this month that I’m going to do 30 projects in 30 days. It’s an all-month hack-a-thon!</p>
<p>Today’s project is <a href="https://tilde.za3k.com/hackaday/sound/">Hack-A-Sound</a> (<a href="https://tilde.za3k.com/hackaday/sound/">demo</a>, <a href="https://github.com/za3k/day15_sound">source</a>). It’s a small soundboard.</p>
</ul>
<figure class="wp-block-image size-full"><a href="https://tilde.za3k.com/hackaday/sound/"><img alt="" class="wp-image-901" decoding="async" fetchpriority="high" height="863" sizes="(max-width: 542px) 100vw, 542px" src="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-13.png" srcset="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-13.png 542w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-13-188x300.png 188w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-13-94x150.png 94w" width="542"/></a></figure>
<p>Have fun. I think this was a pretty good toy.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/creative/" rel="tag">creative</a>, <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/music/" rel="tag">music</a>, <a href="https://blog.za3k.com/tag/november/" rel="tag">november</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>, <a href="https://blog.za3k.com/tag/toy/" rel="tag">toy</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-hack-a-sound/" rel="bookmark" title="Permalink to Hack-A-Day: Hack-A-Sound"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-hack-a-stats
---
<!-- blogpost -->
-<article class="post-896 post type-post status-publish format-standard hentry category-non-technical category-technical tag-hack-a-day tag-november tag-stats tag-throwaway" id="post-896">
-<h1 class="entry-title">Hack-A-Day: Hack-A-Stats</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-11-15T11:37:54-07:00"> <a href="https://blog.za3k.com/hack-a-day-hack-a-stats/" rel="bookmark" title="11:37 am"><span class="entry-date">November 15, 2022</span> <span class="entry-time"> - 11:37 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-11-15T11:38:39-07:00">November 15, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>It’s november, and I’ve decided this month that I’m going to do 30 projects in 30 days. It’s an all-month hack-a-thon!</p>
<p>Today’s project is <a href="https://tilde.za3k.com/hackaday/stats/">Hack-A-Stats</a> (<a href="https://tilde.za3k.com/hackaday/stats/">demo</a>, <a href="https://github.com/za3k/day14_stats">source</a>). It displays web traffic statistics about Hack-A-Day.</p>
<figure class="wp-block-image size-full"><a href="https://tilde.za3k.com/hackaday/stats/"><img alt="" class="wp-image-897" decoding="async" fetchpriority="high" height="530" sizes="(max-width: 593px) 100vw, 593px" src="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-12.png" srcset="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-12.png 593w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-12-300x268.png 300w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-12-150x134.png 150w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-12-168x150.png 168w" width="593"/></a></figure>
<p>The original point of the project was to show some nice graphs in d3, as an effort to teach myself d3. But halfway through I got unbearably bored by “show a bunch of stats” as a project, so no d3. Whoops! You win some you lose some.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/november/" rel="tag">november</a>, <a href="https://blog.za3k.com/tag/stats/" rel="tag">stats</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-hack-a-stats/" rel="bookmark" title="Permalink to Hack-A-Day: Hack-A-Stats"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-hack-a-tank
---
<!-- blogpost -->
-<article class="post-907 post type-post status-publish format-standard hentry category-non-technical category-technical tag-hack-a-day tag-november tag-pets tag-relaxing tag-throwaway" id="post-907">
-<h1 class="entry-title">Hack-A-Day: Hack-A-Tank</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-11-17T17:05:54-07:00"> <a href="https://blog.za3k.com/hack-a-day-hack-a-tank/" rel="bookmark" title="5:05 pm"><span class="entry-date">November 17, 2022</span> <span class="entry-time"> - 5:05 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-11-17T17:05:54-07:00">November 17, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>It’s november, and I’ve decided this month that I’m going to do 30 projects in 30 days. It’s an all-month hack-a-thon!</p>
<p>Today’s project is <a href="https://tilde.za3k.com/hackaday/tank/">Hack-A-Tank</a> (<a href="https://tilde.za3k.com/hackaday/tank/">demo</a>, <a href="https://github.com/za3k/day17_tank">source</a>). It’s a relaxing fishtank toy. Enjoy.</p>
<figure class="wp-block-image size-full"><a href="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-15.png"><img alt="" class="wp-image-908" decoding="async" fetchpriority="high" height="388" sizes="(max-width: 669px) 100vw, 669px" src="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-15.png" srcset="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-15.png 669w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-15-300x174.png 300w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-15-150x87.png 150w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-15-250x145.png 250w" width="669"/></a></figure>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/november/" rel="tag">november</a>, <a href="https://blog.za3k.com/tag/pets/" rel="tag">pets</a>, <a href="https://blog.za3k.com/tag/relaxing/" rel="tag">relaxing</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-hack-a-tank/" rel="bookmark" title="Permalink to Hack-A-Day: Hack-A-Tank"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-hack-a-tile
---
<!-- blogpost -->
-<article class="post-874 post type-post status-publish format-standard hentry category-non-technical category-technical tag-art tag-hack-a-day tag-mathematics tag-november tag-throwaway tag-video-game" id="post-874">
-<h1 class="entry-title">Hack-A-Day: Hack-A-Tile</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-11-11T19:09:16-07:00"> <a href="https://blog.za3k.com/hack-a-day-hack-a-tile/" rel="bookmark" title="7:09 pm"><span class="entry-date">November 11, 2022</span> <span class="entry-time"> - 7:09 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-11-13T23:16:17-07:00">November 13, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>It’s november, and I’ve decided this month that I’m going to do 30 projects in 30 days. It’s an all-month hack-a-thon!</p>
<p>Today’s project is <a href="https://tilde.za3k.com/hackaday/tile/">Hack-A-Tile</a> (<a href="https://tilde.za3k.com/hackaday/tile/">demo</a>, <a href="https://github.com/za3k/day11_tile">source</a>). It’s a tile-matching game like dominos. </p>
<li>Either add a maximum size, or some constraint to stop you just making one long line.</li>
</ul>
<p></p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/art/" rel="tag">art</a>, <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/mathematics/" rel="tag">mathematics</a>, <a href="https://blog.za3k.com/tag/november/" rel="tag">november</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>, <a href="https://blog.za3k.com/tag/video-game/" rel="tag">video game</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-hack-a-tile/" rel="bookmark" title="Permalink to Hack-A-Day: Hack-A-Tile"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-hack-a-tv-guide
---
<!-- blogpost -->
-<article class="post-961 post type-post status-publish format-standard hentry category-non-technical category-technical tag-hack-a-day tag-throwaway tag-tv tag-web-scraping tag-wikipedia" id="post-961">
-<h1 class="entry-title">Hack-A-Day: Hack-A-TV-Guide</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-12-07T19:22:32-07:00"> <a href="https://blog.za3k.com/hack-a-day-hack-a-tv-guide/" rel="bookmark" title="7:22 pm"><span class="entry-date">December 7, 2022</span> <span class="entry-time"> - 7:22 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-12-07T19:22:33-07:00">December 7, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>It’s no longer november, but I’m still doing a project a day. It’s an all-month hack-a-thon!</p>
<p>Yesterday’s project was <a href="https://tilde.za3k.com/hackaday/tvguide/">Hack-A-TV-Guide</a> (<a href="https://tilde.za3k.com/hackaday/tvguide/">demo</a>, <a href="https://github.com/za3k/day33_tvguide">source</a>). It’s a TV Guide generated from <a href="https://en.wikipedia.org/wiki/Main_Page">Wikipedia</a>. I got the idea from having written <a href="http://isrickandmortyout.com/">isrickandmortyout.com</a>. Why not do the same thing, but for every show?</p>
<figure class="wp-block-image size-full"><a href="https://tilde.za3k.com/hackaday/tvguide/"><img alt="" class="wp-image-962" decoding="async" fetchpriority="high" height="353" sizes="(max-width: 576px) 100vw, 576px" src="https://blog.za3k.com/wp-content/uploads/2022/12/screenshot-1.png" srcset="https://blog.za3k.com/wp-content/uploads/2022/12/screenshot-1.png 576w, https://blog.za3k.com/wp-content/uploads/2022/12/screenshot-1-300x184.png 300w, https://blog.za3k.com/wp-content/uploads/2022/12/screenshot-1-150x92.png 150w, https://blog.za3k.com/wp-content/uploads/2022/12/screenshot-1-245x150.png 245w" width="576"/></a></figure>
<p>I’m going to call this one a flop. There’s a good version of this project, but I ran out of time. Basically all it does is display info about a show, which is not very useful.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>, <a href="https://blog.za3k.com/tag/tv/" rel="tag">tv</a>, <a href="https://blog.za3k.com/tag/web-scraping/" rel="tag">web scraping</a>, <a href="https://blog.za3k.com/tag/wikipedia/" rel="tag">wikipedia</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-hack-a-tv-guide/" rel="bookmark" title="Permalink to Hack-A-Day: Hack-A-TV-Guide"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-hack-an-adventure
---
<!-- blogpost -->
-<article class="post-950 post type-post status-publish format-standard hentry category-non-technical category-technical tag-art tag-games tag-hack-a-day tag-november tag-throwaway" id="post-950">
-<h1 class="entry-title">Hack-A-Day: Hack-An-Adventure</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-11-29T16:24:43-07:00"> <a href="https://blog.za3k.com/hack-a-day-hack-an-adventure/" rel="bookmark" title="4:24 pm"><span class="entry-date">November 29, 2022</span> <span class="entry-time"> - 4:24 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-11-29T16:25:15-07:00">November 29, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>It’s november, and I’ve decided this month that I’m going to do 30 projects in 30 days. It’s an all-month hack-a-thon!</p>
<p>Today’s project is <a href="https://tilde.za3k.com/hackaday/adventure/">Hack-An-Adventure</a> (<a href="https://tilde.za3k.com/hackaday/adventure/">demo</a>, <a href="https://github.com/za3k/day29_adventure">source</a>). It’s a coloring book. It’s designed to be relaxing.</p>
<figure class="wp-block-image size-full"><a href="https://tilde.za3k.com/hackaday/adventure/"><img alt="" class="wp-image-951" decoding="async" fetchpriority="high" height="442" src="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot.gif" width="750"/></a></figure>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/art/" rel="tag">art</a>, <a href="https://blog.za3k.com/tag/games/" rel="tag">games</a>, <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/november/" rel="tag">november</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-hack-an-adventure/" rel="bookmark" title="Permalink to Hack-A-Day: Hack-An-Adventure"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-hack-an-asteroid
---
<!-- blogpost -->
-<article class="post-859 post type-post status-publish format-standard hentry category-non-technical category-technical tag-hack-a-day tag-november tag-throwaway tag-unity3d tag-video-games" id="post-859">
-<h1 class="entry-title">Hack-A-Day: Hack-An-Asteroid</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-11-07T16:02:21-07:00"> <a href="https://blog.za3k.com/hack-a-day-hack-an-asteroid/" rel="bookmark" title="4:02 pm"><span class="entry-date">November 7, 2022</span> <span class="entry-time"> - 4:02 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-11-13T23:17:32-07:00">November 13, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>It’s november, and I’ve decided this month that I’m going to do 30 projects in 30 days. It’s an all-month hack-a-thon!</p>
<p>Today’s project is <a href="https://tilde.za3k.com/hackaday/asteroid/">Hack-An-Asteroid</a> (<a href="https://tilde.za3k.com/hackaday/asteroid/">demo</a>, <a href="https://github.com/za3k/day07_asteroid">source</a>). It’s an asteroids clone with four levels.</p>
<p>I’m pretty happy with this as my first “visual” game. I made it in Unity3D.</p>
<figure class="wp-block-image size-large"><a href="https://tilde.za3k.com/hackaday/asteroid/"><img alt="" class="wp-image-860" decoding="async" fetchpriority="high" height="700" sizes="(max-width: 1024px) 100vw, 1024px" src="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-1024x700.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-1024x700.jpg 1024w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-300x205.jpg 300w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-768x525.jpg 768w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-150x102.jpg 150w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-220x150.jpg 220w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot.jpg 1042w" width="1024"/></a></figure>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/november/" rel="tag">november</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>, <a href="https://blog.za3k.com/tag/unity3d/" rel="tag">unity3d</a>, <a href="https://blog.za3k.com/tag/video-games/" rel="tag">video games</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-hack-an-asteroid/" rel="bookmark" title="Permalink to Hack-A-Day: Hack-An-Asteroid"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-hack-an-experiment
---
<!-- blogpost -->
-<article class="post-937 post type-post status-publish format-standard hentry category-technical tag-algorithms tag-hack-a-day tag-november tag-throwaway" id="post-937">
-<h1 class="entry-title">Hack-A-Day: Hack-An-Experiment</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-11-25T21:10:50-07:00"> <a href="https://blog.za3k.com/hack-a-day-hack-an-experiment/" rel="bookmark" title="9:10 pm"><span class="entry-date">November 25, 2022</span> <span class="entry-time"> - 9:10 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-11-25T21:10:51-07:00">November 25, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>It’s november, and I’ve decided this month that I’m going to do 30 projects in 30 days. It’s an all-month hack-a-thon!</p>
<p>Today’s project was <a href="https://tilde.za3k.com/hackaday/experiment/">Hack-An-Experiment</a> (<a href="https://tilde.za3k.com/hackaday/experiment/">demo</a>, <a href="https://github.com/za3k/day25_experiment">source</a>). It’s designed to present the basics of experimental algorithmics, while also getting me acquainted with d3.</p>
<figure class="wp-block-image size-large"><a href="https://tilde.za3k.com/hackaday/experiment/"><img alt="" class="wp-image-938" decoding="async" fetchpriority="high" height="640" sizes="(max-width: 1024px) 100vw, 1024px" src="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-22-1024x640.png" srcset="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-22-1024x640.png 1024w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-22-300x187.png 300w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-22-768x480.png 768w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-22-150x94.png 150w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-22-240x150.png 240w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-22.png 1167w" width="1024"/></a></figure>
<p>I have to say, I keep seeing d3 sold as a “graphing” library. And it’s definitely not. Maybe you could write one on top of it.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/algorithms/" rel="tag">algorithms</a>, <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/november/" rel="tag">november</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-hack-an-experiment/" rel="bookmark" title="Permalink to Hack-A-Day: Hack-An-Experiment"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-hack-an-icecube-failure
---
<!-- blogpost -->
-<article class="post-856 post type-post status-publish format-standard hentry category-non-technical category-technical tag-hack-a-day tag-november tag-throwaway tag-unity3d tag-video-games" id="post-856">
-<h1 class="entry-title">Hack-A-Day: Hack-An-Icecube (failure)</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-11-06T21:35:27-07:00"> <a href="https://blog.za3k.com/hack-a-day-hack-an-icecube-failure/" rel="bookmark" title="9:35 pm"><span class="entry-date">November 6, 2022</span> <span class="entry-time"> - 9:35 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-11-13T23:17:49-07:00">November 13, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>It’s november, and I’ve decided this month that I’m going to do 30 projects in 30 days. It’s an all-month hack-a-thon!</p>
<p>Today’s project is <a href="https://tilde.za3k.com/hackaday/icecube/">Hack-An-Icecube</a> (<a href="https://tilde.za3k.com/hackaday/icecube/">demo</a>, <a href="https://github.com/za3k/day06_icecube">source</a>). It’s a failed attempt to make a game in Unity3D, the game engine/framework.</p>
<figure class="wp-block-image size-full"><a href="https://tilde.za3k.com/hackaday/icecube/"><img alt="" class="wp-image-857" decoding="async" fetchpriority="high" height="669" sizes="(max-width: 967px) 100vw, 967px" src="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-6.png" srcset="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-6.png 967w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-6-300x208.png 300w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-6-768x531.png 768w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-6-150x104.png 150w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-6-217x150.png 217w" width="967"/></a></figure>
<p>The ice cubes load and fall, and that’s it. No controls, no game. I ran out of time.</p>
<p>This is an attempt to recreate <a href="https://juzek.itch.io/one-hour-jam-cannon">One Hour Jam Cannon</a> by juzek exactly. I ran out of time, but I made some progress getting Unity to work.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/november/" rel="tag">november</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>, <a href="https://blog.za3k.com/tag/unity3d/" rel="tag">unity3d</a>, <a href="https://blog.za3k.com/tag/video-games/" rel="tag">video games</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-hack-an-icecube-failure/" rel="bookmark" title="Permalink to Hack-A-Day: Hack-An-Icecube (failure)"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-hack-an-mmo
---
<!-- blogpost -->
-<article class="post-954 post type-post status-publish format-standard hentry category-non-technical category-technical tag-art tag-games tag-hack-a-day tag-november tag-throwaway" id="post-954">
-<h1 class="entry-title">Hack-A-Day: Hack-An-MMO</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-11-30T16:44:44-07:00"> <a href="https://blog.za3k.com/hack-a-day-hack-an-mmo/" rel="bookmark" title="4:44 pm"><span class="entry-date">November 30, 2022</span> <span class="entry-time"> - 4:44 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-11-30T16:44:44-07:00">November 30, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>It’s november, and I’ve decided this month that I’m going to do 30 projects in 30 days. It’s an all-month hack-a-thon!</p>
<p>This is November 30th, so this will be the last project.</p>
<p>Today’s project is <a href="https://tilde.za3k.com/hackaday/mmo/">Hack-An-MMO</a> (<a href="https://tilde.za3k.com/hackaday/mmo/">demo</a>, <a href="https://github.com/za3k/day30_mmo">source</a>). It’s a small collaborative art RPG. You can draw people, places, and things to populate the tiny world. Have fun!</p>
<figure class="wp-block-image size-full"><a href="https://tilde.za3k.com/hackaday/mmo/"><img alt="" class="wp-image-955" decoding="async" fetchpriority="high" height="848" sizes="(max-width: 689px) 100vw, 689px" src="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-26.png" srcset="https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-26.png 689w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-26-244x300.png 244w, https://blog.za3k.com/wp-content/uploads/2022/11/screenshot-26-122x150.png 122w" width="689"/></a></figure>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/art/" rel="tag">art</a>, <a href="https://blog.za3k.com/tag/games/" rel="tag">games</a>, <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/november/" rel="tag">november</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-hack-an-mmo/" rel="bookmark" title="Permalink to Hack-A-Day: Hack-An-MMO"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-hack-an-uptime
---
<!-- blogpost -->
-<article class="post-964 post type-post status-publish format-standard hentry category-non-technical category-technical tag-hack-a-day tag-throwaway" id="post-964">
-<h1 class="entry-title">Hack-A-Day: Hack-An-Uptime</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-12-07T19:24:41-07:00"> <a href="https://blog.za3k.com/hack-a-day-hack-an-uptime/" rel="bookmark" title="7:24 pm"><span class="entry-date">December 7, 2022</span> <span class="entry-time"> - 7:24 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-12-07T19:25:06-07:00">December 7, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>It’s no longer november, but I’m still doing a project a day. It’s an all-month hack-a-thon!</p>
<p>Today’s project is <a href="https://tilde.za3k.com/hackaday/uptime/">Hack-An-Uptime</a> (<a href="https://tilde.za3k.com/hackaday/uptime/">demo</a>, <a href="https://github.com/za3k/day34_uptime">source</a>). It’s a simple experiment where you press a button every day.</p>
<figure class="wp-block-image size-full"><a href="https://tilde.za3k.com/hackaday/uptime/"><img alt="" class="wp-image-965" decoding="async" fetchpriority="high" height="254" sizes="(max-width: 308px) 100vw, 308px" src="https://blog.za3k.com/wp-content/uploads/2022/12/screenshot-2.png" srcset="https://blog.za3k.com/wp-content/uploads/2022/12/screenshot-2.png 308w, https://blog.za3k.com/wp-content/uploads/2022/12/screenshot-2-300x247.png 300w, https://blog.za3k.com/wp-content/uploads/2022/12/screenshot-2-150x124.png 150w, https://blog.za3k.com/wp-content/uploads/2022/12/screenshot-2-182x150.png 182w" width="308"/></a></figure>
<p>This was a very simple project. I’m curious what will happen with it.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-hack-an-uptime/" rel="bookmark" title="Permalink to Hack-A-Day: Hack-An-Uptime"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hack-a-day-website
---
<!-- blogpost -->
-<article class="post-915 post type-post status-publish format-standard hentry category-non-technical tag-hack-a-day tag-website" id="post-915">
-<h1 class="entry-title">Hack-A-Day website</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-11-18T21:08:59-07:00"> <a href="https://blog.za3k.com/hack-a-day-website/" rel="bookmark" title="9:08 pm"><span class="entry-date">November 18, 2022</span> <span class="entry-time"> - 9:08 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-11-18T21:11:11-07:00">November 18, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Hack-A-Day has its own website now: <a href="https://za3k.com/hackaday">https://za3k.com/hackaday</a></p>
<p>Yes, this is why I wrote <a href="https://blog.za3k.com/hack-a-day-hack-a-crop/">Hack-A-Crop</a>.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/website/" rel="tag">website</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hack-a-day-website/" rel="bookmark" title="Permalink to Hack-A-Day website"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hello-world
---
<!-- blogpost -->
-<article class="post-1 post type-post status-publish format-standard hentry category-non-technical" id="post-1">
-<h1 class="entry-title">New blog</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2014-07-19T06:43:42-07:00"> <a href="https://blog.za3k.com/hello-world/" rel="bookmark" title="6:43 am"><span class="entry-date">July 19, 2014</span> <span class="entry-time"> - 6:43 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-07-23T14:31:07-07:00">July 23, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>This is my new blog! The old content is <a href="https://za3k.com/archive/wordpress/">archived</a>.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_bookmark">Bookmark the <a href="https://blog.za3k.com/hello-world/" rel="bookmark" title="Permalink to New blog">permalink</a>. </span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: hillsfar-lockpicking-20-complete
---
<!-- blogpost -->
-<article class="post-1263 post type-post status-publish format-standard hentry category-non-technical tag-games tag-hack-a-day tag-video-game" id="post-1263">
-<h1 class="entry-title">Hillsfar Lockpicking (20) Complete</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-12-31T16:20:36-07:00"> <a href="https://blog.za3k.com/hillsfar-lockpicking-20-complete/" rel="bookmark" title="4:20 pm"><span class="entry-date">December 31, 2023</span> <span class="entry-time"> - 4:20 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-12-31T16:25:22-07:00">December 31, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>The game can be played <a href="https://za3k.github.io/ha3k-20-lockpick/">here</a>. Source code is <a href="https://za3k.github.io/ha3k-20-lockpick/">on github</a>.</p>
<figure class="wp-block-image size-full"><a href="https://za3k.github.io/ha3k-20-lockpick/"><img alt="" class="wp-image-1264" decoding="async" fetchpriority="high" height="533" sizes="(max-width: 858px) 100vw, 858px" src="https://blog.za3k.com/wp-content/uploads/2023/12/screenshot.png" srcset="https://blog.za3k.com/wp-content/uploads/2023/12/screenshot.png 858w, https://blog.za3k.com/wp-content/uploads/2023/12/screenshot-300x186.png 300w, https://blog.za3k.com/wp-content/uploads/2023/12/screenshot-768x477.png 768w, https://blog.za3k.com/wp-content/uploads/2023/12/screenshot-150x93.png 150w, https://blog.za3k.com/wp-content/uploads/2023/12/screenshot-241x150.png 241w" width="858"/></a></figure>
<p>Info about the original 1989 Hillsfar game is linked from the demo! Enjoy.</p>
<p>See also the <a href="https://blog.za3k.com/hack-a-day-day-20-hillsfar-lockpicking-spritesheet/">previous blog post</a> about the spritesheet. </p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/games/" rel="tag">games</a>, <a href="https://blog.za3k.com/tag/hack-a-day/" rel="tag">hack-a-day</a>, <a href="https://blog.za3k.com/tag/video-game/" rel="tag">video game</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/hillsfar-lockpicking-20-complete/" rel="bookmark" title="Permalink to Hillsfar Lockpicking (20) Complete"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: how-to-retire-for-infinity-years
---
<!-- blogpost -->
-<article class="post-738 post type-post status-publish format-standard hentry category-non-technical tag-finances" id="post-738">
-<h1 class="entry-title">How to Retire For Infinity Years</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-07-02T23:01:41-07:00"> <a href="https://blog.za3k.com/how-to-retire-for-infinity-years/" rel="bookmark" title="11:01 pm"><span class="entry-date">July 2, 2022</span> <span class="entry-time"> - 11:01 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-07-02T23:03:37-07:00">July 2, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I retired at 31, and get asked about it sometimes. I wrote an article about how the math of retirement, which explains how I retired early (and some some extent, why). And of course, how and why you might want to as well.</p>
<p>I want to edit my finances articles, so this one is on my website instead: <a href="https://za3k.com/finance/retire_forever">https://za3k.com/finance/retire_forever</a></p>
<p>There will probably be some more finances articles to come soon.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/finances/" rel="tag">finances</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/how-to-retire-for-infinity-years/" rel="bookmark" title="Permalink to How to Retire For Infinity Years"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: html-css-cheatsheet
---
<!-- blogpost -->
-<article class="post-1117 post type-post status-publish format-standard hentry category-technical tag-cheatsheet tag-css tag-html tag-web" id="post-1117">
-<h1 class="entry-title">HTML + CSS Cheatsheet</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-07-21T16:44:36-07:00"> <a href="https://blog.za3k.com/html-css-cheatsheet/" rel="bookmark" title="4:44 pm"><span class="entry-date">July 21, 2023</span> <span class="entry-time"> - 4:44 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-07-21T16:45:06-07:00">July 21, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I made an <a href="https://za3k.com/html-css-cheatsheet">animated HTML + CSS cheatsheet</a>. This took me about three days. It is not really intended for beginners. It contains stuff I frequently forget myself.</p>
<figure class="wp-block-image size-full"><a href="https://za3k.com/html-css-cheatsheet"><img alt="" class="wp-image-1118" decoding="async" fetchpriority="high" height="550" sizes="(max-width: 683px) 100vw, 683px" src="https://blog.za3k.com/wp-content/uploads/2023/07/2023-07-21-194333_1920x1080_scrot-crop.png" srcset="https://blog.za3k.com/wp-content/uploads/2023/07/2023-07-21-194333_1920x1080_scrot-crop.png 683w, https://blog.za3k.com/wp-content/uploads/2023/07/2023-07-21-194333_1920x1080_scrot-crop-300x242.png 300w, https://blog.za3k.com/wp-content/uploads/2023/07/2023-07-21-194333_1920x1080_scrot-crop-150x121.png 150w, https://blog.za3k.com/wp-content/uploads/2023/07/2023-07-21-194333_1920x1080_scrot-crop-186x150.png 186w" width="683"/></a></figure>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/cheatsheet/" rel="tag">cheatsheet</a>, <a href="https://blog.za3k.com/tag/css/" rel="tag">css</a>, <a href="https://blog.za3k.com/tag/html/" rel="tag">html</a>, <a href="https://blog.za3k.com/tag/web/" rel="tag">web</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/html-css-cheatsheet/" rel="bookmark" title="Permalink to HTML + CSS Cheatsheet"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: installing-canon-imageclass-lbp-6000-on-64-bit-debian
---
<!-- blogpost -->
-<article class="post-263 post type-post status-publish format-standard has-post-thumbnail hentry category-technical tag-command-line tag-install tag-linux tag-printer" id="post-263">
-<h1 class="entry-title">Installing Canon imageClass LBP-6000 on 64-bit Debian</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-10-05T01:44:36-07:00"> <a href="https://blog.za3k.com/installing-canon-imageclass-lbp-6000-on-64-bit-debian/" rel="bookmark" title="1:44 am"><span class="entry-date">October 5, 2015</span> <span class="entry-time"> - 1:44 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-10-17T19:27:12-07:00">October 17, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p><span id="more-263"></span>(From <a href="http://askubuntu.com/questions/463289/cant-get-my-canon-lbp-printer-to-run-under-ubuntu-14-04/464334">Stack Overflow</a>)</p>
<ol>
<pre lang="shell">sudo update-rc.d ccpd defaults</pre>
</li>
</ol>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/command-line/" rel="tag">command-line</a>, <a href="https://blog.za3k.com/tag/install/" rel="tag">install</a>, <a href="https://blog.za3k.com/tag/linux/" rel="tag">linux</a>, <a href="https://blog.za3k.com/tag/printer/" rel="tag">printer</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/installing-canon-imageclass-lbp-6000-on-64-bit-debian/" rel="bookmark" title="Permalink to Installing Canon imageClass LBP-6000 on 64-bit Debian"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: installing-email-with-postfix-and-dovecot
---
<!-- blogpost -->
-<article class="post-358 post type-post status-publish format-standard hentry category-technical tag-debian tag-dovecot tag-email tag-linux tag-postfix tag-system-administration" id="post-358">
-<h1 class="entry-title">Installing email with Postfix and Dovecot (with Postgres)</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-11-07T17:31:25-07:00"> <a href="https://blog.za3k.com/installing-email-with-postfix-and-dovecot/" rel="bookmark" title="5:31 pm"><span class="entry-date">November 7, 2015</span> <span class="entry-time"> - 5:31 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2017-04-05T19:09:13-07:00">April 5, 2017</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I’m posting my email setup here. The end result will:</p>
<ul>
<li>The option to specify a SQL query as a configuration file option is wonderful. Thanks, Dovecot.</li>
<li>Overall, although it was a lot of work, I do feel like it was worth it to run my own email server.</li>
</ul>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/debian/" rel="tag">debian</a>, <a href="https://blog.za3k.com/tag/dovecot/" rel="tag">dovecot</a>, <a href="https://blog.za3k.com/tag/email/" rel="tag">email</a>, <a href="https://blog.za3k.com/tag/linux/" rel="tag">linux</a>, <a href="https://blog.za3k.com/tag/postfix/" rel="tag">postfix</a>, <a href="https://blog.za3k.com/tag/system-administration/" rel="tag">system administration</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/installing-email-with-postfix-and-dovecot/" rel="bookmark" title="Permalink to Installing email with Postfix and Dovecot (with Postgres)"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
<ol class="commentlist">
wordpress_slug: introducing-the-zorchpad-display-demo
---
<!-- blogpost -->
-<article class="post-1043 post type-post status-publish format-standard hentry category-technical tag-computers tag-hardware tag-microcontroller tag-zorchpad" id="post-1043">
-<h1 class="entry-title">Introducing the Zorchpad (+ display demo)</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-06-07T16:42:28-07:00"> <a href="https://blog.za3k.com/introducing-the-zorchpad-display-demo/" rel="bookmark" title="4:42 pm"><span class="entry-date">June 7, 2023</span> <span class="entry-time"> - 4:42 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-06-07T17:00:00-07:00">June 7, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>A friend of mine, <a href="http://canonical.org/~kragen/">Kragen Javier Sitaker</a> has been designing something he calls the zorzpad (see link below). I can never remember the name, so as a joke my version became the “zorch pad”. We live on opposite sides of the globe, but we’ve picked up the same or similar hardware, and have been having fun developing the hardware and software together.</p>
<p>The basic idea of the Zorchpad is to have one computer, indefinitely. It should keep working until you die. That means no battery that runs out, and no parts that go bad (and of course, no requirements to “phone home” for the latest update via wifi!). This is not your standard computer, and we’ve been trying a lot of experimental things. One of the main requirements is that everything be very low-power. He picked out the excellent <a href="https://www.sparkfun.com/categories/tags/apollo3">apollo3</a> processor, which theoretically runs at around 1mW. In general, the zorchpad is made of closed-source hardware.</p>
<p>According to the datasheet, the screen consumes 0.05-0.25mW without an update, and perhaps 0.175-0.35mW updating once per second. We haven’t yet measured the real power consumption for any of the components.</p>
<p>The most obvious alternative is e-ink. E-ink has a muuuch slower refresh rate (maybe 1Hz if you hack it), and uses no power when not updating. Unfortunately it uses orders of magnitude more power for an update. Also, you can get much larger e-ink screens. The final zorchpad might have one, both or something else entirely! We’re in an experimentation phase.</p>
<p>Datasheets, a bill of materials, and all source code can be found in my <a href="https://github.com/za3k/zorchpad">zorchpad</a> repo. Also check out Kragen’s <a href="http://canonical.org/~kragen/sw/zorzpad/">zorzpad</a> repo.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/computers/" rel="tag">computers</a>, <a href="https://blog.za3k.com/tag/hardware/" rel="tag">hardware</a>, <a href="https://blog.za3k.com/tag/microcontroller/" rel="tag">microcontroller</a>, <a href="https://blog.za3k.com/tag/zorchpad/" rel="tag">zorchpad</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/introducing-the-zorchpad-display-demo/" rel="bookmark" title="Permalink to Introducing the Zorchpad (+ display demo)"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
<ol class="commentlist">
wordpress_slug: irc
---
<!-- blogpost -->
-<article class="post-225 post type-post status-publish format-standard hentry category-non-technical tag-computercraft tag-irc tag-minecraft-2 tag-website tag-website-update" id="post-225">
-<h1 class="entry-title">IRC</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-06-28T02:22:27-07:00"> <a href="https://blog.za3k.com/irc/" rel="bookmark" title="2:22 am"><span class="entry-date">June 28, 2015</span> <span class="entry-time"> - 2:22 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-06-28T02:24:09-07:00">June 28, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p> </p>
<p> </p>
<p>Or via the <a href="https://irc.za3k.com/?channels=forum">webchat</a>, which I recommend.</p>
<p>I’ve also recently updated my <a href="https://za3k.com/">home page</a> to look much prettier, in imitation of a <a href="https://za3k.com/computercraft_reference.html">Computer Craft cheatsheet</a> I’ve been working on.</p>
<p> </p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/computercraft/" rel="tag">computercraft</a>, <a href="https://blog.za3k.com/tag/irc/" rel="tag">irc</a>, <a href="https://blog.za3k.com/tag/minecraft-2/" rel="tag">minecraft</a>, <a href="https://blog.za3k.com/tag/website/" rel="tag">website</a>, <a href="https://blog.za3k.com/tag/website-update/" rel="tag">website update</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/irc/" rel="bookmark" title="Permalink to IRC"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
<ol class="commentlist">
wordpress_slug: ircpuzzles-2024
---
<!-- blogpost -->
-<article class="post-1304 post type-post status-publish format-standard hentry category-non-technical tag-irc tag-ircpuzzles tag-puzzles" id="post-1304">
-<h1 class="entry-title">ircpuzzles! 2024</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2024-04-01T06:21:20-07:00"> <a href="https://blog.za3k.com/ircpuzzles-2024/" rel="bookmark" title="6:21 am"><span class="entry-date">April 1, 2024</span> <span class="entry-time"> - 6:21 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2024-04-01T06:21:20-07:00">April 1, 2024</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I’m one of the designers for the yearly April Fools Puzzle Contest on IRC.</p>
<p>Please feel free to join at <a href="https://blog.ircpuzzles.org/">https://blog.ircpuzzles.org/</a>. The idea is that you solve puzzles in a chatroom, and get the password to the next chatroom, and so on. If you’re not familiar with IRC, don’t worry–a link is provided to connect in your browser, too.</p>
<p>It’s a lot of fun, and I hope you enjoy!</p>
<p>P.S. The contest should be up for a while, so don’t worry about being late to the party!</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/irc/" rel="tag">irc</a>, <a href="https://blog.za3k.com/tag/ircpuzzles/" rel="tag">ircpuzzles</a>, <a href="https://blog.za3k.com/tag/puzzles/" rel="tag">puzzles</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/ircpuzzles-2024/" rel="bookmark" title="Permalink to ircpuzzles! 2024"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: is-rick-and-morty-out-season-5
---
<!-- blogpost -->
-<article class="post-591 post type-post status-publish format-standard hentry category-non-technical tag-isitoutyet tag-rick-and-morty tag-websites" id="post-591">
-<h1 class="entry-title">Is Rick and Morty Out? (Season 5)</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2021-05-31T20:20:37-07:00"> <a href="https://blog.za3k.com/is-rick-and-morty-out-season-5/" rel="bookmark" title="8:20 pm"><span class="entry-date">May 31, 2021</span> <span class="entry-time"> - 8:20 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2021-06-05T15:41:58-07:00">June 5, 2021</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I made a site for your constant refresh needs: <a href="http://isrickandmortyout.com/">http://isrickandmortyout.com/</a></p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/isitoutyet/" rel="tag">isitoutyet</a>, <a href="https://blog.za3k.com/tag/rick-and-morty/" rel="tag">rick and morty</a>, <a href="https://blog.za3k.com/tag/websites/" rel="tag">websites</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/is-rick-and-morty-out-season-5/" rel="bookmark" title="Permalink to Is Rick and Morty Out? (Season 5)"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: is-rick-and-morty-out-season-6
---
<!-- blogpost -->
-<article class="post-778 post type-post status-publish format-standard hentry category-non-technical tag-isitoutyet tag-rick-and-morty tag-website" id="post-778">
-<h1 class="entry-title">Is Rick and Morty Out? (Season 6)</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-08-11T23:11:09-07:00"> <a href="https://blog.za3k.com/is-rick-and-morty-out-season-6/" rel="bookmark" title="11:11 pm"><span class="entry-date">August 11, 2022</span> <span class="entry-time"> - 11:11 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-08-11T23:11:09-07:00">August 11, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I made a site for your constant refresh needs: <a href="http://isrickandmortyout.com/">http://isrickandmortyout.com/</a></p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/isitoutyet/" rel="tag">isitoutyet</a>, <a href="https://blog.za3k.com/tag/rick-and-morty/" rel="tag">rick and morty</a>, <a href="https://blog.za3k.com/tag/website/" rel="tag">website</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/is-rick-and-morty-out-season-6/" rel="bookmark" title="Permalink to Is Rick and Morty Out? (Season 6)"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: life-logging-in-2019
---
<!-- blogpost -->
-<article class="post-468 post type-post status-publish format-standard hentry category-non-technical tag-bash-history tag-browser-history tag-daily-log tag-forever tag-journal tag-lifelogging tag-log tag-schedule tag-self tag-self-improvement tag-sleep-log tag-timelog tag-watch" id="post-468">
-<h1 class="entry-title">Life-logging in 2019</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2019-12-17T18:19:15-07:00"> <a href="https://blog.za3k.com/life-logging-in-2019/" rel="bookmark" title="6:19 pm"><span class="entry-date">December 17, 2019</span> <span class="entry-time"> - 6:19 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2019-12-17T19:07:12-07:00">December 17, 2019</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I’ve been keeping a time log since somewhere around 2011. A time log is a journal with a complete record of everything I do. I’ve become very consistent about it, so this seemed like a good time to write up my current habits for anyone interested. </p>
<p>This is going to be a mixture of information about life-logging, how I organize things, and my current schedule, because they’re not really separate things.</p>
<h2 class="wp-block-heading">Who else does this stuff?</h2>
<p>As far as I know I came up with this stuff independently. I’ve read plenty of time-management resources (which tend to be good) and experimental journaling resources (which tend to be… scarce?).</p>
<ul><li><a href="https://users.speakeasy.net/~lion/nb/">Lion Kimbro</a>: “Make a complete map of every thought you think”. General journaling. <a href="https://gilest.org/lion-kimbro.html">Inteview</a>.</li><li><a href="http://www.fennetic.net/sleep/">Fenn Lipowitz</a> (my roommate): Time log, with an emphasis on being completely machine-readable. Being machine-readable means click for pretty graphs. I took inspiration from how machine-parsable this was recently, but I want to keep my freehand sections too.</li><li><a href="https://quantifiedself.com/blog/bryan-bishop-on-meetlog/">Bryan Bishop</a> (acquaintance): meetlog, a system for recording conversations and topics of conversation. Overall I didn’t find this useful because I don’t know hundreds of people. The format is so-so, largely because the author can type very fast, including real-time transcripts. I got the inspiration to write topics of conversation while talking from this. I do something similar if I spend a long time thinking or researching, too.</li><li><a href="https://bulletjournal.com/pages/learn">Bullet Journaling</a>: I dunno, if you’re super lost and don’t know how to write a journal/TODO list, some guy figured it out for you! It’s just the basics that you’d figure out on your own, but it may save time. The site is better than the book. I independently invented most of their notation for TODO lists, I don’t find it too useful for a journal. Other peoples’ bullet journal pages are also useful, not just the original author’s.</li></ul>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/bash-history/" rel="tag">bash history</a>, <a href="https://blog.za3k.com/tag/browser-history/" rel="tag">browser history</a>, <a href="https://blog.za3k.com/tag/daily-log/" rel="tag">daily log</a>, <a href="https://blog.za3k.com/tag/forever/" rel="tag">forever</a>, <a href="https://blog.za3k.com/tag/journal/" rel="tag">journal</a>, <a href="https://blog.za3k.com/tag/lifelogging/" rel="tag">lifelogging</a>, <a href="https://blog.za3k.com/tag/log/" rel="tag">log</a>, <a href="https://blog.za3k.com/tag/schedule/" rel="tag">schedule</a>, <a href="https://blog.za3k.com/tag/self/" rel="tag">self</a>, <a href="https://blog.za3k.com/tag/self-improvement/" rel="tag">self-improvement</a>, <a href="https://blog.za3k.com/tag/sleep-log/" rel="tag">sleep log</a>, <a href="https://blog.za3k.com/tag/timelog/" rel="tag">timelog</a>, <a href="https://blog.za3k.com/tag/watch/" rel="tag">watch</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/life-logging-in-2019/" rel="bookmark" title="Permalink to Life-logging in 2019"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: linux-print-server
---
<!-- blogpost -->
-<article class="post-293 post type-post status-publish format-standard hentry category-technical tag-linux tag-printer tag-system-administration" id="post-293">
-<h1 class="entry-title">Linux Print Server</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-10-11T11:39:05-07:00"> <a href="https://blog.za3k.com/linux-print-server/" rel="bookmark" title="11:39 am"><span class="entry-date">October 11, 2015</span> <span class="entry-time"> - 11:39 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-10-17T19:19:19-07:00">October 17, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>So have you ever used a web printer and it was great?</p>
<p>…</p>
/printme IN_CLOSE_WRITE,IN_MOVED_TO lp $@/$#</pre>
<p>Note that this will preserve files after they’re printed, because my server is low-volume enough I don’t need to care.</p></li>
</ol>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/linux/" rel="tag">linux</a>, <a href="https://blog.za3k.com/tag/printer/" rel="tag">printer</a>, <a href="https://blog.za3k.com/tag/system-administration/" rel="tag">system administration</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/linux-print-server/" rel="bookmark" title="Permalink to Linux Print Server"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: mail-filtering-with-dovecot
---
<!-- blogpost -->
-<article class="post-370 post type-post status-publish format-standard hentry category-technical tag-debian tag-dovecot tag-linux tag-sieve tag-spamassassin tag-system-administration" id="post-370">
-<h1 class="entry-title">Mail filtering with Dovecot</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-11-10T04:21:16-07:00"> <a href="https://blog.za3k.com/mail-filtering-with-dovecot/" rel="bookmark" title="4:21 am"><span class="entry-date">November 10, 2015</span> <span class="entry-time"> - 4:21 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-11-29T22:33:56-07:00">November 29, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>This expands on my previous post about <a href="https://blog.za3k.com/installing-email-with-postfix-and-dovecot/" title="Installing email with Postfix and Dovecot (with Postgres)">how to set up an email server</a>.</p>
<p>We’re going to set up a few spam filters in Dovecot under Debian. We’re going to use Sieve, which lets the user set up whichever filters they want. However, we’re going to run a couple pre-baked spam filters regardless of what the user sets up.<span id="more-370"></span></p>
</li>
<li>You should also be able to create user-defined filters in Sieve, via the ManageSieve protocol. I tested this using a Sieve thunderbird extension. You’re on your own here.</li>
</ol>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/debian/" rel="tag">debian</a>, <a href="https://blog.za3k.com/tag/dovecot/" rel="tag">dovecot</a>, <a href="https://blog.za3k.com/tag/linux/" rel="tag">linux</a>, <a href="https://blog.za3k.com/tag/sieve/" rel="tag">sieve</a>, <a href="https://blog.za3k.com/tag/spamassassin/" rel="tag">spamassassin</a>, <a href="https://blog.za3k.com/tag/system-administration/" rel="tag">system administration</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/mail-filtering-with-dovecot/" rel="bookmark" title="Permalink to Mail filtering with Dovecot"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: making-a-hardware-random-number-generator
---
<!-- blogpost -->
-<article class="post-598 post type-post status-publish format-standard hentry category-technical tag-hardware tag-linux tag-randomness" id="post-598">
-<h1 class="entry-title">Making a hardware random number generator</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2021-06-06T17:23:06-07:00"> <a href="https://blog.za3k.com/making-a-hardware-random-number-generator/" rel="bookmark" title="5:23 pm"><span class="entry-date">June 6, 2021</span> <span class="entry-time"> - 5:23 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2021-06-06T17:28:29-07:00">June 6, 2021</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>If you want a really good source of random numbers, you should get a hardware generator. But there’s not a lot of great options out there, and most people looking into this get (understandably) paranoid about backdoors. But, there’s a nice trick: if you combine multiple random sources together with <a href="https://github.com/za3k/short-programs#xor">xor</a>, it doesn’t matter if one is backdoored, as long as they aren’t all backdoored. There are some exceptions–if the backdoor is actively looking at the output, it can still break your system. But as long as you’re just generating some random pads, instead of making a kernel entropy pool, you’re fine with this trick.</p>
<p>So! We just need a bunch of sources of randomness. Here’s the options I’ve tried:</p>
done</code></pre>
<p>Great, now you have a good one-time-pad and can join <a href="https://za3k.com/ok-mixnet.md">ok-mixnet</a> 🙂</p>
<p>P.S. If you <em>really</em> know what you’re doing and like shooting yourself in the foot, you could try combining and whitening entropy sources with a randomness sponge like keccak instead.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/hardware/" rel="tag">hardware</a>, <a href="https://blog.za3k.com/tag/linux/" rel="tag">linux</a>, <a href="https://blog.za3k.com/tag/randomness/" rel="tag">randomness</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/making-a-hardware-random-number-generator/" rel="bookmark" title="Permalink to Making a hardware random number generator"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
<ol class="commentlist">
wordpress_slug: making-my-finances-public
---
<!-- blogpost -->
-<article class="post-18 post type-post status-publish format-standard hentry category-non-technical tag-cybernetics tag-finance" id="post-18">
-<h1 class="entry-title">Making my finances public</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2014-10-15T03:00:26-07:00"> <a href="https://blog.za3k.com/making-my-finances-public/" rel="bookmark" title="3:00 am"><span class="entry-date">October 15, 2014</span> <span class="entry-time"> - 3:00 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2014-10-30T10:24:42-07:00">October 30, 2014</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I decided to post all of my purchases/income. This isn’t something I was totally comfortable with, but I couldn’t think of good reasons not to, and my default position is to release information. I think this is especially interesting since it’s not something I’ve seen made available before. Link: <a href="http://za3k.com/money.html">http://za3k.com/money.html</a></p>
<p>I think the analysis may be useful to other hackers, as people tend to be insane and cost-insensitive around money. I think having another persons’s finances to look at for comparison is something I’ve wanted for various reasons at various times, and it’s not commonly available. My selfish motivations are to get other people to tell me how I should be saving lots of money, and to feel like my financial decisions are under scrutiny (which is good and bad).</p>
<p> </p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/cybernetics/" rel="tag">cybernetics</a>, <a href="https://blog.za3k.com/tag/finance/" rel="tag">finance</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/making-my-finances-public/" rel="bookmark" title="Permalink to Making my finances public"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
<ol class="commentlist">
wordpress_slug: making-signs-on-wall-tiles
---
<!-- blogpost -->
-<article class="post-1307 post type-post status-publish format-standard hentry category-non-technical tag-art tag-crafts" id="post-1307">
-<h1 class="entry-title">Making signs on wall tiles</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2024-04-16T20:07:58-07:00"> <a href="https://blog.za3k.com/making-signs-on-wall-tiles/" rel="bookmark" title="8:07 pm"><span class="entry-date">April 16, 2024</span> <span class="entry-time"> - 8:07 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2024-04-19T10:21:21-07:00">April 19, 2024</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I recently made an art project as a birthday gift for a young friend of mine.</p>
<figure class="wp-block-image size-large"><a href="https://blog.za3k.com/wp-content/uploads/2024/04/rachel_tile-scaled.jpg"><img alt="" class="wp-image-1314" decoding="async" fetchpriority="high" height="499" sizes="(max-width: 1024px) 100vw, 1024px" src="https://blog.za3k.com/wp-content/uploads/2024/04/rachel_tile-1024x499.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2024/04/rachel_tile-1024x499.jpg 1024w, https://blog.za3k.com/wp-content/uploads/2024/04/rachel_tile-300x146.jpg 300w, https://blog.za3k.com/wp-content/uploads/2024/04/rachel_tile-768x374.jpg 768w, https://blog.za3k.com/wp-content/uploads/2024/04/rachel_tile-1536x748.jpg 1536w, https://blog.za3k.com/wp-content/uploads/2024/04/rachel_tile-2048x998.jpg 2048w, https://blog.za3k.com/wp-content/uploads/2024/04/rachel_tile-150x73.jpg 150w, https://blog.za3k.com/wp-content/uploads/2024/04/rachel_tile-250x122.jpg 250w" width="1024"/></a></figure>
<p>Finally, I used a masonry bit to drill screw holes in the tile, so it could be attached to a door.</p>
<figure class="wp-block-image size-medium"><a href="https://blog.za3k.com/wp-content/uploads/2024/04/rachel_with_tile.jpeg"><img alt="" class="wp-image-1309" decoding="async" height="300" loading="lazy" sizes="(max-width: 226px) 100vw, 226px" src="https://blog.za3k.com/wp-content/uploads/2024/04/rachel_with_tile-226x300.jpeg" srcset="https://blog.za3k.com/wp-content/uploads/2024/04/rachel_with_tile-226x300.jpeg 226w, https://blog.za3k.com/wp-content/uploads/2024/04/rachel_with_tile-771x1024.jpeg 771w, https://blog.za3k.com/wp-content/uploads/2024/04/rachel_with_tile-768x1020.jpeg 768w, https://blog.za3k.com/wp-content/uploads/2024/04/rachel_with_tile-1157x1536.jpeg 1157w, https://blog.za3k.com/wp-content/uploads/2024/04/rachel_with_tile-113x150.jpeg 113w, https://blog.za3k.com/wp-content/uploads/2024/04/rachel_with_tile.jpeg 1536w" width="226"/></a></figure>
<p>She seemed to like it :). But now she wants to make one too. I’ll have to see if I can invent an easier way.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/art/" rel="tag">art</a>, <a href="https://blog.za3k.com/tag/crafts/" rel="tag">crafts</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/making-signs-on-wall-tiles/" rel="bookmark" title="Permalink to Making signs on wall tiles"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: markdown-support
---
<!-- blogpost -->
-<article class="post-136 post type-post status-publish format-standard hentry category-technical tag-git tag-markdown tag-system-administration tag-website" id="post-136">
-<h1 class="entry-title">Roll-your-own git push-to-deploy, and markdown support</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-03-13T11:15:07-07:00"> <a href="https://blog.za3k.com/markdown-support/" rel="bookmark" title="11:15 am"><span class="entry-date">March 13, 2015</span> <span class="entry-time"> - 11:15 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-03-13T13:15:05-07:00">March 13, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Today I added support for development of za3k.com using git:</p>
<pre lang="bash"># !/bin/sh
<p>and markdown support, via a <a href="https://github.com/alue/markdown-handler/blob/master/README.md">cgi markdown wrapper</a> someone wrote for apache (yes, I’m still using Apache).</p>
<p>Edit: I ended up wanting support for tables in markdown, so I used <a href="https://www.ruby-lang.org/">Ruby</a>‘s <a href="https://github.com/vmg/redcarpet">redcarpet</a> markdown gem (the same thing <a href="https://github.com/">Github</a> uses, supports <a href="http://www.tablesgenerator.com/markdown_tables">this style of tables</a> as well as code blocks).</p>
<p>CGI support via <a href="http://blog.tonns.org/2013/10/enabling-markdown-on-your-apache.html">http://blog.tonns.org/2013/10/enabling-markdown-on-your-apache.html</a></p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/git/" rel="tag">git</a>, <a href="https://blog.za3k.com/tag/markdown/" rel="tag">markdown</a>, <a href="https://blog.za3k.com/tag/system-administration/" rel="tag">system administration</a>, <a href="https://blog.za3k.com/tag/website/" rel="tag">website</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/markdown-support/" rel="bookmark" title="Permalink to Roll-your-own git push-to-deploy, and markdown support"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: meeple-initiative-tracker
---
<!-- blogpost -->
-<article class="post-1094 post type-post status-publish format-standard hentry category-non-technical tag-dungeons-and-dragons tag-rpgs" id="post-1094">
-<h1 class="entry-title">Meeple Initiative Tracker</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-07-12T16:36:15-07:00"> <a href="https://blog.za3k.com/meeple-initiative-tracker/" rel="bookmark" title="4:36 pm"><span class="entry-date">July 12, 2023</span> <span class="entry-time"> - 4:36 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-07-12T16:37:58-07:00">July 12, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I play D&D. There are a thousand initiative trackers out there. Here’s one I invented recently.</p>
<p>First, each player picks a Meeple to be their character’s mini.</p>
<p>Quick, roll initiative! The players all roll, and so do the enemies. We grab a second meeple for each player, as well as second token for each enemy. This becomes the initiative tracker.</p>
<figure class="wp-block-image size-large"><a href="https://blog.za3k.com/wp-content/uploads/2023/07/initiative-crop-1.jpg"><img alt="" class="wp-image-1098" decoding="async" height="341" sizes="(max-width: 1024px) 100vw, 1024px" src="https://blog.za3k.com/wp-content/uploads/2023/07/initiative-crop-1-1024x341.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2023/07/initiative-crop-1-1024x341.jpg 1024w, https://blog.za3k.com/wp-content/uploads/2023/07/initiative-crop-1-300x100.jpg 300w, https://blog.za3k.com/wp-content/uploads/2023/07/initiative-crop-1-768x255.jpg 768w, https://blog.za3k.com/wp-content/uploads/2023/07/initiative-crop-1-150x50.jpg 150w, https://blog.za3k.com/wp-content/uploads/2023/07/initiative-crop-1-250x83.jpg 250w, https://blog.za3k.com/wp-content/uploads/2023/07/initiative-crop-1.jpg 1506w" width="1024"/></a></figure>
<p>This is the initiative order. It’s currently the red meeple hero’s turn. Next up will be the blue meeple hero, then the black cube enemy, and so on.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/dungeons-and-dragons/" rel="tag">dungeons and dragons</a>, <a href="https://blog.za3k.com/tag/rpgs/" rel="tag">rpgs</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/meeple-initiative-tracker/" rel="bookmark" title="Permalink to Meeple Initiative Tracker"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: migrating-an-existing-debian-installation-to-encrypted-root
---
<!-- blogpost -->
-<article class="post-606 post type-post status-publish format-standard hentry category-technical tag-debian tag-linux tag-system-administration" id="post-606">
-<h1 class="entry-title">Migrating an existing debian installation to encrypted root</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2021-06-11T13:28:52-07:00"> <a href="https://blog.za3k.com/migrating-an-existing-debian-installation-to-encrypted-root/" rel="bookmark" title="1:28 pm"><span class="entry-date">June 11, 2021</span> <span class="entry-time"> - 1:28 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2021-06-11T18:06:48-07:00">June 11, 2021</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>In this article, I migrate an existing debian 10 buster release, from an unencrypted root drive, to an encrypted root. I used a second hard drive because it’s safer–this is NOT an in-place migration guide. We will be encrypting / (root) only, not /boot. My computer uses UEFI. This guide <strong>is specific to debian</strong>–I happen to know these steps would be different on Arch Linux, for example. They probably work great on a different debian version, and might even work on something debian-based like Ubuntu.</p>
<p>In <a href="https://blog.za3k.com/encrypted-root-on-debian-part-2-unattended-boot/">part 2</a>, I add an optional extra where root decrypts using a special USB stick rather than a keyboard passphrase, for unattended boot.</p>
3 135268352 937703054 382.6 GiB 8300 root_cipher # ext4-on-LUKS. ext4 mounted at /
4 526336 1050623 256.0 MiB 8300 boot # ext4, mounted at /boot</code></pre>
<ol><li>Stop anything else running. We’re going to do a “live” copy from the running system, so at least stop doing anything else. Also most of the commands in this guide need root (<code>sudo</code>).</li><li>Format the new disk. I used <code>gdisk</code> and you must select a gpt partition table. Basically I just made everything match the original. The one change I need is to add a /boot partition, so grub2 will be able to do the second stage. I also added partition labels with the <code>c</code> gdisk command to all partitions: boot, root_cipher, efi, and swap. I decided I’d like to be able to migrate to a larger disk later without updating a bunch of GUIDs, and filesystem or partition labels are a good method.</li><li>Add encryption. I like filesystem-on-LUKS, but most other debian guides use filesystem-in-LVM-on-LUKS. You’ll enter your new disk password twice–once to make an encrypted partition, once to open the partition.<br/><code>cryptsetup luksFormat /dev/disk/by-partlabel/root_cipher</code><br/><code>cryptsetup open /dev/disk-by-partlabel/root_cipher root</code></li><li>Make the filesystems. For my setup:<br/><code>mkfs.ext4 /dev/disk/by-partlabel/root</code><br/><code>mkfs.ext4 /dev/disk/by-partlabel/boot</code><br/><code>mkfs.vfat /dev/disk/by-partlabel/efi</code></li><li>Mount all the new filesystems at <code>/mnt</code>. Make sure everything (cryptsetup included) uses EXACTLY the same mount paths (ex /dev/disk/by-partlabel/boot instead of /dev/sda1) as your final system will, because debian will examine your mounts to generate boot config files.<br/><code>mount /dev/disk/by-partlabel/root /mnt</code><br/><code>mkdir /mnt/boot && mount /dev/disk/by-partlabel/boot /mnt/boo</code>t<br/><code>mkdir /mnt/boot/efi && mount /dev/disk/by-partlabel/efi /mnt/boot/efi</code><br/><code>mkdir /mnt/dev && mount --bind /dev /mnt/dev # for chroot</code><br/><code>mkdir /mnt/sys && mount --bind /sys /mnt/sys</code><br/><code>mkdir /mnt/proc && mount --bind /dev /mnt/proc</code></li><li>Copy everything over. I used <code>rsync -axAX</code>, but you can also use <code>cp -ax</code>. To learn what all these options are, read the man page. Make sure to keep the trailing slashes in the folder paths for rsync.<br/><code>rsync -xavHAX / /mnt/ --no-i-r --info=progress2</code><br/><code>rsync -xavHAX /boot/ /mnt/boot/</code><br/><code>rsync -xavHAX /boot/efi/ /mnt/boot/efi/</code></li><li>Chroot in. You will now be “in” the new system using your existing kernel.<br/><code>chroot /mnt</code></li><li>Edit /etc/crypttab. Add:<br/><code>root PARTLABEL=root_cipher none luks</code></li><li>Edit /etc/fstab. Mine looks like this:<br/><code>/dev/mapper/root / ext4 errors=remount-ro 0 1<br/>PARTLABEL=boot /boot ext4 defaults,nofail 0 1<br/>PARTLABEL=efi /boot/efi vfat umask=0077,nofail<br/>PARTLABEL=swap none swap sw,nofail 0 0<br/>tmpfs /tmp tmpfs mode=1777,nosuid,nodev 0 0</code></li><li>Edit /etc/default/grub. On debian you don’t need to edit <code>GRUB_CMDLINE_LINUX</code>.<br/><code>GRUB_DISABLE_LINUX_UUID=true<br/>GRUB_ENABLE_LINUX_PARTLABEL=true</code></li><li>Run <code>grub-install</code>. This will install the bootloader to efi. I forget the options to run it with… sorry!</li><li>Run <code>update-grub</code> (with no options). This will update /boot/grub.cfg so it knows how to find your new drive. You can verify the file by hand if you know how.</li><li>Run <code>update-initramfs</code> (with no options). This will update the initramfs so it can decrypt your root drive.</li><li>If there were any warnings or errors printed in the last three steps, something is wrong. Figure out what–it won’t boot otherwise. Especially make sure your /etc/fstab and /etc/crypttab <em>exactly</em> match what you’ve already used to mount filesystems.</li><li>Exit the chroot. Make sure any changes are synced to disk (you can unmount everything under /mnt in reverse order to make sure if you want)</li><li>Shut down your computer. Remove your root disk and boot from the new one. It should work now, asking for your password during boot.</li><li>Once you boot successfully and verify everything mounted, you can remove the <code>nofail</code> from /etc/fstab if you want.</li><li>(In my case, I also set up the swap partition after successful boot.) Edit: Oh, also don’t use unencrypted swap with encrypted root. That was dumb.</li></ol>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/debian/" rel="tag">debian</a>, <a href="https://blog.za3k.com/tag/linux/" rel="tag">linux</a>, <a href="https://blog.za3k.com/tag/system-administration/" rel="tag">system administration</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/migrating-an-existing-debian-installation-to-encrypted-root/" rel="bookmark" title="Permalink to Migrating an existing debian installation to encrypted root"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: mon8
---
<!-- blogpost -->
-<article class="post-539 post type-post status-publish format-standard hentry category-technical tag-linux tag-mon tag-status-za3k-com tag-system-administration" id="post-539">
-<h1 class="entry-title">mon(8)</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2020-05-20T15:56:18-07:00"> <a href="https://blog.za3k.com/mon8/" rel="bookmark" title="3:56 pm"><span class="entry-date">May 20, 2020</span> <span class="entry-time"> - 3:56 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2020-05-20T15:56:19-07:00">May 20, 2020</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I had previously hand-rolled a status monitor, <a href="http://status.za3k.com/">status.za3k.com</a>, which I am in the process of replacing (<a href="https://germinate.za3k.com/pub/status/mon.txt">new version</a>). I am replacing it with a linux monitoring daemon, <a href="https://mirrors.edge.kernel.org/pub/software/admin/mon/html/man/mon.html">mon</a>, which I recommend. It is targeted at working system administrators. ‘mon’ adds many features over my own system, but still has a very bare-bones feeling.</p>
<p>The old service, ‘<a href="https://github.com/za3k/za3k.com/blob/master/cgi-bin/status-simple">simple-status</a>‘ worked as follows:</p>
<ul><li>‘simple-status’ does exactly one thing. ‘mon’ has many features, but does the minimum possible to provide each.</li><li>‘simple-status’ is stateless. ‘mon’ has state.</li><li>‘simple-status’ runs on demand. ‘mon’ is a daemon which runs monitors periodically.</li><li>Input is different. ‘simple-status’ is one script which takes a timeout. ‘mon’ listens for trap signals and talks to clients who want to know its state.</li><li>both can show an HTML status page that looks about the same, with some CGI parameters accepted. </li><li>‘mon’ can also show a text status page.</li><li>both run monitors which return success based on status code, and provide extra information as standard output. ‘mon’ scripts are expected to be able to run on a list of hosts, rather than just one.</li><li>‘mon’ has a config file. ‘simple-status’ has no options.</li><li>‘simple-status’ is simple (27 lines). ‘mon’ has longer code (4922 lines)</li><li>‘simple-status’ is written in bash, and does not expose this. ‘mon’ is written in perl, all the monitors are written in perl, and it allows inline perl in the config file</li><li>‘simple-status’ limits the execution time of monitors. ‘mon’ does not.</li><li>‘mon’ allows alerting, which call an arbitrary program to deliver the alert (email is common)</li><li>‘mon’ supports traps, which are active alerts</li><li>‘mon’ supports watchdog/heartbeat style alerts, where if a trap is not regularly received, it marks a service as failed.</li><li>‘mon’ supports dependencies</li><li>‘mon’ allows defining a service for several hosts at once</li></ul>
<p>Overall I think that ‘mon’ is much more complex, but only to add features, and it doesn’t have a lot of features I wouldn’t use. It still is pretty simple with a simple interface. I recommend it as both good, and overall better than my system.</p>
<p>My only complaint is that it’s basically impossible to Google, which is why I’m writing a recommendation for it here.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/linux/" rel="tag">linux</a>, <a href="https://blog.za3k.com/tag/mon/" rel="tag">mon</a>, <a href="https://blog.za3k.com/tag/status-za3k-com/" rel="tag">status.za3k.com</a>, <a href="https://blog.za3k.com/tag/system-administration/" rel="tag">system administration</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/mon8/" rel="bookmark" title="Permalink to mon(8)"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: money-orders
---
<!-- blogpost -->
-<article class="post-84 post type-post status-publish format-standard hentry category-non-technical tag-finance tag-hacks" id="post-84">
-<h1 class="entry-title">Money orders</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2014-12-01T12:19:47-07:00"> <a href="https://blog.za3k.com/money-orders/" rel="bookmark" title="12:19 pm"><span class="entry-date">December 1, 2014</span> <span class="entry-time"> - 12:19 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2014-12-02T13:51:00-07:00">December 2, 2014</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<div class="wp-caption aligncenter" id="attachment_85" style="width: 310px"><a href="https://blog.za3k.com/wp-content/uploads/2014/12/Figure6.jpg"><img alt="A postal money order" aria-describedby="caption-attachment-85" class="size-medium wp-image-85" decoding="async" fetchpriority="high" height="237" sizes="(max-width: 300px) 100vw, 300px" src="https://blog.za3k.com/wp-content/uploads/2014/12/Figure6-300x237.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2014/12/Figure6-300x237.jpg 300w, https://blog.za3k.com/wp-content/uploads/2014/12/Figure6.jpg 500w" width="300"/></a><p class="wp-caption-text" id="caption-attachment-85">A postal money order</p></div>
<p>Allow me to introduce you all to the postal money order. For $1.50, you can get the equivalent of a cashier’s check from the post office. It can only be cashed by whoever you make it out to, and it’s basically accepted as cash by every corporation. You can also just give someone a blank one, although that’s riskier to carry around for the obvious reasons.</p>
<p>I was tired of checks bouncing. I can’t be bothered to make sure my account remains such-and-such, which means it happens sometimes, especially times like now when I’m poor. So I asked my landlord if I could pay by money order–he’d never heard of them before, but seemed okay with it when I explained (he’s a really good guy!).</p>
<p>I went down to the bank and got out $2750, and headed to the post office. I asked for 9 money orders, each for $303. The postal worker really only made a couple funny faces about me being weird, although my friend said she was pretty loud about my walking out with that much cash-equivalent, it went pretty well. And I immediately endorsed all the money orders so now they can lie around the hose safely.</p>
<p>Also, they come with attachable receipts (shown in the picture) in case you lose the check and need a replacement, so that’s nice.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/finance/" rel="tag">finance</a>, <a href="https://blog.za3k.com/tag/hacks/" rel="tag">hacks</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/money-orders/" rel="bookmark" title="Permalink to Money orders"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: moreorcs-com
---
<!-- blogpost -->
-<article class="post-104 post type-post status-publish format-standard hentry category-non-technical category-technical tag-email tag-funny tag-mailinator tag-websites" id="post-104">
-<h1 class="entry-title">moreorcs.com</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-01-22T21:12:08-07:00"> <a href="https://blog.za3k.com/moreorcs-com/" rel="bookmark" title="9:12 pm"><span class="entry-date">January 22, 2015</span> <span class="entry-time"> - 9:12 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-01-22T21:17:18-07:00">January 22, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p><a href="http://moreorcs.com"><img alt="orc" class="alignnone size-medium wp-image-105" decoding="async" fetchpriority="high" height="300" sizes="(max-width: 300px) 100vw, 300px" src="https://blog.za3k.com/wp-content/uploads/2015/01/orc-300x300.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2015/01/orc-300x300.jpg 300w, https://blog.za3k.com/wp-content/uploads/2015/01/orc-150x150.jpg 150w, https://blog.za3k.com/wp-content/uploads/2015/01/orc.jpg 814w" width="300"/></a></p>
<p>My newest site: <a href="http://moreorcs.com/">http://moreorcs.com/</a></p>
<li>a few orcs</li>
<li>lots and lots and lots and lots and lots and lots of orcs</li>
</ul>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/email/" rel="tag">email</a>, <a href="https://blog.za3k.com/tag/funny/" rel="tag">funny</a>, <a href="https://blog.za3k.com/tag/mailinator/" rel="tag">mailinator</a>, <a href="https://blog.za3k.com/tag/websites/" rel="tag">websites</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/moreorcs-com/" rel="bookmark" title="Permalink to moreorcs.com"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: multi-universe-rpg-toy
---
<!-- blogpost -->
-<article class="post-210 post type-post status-publish format-standard hentry category-non-technical tag-game tag-game-design tag-rpg" id="post-210">
-<h1 class="entry-title">Multi-universe RPG toy</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-04-30T03:28:05-07:00"> <a href="https://blog.za3k.com/multi-universe-rpg-toy/" rel="bookmark" title="3:28 am"><span class="entry-date">April 30, 2015</span> <span class="entry-time"> - 3:28 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-04-30T03:28:05-07:00">April 30, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p><a href="https://www.rpgsolo.com/">https://www.rpgsolo.com/</a> has a table for resolving yes/no questions, in turn taken from <a href="http://perilplanet.com/fu/">FU RPG</a>. Roll a die:</p>
<ul>
</ol>
<p>It was pretty fun in practice. I recommend using a text file over paper, since you’re going to do a lot of copy-paste. We had more fun with no GM than with a GM. No firm result yet on sandbox-worldbuilding vs players in scenarios; both seemed all right.</p>
<p> </p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/game/" rel="tag">game</a>, <a href="https://blog.za3k.com/tag/game-design/" rel="tag">game design</a>, <a href="https://blog.za3k.com/tag/rpg/" rel="tag">rpg</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/multi-universe-rpg-toy/" rel="bookmark" title="Permalink to Multi-universe RPG toy"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: my-todo-list
---
<!-- blogpost -->
-<article class="post-1100 post type-post status-publish format-standard hentry category-non-technical tag-todo" id="post-1100">
-<h1 class="entry-title">My TODO list</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-07-13T18:06:29-07:00"> <a href="https://blog.za3k.com/my-todo-list/" rel="bookmark" title="6:06 pm"><span class="entry-date">July 13, 2023</span> <span class="entry-time"> - 6:06 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-07-13T18:06:29-07:00">July 13, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I’ve had a couple people ask how my TODO list works, so here’s what I’ve been doing for the last few years. I have four lists in total: a calendar, a yearly list, a daily list, and a master list.</p>
<p><strong>A calendar.</strong> </p>
</ul>
<p>I try to minimize subtasks, in general. If I have a big task (clean the house), I’ll try to list it as “clean the bedroom”, etc as seperate tasks. If I have to, I’ll have a big task that references separate small tasks, but it’s the exception, and usually in the “more than a week” category.</p>
<p>And that’s about all I have to say.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/todo/" rel="tag">todo</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/my-todo-list/" rel="bookmark" title="Permalink to My TODO list"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: new-experimental-blog
---
<!-- blogpost -->
-<article class="post-460 post type-post status-publish format-standard hentry category-non-technical tag-blog tag-meta tag-obsolete" id="post-460">
-<h1 class="entry-title">New experimental blog</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2019-08-08T13:14:24-07:00"> <a href="https://blog.za3k.com/new-experimental-blog/" rel="bookmark" title="1:14 pm"><span class="entry-date">August 8, 2019</span> <span class="entry-time"> - 1:14 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2020-05-17T12:55:48-07:00">May 17, 2020</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I’m experimenting with using Jekyll in place of wordpress. If you want you can check out [dead link] which containly my weekly review process.</p>
<p>If and when I do migrate, all the posts here will be magically migrated and the URLs will stay the same so links don’t break.</p>
<p>Edit: I discontinued this experiment. It’s too hard to migrate the old stuff and keep it looking good, and I’d rather keep everything in one system.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/blog/" rel="tag">blog</a>, <a href="https://blog.za3k.com/tag/meta/" rel="tag">meta</a>, <a href="https://blog.za3k.com/tag/obsolete/" rel="tag">obsolete</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/new-experimental-blog/" rel="bookmark" title="Permalink to New experimental blog"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: ogs2021-27-million-go-games
---
<!-- blogpost -->
-<article class="post-715 post type-post status-publish format-standard hentry category-non-technical tag-data-collections tag-games tag-go" id="post-715">
-<h1 class="entry-title">OGS2021: 27 million go games</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2021-10-22T13:15:25-07:00"> <a href="https://blog.za3k.com/ogs2021-27-million-go-games/" rel="bookmark" title="1:15 pm"><span class="entry-date">October 22, 2021</span> <span class="entry-time"> - 1:15 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2021-10-22T14:41:32-07:00">October 22, 2021</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I downloaded all 27 million Go games from online-go.com, aka OGS, with permission. They are available <a href="https://archive.org/details/ogs2021">on Internet Archive</a> or <a href="https://za3k.com/ogs/">here</a> as SGF files or JSON. You can use them for whatever you like.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/data-collections/" rel="tag">data collections</a>, <a href="https://blog.za3k.com/tag/games/" rel="tag">games</a>, <a href="https://blog.za3k.com/tag/go/" rel="tag">go</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/ogs2021-27-million-go-games/" rel="bookmark" title="Permalink to OGS2021: 27 million go games"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: ok-mixnet
---
<!-- blogpost -->
-<article class="post-579 post type-post status-publish format-standard hentry category-technical tag-crypto tag-design tag-information-theory" id="post-579">
-<h1 class="entry-title">OK-Mixnet</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2021-05-26T13:02:35-07:00"> <a href="https://blog.za3k.com/ok-mixnet/" rel="bookmark" title="1:02 pm"><span class="entry-date">May 26, 2021</span> <span class="entry-time"> - 1:02 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2021-05-26T13:02:36-07:00">May 26, 2021</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I made a new cryptosystem called OK-Mixnet. It has “perfect” security, as opposed to the usual pretty-good security. (Of course, it’s not magic–if your computer is hacked, the cryptosystem isn’t gonna protect your data). Despite the name, it’s not really a mixnet per se, it just similarly defends against SIGINT.</p>
<p>A writeup is here: <a href="https://za3k.com/ok-mixnet.md">https://za3k.com/ok-mixnet.md</a></p>
<p>The alpha codebase is here: <a href="https://github.com/za3k/ok-mixnet">https://github.com/za3k/ok-mixnet</a></p>
<p>Let me know if you’d like to join the open alpha. Email me your username and IP (you’ll need to forward a port).</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/crypto/" rel="tag">crypto</a>, <a href="https://blog.za3k.com/tag/design/" rel="tag">design</a>, <a href="https://blog.za3k.com/tag/information-theory/" rel="tag">information theory</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/ok-mixnet/" rel="bookmark" title="Permalink to OK-Mixnet"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: old-wikipedia-urdu
---
<!-- blogpost -->
-<article class="post-994 post type-post status-publish format-standard hentry category-non-technical tag-pakistan tag-urdu tag-website tag-wikipedia" id="post-994">
-<h1 class="entry-title">Old Wikipedia (urdu)</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-02-03T13:37:16-07:00"> <a href="https://blog.za3k.com/old-wikipedia-urdu/" rel="bookmark" title="1:37 pm"><span class="entry-date">February 3, 2023</span> <span class="entry-time"> - 1:37 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-02-03T13:37:16-07:00">February 3, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Pakistan has blocked access to Wikipedia. Old Wikipedia is now available <a href="https://ur.oldwikipedia.org/">in urdu</a>, and has the same content.</p>
<p>We are working on more clearly communicating the Old Wikipedia is not Wikipedia in Urdu like we do in English–translation help would be welcome!</p>
<p><a href="https://ur.oldwikipedia.org/">https://ur.oldwikipedia.org</a></p>
<p>پاکستان نے ویکیپیڈیا کی رسائی روک دی ہے۔ پرانا ویکیپیڈیا اب بزبان اردو میں دستیاب ہے، اور اس میں پہلے جیسی مواد ہے۔</p>
<p>ہم انگریزی میں جیسے، ہم پرانے ویکیپیڈیا کو ویکیپیڈیا کے بطور بزبان اردو مذکور نہیں کہنے کی سعی کر رہے ہیں- ترجمہ کی مدد خوشبو دائی جائے گی!</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/pakistan/" rel="tag">pakistan</a>, <a href="https://blog.za3k.com/tag/urdu/" rel="tag">urdu</a>, <a href="https://blog.za3k.com/tag/website/" rel="tag">website</a>, <a href="https://blog.za3k.com/tag/wikipedia/" rel="tag">wikipedia</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/old-wikipedia-urdu/" rel="bookmark" title="Permalink to Old Wikipedia (urdu)"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: old-wikipedia
---
<!-- blogpost -->
-<article class="post-985 post type-post status-publish format-standard hentry category-non-technical category-technical tag-website tag-wikipedia" id="post-985">
-<h1 class="entry-title">Old Wikipedia</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-02-02T12:47:14-07:00"> <a href="https://blog.za3k.com/old-wikipedia/" rel="bookmark" title="12:47 pm"><span class="entry-date">February 2, 2023</span> <span class="entry-time"> - 12:47 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-02-02T12:47:39-07:00">February 2, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Prefer the old layout of Wikipedia? A couple friends and I made <a href="https://oldwikipedia.org/">oldwikipedia.org</a></p>
<figure class="wp-block-image size-large"><a href="https://blog.za3k.com/wp-content/uploads/2023/02/2023-02-02-144514_1920x1080_scrot-crop.png"><img alt="" class="wp-image-986" decoding="async" fetchpriority="high" height="357" sizes="(max-width: 1024px) 100vw, 1024px" src="https://blog.za3k.com/wp-content/uploads/2023/02/2023-02-02-144514_1920x1080_scrot-crop-1024x357.png" srcset="https://blog.za3k.com/wp-content/uploads/2023/02/2023-02-02-144514_1920x1080_scrot-crop-1024x357.png 1024w, https://blog.za3k.com/wp-content/uploads/2023/02/2023-02-02-144514_1920x1080_scrot-crop-300x105.png 300w, https://blog.za3k.com/wp-content/uploads/2023/02/2023-02-02-144514_1920x1080_scrot-crop-768x268.png 768w, https://blog.za3k.com/wp-content/uploads/2023/02/2023-02-02-144514_1920x1080_scrot-crop-150x52.png 150w, https://blog.za3k.com/wp-content/uploads/2023/02/2023-02-02-144514_1920x1080_scrot-crop-250x87.png 250w, https://blog.za3k.com/wp-content/uploads/2023/02/2023-02-02-144514_1920x1080_scrot-crop.png 1253w" width="1024"/></a></figure>
<p>Hope you enjoy.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/website/" rel="tag">website</a>, <a href="https://blog.za3k.com/tag/wikipedia/" rel="tag">wikipedia</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/old-wikipedia/" rel="bookmark" title="Permalink to Old Wikipedia"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: one-page-rpgs
---
<!-- blogpost -->
-<article class="post-558 post type-post status-publish format-standard hentry category-non-technical tag-game-design tag-games" id="post-558">
-<h1 class="entry-title">One-page RPGs</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2021-02-07T03:30:04-07:00"> <a href="https://blog.za3k.com/one-page-rpgs/" rel="bookmark" title="3:30 am"><span class="entry-date">February 7, 2021</span> <span class="entry-time"> - 3:30 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2021-02-09T18:46:33-07:00">February 9, 2021</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I’ve written a few simple storytelling games or RPGs lately. They’re all under two pages of rules, and currently they’re all untested (first test is Monday!).</p>
<ul><li><a href="https://za3k.com/archive/ultimate_archwizard.md">Ultimate Archwizards vs the Dark Lord</a> Game for 3-6 players including one GM. Guessing 2-4 hours. Imagine the final episode of a fight anime–everyone is mega-level powered. Relatively goofy. Suitable for beginner players, would work with a beginner GM too. Designed with zero prep in mind.</li><li><a href="https://za3k.com/archive/invincible.md">No, this cannot be! I AM INVINCIBLE!</a> Game for 2-8 players, no GM. More fun with 4+. Guessing 30 minutes. Heroes want to kill Villains, Villains also want to be killed. Villains therefore send wave after slightly harder wave of enemies at the Heroes to level them up. Designed to be comfortable for complete beginners, while letting expert storytellers play in the same group. About half storytelling, half stats. Some gameplay is probably similar to Munchkin, but I haven’t really played Munchkin. There’s a little prep at the start for Villains (5 minutes), almost none for Heroes. The only one of the three that needs playtesting to balance.</li><li><a href="https://za3k.com/archive/ninjas.md">Ninjas Ninjas Ninjas!</a> Game for 3 players exactly, no GM. Not for beginners. Guessing 5-30 minutes once you learn the rules (up to you). Frantically fast storytelling, challenges are 30-60 seconds each. There are several roles including the main “narrator”, which players swap often. The main goal is to show how cool your ninja team is, but you do also complete your mission. Can be played with nothing, not even paper. Could be expanded to work with 4 or 5 players, but would need more work.</li></ul>
<p>Will post my two spy games in a bit once I type them up!</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/game-design/" rel="tag">game design</a>, <a href="https://blog.za3k.com/tag/games/" rel="tag">games</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/one-page-rpgs/" rel="bookmark" title="Permalink to One-page RPGs"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: one-screenshot-per-minute
---
<!-- blogpost -->
-<article class="post-748 post type-post status-publish format-standard hentry category-technical tag-backup tag-linux" id="post-748">
-<h1 class="entry-title">One Screenshot Per Minute</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-07-10T09:28:46-07:00"> <a href="https://blog.za3k.com/one-screenshot-per-minute/" rel="bookmark" title="9:28 am"><span class="entry-date">July 10, 2022</span> <span class="entry-time"> - 9:28 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-07-10T09:37:53-07:00">July 10, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>One of my archiving and backup contingencies is taking one screenshot per minute. You can also use this to get a good idea of how you spend your day, by turning it into a movie. Although with a tiling window manager like I use, it’s a headache to watch.</p>
<p>I send the screenshots over to another machine for storage, so they’re not cluttering my laptop. It uses up 10-20GB per year.</p>
<p><strong>~/.profile</strong></p>
<pre class="" lang="bash">export XAUTHORITY=/tmp/XAuthority</pre>
<p>I mentioned /bin/screenlog needs to know where XAuthority is. In Arch Linux this is all I need to do.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/backup/" rel="tag">backup</a>, <a href="https://blog.za3k.com/tag/linux/" rel="tag">linux</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/one-screenshot-per-minute/" rel="bookmark" title="Permalink to One Screenshot Per Minute"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: open-nntp-server
---
<!-- blogpost -->
-<article class="post-381 post type-post status-publish format-standard hentry category-non-technical tag-news tag-nntp tag-usenet" id="post-381">
-<h1 class="entry-title">Open NNTP server</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-11-29T22:31:39-07:00"> <a href="https://blog.za3k.com/open-nntp-server/" rel="bookmark" title="10:31 pm"><span class="entry-date">November 29, 2015</span> <span class="entry-time"> - 10:31 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-11-29T22:33:34-07:00">November 29, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I’m opening the NNTP server at nttp.za3k.com (TLS or unencrypted) to the public. These are the newsgroups currently on it. It is virtually zero-traffic (no users, but also users post little).</p>
<p>If you don’t have a news reader, Thunderbird can do the job, or take a look at the list <a href="https://en.wikipedia.org/wiki/List_of_Usenet_newsreaders">here</a>.</p>
talk.writing<br/>
talk.writing.collaborative<br/>
test.posts</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/news/" rel="tag">news</a>, <a href="https://blog.za3k.com/tag/nntp/" rel="tag">nntp</a>, <a href="https://blog.za3k.com/tag/usenet/" rel="tag">USENET</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/open-nntp-server/" rel="bookmark" title="Permalink to Open NNTP server"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: painting
---
<!-- blogpost -->
-<article class="post-988 post type-post status-publish format-standard hentry category-non-technical tag-art tag-painting" id="post-988">
-<h1 class="entry-title">Painting</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-02-02T14:41:06-07:00"> <a href="https://blog.za3k.com/painting/" rel="bookmark" title="2:41 pm"><span class="entry-date">February 2, 2023</span> <span class="entry-time"> - 2:41 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-02-02T14:41:07-07:00">February 2, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="https://blog.za3k.com/wp-content/uploads/2023/02/waves.jpg"><img alt="" class="wp-image-989" data-id="989" decoding="async" fetchpriority="high" height="1024" sizes="(max-width: 1014px) 100vw, 1014px" src="https://blog.za3k.com/wp-content/uploads/2023/02/waves-1014x1024.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2023/02/waves-1014x1024.jpg 1014w, https://blog.za3k.com/wp-content/uploads/2023/02/waves-297x300.jpg 297w, https://blog.za3k.com/wp-content/uploads/2023/02/waves-150x150.jpg 150w, https://blog.za3k.com/wp-content/uploads/2023/02/waves-768x775.jpg 768w, https://blog.za3k.com/wp-content/uploads/2023/02/waves-1522x1536.jpg 1522w, https://blog.za3k.com/wp-content/uploads/2023/02/waves-149x150.jpg 149w, https://blog.za3k.com/wp-content/uploads/2023/02/waves.jpg 1699w" width="1014"/></a><figcaption class="wp-element-caption">Waves, Z Vance 2023</figcaption></figure>
<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-1 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:100%"></div>
</div>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/art/" rel="tag">art</a>, <a href="https://blog.za3k.com/tag/painting/" rel="tag">painting</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/painting/" rel="bookmark" title="Permalink to Painting"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: pandora-songs
---
<!-- blogpost -->
-<article class="post-93 post type-post status-publish format-standard hentry category-non-technical tag-music tag-pandora" id="post-93">
-<h1 class="entry-title">Pandora songs</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2014-12-07T23:30:24-07:00"> <a href="https://blog.za3k.com/pandora-songs/" rel="bookmark" title="11:30 pm"><span class="entry-date">December 7, 2014</span> <span class="entry-time"> - 11:30 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2014-12-07T23:32:05-07:00">December 7, 2014</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I copied the list of <a href="http://za3k.com/pandora.txt">songs I favorited</a> from <a href="https://www.pandora.com">Pandora</a>.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/music/" rel="tag">music</a>, <a href="https://blog.za3k.com/tag/pandora/" rel="tag">pandora</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/pandora-songs/" rel="bookmark" title="Permalink to Pandora songs"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: paper-archival
---
<!-- blogpost -->
-<article class="post-187 post type-post status-publish format-standard hentry category-non-technical category-technical tag-armchair tag-backup tag-barcodes tag-information-theory tag-qr-codes" id="post-187">
-<h1 class="entry-title">Paper archival</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-04-24T16:58:38-07:00"> <a href="https://blog.za3k.com/paper-archival/" rel="bookmark" title="4:58 pm"><span class="entry-date">April 24, 2015</span> <span class="entry-time"> - 4:58 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-04-24T17:04:06-07:00">April 24, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Previous work:</p>
<ul>
<p>QR codes and PDF417 look like our contenders. PDF417 turns out to not scan well (at all, but especially at large symbol sizes), so despite some nice features let’s pick QR codes. Back when I worked on a <a href="https://blog.za3k.com/the-double-lives-of-books/" title="The Double Lives of Books">digital library</a> I made a component to generate QR codes on the fly, and I know how to scan them on my phone and webcam already from that, so it would be pretty easy to use them.</p>
<p>What density can we get on a sheet of A4 paper (8.25 in × 11.00 in, or 7.75in x 10.50in with half-inch margins)? I trust optar’s estimate (600 dpi = 200 pixels per inch) for printed/scanned pages since they seemed to test things. A max-size QR code is 144×144 pixels, or 0.72 x 0.72 inches at maximum density. We can fit 10 x 14 = 140 QR codes with maximum density on the page, less if we want decent spacing. That’s 140 QR codes x (2,953 bytes per QR code) = 413420 bytes = 413K per page before error correction.</p>
<p>That’s totally comparable to the other approaches above, and you can read the results with off-the-shelf software. Bam.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/armchair/" rel="tag">armchair</a>, <a href="https://blog.za3k.com/tag/backup/" rel="tag">backup</a>, <a href="https://blog.za3k.com/tag/barcodes/" rel="tag">barcodes</a>, <a href="https://blog.za3k.com/tag/information-theory/" rel="tag">information theory</a>, <a href="https://blog.za3k.com/tag/qr-codes/" rel="tag">qr codes</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/paper-archival/" rel="bookmark" title="Permalink to Paper archival"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: pixel-alphabet
---
<!-- blogpost -->
-<article class="post-334 post type-post status-publish format-standard has-post-thumbnail hentry category-non-technical tag-art tag-piskell tag-pixel-art tag-typography" id="post-334">
-<h1 class="entry-title">Pixel Alphabet</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-10-22T17:02:41-07:00"> <a href="https://blog.za3k.com/pixel-alphabet/" rel="bookmark" title="5:02 pm"><span class="entry-date">October 22, 2015</span> <span class="entry-time"> - 5:02 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-10-22T17:07:34-07:00">October 22, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p><a href="https://blog.za3k.com/wp-content/uploads/2015/10/Alphabetx16.png"><img alt="Alphabetx16" class="alignnone wp-image-335 size-full" decoding="async" fetchpriority="high" height="721" sizes="(max-width: 440px) 100vw, 440px" src="https://blog.za3k.com/wp-content/uploads/2015/10/Alphabetx16-e1445558843487.png" srcset="https://blog.za3k.com/wp-content/uploads/2015/10/Alphabetx16-e1445558843487.png 440w, https://blog.za3k.com/wp-content/uploads/2015/10/Alphabetx16-e1445558843487-183x300.png 183w, https://blog.za3k.com/wp-content/uploads/2015/10/Alphabetx16-e1445558843487-91x150.png 91w" width="440"/></a>A small font I designed. I’m pretty proud of it.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/art/" rel="tag">art</a>, <a href="https://blog.za3k.com/tag/piskell/" rel="tag">piskell</a>, <a href="https://blog.za3k.com/tag/pixel-art/" rel="tag">pixel art</a>, <a href="https://blog.za3k.com/tag/typography/" rel="tag">typography</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/pixel-alphabet/" rel="bookmark" title="Permalink to Pixel Alphabet"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: pixel-art-a-cool-cat
---
<!-- blogpost -->
-<article class="post-112 post type-post status-publish format-standard hentry category-non-technical tag-pixel-art" id="post-112">
-<h1 class="entry-title">Pixel Art: A Cool Cat</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-02-17T11:53:54-07:00"> <a href="https://blog.za3k.com/pixel-art-a-cool-cat/" rel="bookmark" title="11:53 am"><span class="entry-date">February 17, 2015</span> <span class="entry-time"> - 11:53 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-02-17T11:53:54-07:00">February 17, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p><a href="https://blog.za3k.com/wp-content/uploads/2015/02/Screen-Shot-2015-02-03-at-9.16.08-PM.png"><img alt="A Cool Cat" class="alignnone size-medium wp-image-113" decoding="async" fetchpriority="high" height="177" sizes="(max-width: 300px) 100vw, 300px" src="https://blog.za3k.com/wp-content/uploads/2015/02/Screen-Shot-2015-02-03-at-9.16.08-PM-300x177.png" srcset="https://blog.za3k.com/wp-content/uploads/2015/02/Screen-Shot-2015-02-03-at-9.16.08-PM-300x177.png 300w, https://blog.za3k.com/wp-content/uploads/2015/02/Screen-Shot-2015-02-03-at-9.16.08-PM-1024x604.png 1024w, https://blog.za3k.com/wp-content/uploads/2015/02/Screen-Shot-2015-02-03-at-9.16.08-PM.png 1172w" width="300"/></a></p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/pixel-art/" rel="tag">pixel art</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/pixel-art-a-cool-cat/" rel="bookmark" title="Permalink to Pixel Art: A Cool Cat"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: pompompom
---
<!-- blogpost -->
-<article class="post-1347 post type-post status-publish format-standard hentry category-non-technical category-technical tag-programming tag-time-management" id="post-1347">
-<h1 class="entry-title">pompompom</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2024-05-11T11:49:13-07:00"> <a href="https://blog.za3k.com/pompompom/" rel="bookmark" title="11:49 am"><span class="entry-date">May 11, 2024</span> <span class="entry-time"> - 11:49 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2024-05-11T11:49:13-07:00">May 11, 2024</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I hacked up a little to-do app in an hour. The emphasis is on focus.</p>
<figure class="wp-block-image size-full"><a href="https://github.com/za3k/short-programs#pompompom"><img alt="" class="wp-image-1348" decoding="async" fetchpriority="high" height="529" sizes="(max-width: 961px) 100vw, 961px" src="https://blog.za3k.com/wp-content/uploads/2024/05/pompompom.png" srcset="https://blog.za3k.com/wp-content/uploads/2024/05/pompompom.png 961w, https://blog.za3k.com/wp-content/uploads/2024/05/pompompom-300x165.png 300w, https://blog.za3k.com/wp-content/uploads/2024/05/pompompom-768x423.png 768w, https://blog.za3k.com/wp-content/uploads/2024/05/pompompom-150x83.png 150w, https://blog.za3k.com/wp-content/uploads/2024/05/pompompom-250x138.png 250w" width="961"/></a></figure>
<figure class="wp-block-image size-full"><a href="https://github.com/za3k/short-programs#pompompom"><img alt="" class="wp-image-1349" decoding="async" height="529" sizes="(max-width: 961px) 100vw, 961px" src="https://blog.za3k.com/wp-content/uploads/2024/05/pompompom2.png" srcset="https://blog.za3k.com/wp-content/uploads/2024/05/pompompom2.png 961w, https://blog.za3k.com/wp-content/uploads/2024/05/pompompom2-300x165.png 300w, https://blog.za3k.com/wp-content/uploads/2024/05/pompompom2-768x423.png 768w, https://blog.za3k.com/wp-content/uploads/2024/05/pompompom2-150x83.png 150w, https://blog.za3k.com/wp-content/uploads/2024/05/pompompom2-250x138.png 250w" width="961"/></a></figure>
<p>It’s linux only. You can find it in my <a href="https://github.com/za3k/short-programs#pompompom">short-programs</a> repo on github.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/programming/" rel="tag">programming</a>, <a href="https://blog.za3k.com/tag/time-management/" rel="tag">time management</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/pompompom/" rel="bookmark" title="Permalink to pompompom"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: postmortem-bs-store
---
<!-- blogpost -->
-<article class="post-523 post type-post status-publish format-standard hentry category-technical tag-immutable tag-linux tag-postmortem tag-storage" id="post-523">
-<h1 class="entry-title">Postmortem: bs-store</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2020-05-12T14:00:28-07:00"> <a href="https://blog.za3k.com/postmortem-bs-store/" rel="bookmark" title="2:00 pm"><span class="entry-date">May 12, 2020</span> <span class="entry-time"> - 2:00 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2020-05-17T12:52:32-07:00">May 17, 2020</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Between 2020-03-14 and 2020-12-03 I ran an experimental computer storage setup. I movied or copied 90% of my files into a content-addressable storage system. I’m doing a writeup of why I did it, how I did it, and why I stopped. My hope is that it will be useful to anyone considering using a similar system.</p>
<p>The assumption behind this setup, is that 99% of my files never change, so it’s fine to store only one, static copy of them. (Think movies, photos… they’re most of your computer space, and you’re never going to modify them). There are files you change, I just didn’t put them into this system. If you run a database, this ain’t for you.</p>
<ul><li>I thought I could cool 42 drives spinning, or at least a good portion of them. This was WRONG by far, and I am not sure how possible it is in a home setup. To give you an idea how bad this was, I had to write a monitor to shut off my computer if the drives went above 60C, and I was developing fevers in my bedroom (where the server is) from overheating. Not healthy.</li><li>unionfs has to check each backing drive. So we see 42 drives spin up. I have ideas on fixing this, but it doesn’t deal with the other problems</li><li>To fix this, you could use double-indirection.<ul><li>Rather than pointing a symlink at a unionfs: /data/cat.mpg -> /bs-union/83/23/f58d8b9 (which accesses /zpool/bs0/83/23/f58d8b9)</li><li>Point a symlink at another symlink that points directly to the data: /data/cat.mpg -> /bs-indirect/83/23/f58d8b9 -> /zpool/bs0/83/23/f58d8b9</li></ul></li><li>The idea is that backing stores are kinda “whatever, just shove it somewhere”. But, actually it would be good to have a collection in one place–not only to make it easy to copy, but to spin up only one drive when you go through everything in a collection. It might even be a good idea to have a separate drive for more frequently-accessed content. This wasn’t a huge deal for me since migrating existing content meant it coincidentally ended up pretty localized.</li><li>Because I couldn’t spin up all 42 drives, I had to keep a lot of the array unmounted, and mount the drives I needed into the unionfs manually.</li></ul>
<p>So although I could have tried to fix things with double-indirection, I decided there were some other disadvantages to symlinks: estimating sizes, making offsite backups foolproof. I decided to migrate off the system entirely. The migration went well, although it required running all the drives at once, so some hardware errors popped up. I’m currently on a semi-JBOD system (still on top of the same 7 ZRAID2 devices).</p>
<p>Hopefully this is useful to someone planning a similar system someday. If you learned something useful, or there are existing systems I should have used, feel free to leave a comment.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/immutable/" rel="tag">immutable</a>, <a href="https://blog.za3k.com/tag/linux/" rel="tag">linux</a>, <a href="https://blog.za3k.com/tag/postmortem/" rel="tag">postmortem</a>, <a href="https://blog.za3k.com/tag/storage/" rel="tag">storage</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/postmortem-bs-store/" rel="bookmark" title="Permalink to Postmortem: bs-store"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: printable-todo-list
---
<!-- blogpost -->
-<article class="post-1282 post type-post status-publish format-standard hentry category-non-technical tag-organization" id="post-1282">
-<h1 class="entry-title">Printable TODO List</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2024-01-19T14:30:16-07:00"> <a href="https://blog.za3k.com/printable-todo-list/" rel="bookmark" title="2:30 pm"><span class="entry-date">January 19, 2024</span> <span class="entry-time"> - 2:30 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2024-01-19T14:30:16-07:00">January 19, 2024</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I made a minimal, printable <a href="https://za3k.com/archive/todo.pdf">TODO list</a>. Enjoy!</p>
<figure class="wp-block-image size-large"><a href="https://za3k.com/archive/todo.pdf"><img alt="" class="wp-image-1290" decoding="async" fetchpriority="high" height="338" sizes="(max-width: 1024px) 100vw, 1024px" src="https://blog.za3k.com/wp-content/uploads/2024/01/used-short-crop-1024x338.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2024/01/used-short-crop-1024x338.jpg 1024w, https://blog.za3k.com/wp-content/uploads/2024/01/used-short-crop-300x99.jpg 300w, https://blog.za3k.com/wp-content/uploads/2024/01/used-short-crop-768x254.jpg 768w, https://blog.za3k.com/wp-content/uploads/2024/01/used-short-crop-150x50.jpg 150w, https://blog.za3k.com/wp-content/uploads/2024/01/used-short-crop-250x83.jpg 250w, https://blog.za3k.com/wp-content/uploads/2024/01/used-short-crop.jpg 1333w" width="1024"/></a><figcaption class="wp-element-caption">Just print it</figcaption></figure>
<figure class="wp-block-image size-large"><a href="https://za3k.com/archive/todo.pdf"><img alt="" class="wp-image-1291" decoding="async" height="445" sizes="(max-width: 1024px) 100vw, 1024px" src="https://blog.za3k.com/wp-content/uploads/2024/01/laminated-short-crop-1024x445.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2024/01/laminated-short-crop-1024x445.jpg 1024w, https://blog.za3k.com/wp-content/uploads/2024/01/laminated-short-crop-300x130.jpg 300w, https://blog.za3k.com/wp-content/uploads/2024/01/laminated-short-crop-768x334.jpg 768w, https://blog.za3k.com/wp-content/uploads/2024/01/laminated-short-crop-150x65.jpg 150w, https://blog.za3k.com/wp-content/uploads/2024/01/laminated-short-crop-250x109.jpg 250w, https://blog.za3k.com/wp-content/uploads/2024/01/laminated-short-crop.jpg 1115w" width="1024"/></a><figcaption class="wp-element-caption">or get fancy and laminate</figcaption></figure>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/organization/" rel="tag">organization</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/printable-todo-list/" rel="bookmark" title="Permalink to Printable TODO List"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: printing-on-the-brother-hl-2270dw-printer-using-a-raspberry-pi
---
<!-- blogpost -->
-<article class="post-517 post type-post status-publish format-standard hentry category-technical tag-linux tag-printer tag-raspberry-pi" id="post-517">
-<h1 class="entry-title">Printing on the Brother HL-2270DW printer using a Raspberry Pi</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2020-04-18T16:47:39-07:00"> <a href="https://blog.za3k.com/printing-on-the-brother-hl-2270dw-printer-using-a-raspberry-pi/" rel="bookmark" title="4:47 pm"><span class="entry-date">April 18, 2020</span> <span class="entry-time"> - 4:47 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2020-12-12T13:29:42-07:00">December 12, 2020</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Although the below directions work on Raspberry Pi, they should also work on any other system. The brother-provided driver does not run on arm processors[1] like the raspberry pi, so we will instead use the open-source <a href="https://github.com/pdewacht/brlaser">brlaser</a>[2].</p>
<p>Edit: This setup should also work on the following Brother monochrome printers, just substitute the name where needed: </p>
<ol><li>Get the latest raspbian image up and running on your pi, with working networking. At the time of writing the latest version is 10 (buster)–once 11+ is released this will be much easier. I have written a <a href="https://github.com/za3k/rpi-setup">convenience tool</a>[3] for this step, but you can also find any number of standard guides. Log into your raspberry pi to run the following steps</li><li>(Option 1, not recommended) Upgrade to Debian 11 bullseye (current testing release). This is because we need brlaser 6, not brlaser 4 from debian 10 buster (current stable release). Then, install the print system and driver[2]:<br/><code>sudo apt-get update && sudo apt-get install lpr cups ghostscript printer-driver-brlaser</code></li><li>(Option 2, recommended) Install ‘brlaser’ from source.<ol><li>Install print system and build tools<br/><code>sudo apt-get update && sudo apt-get install lpr cups ghostscript git cmake libcups2-dev libcupsimage2-dev</code></li><li>Download the source<br/><code>wget https://github.com/pdewacht/brlaser/archive/v6.tar.gz && tar xf v6.tar.gz</code></li><li>Build the source and install<br/><code>cd brlaser-6 && cmake . && make</code> && <code>sudo make install</code></li></ol></li><li>Plug in the printer, verify that it shows up using <code style="font-size: 16px;">sudo lsusb</code> or <code style="font-size: 16px;">sudo dmesg</code>. (author’s shameful note: if you’re not looking, I find it surprisingly easy to plug USB B into the ethernet jack)</li><li>Install the printer.<ol><li>Run <code>sudo lpinfo -v | grep usb</code> to get the device name of your printer. It will be something like <code>usb://Brother/HL-2270DW%20series?serial=D4N207646</code><br/>If you’re following this in the hopes that it will work on another printer, run <code>sudo lpinfo -m | grep HL-2270DW</code> to get the PPD file for your printer.</li><li>Install and enable the printer<br/><code>sudo lpadmin -p HL-2270DW -E -v usb://Brother/HL-2270DW%20series?serial=D4N207646 -m drv:///brlaser.drv/br2270dw.ppd</code><br/>Note, <code>-p HL-2270DW</code> is just the name I’m using for the printer, feel free to name the printer whatever you like.</li><li>Enable the printer (did not work for me)<br/><code>sudo lpadmin -p HL-2270DW -E</code></li><li>(Optional) Set the printer as the default destination<br/><code>sudo lpoptions -d HL-2270DW</code></li><li>(Optional) Set any default options you want for the printer<br/><code>sudo lpoptions -p HL-2270DW -o media=letter</code></li></ol></li><li>Test the printer (I’m in the USA so we use ‘letter’ size paper, you can substitute whichever paper you have such as ‘a4’).<ol><li><code>echo "Hello World" | PRINTER=HL-2270DW lp -o media=letter</code> (Make sure anything prints)</li><li><code>cat <test document> | PRINTER=HL-2270DW lp -o media=letter</code> (Print an actual test page to test alignment, etc)</li><li><code>cat <test document> | PRINTER=HL-2270DW lp -o media=letter -o sides=two-sided-short-edge</code> (Make sure duplex works if you plan to use that)</li></ol></li><li>(Optional) Set up an <a href="https://blog.za3k.com/linux-print-server/">scp print server</a>, so any file you copy to a <code>/printme</code> directory gets printed. For the 2270DW, I also have a <code>/printme.duplex</code> directory.</li></ol>
<p>Links<br/>[1] brother driver <a href="https://www.raspberrypi.org/forums/viewtopic.php?t=15526">does not work</a> on arm (also verified myself)<br/>[2] <a href="https://github.com/pdewacht/brlaser">brlaser</a>, the open-source Brother printer driver<br/>[3] <a href="https://github.com/za3k/rpi-setup">rpi-setup</a>, my convenience command-line script for headless raspberry pi setup<br/>[4] <a href="https://serverfault.com/questions/22414/how-can-i-run-debian-stable-but-install-some-packages-from-testing">stack overflow answer</a> on how to install one package from testing in debian</p>
<p></p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/linux/" rel="tag">linux</a>, <a href="https://blog.za3k.com/tag/printer/" rel="tag">printer</a>, <a href="https://blog.za3k.com/tag/raspberry-pi/" rel="tag">raspberry pi</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/printing-on-the-brother-hl-2270dw-printer-using-a-raspberry-pi/" rel="bookmark" title="Permalink to Printing on the Brother HL-2270DW printer using a Raspberry Pi"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
<ol class="commentlist">
wordpress_slug: problem-log-txt
---
<!-- blogpost -->
-<article class="post-767 post type-post status-publish format-standard hentry category-non-technical category-technical tag-linux tag-self-improvement tag-system-administration" id="post-767">
-<h1 class="entry-title">problem-log.txt</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-08-10T09:32:40-07:00"> <a href="https://blog.za3k.com/problem-log-txt/" rel="bookmark" title="9:32 am"><span class="entry-date">August 10, 2022</span> <span class="entry-time"> - 9:32 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-08-10T09:38:02-07:00">August 10, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>One of the more useful things I did was to start logging all my technical problems. Whenever I hit a problem, I write an entry in problem-log.txt. Here’s an example</p>
<pre class="wp-block-code"><code>2022-08-02
<pre class="wp-block-code"><code>2018-10-21
Q: How do I connect to the small yellow router?</code></pre>
<p>Not every problem gets solved. Oh well.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/linux/" rel="tag">linux</a>, <a href="https://blog.za3k.com/tag/self-improvement/" rel="tag">self-improvement</a>, <a href="https://blog.za3k.com/tag/system-administration/" rel="tag">system administration</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/problem-log-txt/" rel="bookmark" title="Permalink to problem-log.txt"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: qr-backup-2
---
<!-- blogpost -->
-<article class="post-731 post type-post status-publish format-standard hentry category-technical tag-backup tag-github tag-qr-codes tag-qr-backup tag-software" id="post-731">
-<h1 class="entry-title">qr-backup</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-03-22T09:28:49-07:00"> <a href="https://blog.za3k.com/qr-backup-2/" rel="bookmark" title="9:28 am"><span class="entry-date">March 22, 2022</span> <span class="entry-time"> - 9:28 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-03-22T09:29:32-07:00">March 22, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>qr-backup is a program to back up digital documents to physical paper. Restore is done with a webcam, video camera, or scanner. Someday smart phone cameras will work.</p>
<p>I’ve been making some progress on <a href="https://github.com/za3k/qr-backup">qr-backup</a> v1.1. So far I’ve added:</p>
<p>v1.1 will be released when I make qr-backup feature complete:</p>
<ul><li>Erasure coding, so you only need 70% of the QRs to do a restore.</li><li>Improve webcam restore slightly.</li></ul>
<p>v1.2 will focus on adding a GUI and support for Windows, Mac, and Android. Switching off zbar is a requirement to allow multi-platform support, and will likely improve storage density.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/backup/" rel="tag">backup</a>, <a href="https://blog.za3k.com/tag/github/" rel="tag">github</a>, <a href="https://blog.za3k.com/tag/qr-codes/" rel="tag">qr codes</a>, <a href="https://blog.za3k.com/tag/qr-backup/" rel="tag">qr-backup</a>, <a href="https://blog.za3k.com/tag/software/" rel="tag">software</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/qr-backup-2/" rel="bookmark" title="Permalink to qr-backup"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: qr-backup-v1-1
---
<!-- blogpost -->
-<article class="post-792 post type-post status-publish format-standard hentry category-technical tag-announcements tag-qr-backup tag-release" id="post-792">
-<h1 class="entry-title">qr-backup v1.1</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-09-22T16:38:08-07:00"> <a href="https://blog.za3k.com/qr-backup-v1-1/" rel="bookmark" title="4:38 pm"><span class="entry-date">September 22, 2022</span> <span class="entry-time"> - 4:38 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-11-05T15:50:36-07:00">November 5, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p><a href="https://github.com/za3k/qr-backup">qr-backup</a> v1.1 is released. qr-backup is a <strong>command-line Linux program</strong>. You can use it to back up a file as a series of QR codes. You can restore the QR codes using a webcam or scanner, and get back the original file.</p>
<figure class="wp-block-image size-large"><a href="https://blog.za3k.com/wp-content/uploads/2022/09/image.png"><img alt="" class="wp-image-793" decoding="async" fetchpriority="high" height="614" sizes="(max-width: 1024px) 100vw, 1024px" src="https://blog.za3k.com/wp-content/uploads/2022/09/image-1024x614.png" srcset="https://blog.za3k.com/wp-content/uploads/2022/09/image-1024x614.png 1024w, https://blog.za3k.com/wp-content/uploads/2022/09/image-300x180.png 300w, https://blog.za3k.com/wp-content/uploads/2022/09/image-768x461.png 768w, https://blog.za3k.com/wp-content/uploads/2022/09/image-1536x921.png 1536w, https://blog.za3k.com/wp-content/uploads/2022/09/image-2048x1228.png 2048w, https://blog.za3k.com/wp-content/uploads/2022/09/image-150x90.png 150w, https://blog.za3k.com/wp-content/uploads/2022/09/image-250x150.png 250w" width="1024"/></a></figure>
<p>New features in v1.1:</p>
<ul><li>Feature complete. New features are unlikely to be added. Future efforts will focus on quality, GUIs, and porting.</li><li>restore using qr-backup. Previously, the only restore was a bash one-liner (which still works).<ul><li><code>qr-backup --restore</code> restores using the webcam</li><li><code>qr-backup --restore IMAGE IMAGE IMAGE</code> restores from scanned images</li></ul></li><li>After generating a PDF backup, qr-backup automatically does a digital test of the restore process</li><li>Erasure coding. Lose up to 30% of QRs and restore will still work, as long as you are using qr-backup to restore</li><li>Increased code density, which about cancels out the erasure coding.</li><li>Back up directories and files. qr-backup makes a .tar file for you</li><li>Option to use password protection (encryption)</li><li>Option to print multiple copies of every QR code</li><li>Option to randomize order of QR codes</li><li>Optionally print extra cover sheet instructions on how to restore. For long-term archivists.</li><li>Option to add custom notes and labels to each page</li><li>Improved support for using qr-backup in a pipe</li><li>Various bugfixes</li><li>See <a href="https://github.com/za3k/qr-backup/blob/master/CHANGELOG">CHANGELOG</a> for complete details</li></ul>
<p>P.S. As a special request, if anyone is on OS X, let me know if it works for you?</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/announcements/" rel="tag">announcements</a>, <a href="https://blog.za3k.com/tag/qr-backup/" rel="tag">qr-backup</a>, <a href="https://blog.za3k.com/tag/release/" rel="tag">release</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/qr-backup-v1-1/" rel="bookmark" title="Permalink to qr-backup v1.1"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: qr-backup
---
<!-- blogpost -->
-<article class="post-587 post type-post status-publish format-standard hentry category-technical tag-announcements tag-backup tag-papercrafts tag-qr" id="post-587">
-<h1 class="entry-title">qr-backup</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2021-05-31T19:41:26-07:00"> <a href="https://blog.za3k.com/qr-backup/" rel="bookmark" title="7:41 pm"><span class="entry-date">May 31, 2021</span> <span class="entry-time"> - 7:41 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2021-06-05T15:39:22-07:00">June 5, 2021</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I made a new project called <a href="https://github.com/za3k/qr-backup">qr-backup</a>. It’s a command-line program to back up any file to physical paper, using a number of QR codes. You can then restore it, even WITHOUT the qr-backup program, using the provided instructions.</p>
<figure class="wp-block-image size-large"><a href="https://blog.za3k.com/wp-content/uploads/2021/05/example.png"><img alt="" class="wp-image-588" decoding="async" fetchpriority="high" height="2500" src="https://blog.za3k.com/wp-content/uploads/2021/05/example.png" width="2083"/></a></figure>
<p>I’m fairly satisfied with its current state (can actually back up my files, makes a PDF). There’s definitely some future features I’m looking forward to adding, though.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/announcements/" rel="tag">announcements</a>, <a href="https://blog.za3k.com/tag/backup/" rel="tag">backup</a>, <a href="https://blog.za3k.com/tag/papercrafts/" rel="tag">papercrafts</a>, <a href="https://blog.za3k.com/tag/qr/" rel="tag">qr</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/qr-backup/" rel="bookmark" title="Permalink to qr-backup"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
<ol class="commentlist">
wordpress_slug: raspberry-pi-comparison
---
<!-- blogpost -->
-<article class="post-709 post type-post status-publish format-standard hentry category-non-technical category-technical tag-raspberry-pi tag-research" id="post-709">
-<h1 class="entry-title">Raspberry Pi Comparison</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2021-08-07T17:59:35-07:00"> <a href="https://blog.za3k.com/raspberry-pi-comparison/" rel="bookmark" title="5:59 pm"><span class="entry-date">August 7, 2021</span> <span class="entry-time"> - 5:59 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2021-08-07T18:00:05-07:00">August 7, 2021</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I was looking into building a raspberry pi based supercomputer lately. <a href="https://za3k.com/archive/pi">Here’s the background research</a> I did comparing pi models. Most of this information is sourced from raspberrypi.org. I was especially interested in which boot methods worked for which models, which is very scattered, as well as prices.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/raspberry-pi/" rel="tag">raspberry pi</a>, <a href="https://blog.za3k.com/tag/research/" rel="tag">research</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/raspberry-pi-comparison/" rel="bookmark" title="Permalink to Raspberry Pi Comparison"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: relay-music
---
<!-- blogpost -->
-<article class="post-1368 post type-post status-publish format-standard hentry category-non-technical category-technical tag-electronics tag-hardware tag-music" id="post-1368">
-<h1 class="entry-title">Relay music</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2024-05-20T21:09:34-07:00"> <a href="https://blog.za3k.com/relay-music/" rel="bookmark" title="9:09 pm"><span class="entry-date">May 20, 2024</span> <span class="entry-time"> - 9:09 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2024-05-20T21:09:35-07:00">May 20, 2024</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="" frameborder="0" height="456" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/au_MMBIpRec?feature=oembed" title="Music made by switching an electric relay" width="810"></iframe>
</div></figure>
<p>My friend Callen tried to help me run a DC motor to roll my curtains up and down. We didn’t make a ton of progress, but we had some fun making a little music.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/electronics/" rel="tag">electronics</a>, <a href="https://blog.za3k.com/tag/hardware/" rel="tag">hardware</a>, <a href="https://blog.za3k.com/tag/music/" rel="tag">music</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/relay-music/" rel="bookmark" title="Permalink to Relay music"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: repulsive-dots
---
<!-- blogpost -->
-<article class="post-1407 post type-post status-publish format-standard hentry category-non-technical category-technical tag-godot tag-programming tag-throwaway" id="post-1407">
-<h1 class="entry-title">Repulsive Dots</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2024-06-25T13:33:31-07:00"> <a href="https://blog.za3k.com/repulsive-dots/" rel="bookmark" title="1:33 pm"><span class="entry-date">June 25, 2024</span> <span class="entry-time"> - 1:33 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2024-06-25T13:33:32-07:00">June 25, 2024</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<figure class="wp-block-image size-large"><a href="https://blog.za3k.com/wp-content/uploads/2024/06/geodesic_screenshot.jpg"><img alt="" class="wp-image-1408" decoding="async" fetchpriority="high" height="566" sizes="(max-width: 1024px) 100vw, 1024px" src="https://blog.za3k.com/wp-content/uploads/2024/06/geodesic_screenshot-1024x566.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2024/06/geodesic_screenshot-1024x566.jpg 1024w, https://blog.za3k.com/wp-content/uploads/2024/06/geodesic_screenshot-300x166.jpg 300w, https://blog.za3k.com/wp-content/uploads/2024/06/geodesic_screenshot-768x425.jpg 768w, https://blog.za3k.com/wp-content/uploads/2024/06/geodesic_screenshot-1536x850.jpg 1536w, https://blog.za3k.com/wp-content/uploads/2024/06/geodesic_screenshot-2048x1133.jpg 2048w, https://blog.za3k.com/wp-content/uploads/2024/06/geodesic_screenshot-150x83.jpg 150w, https://blog.za3k.com/wp-content/uploads/2024/06/geodesic_screenshot-250x138.jpg 250w" width="1024"/></a></figure>
<p>Lately I’ve been messing about in <a href="https://godotengine.org/">Godot</a>, a framework for making video games (similar to Unity).</p>
<li>the bottom at (0, -1, 0)</li>
<li>10 equally spaced points around a circle. they alternate going up and down below the center line.<br/>(<strong>±</strong>1/√5, sin(angle), cos(angle)) [projected onto the sphere]</li>
</ul>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/godot/" rel="tag">godot</a>, <a href="https://blog.za3k.com/tag/programming/" rel="tag">programming</a>, <a href="https://blog.za3k.com/tag/throwaway/" rel="tag">throwaway</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/repulsive-dots/" rel="bookmark" title="Permalink to Repulsive Dots"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: roasted-chickpeas
---
<!-- blogpost -->
-<article class="post-341 post type-post status-publish format-standard has-post-thumbnail hentry category-non-technical tag-recipe" id="post-341">
-<h1 class="entry-title">Roasted Chickpeas</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-10-27T19:10:59-07:00"> <a href="https://blog.za3k.com/roasted-chickpeas/" rel="bookmark" title="7:10 pm"><span class="entry-date">October 27, 2015</span> <span class="entry-time"> - 7:10 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-10-27T19:10:59-07:00">October 27, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p><a href="https://blog.za3k.com/wp-content/uploads/2015/10/roasted.jpg"><img alt="roasted" class="aligncenter wp-image-344 size-medium" decoding="async" fetchpriority="high" height="264" sizes="(max-width: 300px) 100vw, 300px" src="https://blog.za3k.com/wp-content/uploads/2015/10/roasted-300x264.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2015/10/roasted-300x264.jpg 300w, https://blog.za3k.com/wp-content/uploads/2015/10/roasted-169x150.jpg 169w, https://blog.za3k.com/wp-content/uploads/2015/10/roasted-150x132.jpg 150w, https://blog.za3k.com/wp-content/uploads/2015/10/roasted.jpg 1024w" width="300"/></a>Here’s how you make roasted chickpeas (aka garbanzo beans):</p>
<ol>
<li>Take them out and transfer them to a bowl. Add spices. I like salt, garlic powder, and pepper.</li>
</ol>
<p> </p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/recipe/" rel="tag">recipe</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/roasted-chickpeas/" rel="bookmark" title="Permalink to Roasted Chickpeas"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: running-a-forge-server-on-headless-linux
---
<!-- blogpost -->
-<article class="post-13 post type-post status-publish format-standard hentry category-technical tag-minecraft-2" id="post-13">
-<h1 class="entry-title">Running a forge server on headless linux</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2014-10-04T02:10:39-07:00"> <a href="https://blog.za3k.com/running-a-forge-server-on-headless-linux/" rel="bookmark" title="2:10 am"><span class="entry-date">October 4, 2014</span> <span class="entry-time"> - 2:10 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2014-10-18T03:29:32-07:00">October 18, 2014</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I’ve had a lot of trouble getting Minecraft Forge to run headless. They have a friendly installer option that I just can’t use in my situation, but one of the devs seems actively hostile around providing help to headless servers, so I didn’t bother asking forge for help. I thought I’d write up what I had to do to get things working. As a warning, it requires some local work; you can’t do everything headless with these directions.</p>
<p>I’m running Minecraft 1.6.4, with the latest version of forge for that, 9.11.1.965.</p>
</li>
</ol>
<p>Alternatively, you can install the entire server locally and copy it over.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/minecraft-2/" rel="tag">minecraft</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/running-a-forge-server-on-headless-linux/" rel="bookmark" title="Permalink to Running a forge server on headless linux"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
<ol class="commentlist">
wordpress_slug: scan-organizer
---
<!-- blogpost -->
-<article class="post-760 post type-post status-publish format-standard hentry category-non-technical category-technical tag-archiving tag-linux tag-physical tag-software" id="post-760">
-<h1 class="entry-title">Scan Organizer</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-07-20T21:43:15-07:00"> <a href="https://blog.za3k.com/scan-organizer/" rel="bookmark" title="9:43 pm"><span class="entry-date">July 20, 2022</span> <span class="entry-time"> - 9:43 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-07-27T08:22:53-07:00">July 27, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I scan each and every piece of paper that passes through my hands. All my old to-do lists, bills people send me in the mail, the manual for my microwave, everything. I have a lot of scans.</p>
<p><strong><a href="https://github.com/za3k/scan-organizer">scan-organizer</a></strong> is a tool I wrote to help me neatly organize and label everything, and make it searchable. It’s designed for going through a huge backlog by hand over the course of weeks, and then dumping a new set of raw scans in whenever afterwards. I have a specific processing pipeline discussed below. However if you have even a little programming skill, I’ve designed this to be modified to suit your own workflow.</p>
<p>The point of <strong>scan-organizer</strong> is to filter based on tags. So only images I’ve marked as needing hand transcription are shown in this phase.</p>
<h3 class="wp-block-heading"><a href="https://github.com/za3k/scan-organizer#phase-6-verification"></a>Phase 6: Verification</h3>
<p><a href="https://github.com/za3k/scan-organizer/blob/master/screenshots/phase6.png" rel="noreferrer noopener" target="_blank"></a> At the end of the whole process, I verify that each image looks good, and is correctly tagged and transcribed.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/archiving/" rel="tag">archiving</a>, <a href="https://blog.za3k.com/tag/linux/" rel="tag">linux</a>, <a href="https://blog.za3k.com/tag/physical/" rel="tag">physical</a>, <a href="https://blog.za3k.com/tag/software/" rel="tag">software</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/scan-organizer/" rel="bookmark" title="Permalink to Scan Organizer"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: scheme-interpreter
---
<!-- blogpost -->
-<article class="post-1087 post type-post status-publish format-standard hentry category-technical tag-programming tag-software" id="post-1087">
-<h1 class="entry-title">Scheme Interpreter</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-06-24T09:20:14-07:00"> <a href="https://blog.za3k.com/scheme-interpreter/" rel="bookmark" title="9:20 am"><span class="entry-date">June 24, 2023</span> <span class="entry-time"> - 9:20 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-06-24T09:20:14-07:00">June 24, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I wrote a <a href="https://github.com/za3k/sscheme">small scheme interpreter</a> in C.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/programming/" rel="tag">programming</a>, <a href="https://blog.za3k.com/tag/software/" rel="tag">software</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/scheme-interpreter/" rel="bookmark" title="Permalink to Scheme Interpreter"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: screen-and-tmux-ides
---
<!-- blogpost -->
-<article class="post-98 post type-post status-publish format-standard hentry category-technical tag-command-line tag-ide tag-lightweight tag-linux tag-screen tag-tmux tag-unix" id="post-98">
-<h1 class="entry-title">Screen and Tmux IDEs</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-03-12T19:09:37-07:00"> <a href="https://blog.za3k.com/screen-and-tmux-ides/" rel="bookmark" title="7:09 pm"><span class="entry-date">March 12, 2015</span> <span class="entry-time"> - 7:09 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-03-12T19:09:37-07:00">March 12, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I don’t usually like IDEs. They’re hard to switch off of, they do too much. They don’t let me customize things, and I always have to use external tools anyway. I’d really rather do things with a bunch of small tools, the linux way. The problem is, if I close everything, I’ll have trouble getting started back up again. Saving state is one solution. Quick start-up is another. Basically, write a checklist for myself to make starting things up easy (open such-and-such files in the editor, start the server in debug mode, etc).</p>
<p>But we’re programmers, so obviously we’re not going to use a literal checklist. Instead, we’re going to write a little script to auto-start things in a new screen session:</p>
<p>One thing I’d love is if this kind of file was easy to dump from the current state, especially for things like positioning windows, etc. A little assistance is available, but not too much. Ratpoison and tmux let you dump sizing information. Nothing outputs keybindings or a list of running programs with their windows.</p>
<p>There <strong>is</strong> a program called <a href="https://github.com/tmuxinator/tmuxinator">tmuxinator</a> to let you write the same config in nested <a href="http://yaml.org/">YAML</a> of sessions, panes, and windows, which might appeal to some users.</p>
<p>Also, check out <a href="http://dtach.sourceforge.net/">dtach</a> if you don’t need panes and windows, and just want a detachable process.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/command-line/" rel="tag">command-line</a>, <a href="https://blog.za3k.com/tag/ide/" rel="tag">ide</a>, <a href="https://blog.za3k.com/tag/lightweight/" rel="tag">lightweight</a>, <a href="https://blog.za3k.com/tag/linux/" rel="tag">linux</a>, <a href="https://blog.za3k.com/tag/screen/" rel="tag">screen</a>, <a href="https://blog.za3k.com/tag/tmux/" rel="tag">tmux</a>, <a href="https://blog.za3k.com/tag/unix/" rel="tag">unix</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/screen-and-tmux-ides/" rel="bookmark" title="Permalink to Screen and Tmux IDEs"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: scroll-props
---
<!-- blogpost -->
-<article class="post-1040 post type-post status-publish format-standard hentry category-non-technical tag-crafts tag-dungeons-and-dragons tag-feelies" id="post-1040">
-<h1 class="entry-title">Scroll Props</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-06-07T09:38:53-07:00"> <a href="https://blog.za3k.com/scroll-props/" rel="bookmark" title="9:38 am"><span class="entry-date">June 7, 2023</span> <span class="entry-time"> - 9:38 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-06-07T09:38:53-07:00">June 7, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Infocom introduced (AFAIK) the concept of feelies:</p>
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>I love to give out feelies for my D&D campaigns. Here are some lil handout props I made:</p>
<figure class="wp-block-image size-large"><a href="https://blog.za3k.com/wp-content/uploads/2023/06/scroll-crop.jpg"><img alt="" class="wp-image-1041" decoding="async" fetchpriority="high" height="1024" sizes="(max-width: 835px) 100vw, 835px" src="https://blog.za3k.com/wp-content/uploads/2023/06/scroll-crop-835x1024.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2023/06/scroll-crop-835x1024.jpg 835w, https://blog.za3k.com/wp-content/uploads/2023/06/scroll-crop-245x300.jpg 245w, https://blog.za3k.com/wp-content/uploads/2023/06/scroll-crop-768x941.jpg 768w, https://blog.za3k.com/wp-content/uploads/2023/06/scroll-crop-1253x1536.jpg 1253w, https://blog.za3k.com/wp-content/uploads/2023/06/scroll-crop-1671x2048.jpg 1671w, https://blog.za3k.com/wp-content/uploads/2023/06/scroll-crop-122x150.jpg 122w, https://blog.za3k.com/wp-content/uploads/2023/06/scroll-crop.jpg 1848w" width="835"/></a></figure>
<p>I used a receipt printer, q-tips, tape, and <a href="https://www.amazon.com/Orthodontic-Elastic-Rubberbands-Dreadlocks-Horse/dp/B00OSR1RBM">orthodontic rubber bands</a>. </p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/crafts/" rel="tag">crafts</a>, <a href="https://blog.za3k.com/tag/dungeons-and-dragons/" rel="tag">dungeons and dragons</a>, <a href="https://blog.za3k.com/tag/feelies/" rel="tag">feelies</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/scroll-props/" rel="bookmark" title="Permalink to Scroll Props"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: setting-up-ssl-certificates-using-startssl
---
<!-- blogpost -->
-<article class="post-28 post type-post status-publish format-standard hentry category-technical tag-http tag-ssl tag-system-administration tag-tls" id="post-28">
-<h1 class="entry-title">Setting up SSL certificates using StartSSL</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2014-10-29T04:41:31-07:00"> <a href="https://blog.za3k.com/setting-up-ssl-certificates-using-startssl/" rel="bookmark" title="4:41 am"><span class="entry-date">October 29, 2014</span> <span class="entry-time"> - 4:41 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2016-02-10T18:48:39-07:00">February 10, 2016</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<ol>
<ol>
</ol>
</ol>
<p>See also: <a href="https://github.com/Gordin/StartSSL_API">https://github.com/Gordin/StartSSL_API</a></p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/http/" rel="tag">http</a>, <a href="https://blog.za3k.com/tag/ssl/" rel="tag">ssl</a>, <a href="https://blog.za3k.com/tag/system-administration/" rel="tag">system administration</a>, <a href="https://blog.za3k.com/tag/tls/" rel="tag">tls</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/setting-up-ssl-certificates-using-startssl/" rel="bookmark" title="Permalink to Setting up SSL certificates using StartSSL"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
<ol class="commentlist">
wordpress_slug: software-section
---
<!-- blogpost -->
-<article class="post-596 post type-post status-publish format-standard hentry category-non-technical tag-za3k-com" id="post-596">
-<h1 class="entry-title">Software Section</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2021-06-06T00:27:03-07:00"> <a href="https://blog.za3k.com/software-section/" rel="bookmark" title="12:27 am"><span class="entry-date">June 6, 2021</span> <span class="entry-time"> - 12:27 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2021-06-06T00:28:01-07:00">June 6, 2021</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I added a <a href="https://za3k.com/software.md">software section</a> to my website. It lists all the software I’ve made over the years (well not all of it, but what I think is most useful to others).</p>
<p>I updated the <a href="https://za3k.com/archived.html">archive</a> page as well, mostly to remove the software that was there. As usual, I try to make sure all links to my website are good forever.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/za3k-com/" rel="tag">za3k.com</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/software-section/" rel="bookmark" title="Permalink to Software Section"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: sql-views
---
<!-- blogpost -->
-<article class="post-243 post type-post status-publish format-standard hentry category-technical tag-cgi tag-sql tag-sqlite tag-website" id="post-243">
-<h1 class="entry-title">SQL views</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-08-04T20:12:09-07:00"> <a href="https://blog.za3k.com/sql-views/" rel="bookmark" title="8:12 pm"><span class="entry-date">August 4, 2015</span> <span class="entry-time"> - 8:12 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-10-17T19:28:02-07:00">October 17, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I decided I wanted to show (restricted) data views on the web in table form. Specifically, ‘stylish.db’ is a database provided by a chrome plugin. Here’s an example script, <a href="https://za3k.com/stylish.view">stylish.view</a>, which displays the contents of that. It contains a comment saying which database it’s a query on, together with the query.</p>
<pre lang="SQL">-- stylish.db
<pre lang="htaccess">Action view /cgi-bin/view.cgi
AddHandler view .view
</pre>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/cgi/" rel="tag">cgi</a>, <a href="https://blog.za3k.com/tag/sql/" rel="tag">sql</a>, <a href="https://blog.za3k.com/tag/sqlite/" rel="tag">sqlite</a>, <a href="https://blog.za3k.com/tag/website/" rel="tag">website</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/sql-views/" rel="bookmark" title="Permalink to SQL views"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: steak-tartare-3
---
<!-- blogpost -->
-<article class="post-193 post type-post status-publish format-standard has-post-thumbnail hentry category-non-technical tag-cooking tag-recipe tag-steak-tartare" id="post-193">
-<h1 class="entry-title">Steak Tartare</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-04-28T23:04:50-07:00"> <a href="https://blog.za3k.com/steak-tartare-3/" rel="bookmark" title="11:04 pm"><span class="entry-date">April 28, 2015</span> <span class="entry-time"> - 11:04 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-10-03T18:17:30-07:00">October 3, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p><a href="https://blog.za3k.com/wp-content/uploads/2015/04/steak-tartare.jpg"><img alt="steak tartare" class="alignnone size-full wp-image-196" decoding="async" fetchpriority="high" height="895" sizes="(max-width: 1280px) 100vw, 1280px" src="https://blog.za3k.com/wp-content/uploads/2015/04/steak-tartare.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2015/04/steak-tartare.jpg 1280w, https://blog.za3k.com/wp-content/uploads/2015/04/steak-tartare-300x209.jpg 300w, https://blog.za3k.com/wp-content/uploads/2015/04/steak-tartare-1024x716.jpg 1024w" width="1280"/></a><br/>
Recipe is mostly from <a href="http://triciaroxanne.wordpress.com">Tricia</a>.</p>
<li>Separate whites and yolks (carefully removing all the white since we’re using raw yolks). Pour one egg yolk into each divot.</li>
</ol>
<p>Read about raw beef and egg safety first to be well informed.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/cooking/" rel="tag">cooking</a>, <a href="https://blog.za3k.com/tag/recipe/" rel="tag">recipe</a>, <a href="https://blog.za3k.com/tag/steak-tartare/" rel="tag">steak tartare</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/steak-tartare-3/" rel="bookmark" title="Permalink to Steak Tartare"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
<ol class="commentlist">
wordpress_slug: storage-prices-2019-07
---
<!-- blogpost -->
-<article class="post-458 post type-post status-publish format-standard hentry category-non-technical tag-archiving tag-prices tag-storages" id="post-458">
-<h1 class="entry-title">Storage Prices 2019-07</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2019-08-08T13:13:00-07:00"> <a href="https://blog.za3k.com/storage-prices-2019-07/" rel="bookmark" title="1:13 pm"><span class="entry-date">August 8, 2019</span> <span class="entry-time"> - 1:13 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2020-05-17T12:56:14-07:00">May 17, 2020</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I did a survey of the cost of buying hard drives (of all sorts), CDs, DVDs, Blue-rays, and tape media (for tape drives).</p>
<p>Here are the 2019-07 results: <a href="https://za3k.com/archive/storage-2019-07.sc.txt">https://za3k.com/archive/storage-2019-07.sc.txt</a><br/>2018-10: <a href="https://za3k.com/archive/storage-2018-10.sc.txt">https://za3k.com/archive/storage-2018-10.sc.txt</a><br/>2018-06: <a href="https://za3k.com/archive/storage-2017-06.sc.txt">https://za3k.com/archive/storage-2017-06.sc.txt</a><br/>2018-01: <a href="https://za3k.com/archive/storage-2017-01.sc.txt">https://za3k.com/archive/storage-2017-01.sc.txt</a></p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/archiving/" rel="tag">archiving</a>, <a href="https://blog.za3k.com/tag/prices/" rel="tag">prices</a>, <a href="https://blog.za3k.com/tag/storages/" rel="tag">storages</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/storage-prices-2019-07/" rel="bookmark" title="Permalink to Storage Prices 2019-07"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: storage-prices-2020-01
---
<!-- blogpost -->
-<article class="post-494 post type-post status-publish format-standard hentry category-uncategorized tag-archiving tag-prices tag-storage" id="post-494">
-<h1 class="entry-title">Storage Prices 2020-01</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2020-01-06T16:53:24-07:00"> <a href="https://blog.za3k.com/storage-prices-2020-01/" rel="bookmark" title="4:53 pm"><span class="entry-date">January 6, 2020</span> <span class="entry-time"> - 4:53 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2020-05-17T12:55:11-07:00">May 17, 2020</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/uncategorized/" rel="tag">Uncategorized</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I did a survey of the cost of buying hard drives (of all sorts), CDs, DVDs, Blue-rays, and tape media (for tape drives).</p>
<p>Here are the <strong>2020-01 results</strong>: <a href="https://za3k.com/archive/storage-2020-01.sc.txt">https://za3k.com/archive/storage-2020-01.sc.txt</a><br/>2019-07: <a href="https://za3k.com/archive/storage-2019-07.sc.txt">https://za3k.com/archive/storage-2019-07.sc.txt</a><br/>2018-10: <a href="https://za3k.com/archive/storage-2018-10.sc.txt">https://za3k.com/archive/storage-2018-10.sc.txt</a><br/>2018-06: <a href="https://za3k.com/archive/storage-2017-06.sc.txt">https://za3k.com/archive/storage-2017-06.sc.txt</a><br/>2018-01: <a href="https://za3k.com/archive/storage-2017-01.sc.txt">https://za3k.com/archive/storage-2017-01.sc.txt</a></p>
<p>Some conclusions that are useful to know</p>
<ul><li>The cheapest option is tape media, but tape reader/writers for LTO 6, 7, and 8 are very expensive.</li><li>The second-cheapest option is to buy external hard drives, and then open the cases and take out the hard drives. This gives you reliable drives with no warrantee.</li><li>Blu-ray and DVD are more expensive than buying hard drives</li></ul>
<p></p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/archiving/" rel="tag">archiving</a>, <a href="https://blog.za3k.com/tag/prices/" rel="tag">prices</a>, <a href="https://blog.za3k.com/tag/storage/" rel="tag">storage</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/storage-prices-2020-01/" rel="bookmark" title="Permalink to Storage Prices 2020-01"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: storage-prices-2022-07
---
<!-- blogpost -->
-<article class="post-754 post type-post status-publish format-standard hentry category-non-technical tag-archiving tag-prices tag-storage" id="post-754">
-<h1 class="entry-title">Storage Prices 2022-07</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-07-11T15:45:40-07:00"> <a href="https://blog.za3k.com/storage-prices-2022-07/" rel="bookmark" title="3:45 pm"><span class="entry-date">July 11, 2022</span> <span class="entry-time"> - 3:45 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-07-11T15:51:33-07:00">July 11, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I did a survey of the cost of buying hard drives (of all sorts), microsd/sd, USB sticks, CDs, DVDs, Blu-rays, and tape media (for tape drives).</p>
<p>Here are the <strong>2022-07 results</strong>: <a href="https://za3k.com/archive/storage-2022-07.sc.txt">https://za3k.com/archive/storage-2022-07.sc.txt</a></p>
<ul><li>Used or refurbished items were excluded. Multi-packs (5 USB sticks) were excluded except for optical media. Seagate drives were excluded, because they are infamous for having a high failure rate and bad returns process.</li><li>Per TB, the cheapest options are:<ul><li>Tape media (LTO-8) at $4.74/TB, but I recommend against it. Tape drives are expensive ($3300 for LTO-8 new), giving a breakeven with HDDs at 350-400TB. Also, the world is down to only one tape drive manufacturer, so you could end up screwed in the future.</li><li>3.5″ internal spinning hard drives, at $13.75/TB. Currently the best option is 4TB drives.</li><li>3.5″ external spinning hard drives, at $17.00/TB. Currently the best is 18TB WD drives. If you want internal drives, you can buy external ones and open them up, although it voids your warranty.</li></ul><ul><li>2.5″ external spinning hard drives, at $24.50/TB. 4-5TB is best.</li></ul><ul><li>Blu-ray disks, at $23.16: 25GB is cheapest, then 50GB ($32.38/TB), then 100GB ($54.72/TB).</li></ul></li><li>Be very careful buying internal hard drives online, and try to use a first-party seller. There are a lot of fake sellers and sellers who don’t actually provide a warranty. This is new in the last few years.<span style="color: initial;"></span></li></ul>
<p>Changes since the last survey 2 years ago:</p>
<ul><li>Amazon’s search got much worse again. More sponsored listings, still refurbished drives.</li><li>Sketchy third-party sellers are showing up on Amazon, and other vendors. At this point the problem is people not getting what they order, or getting it but without a promised warranty. I tried to filter out such Amazon sellers. I had trouble, even though I do the survey by hand. At this point it would be hard to safely buy an internal hard drive on Amazon.</li><li><strong>Spinning drives</strong>: Prices have not significantly dropped or risen for spinning hard drives, since 2020.</li><li><strong>Spinning drives</strong>: 18TB and 20TB 3.5″ hard drives became available</li><li><strong>SSDs</strong>: 8TB is available (in both 2.5 inch and M.2 formats)</li><li><span style="color: initial;"><strong>SSDs</strong>: Prices dropped by about half, per TB. The cheapest overall drives dropped about 30%.</span></li><li><strong>USB</strong>: 2TB dropped back <em>off</em> the market, and appears unavailable.</li><li><strong>USB</strong>: On the lower end, USB prices rose almost 2X. On the higher end, they dropped.</li><li><strong>MicroSD/SD</strong>: Prices dropped</li><li><strong>MicroSD/SD</strong>: A new player entered the cheap-end flash market, TEAMGROUP. Based on reading reviews, they make real drives, and sell them cheaper than they were available before. Complaints of buffer issues or problems with sustained write speeds are common.</li><li><strong>MicroSD/SD</strong>: It’s no longer possible to buy slow microsd/sd cards, which is good. Basically everything is class 10 and above.</li><li><strong>MicroSD/SD</strong>: Combine microsd and sd to show price comparison</li><li><strong>Optical</strong>: Mostly optical prices did not change. 100GB Blu-Ray dropped by 60-70%. Archival Blu-Ray, too.</li><li><strong>Tape</strong>: LTO-9 is available.</li><li><strong>Tape</strong>: The cost of LTO-8 tape dropped 50%, which makes it the cheapest option.</li><li><strong>Tape:</strong> This is not new, but there is still only one tape drive manufacturer (HP) since around the introduction of LTO-8.</li></ul>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/archiving/" rel="tag">archiving</a>, <a href="https://blog.za3k.com/tag/prices/" rel="tag">prices</a>, <a href="https://blog.za3k.com/tag/storage/" rel="tag">storage</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/storage-prices-2022-07/" rel="bookmark" title="Permalink to Storage Prices 2022-07"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: storage-prices-2023-01
---
<!-- blogpost -->
-<article class="post-981 post type-post status-publish format-standard hentry category-technical tag-archiving tag-research tag-storage" id="post-981">
-<h1 class="entry-title">Storage Prices 2023-01</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2023-01-09T22:08:47-07:00"> <a href="https://blog.za3k.com/storage-prices-2023-01/" rel="bookmark" title="10:08 pm"><span class="entry-date">January 9, 2023</span> <span class="entry-time"> - 10:08 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2023-01-09T22:10:19-07:00">January 9, 2023</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I did a survey of the cost of buying hard drives (of all sorts), microsd/sd, USB sticks, CDs, DVDs, Blu-rays, and tape media (for tape drives).</p>
<p>I excluded used/refurbished options. Multi-packs (5 USB sticks) were excluded, except for optical media like CD-ROMs. Seagate drives were excluded because Seagate has a poor reputation.</p>
<li><strong>Optical</strong>: I stopped gathering data on the cost of BR-RE</li>
<li><strong>Tape</strong>: LTO-7 tape drives are now available used, halving the break-even point on tape.</li>
</ul>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/archiving/" rel="tag">archiving</a>, <a href="https://blog.za3k.com/tag/research/" rel="tag">research</a>, <a href="https://blog.za3k.com/tag/storage/" rel="tag">storage</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/storage-prices-2023-01/" rel="bookmark" title="Permalink to Storage Prices 2023-01"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: streaming-linux-twitch-using-ffmpeg-and-alsa
---
<!-- blogpost -->
-<article class="post-509 post type-post status-publish format-standard hentry category-technical tag-alsa tag-ffmpeg tag-linux tag-streaming tag-twitch" id="post-509">
-<h1 class="entry-title">Streaming Linux->Twitch using ffmpeg and ALSA</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2020-03-21T21:26:52-07:00"> <a href="https://blog.za3k.com/streaming-linux-twitch-using-ffmpeg-and-alsa/" rel="bookmark" title="9:26 pm"><span class="entry-date">March 21, 2020</span> <span class="entry-time"> - 9:26 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2020-05-17T12:53:43-07:00">May 17, 2020</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I stopped using OBS a while ago for a couple reasons–the main one was that it didn’t support my video capture card, but I also had issues with it crashing or lagging behind with no clear indication of what it was doing. I ended up switching to <code>ffmpeg</code> for live streaming, because it’s very easy to tell when ffmpeg is lagging behind. OBS uses ffmpeg internally for video. I don’t especially recommend this setup, but I thought I’d document it in case someone can’t use a nice GUI setup like OBS or similar.</p>
<p>I’m prefer less layers, so I’m still on ALSA. My setup is:</p>
<p>Sources:</p>
<ul><li>jrayhawk on IRC (alsa)</li><li>ffmpeg wiki and docs (pretty good)</li><li>ALSA docs (not that good)</li><li>Twitch documentation, which is pretty good once you can find it</li><li><a href="http://www.pogo.org.uk/~mark/trx/streaming-desktop-audio.html">mark hills</a> on how to set up snd-aloop</li></ul>
<p></p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/alsa/" rel="tag">alsa</a>, <a href="https://blog.za3k.com/tag/ffmpeg/" rel="tag">ffmpeg</a>, <a href="https://blog.za3k.com/tag/linux/" rel="tag">linux</a>, <a href="https://blog.za3k.com/tag/streaming/" rel="tag">streaming</a>, <a href="https://blog.za3k.com/tag/twitch/" rel="tag">twitch</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/streaming-linux-twitch-using-ffmpeg-and-alsa/" rel="bookmark" title="Permalink to Streaming Linux->Twitch using ffmpeg and ALSA"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
<ol class="commentlist">
wordpress_slug: stylish
---
<!-- blogpost -->
-<article class="post-145 post type-post status-publish format-standard hentry category-technical tag-chrome tag-chromium tag-css tag-google tag-web" id="post-145">
-<h1 class="entry-title">Stylish</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-03-28T04:04:55-07:00"> <a href="https://blog.za3k.com/stylish/" rel="bookmark" title="4:04 am"><span class="entry-date">March 28, 2015</span> <span class="entry-time"> - 4:04 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-03-28T04:04:55-07:00">March 28, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Just a quick shout-out to Chrome extension <a href="https://chrome.google.com/webstore/detail/stylish/fjnbnpbmkenffdnngjfgmeleoegfcffe?hl=en">Stylish</a>, which lets you add custom stylesheets to any web page. I’m using it with “display: none” and “visibility: hidden” exclusively, to hide annoying page elements.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/chrome/" rel="tag">chrome</a>, <a href="https://blog.za3k.com/tag/chromium/" rel="tag">chromium</a>, <a href="https://blog.za3k.com/tag/css/" rel="tag">css</a>, <a href="https://blog.za3k.com/tag/google/" rel="tag">google</a>, <a href="https://blog.za3k.com/tag/web/" rel="tag">web</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/stylish/" rel="bookmark" title="Permalink to Stylish"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: talk-in-debian
---
<!-- blogpost -->
-<article class="post-302 post type-post status-publish format-standard hentry category-technical tag-debian tag-linux tag-talk" id="post-302">
-<h1 class="entry-title">Talk in Debian</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-10-17T03:35:05-07:00"> <a href="https://blog.za3k.com/talk-in-debian/" rel="bookmark" title="3:35 am"><span class="entry-date">October 17, 2015</span> <span class="entry-time"> - 3:35 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-10-17T03:35:05-07:00">October 17, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<ol>
<li>Install packages talk, talkd, inetutils-inetd</li>
<li>Make sure users have set ‘mesg y’</li>
<li>‘talk user@localhost’. Despite documentation, ‘talk user’ will not work.</li>
</ol>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/debian/" rel="tag">debian</a>, <a href="https://blog.za3k.com/tag/linux/" rel="tag">linux</a>, <a href="https://blog.za3k.com/tag/talk/" rel="tag">talk</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/talk-in-debian/" rel="bookmark" title="Permalink to Talk in Debian"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: terminal-goal-rationality-techniques
---
<!-- blogpost -->
-<article class="post-234 post type-post status-publish format-standard hentry category-non-technical tag-rationality tag-self-improvement tag-technique tag-workshop" id="post-234">
-<h1 class="entry-title">Rationality Techniques 1</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-07-17T23:15:39-07:00"> <a href="https://blog.za3k.com/terminal-goal-rationality-techniques/" rel="bookmark" title="11:15 pm"><span class="entry-date">July 17, 2015</span> <span class="entry-time"> - 11:15 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-10-17T19:26:35-07:00">October 17, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>CFAR usually designs their techniques to help people Get Stuff Done. I have a failure mode of Getting The Wrong Stuff Done, so this time through their workshop, I focused on improving techniques to explicitly have steps around pursuing the correct terminal goals (which I’ll here call “terminal goal techniques”).</p>
<p>Original technique: Goal-factor<br/>
<li>If you don’t want to, contradiction. Debug steps 1,2,3,4 and see where you went wrong until they’re in accord.</li>
</ol>
<p>Theory on how to avoid lost purposes (mostly from Eliezer): Use <a href="http://wiki.lesswrong.com/wiki/Litany_of_Tarski">Litany of Tarski</a> a lot until you get the magic effect where you don’t start rationalizing to begin with (and generally don’t flinch away from learning about things/mistakes). Then, develop an aversion to lost purposes. The naive failure mode is to avoid noticing lost purposes if you have an aversion. (The simpler technique is <a href="http://lesswrong.com/lw/5x8/teachable_rationality_skills/49d7">Alien in a Body</a>)</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/rationality/" rel="tag">rationality</a>, <a href="https://blog.za3k.com/tag/self-improvement/" rel="tag">self-improvement</a>, <a href="https://blog.za3k.com/tag/technique/" rel="tag">technique</a>, <a href="https://blog.za3k.com/tag/workshop/" rel="tag">workshop</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/terminal-goal-rationality-techniques/" rel="bookmark" title="Permalink to Rationality Techniques 1"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
<ol class="commentlist">
wordpress_slug: testing-scrapers-faster
---
<!-- blogpost -->
-<article class="post-712 post type-post status-publish format-standard hentry category-technical tag-iteration tag-programming tag-repl" id="post-712">
-<h1 class="entry-title">Testing scrapers faster</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2021-08-16T19:28:16-07:00"> <a href="https://blog.za3k.com/testing-scrapers-faster/" rel="bookmark" title="7:28 pm"><span class="entry-date">August 16, 2021</span> <span class="entry-time"> - 7:28 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2021-08-16T19:28:17-07:00">August 16, 2021</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Recently I wrote a scraper. First, I downloaded all the HTML files. Next, I wanted to parse the content. However, real world data is pretty messy. I would run the scraper, and it would get partway though the file and fail. Then I would improve it, and it would get further and fail. I’d improve it more, and it would finish the whole file, but fail on the fifth one. Then I’d re-run things, and it would fail on file #52, #1035, and #553,956.</p>
<p>To make testing faster, I added a scaffold. Whenever my parser hit an error, it would print the filename (for me, the tester) and record the filename to an error log. Then, it would immediately exit. When I re-ran the parser, it would test all the files where it had hit a problem <strong>first</strong>. That way, I didn’t have to wait 20 minutes until it got to the failure case.</p>
raise
json.dump(result, out, sort_keys=True) # my desired output is one JSON dict per line
out.write("\n")</code></pre>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/iteration/" rel="tag">iteration</a>, <a href="https://blog.za3k.com/tag/programming/" rel="tag">programming</a>, <a href="https://blog.za3k.com/tag/repl/" rel="tag">repl</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/testing-scrapers-faster/" rel="bookmark" title="Permalink to Testing scrapers faster"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: the-bible-translated-to-the-new-latin
---
<!-- blogpost -->
-<article class="post-79 post type-post status-publish format-standard hentry category-non-technical tag-hacks tag-nanowrimo tag-silly" id="post-79">
-<h1 class="entry-title">The Bible, translated to the new latin</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2014-12-01T01:24:28-07:00"> <a href="https://blog.za3k.com/the-bible-translated-to-the-new-latin/" rel="bookmark" title="1:24 am"><span class="entry-date">December 1, 2014</span> <span class="entry-time"> - 1:24 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2014-12-01T09:09:56-07:00">December 1, 2014</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<blockquote>
<p style="color: #333333;"><a href="http://www.imdb.com/name/nm0887694/?ref_=tt_trv_qu" style="color: #70579d;"><span class="character" style="font-weight: bold;">Abbot</span></a>: I will perform the opening prayer in the New Latin. Oh ordlay, ivethgay usway ouryay essingsblay. Amen-ay!</p>
-<a href="http://za3k.com/new%20latin%20bible.txt">Ethay Iblebay</a></pre>
</blockquote>
<p style="color: #333333;">The full bible translation is <a href="http://za3k.com/new%20latin%20bible.txt">here</a>. Source code is <a href="https://github.com/vanceza/newlatinbible">here</a>.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/hacks/" rel="tag">hacks</a>, <a href="https://blog.za3k.com/tag/nanowrimo/" rel="tag">nanowrimo</a>, <a href="https://blog.za3k.com/tag/silly/" rel="tag">silly</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/the-bible-translated-to-the-new-latin/" rel="bookmark" title="Permalink to The Bible, translated to the new latin"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: the-double-lives-of-books
---
<!-- blogpost -->
-<article class="post-46 post type-post status-publish format-standard hentry category-non-technical category-technical" id="post-46">
-<h1 class="entry-title">The Double Lives of Books</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2014-11-21T19:20:29-07:00"> <a href="https://blog.za3k.com/the-double-lives-of-books/" rel="bookmark" title="7:20 pm"><span class="entry-date">November 21, 2014</span> <span class="entry-time"> - 7:20 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-12-24T19:46:17-07:00">December 24, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Two forces pull at me: the desire to have few possessions and be able to travel flexibly, and the convenience of reading and referencing physical books. I discovered a third option: I have digital copies of all my books, so I can freely get rid of them at any time, or travel without inconvenience.</p>
<p>So that’s where we start. Here’s where I went.</p>
<li>The <a href="http://zbar.sourceforge.net/" title="zbarcam">zbarcam</a> software (for scanning QR codes among other digital codes) is just absolute quality work and I can’t say enough good things about it. Scanning cards back into the computer was one of the most pleasant parts of this whole project. It has an intuitive command UI using all the format options I want, and camera feedback to show it’s scanned QR codes (which it does very quickly).</li>
<li><a href="http://en.wikipedia.org/wiki/Future_proof" title="Future-proofed">Future-proofed</a> links to pirated books–the sort of link that usually goes down. I opted to use a <a href="http://en.wikipedia.org/wiki/SHA-2" title="SHA256 hash">SHA256 hash</a> (the mysterious numbers at the bottom which form a unique signature generated from the content of the book) and provide a small page on my website which gives you a download based on that. This is what the QR code links to. I was hoping there was some way to provide that without involving me, but I’m unaware of any service available. <a href="https://twitter.com/ali0mt" title="Alice Monday">Alice Monday</a> suggested just typing the SHA hash into Google, which sounded like the sort of clever idea which might work. It doesn’t.</li>
</ul>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_bookmark">Bookmark the <a href="https://blog.za3k.com/the-double-lives-of-books/" rel="bookmark" title="Permalink to The Double Lives of Books">permalink</a>. </span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
<ol class="commentlist">
wordpress_slug: the-life-changing-magic-of-tidying-up
---
<!-- blogpost -->
-<article class="post-406 post type-post status-publish format-standard hentry category-non-technical tag-book-review tag-organization" id="post-406">
-<h1 class="entry-title">The life-changing magic of tidying up</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2017-04-07T18:01:02-07:00"> <a href="https://blog.za3k.com/the-life-changing-magic-of-tidying-up/" rel="bookmark" title="6:01 pm"><span class="entry-date">April 7, 2017</span> <span class="entry-time"> - 6:01 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2020-05-17T12:56:28-07:00">May 17, 2020</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Summary of “the life-changing magic of tidying up”:</p>
<p>Marie Kondo writes the “KonMari” method. The book ends up being as much about her mistakes in learning how to tidy as it is about how to tidy. The book conveys a certain positive energy that makes me want to recommend it, but the author also brings that energy in reaction to a kind of previous stress which accompanied tidying, which she does not seem to have completely dropped–if you are mysteriously anxious and feel you MUST discard everything after reading her book, this may be why.</p>
<li>If you can say without a doubt, “I really life this!” no matter what anyone else says, and if you like yourself for having it, then ignore what other people think.</li>
<li>As for you, pour your time and passion into what brings you the most joy, your mission in life.</li>
</ul>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/book-review/" rel="tag">book review</a>, <a href="https://blog.za3k.com/tag/organization/" rel="tag">organization</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/the-life-changing-magic-of-tidying-up/" rel="bookmark" title="Permalink to The life-changing magic of tidying up"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: time-log-transcribed
---
<!-- blogpost -->
-<article class="post-545 post type-post status-publish format-standard hentry category-non-technical tag-timelog" id="post-545">
-<h1 class="entry-title">Time log transcribed</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2020-11-20T17:41:32-07:00"> <a href="https://blog.za3k.com/time-log-transcribed/" rel="bookmark" title="5:41 pm"><span class="entry-date">November 20, 2020</span> <span class="entry-time"> - 5:41 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2021-06-05T15:38:04-07:00">June 5, 2021</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I <a href="https://blog.za3k.com/life-logging-in-2019/">write down everything I do.</a> </p>
<p>I transcribed my journals by hand. That is, I typed them up myself, instead of trying to use handwriting recognition or outsourcing to Mechanical Turk.</p>
<ul><li>I started on 2019-11-02, and finished today, 2020-11-20. That’s roughly one year. </li><li>The 15 journals transcribed go from 2011 to 2020, 10 years. The 2011-2015 period is sparser.</li><li>Of the 15 journals, 13 of them them I transcribed from the physical version. Two I had thrown out, because my old scanner was feed-through, and I had to destroy the spines to scan the books.</li><li>That’s 1779 pages total (small ones, these are pocket journals). It’s also 32,000 lines, and 164K words. The text is 1.1MB, the scanned PNG files are 12GB (12000 MB).</li><li>In general, it takes me 1 hour to transcribe the last week of notes. Going farther back is harder, partly because my handwriting gets more readable as time progresses (due at least as much to my choice of pen, as my neatness), and partly because I have a harder time guessing at poor handwriting without memory to fill it in, and partly because I didn’t use standard formats back then. </li><li>I do have exact numbers I could check, but a lower bound based on this rate is that was overall 90 hours of work. It probably didn’t take more than twice that.</li></ul>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/timelog/" rel="tag">timelog</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/time-log-transcribed/" rel="bookmark" title="Permalink to Time log transcribed"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: time-management-optimizers-satisficers-minimizers
---
<!-- blogpost -->
-<article class="post-347 post type-post status-publish format-standard hentry category-non-technical tag-rationality" id="post-347">
-<h1 class="entry-title">Time management: Optimizers, Satisficers, Minimizers</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-11-02T18:26:22-07:00"> <a href="https://blog.za3k.com/time-management-optimizers-satisficers-minimizers/" rel="bookmark" title="6:26 pm"><span class="entry-date">November 2, 2015</span> <span class="entry-time"> - 6:26 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-11-02T18:26:22-07:00">November 2, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I want to talk about three different mindsets for time management and what constitutes “success”. In all three, I’ll talk about an example problem, let’s say “writing term papers” for a student who finds this difficult, and see how each might approach the goal. My goal is not to promote one of these as best, but rather to illustrate that all three exist. Each may be favored by one person or another, or by a single person depending on the situation. I hope that by describing them, I can help people understand one another’s motivations, so as to facilitate communication. The first mindset I will call <strong>optimization</strong>. The optimizer tries to spend their time gaining resources. For example, they might work to get money. They also attempt to increase the <em>rate</em> at which they can gain resources. Some optimizers even try to increase the rate at which they can e.g. network or learn skills. The intuition here is that most goods are somehow fungible, and that you should try to get as many fungible goods as possible. <em>Example of term papers:</em> An optimizer might try to learn to write term papers, or get faster and faster at writing papers. If they got good at writing term papers, they might try to write even more (for example, taking classes heavy on papers) to take advantage of these skills. Heuristics:</p>
<ul>
<li>Bad at goals: Minimization deals with recurring activities, but can fail to offer any positive motivation for one-time end goals</li>
<li>Negative mindset: Heavy focus on mistakes and resource use</li>
</ul>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/rationality/" rel="tag">rationality</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/time-management-optimizers-satisficers-minimizers/" rel="bookmark" title="Permalink to Time management: Optimizers, Satisficers, Minimizers"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
<ol class="commentlist">
wordpress_slug: timelog-analysis
---
<!-- blogpost -->
-<article class="post-796 post type-post status-publish format-standard hentry category-non-technical tag-lifelogging tag-statistics tag-timelog" id="post-796">
-<h1 class="entry-title">Timelog Analysis</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-09-23T15:05:15-07:00"> <a href="https://blog.za3k.com/timelog-analysis/" rel="bookmark" title="3:05 pm"><span class="entry-date">September 23, 2022</span> <span class="entry-time"> - 3:05 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-09-23T15:07:32-07:00">September 23, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I <a href="https://blog.za3k.com/life-logging-in-2019/">write down</a> everything I do. Yesterday, I wrote a quick-and-dirty analysis program to get some stats on common habits.</p>
<p>The full results are here: <a href="https://za3k.com/archive/timelog-analysis/drive.txt">d</a><a href="https://za3k.com/archive/timelog-analysis/drive.txt" rel="noreferrer noopener" target="_blank">r</a><a href="https://za3k.com/archive/timelog-analysis/drive.txt">ive</a> <a href="https://za3k.com/archive/timelog-analysis/floss.txt">floss</a> <a href="https://za3k.com/archive/timelog-analysis/food.txt">food</a> <a href="https://za3k.com/archive/timelog-analysis/read.txt">read</a> <a href="https://za3k.com/archive/timelog-analysis/sleep.txt">sleep</a> <a href="https://za3k.com/archive/timelog-analysis/teeth.txt">teeth</a> <a href="https://za3k.com/archive/timelog-analysis/tv.txt">tv</a> <a href="https://za3k.com/archive/timelog-analysis/wake.txt">wake</a> <a href="https://za3k.com/archive/timelog-analysis/walk.txt">walk</a> <a href="https://za3k.com/archive/timelog-analysis/youtube.txt">youtube</a>. Of course, what I write down doesn’t perfectly match what I do, so most of the absolute stats are vastly wrong. Comparative ones are still interesting.</p>
'2022-07': 'xxxxxxxxxxxxxxxxxxxxxxx',
'2022-08': 'xxxxxxxxxxxxxxxxxxxxxxx',
'2022-09': 'xxxxxxx'}</code></pre>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/lifelogging/" rel="tag">lifelogging</a>, <a href="https://blog.za3k.com/tag/statistics/" rel="tag">statistics</a>, <a href="https://blog.za3k.com/tag/timelog/" rel="tag">timelog</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/timelog-analysis/" rel="bookmark" title="Permalink to Timelog Analysis"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: tiny-cute-vampire-bat
---
<!-- blogpost -->
-<article class="post-279 post type-post status-publish format-standard hentry category-non-technical tag-art tag-cute tag-piskell tag-pixel-art tag-spooky" id="post-279">
-<h1 class="entry-title">Tiny cute vampire bat</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-10-10T17:54:17-07:00"> <a href="https://blog.za3k.com/tiny-cute-vampire-bat/" rel="bookmark" title="5:54 pm"><span class="entry-date">October 10, 2015</span> <span class="entry-time"> - 5:54 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-10-17T19:15:20-07:00">October 17, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p><a href="https://blog.za3k.com/wp-content/uploads/2015/10/vampire-bat-x16.png"><img alt="vampire bat x16" class="alignnone size-full wp-image-280" decoding="async" fetchpriority="high" height="256" sizes="(max-width: 256px) 100vw, 256px" src="https://blog.za3k.com/wp-content/uploads/2015/10/vampire-bat-x16.png" srcset="https://blog.za3k.com/wp-content/uploads/2015/10/vampire-bat-x16.png 256w, https://blog.za3k.com/wp-content/uploads/2015/10/vampire-bat-x16-150x150.png 150w" width="256"/></a></p>
<p>Made using <a href="http://www.piskelapp.com/">Piskell</a></p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/art/" rel="tag">art</a>, <a href="https://blog.za3k.com/tag/cute/" rel="tag">cute</a>, <a href="https://blog.za3k.com/tag/piskell/" rel="tag">piskell</a>, <a href="https://blog.za3k.com/tag/pixel-art/" rel="tag">pixel art</a>, <a href="https://blog.za3k.com/tag/spooky/" rel="tag">spooky</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/tiny-cute-vampire-bat/" rel="bookmark" title="Permalink to Tiny cute vampire bat"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
<ol class="commentlist">
wordpress_slug: tty-audit-logs
---
<!-- blogpost -->
-<article class="post-789 post type-post status-publish format-standard hentry category-technical tag-archiving tag-linux tag-system-administration" id="post-789">
-<h1 class="entry-title">tty audit logs</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-08-18T20:14:48-07:00"> <a href="https://blog.za3k.com/tty-audit-logs/" rel="bookmark" title="8:14 pm"><span class="entry-date">August 18, 2022</span> <span class="entry-time"> - 8:14 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-08-18T20:14:49-07:00">August 18, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I recently wrote a program that records all tty activity. That means bash sessions, ssh, raw tty access, screen and tmux sessions, the lot. I used <a href="https://en.wikipedia.org/wiki/Script_(Unix)">script</a>. The latest version of my software can be found <a href="https://github.com/za3k/short-programs#record-shell">on github</a>.</p>
<p>Note that it’s been tested only with bash so far, and there’s no encryption built in.</p>
<p>To just record all shell commands typed, use the standard eternal history tricks (<a href="https://github.com/za3k/dotfiles/blob/master/.bashrc">bash</a>).</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/archiving/" rel="tag">archiving</a>, <a href="https://blog.za3k.com/tag/linux/" rel="tag">linux</a>, <a href="https://blog.za3k.com/tag/system-administration/" rel="tag">system administration</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/tty-audit-logs/" rel="bookmark" title="Permalink to tty audit logs"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: understanding-gzip-2
---
<!-- blogpost -->
-<article class="post-668 post type-post status-publish format-standard hentry category-technical tag-compression tag-formats tag-gzip tag-informative" id="post-668">
-<h1 class="entry-title">Understanding gzip</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2021-07-10T21:36:51-07:00"> <a href="https://blog.za3k.com/understanding-gzip-2/" rel="bookmark" title="9:36 pm"><span class="entry-date">July 10, 2021</span> <span class="entry-time"> - 9:36 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2021-07-11T18:25:09-07:00">July 11, 2021</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Let’s take a look at the gzip format. Why might you want to do this?</p>
<ol><li>Maybe you’re curious how gzip works</li><li>Maybe you’re curious how DEFLATE works. DEFLATE is the “actual” compression method inside of gzip. It’s also used in zip, png, git, http, pdf… the list is pretty long.</li><li>Maybe you would like to write a gzip/DEFLATE decompressor. (A compressor is more complicated–understanding the format alone isn’t enough)</li></ol>
<figure class="wp-block-table"><table><thead><tr><th>Code</th><th>Bits</th><th>Binary</th><th>Meaning</th><th>Extra Bits</th></tr></thead><tbody><tr><td>0</td><td>2</td><td>00</td><td>Distance 1</td><td>0</td></tr><tr><td>4</td><td>2</td><td>01</td><td>Distance 5-6</td><td>1</td></tr><tr><td>5</td><td>2</td><td>10</td><td>Distance 7-8</td><td>1</td></tr><tr><td>6</td><td>2</td><td>11</td><td>Distance 9-12</td><td>2</td></tr></tbody></table><figcaption>abaa dynamic literal/end-of-block/length Huffman codes</figcaption></figure>
<h2 class="has-medium-font-size wp-block-heading">Dynamic Huffman: Data stream decoding</h2>
<ul><li>Now we’re ready to actually decode the data. Again, we’re reading a series of codes from the literal/end-of-block/length Huffman code table.</li><li>Byte 25: 0000<strong>0 10 0</strong>: Literal ‘a’, ‘b’, ‘a’</li><li>Byte 26: <strong>0</strong> <strong>10</strong> <strong>10</strong> <strong>10</strong> <strong>0</strong>: Literal ‘a’, ‘b’, ‘b’, ‘b’, ‘a’.</li><li>Byte 27: <strong>1110 10</strong> <strong>0</strong> 1. Length 4. Whenever we read a length, we read a distance. The distance is a range, 7-8. The extra bit we read is 0b0=0, plus 7 is Distance 7. So we look back 7 bytes and copy 4. The new output is: baabbba<strong>baab</strong></li><li>Byte 27-28: 1110100<strong> 1101</strong> <strong>11</strong> <strong>00</strong> 1: Length 3, Distance 9. We look back 9 bytes and copy 3. The new output is: abbabaab<strong>abb</strong></li><li>Byte 28-29: 1011100 <strong>1111</strong> <strong>01</strong> <strong>1</strong> 00. Length 5, Distance 6. We look back 6 bytes and copy 5. The new output is: aababb<strong>aabab</strong></li><li>Byte 29: 111011 <strong>0 0</strong>. Literal ‘a’, ‘a’.</li><li>Byte 30: <strong>0</strong> 1111010. Literal ‘a’.</li><li>Byte 30: 0 <strong>1111 01</strong> <strong>0</strong>. Length 5, Distance 5. We look back 5 bytes and copy 5. The new output is: abaaa<strong>abaaa</strong></li><li>Byte 31: <strong>10</strong> 111000: Literal ‘b’</li><li>Byte 31: 10 <strong>1110</strong> <strong>00</strong>: Length 4, Distance 1. We look back 1 byte and copy 4. The new output is: b<strong>bbbb</strong></li><li>Byte 32: <strong>0 0</strong> 110000: Literal ‘a’, ‘a’.</li><li>Byte 32: 00 <strong>1100</strong> <strong>00</strong>: End-of block. Since this is the final block it’s also the end of the stream. This didn’t come up in the first example, but we zero-pad until the end of the byte when the block ends.</li><li>The final output is a b a a b b b a baab abb aabab a a a abaaa b bbbb a a (spaces added for clarity), which is exactly what we expected.</li></ul>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/compression/" rel="tag">compression</a>, <a href="https://blog.za3k.com/tag/formats/" rel="tag">formats</a>, <a href="https://blog.za3k.com/tag/gzip/" rel="tag">gzip</a>, <a href="https://blog.za3k.com/tag/informative/" rel="tag">informative</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/understanding-gzip-2/" rel="bookmark" title="Permalink to Understanding gzip"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
<ol class="commentlist">
wordpress_slug: url-handlers-in-linux
---
<!-- blogpost -->
-<article class="post-1398 post type-post status-publish format-standard hentry category-technical tag-linux" id="post-1398">
-<h1 class="entry-title">URI handlers in Linux</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2024-06-08T19:46:00-07:00"> <a href="https://blog.za3k.com/url-handlers-in-linux/" rel="bookmark" title="7:46 pm"><span class="entry-date">June 8, 2024</span> <span class="entry-time"> - 7:46 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2024-06-09T08:22:47-07:00">June 9, 2024</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>When you click an email address, it automatically opens in your email client. But I don’t have an email client, I use webmail. I wrote a custom handler for Linux.<br/><br/>First write a program to open <a href="https://en.wikipedia.org/wiki/Mailto">mailto</a> links. Mailto links look like “<strong>mailto:me@mail.com</strong>” or maybe even “<strong>mailto:me@mail.com?subject=mysubject&body=mybody</strong>“. Test it by hand on a few links. Mine (<a href="https://github.com/za3k/short-programs?tab=readme-ov-file#mailto-opener">mailto-opener</a>) composes a new message using my webmail.</p>
<p>Next, write a desktop file for the opener. Here’s one:</p>
Name=transmission-remote magnet link opener
Exec=transmission-remote <TRANSMISSION INSTANCE> -a</code></pre>
<p><code>transmission-remote</code> is the name of a command-line Linux program. It connects to an instance of Tranmission (a popular torrent client) running on another machine.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/linux/" rel="tag">linux</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/url-handlers-in-linux/" rel="bookmark" title="Permalink to URI handlers in Linux"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: usb-flash-longevity-testing-year-2
---
<!-- blogpost -->
-<article class="post-726 post type-post status-publish format-standard hentry category-non-technical tag-archiving tag-research tag-slow tag-usb" id="post-726">
-<h1 class="entry-title">USB Flash Longevity Testing – Year 2</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-03-10T09:11:11-07:00"> <a href="https://blog.za3k.com/usb-flash-longevity-testing-year-2/" rel="bookmark" title="9:11 am"><span class="entry-date">March 10, 2022</span> <span class="entry-time"> - 9:11 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-03-10T09:22:34-07:00">March 10, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p><a href="https://www.reddit.com/r/DataHoarder/comments/e3nb2r/longterm_reliability_testing/">Year 0</a> – I filled 10 32-GB Kingston flash drives with random data.<br/><a href="https://www.reddit.com/r/DataHoarder/comments/lwgsdr/research_flash_media_longevity_testing_1_year/">Year 1</a> – Tested drive 1, zero bit rot. Re-wrote the drive with the same data.<br/>Year 2 – Re-tested drive 1, zero bit rot. Tested drive 2, zero bit rot. Re-wrote both with the same data.</p>
<p>They have been stored in a box on my shelf, with a 1-month period in a moving van (probably below freezing) this year.</p>
<p>FAQs:</p>
<ul><li>Q: Why didn’t you test more kinds of drives?<br/>A: Because I don’t have unlimited energy, time and money :). I encourage you to!</li><li>Q: You know you powered the drive by reading it, right?<br/>A: Yes, that’s why I wrote 10 drives to begin with. We want to see how something works if left unpowered for 1 year, 2 years, etc.</li><li>Q: What drive model is this?<br/>A: The drive tested was “Kingston Digital DataTraveler SE9 32GB USB 2.0 Flash Drive (DTSE9H/32GBZ)” from Amazon, model DTSE9H/32GBZ, barcode 740617206432, WO# 8463411X001, ID 2364, bl 1933, serial id 206432TWUS008463411X001005. It was not used for anything previously–I bought it just for this test.</li><li>Q: Which flash type is this model?<br/>A: We don’t know. If you do know, please tell me.</li><li>Q: What data are you testing with?<br/>A: (<a href="https://github.com/za3k/short-programs#prng">Repeatable</a>) randomly generated bits</li><li>Q: What filesystem are you using? / Doesn’t the filesystem do error correction?<br/>A: I’m writing data directly to the drive using Linux’s block devices.</li></ul>
<p></p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/archiving/" rel="tag">archiving</a>, <a href="https://blog.za3k.com/tag/research/" rel="tag">research</a>, <a href="https://blog.za3k.com/tag/slow/" rel="tag">slow</a>, <a href="https://blog.za3k.com/tag/usb/" rel="tag">usb</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/usb-flash-longevity-testing-year-2/" rel="bookmark" title="Permalink to USB Flash Longevity Testing – Year 2"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: what-i-know-about-sleep-schedules
---
<!-- blogpost -->
-<article class="post-581 post type-post status-publish format-standard hentry category-non-technical tag-self-improvement tag-sleep" id="post-581">
-<h1 class="entry-title">What I know about sleep schedules</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2021-05-26T13:39:19-07:00"> <a href="https://blog.za3k.com/what-i-know-about-sleep-schedules/" rel="bookmark" title="1:39 pm"><span class="entry-date">May 26, 2021</span> <span class="entry-time"> - 1:39 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2021-05-26T13:43:00-07:00">May 26, 2021</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I’ve had pretty irregular sleep schedules at times, so I have some tricks for making it more regular, or moving it back/forwards. Take everything here with a spoonful of salt. All of these tricks are relatively long term (1-4 weeks) and won’t instantly fix your schedule. Most of them are from experience, with some knowledge backing them.</p>
<p>Also, as a note, I wake up whenever I feel like it (I don’t have a day job). I have used many of these same tricks with an alarm and a day job when I had those, but I might be forgetting some details.</p>
<p>If you want to move your sleep schedule <strong>back</strong> a significant amount (more than just undoing a recent 1-hour forward shift) I recommend:</p>
<ul><li>Do it gradually. Half an hour a day, probably more like 15 minutes. Don’t bother trying to schedule it.</li><li>Have caffein AS SOON as you get up (within 15-30 minutes, the sooner the better). This moves your circadian rhythm back, and also stops you falling back asleep. Again I don’t use alarms these days, but it’s a great combo to set a schedule.</li><li>You can try adjusting it by taking small (0.5mg) melatonin supplements before your usual bedtime, if you’ve just drifted forward a bit</li><li>Make sure you are getting natural light if possible. If you aren’t, or if it’s winter and you want extra help: hook up your lights, especially a sun lamp, to an automated timer so you get bright white light in your room around when you’d like to wake up. This can fix problems caused by blackout curtains.</li></ul>
<p>Finally, I’ll leave you with a horrifying trick I learned while sleep-deprived at my first job after college. To get up while incredibly sleep deprived, set two alarms, about 30 minutes apart. After the first one, hit the alarm, chug significant portions of an energy drink on reflex while mostly asleep, then immediately fall back sleep. On the second one, actually wake up–the caffein will help keep you awake.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/self-improvement/" rel="tag">self-improvement</a>, <a href="https://blog.za3k.com/tag/sleep/" rel="tag">sleep</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/what-i-know-about-sleep-schedules/" rel="bookmark" title="Permalink to What I know about sleep schedules"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: when-is-rick-and-morty-out-season-4-episode-6
---
<!-- blogpost -->
-<article class="post-513 post type-post status-publish format-standard hentry category-non-technical tag-isitoutyet tag-rick-and-morty tag-websites" id="post-513">
-<h1 class="entry-title">When is rick and morty out? (Season 4 Episode 6)</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2020-04-15T15:34:41-07:00"> <a href="https://blog.za3k.com/when-is-rick-and-morty-out-season-4-episode-6/" rel="bookmark" title="3:34 pm"><span class="entry-date">April 15, 2020</span> <span class="entry-time"> - 3:34 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2020-05-17T12:53:27-07:00">May 17, 2020</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I made a website to give you countdowns and let you know whether an episode is out: <a href="http://isrickandmortyout.com/">http://isrickandmortyout.com/</a>. Been up since before season 4, but I forgot to post it until now.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/isitoutyet/" rel="tag">isitoutyet</a>, <a href="https://blog.za3k.com/tag/rick-and-morty/" rel="tag">rick and morty</a>, <a href="https://blog.za3k.com/tag/websites/" rel="tag">websites</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/when-is-rick-and-morty-out-season-4-episode-6/" rel="bookmark" title="Permalink to When is rick and morty out? (Season 4 Episode 6)"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: whiteboard-partition
---
<!-- blogpost -->
-<article class="post-201 post type-post status-publish format-standard hentry category-non-technical tag-carpentry tag-lost-purposes" id="post-201">
-<h1 class="entry-title">Whiteboard Partition</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-04-30T03:12:07-07:00"> <a href="https://blog.za3k.com/whiteboard-partition/" rel="bookmark" title="3:12 am"><span class="entry-date">April 30, 2015</span> <span class="entry-time"> - 3:12 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-04-30T03:12:07-07:00">April 30, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I wanted a partition to divide my room, and I had a whiteboard sitting around. I sawed it into three parts, and connected them with hinges:</p>
<div class="wp-caption alignleft" id="attachment_205" style="width: 826px"><img alt="whiteboard 2" aria-describedby="caption-attachment-205" class="wp-image-205 size-full" decoding="async" fetchpriority="high" height="612" sizes="(max-width: 816px) 100vw, 816px" src="https://blog.za3k.com/wp-content/uploads/2015/04/whiteboard-2.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2015/04/whiteboard-2.jpg 816w, https://blog.za3k.com/wp-content/uploads/2015/04/whiteboard-2-300x225.jpg 300w" width="816"/><p class="wp-caption-text" id="caption-attachment-205">folding whiteboard</p></div>
<div class="wp-caption alignright" id="attachment_206" style="width: 261px"><img alt="whiteboard 1" aria-describedby="caption-attachment-206" class="wp-image-206" decoding="async" height="199" sizes="(max-width: 251px) 100vw, 251px" src="https://blog.za3k.com/wp-content/uploads/2015/04/whiteboard-1.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2015/04/whiteboard-1.jpg 612w, https://blog.za3k.com/wp-content/uploads/2015/04/whiteboard-1-300x237.jpg 300w" width="251"/><p class="wp-caption-text" id="caption-attachment-206">hinge (back)</p></div>
<p>I’m a little embarrassed at having done all this, since it was obvious as soon as I started the partition was way too short to work. I figured I’d still get some experience woodworking (this is my first project). Here’s where it went:</p>
<div class="wp-caption alignnone" id="attachment_202" style="width: 855px"><img alt="whiteboard 5" aria-describedby="caption-attachment-202" class="wp-image-202 size-full" decoding="async" height="608" loading="lazy" sizes="(max-width: 845px) 100vw, 845px" src="https://blog.za3k.com/wp-content/uploads/2015/04/whiteboard-5.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2015/04/whiteboard-5.jpg 845w, https://blog.za3k.com/wp-content/uploads/2015/04/whiteboard-5-300x215.jpg 300w" width="845"/><p class="wp-caption-text" id="caption-attachment-202">and I never saw it again</p></div>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/carpentry/" rel="tag">carpentry</a>, <a href="https://blog.za3k.com/tag/lost-purposes/" rel="tag">lost purposes</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/whiteboard-partition/" rel="bookmark" title="Permalink to Whiteboard Partition"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
<ol class="commentlist">
wordpress_slug: whoosh
---
<!-- blogpost -->
-<article class="post-282 post type-post status-publish format-image hentry category-non-technical tag-art tag-piskell tag-pixel-art post_format-post-format-image" id="post-282">
-<h1 class="entry-title">Whoosh!</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-10-10T18:17:34-07:00"> <a href="https://blog.za3k.com/whoosh/" rel="bookmark" title="6:17 pm"><span class="entry-date">October 10, 2015</span> <span class="entry-time"> - 6:17 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-10-17T19:15:58-07:00">October 17, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<div class="wp-caption alignnone" id="attachment_283" style="width: 310px"><a href="https://blog.za3k.com/wp-content/uploads/2015/10/action-potato.png"><img alt="Action Potato" aria-describedby="caption-attachment-283" class="wp-image-283 size-medium" decoding="async" fetchpriority="high" height="300" sizes="(max-width: 300px) 100vw, 300px" src="https://blog.za3k.com/wp-content/uploads/2015/10/action-potato-300x300.png" srcset="https://blog.za3k.com/wp-content/uploads/2015/10/action-potato-300x300.png 300w, https://blog.za3k.com/wp-content/uploads/2015/10/action-potato-150x150.png 150w, https://blog.za3k.com/wp-content/uploads/2015/10/action-potato-1024x1024.png 1024w" width="300"/></a><p class="wp-caption-text" id="caption-attachment-283">Action Potato</p></div>
<p>It’s whooshing because it’s going as fast as a WEAK SPEEDBOAT.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/art/" rel="tag">art</a>, <a href="https://blog.za3k.com/tag/piskell/" rel="tag">piskell</a>, <a href="https://blog.za3k.com/tag/pixel-art/" rel="tag">pixel art</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/whoosh/" rel="bookmark" title="Permalink to Whoosh!"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: whsh
---
<!-- blogpost -->
-<article class="post-288 post type-post status-publish format-standard hentry category-non-technical tag-art tag-cute tag-piskell tag-pixel-art" id="post-288">
-<h1 class="entry-title">Whsh!</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-10-10T18:25:46-07:00"> <a href="https://blog.za3k.com/whsh/" rel="bookmark" title="6:25 pm"><span class="entry-date">October 10, 2015</span> <span class="entry-time"> - 6:25 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-10-10T18:32:20-07:00">October 10, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p><a href="https://blog.za3k.com/wp-content/uploads/2015/10/Space-Action-Potato-2-big.gif"><img alt="Space Action Potato 2 big" class="alignnone size-full wp-image-291" decoding="async" fetchpriority="high" height="256" src="https://blog.za3k.com/wp-content/uploads/2015/10/Space-Action-Potato-2-big.gif" width="256"/></a></p>
<p>In space no one car hear “whoosh” sounds but action potato is so cool you still can mostly.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/art/" rel="tag">art</a>, <a href="https://blog.za3k.com/tag/cute/" rel="tag">cute</a>, <a href="https://blog.za3k.com/tag/piskell/" rel="tag">piskell</a>, <a href="https://blog.za3k.com/tag/pixel-art/" rel="tag">pixel art</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/whsh/" rel="bookmark" title="Permalink to Whsh!"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: wip-dead-tree-publishing-2
---
<!-- blogpost -->
-<article class="post-153 post type-post status-publish format-standard hentry category-non-technical tag-dead-tree tag-publishing tag-website" id="post-153">
-<h1 class="entry-title">WIP: Dead Tree Publishing 2</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-04-02T17:38:23-07:00"> <a href="https://blog.za3k.com/wip-dead-tree-publishing-2/" rel="bookmark" title="5:38 pm"><span class="entry-date">April 2, 2015</span> <span class="entry-time"> - 5:38 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-04-16T18:43:33-07:00">April 16, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p><a href="https://blog.za3k.com/wip-dead-tree-publishing/" title="WIP: Dead Tree Publishing">Last post</a> I discussed the publishing website I’m working on.</p>
<p>Today I added credit card processing and address forms–it’s functionally complete and available at <a href="https://publishing.za3k.com">https://publishing.za3k.com</a></p>
<p>Next up I have to clean the site up, because it looks like this:</p>
<p><a href="https://blog.za3k.com/wp-content/uploads/2015/04/20150402.jpg"><img alt="20150402" class="alignnone size-full wp-image-155" decoding="async" fetchpriority="high" height="746" sizes="(max-width: 538px) 100vw, 538px" src="https://blog.za3k.com/wp-content/uploads/2015/04/20150402.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2015/04/20150402.jpg 538w, https://blog.za3k.com/wp-content/uploads/2015/04/20150402-216x300.jpg 216w" width="538"/></a></p>
<p>I’ll also add HTTPS.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/dead-tree/" rel="tag">dead tree</a>, <a href="https://blog.za3k.com/tag/publishing/" rel="tag">publishing</a>, <a href="https://blog.za3k.com/tag/website/" rel="tag">website</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/wip-dead-tree-publishing-2/" rel="bookmark" title="Permalink to WIP: Dead Tree Publishing 2"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
<ol class="commentlist">
wordpress_slug: wip-dead-tree-publishing-3
---
<!-- blogpost -->
-<article class="post-167 post type-post status-publish format-standard hentry category-non-technical tag-bootstrap tag-dead-tree tag-publishing tag-website" id="post-167">
-<h1 class="entry-title">WIP: Dead Tree Publishing 3</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-04-16T18:47:16-07:00"> <a href="https://blog.za3k.com/wip-dead-tree-publishing-3/" rel="bookmark" title="6:47 pm"><span class="entry-date">April 16, 2015</span> <span class="entry-time"> - 6:47 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-04-16T18:58:51-07:00">April 16, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Compared with <a href="https://blog.za3k.com/wip-dead-tree-publishing-2/" title="WIP: Dead Tree Publishing 2">last update</a>, the Dead Tree Publishing website is looking nicer.</p>
<div class="wp-caption alignnone" id="attachment_168" style="width: 699px"><a href="https://blog.za3k.com/wp-content/uploads/2015/04/2015-04-16-184416_1366x768.jpg"><img alt="Looking better" aria-describedby="caption-attachment-168" class="wp-image-168 size-full" decoding="async" fetchpriority="high" height="706" sizes="(max-width: 689px) 100vw, 689px" src="https://blog.za3k.com/wp-content/uploads/2015/04/2015-04-16-184416_1366x768-e1429235272387.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2015/04/2015-04-16-184416_1366x768-e1429235272387.jpg 689w, https://blog.za3k.com/wp-content/uploads/2015/04/2015-04-16-184416_1366x768-e1429235272387-292x300.jpg 292w" width="689"/></a><p class="wp-caption-text" id="caption-attachment-168">Looking better</p></div>
<p>It’s served over HTTPS now (not needed for security, but it puts people at ease and enabled Chrome’s autocomplete) and you can order multiple books at a time.</p>
<p>Other than some more visual improvements, the main thing missing is proper detection of page size — my server doesn’t understand about page margins, so it things books are bigger than they really are.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/bootstrap/" rel="tag">bootstrap</a>, <a href="https://blog.za3k.com/tag/dead-tree/" rel="tag">dead tree</a>, <a href="https://blog.za3k.com/tag/publishing/" rel="tag">publishing</a>, <a href="https://blog.za3k.com/tag/website/" rel="tag">website</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/wip-dead-tree-publishing-3/" rel="bookmark" title="Permalink to WIP: Dead Tree Publishing 3"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: wip-dead-tree-publishing-4
---
<!-- blogpost -->
-<article class="post-214 post type-post status-publish format-standard hentry category-non-technical tag-bootstrap tag-dead-tree tag-publishing" id="post-214">
-<h1 class="entry-title">WIP: Dead Tree Publishing 4</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-04-30T18:08:01-07:00"> <a href="https://blog.za3k.com/wip-dead-tree-publishing-4/" rel="bookmark" title="6:08 pm"><span class="entry-date">April 30, 2015</span> <span class="entry-time"> - 6:08 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-04-30T18:25:40-07:00">April 30, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I consider Dead Tree Publishing to be <strong>G</strong>ood <strong>E</strong>nough at this point. It’s launched.</p>
<div class="wp-caption alignnone" id="attachment_215" style="width: 1376px"><a href="https://blog.za3k.com/wp-content/uploads/2015/04/2015-04-30-180400_1366x768.jpg"><img alt="2015-04-30-180400_1366x768" aria-describedby="caption-attachment-215" class="wp-image-215 size-full" decoding="async" fetchpriority="high" height="768" sizes="(max-width: 1366px) 100vw, 1366px" src="https://blog.za3k.com/wp-content/uploads/2015/04/2015-04-30-180400_1366x768.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2015/04/2015-04-30-180400_1366x768.jpg 1366w, https://blog.za3k.com/wp-content/uploads/2015/04/2015-04-30-180400_1366x768-300x168.jpg 300w, https://blog.za3k.com/wp-content/uploads/2015/04/2015-04-30-180400_1366x768-1024x575.jpg 1024w" width="1366"/></a><p class="wp-caption-text" id="caption-attachment-215">New site style, FAQ page</p></div>
Best wishes,
Eric</pre>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/bootstrap/" rel="tag">bootstrap</a>, <a href="https://blog.za3k.com/tag/dead-tree/" rel="tag">dead tree</a>, <a href="https://blog.za3k.com/tag/publishing/" rel="tag">publishing</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/wip-dead-tree-publishing-4/" rel="bookmark" title="Permalink to WIP: Dead Tree Publishing 4"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
<ol class="commentlist">
wordpress_slug: wip-dead-tree-publishing
---
<!-- blogpost -->
-<article class="post-147 post type-post status-publish format-standard hentry category-non-technical tag-dead-tree tag-digital tag-pdf tag-physical tag-publishing tag-website" id="post-147">
-<h1 class="entry-title">WIP: Dead Tree Publishing</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-03-29T14:12:31-07:00"> <a href="https://blog.za3k.com/wip-dead-tree-publishing/" rel="bookmark" title="2:12 pm"><span class="entry-date">March 29, 2015</span> <span class="entry-time"> - 2:12 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-04-28T23:09:22-07:00">April 28, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I started work on my publishing website again (Dead Tree Publishing). The idea is to make a really, really convenient way to get a physical copy of a PDF/epub book. Think: “send me a printed copy of this mailing list / tumblr”. Right now things are looking encouraging.</p>
<p>I use a “back end” publisher who does all the actual printing, and the one I was using before charged quite a lot and wasn’t amazingly fast; I just used them because they were the only publisher who was at all up to date. Seriously, order of $100 – $200 for a 100 page book, just absolutely ridiculous levels of expensive. I’m switching over to a new publisher who can offer that same book for something like $7 (maybe $12 in hardback), which is absolutely reasonable, and with similar 2-week turnaround times.</p>
<p>Then I tell you what your ordering options are (hardcover, softcover, color), and what they cost. I’m also supposed to ask you your address to ship the book, and for you to pay for it, but those aren’t done yet.</p>
<div class="wp-caption alignnone" id="attachment_148" style="width: 310px"><a href="https://blog.za3k.com/wp-content/uploads/2015/03/1.jpg"><img alt="1" aria-describedby="caption-attachment-148" class="wp-image-148 size-medium" decoding="async" fetchpriority="high" height="254" sizes="(max-width: 300px) 100vw, 300px" src="https://blog.za3k.com/wp-content/uploads/2015/03/1-300x254.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2015/03/1-300x254.jpg 300w, https://blog.za3k.com/wp-content/uploads/2015/03/1.jpg 546w" width="300"/></a><p class="wp-caption-text" id="caption-attachment-148">Book-buying options</p></div>
<p>Hopefully in the next day or two I’ll have something up and running so people can order books, and then make it gradually nicer! I’m very excited about this website existing.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/dead-tree/" rel="tag">dead tree</a>, <a href="https://blog.za3k.com/tag/digital/" rel="tag">digital</a>, <a href="https://blog.za3k.com/tag/pdf/" rel="tag">PDF</a>, <a href="https://blog.za3k.com/tag/physical/" rel="tag">physical</a>, <a href="https://blog.za3k.com/tag/publishing/" rel="tag">publishing</a>, <a href="https://blog.za3k.com/tag/website/" rel="tag">website</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/wip-dead-tree-publishing/" rel="bookmark" title="Permalink to WIP: Dead Tree Publishing"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
<ol class="commentlist">
wordpress_slug: xp-boot-usb-stick
---
<!-- blogpost -->
-<article class="post-158 post type-post status-publish format-standard hentry category-technical tag-boot tag-installer tag-iso tag-os tag-system-administration tag-windows tag-windows-xp" id="post-158">
-<h1 class="entry-title">XP Boot USB Stick</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-04-13T17:46:31-07:00"> <a href="https://blog.za3k.com/xp-boot-usb-stick/" rel="bookmark" title="5:46 pm"><span class="entry-date">April 13, 2015</span> <span class="entry-time"> - 5:46 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2015-04-13T17:51:06-07:00">April 13, 2015</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Most of the following taken from : <a href="http://www.msfn.org/board/topic/151992-install-xp-from-usb-without-extra-tools/">http://www.msfn.org/board/topic/151992-install-xp-from-usb-without-extra-tools/</a>, just modified to include syslinux support.</p>
<p>Let me know if there are any omissions; it an XP installer bluescreens on boot for me so I can’t actually test.</p>
</li>
<li>Boot from the USB stick</li>
</ol>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/boot/" rel="tag">boot</a>, <a href="https://blog.za3k.com/tag/installer/" rel="tag">installer</a>, <a href="https://blog.za3k.com/tag/iso/" rel="tag">iso</a>, <a href="https://blog.za3k.com/tag/os/" rel="tag">os</a>, <a href="https://blog.za3k.com/tag/system-administration/" rel="tag">system administration</a>, <a href="https://blog.za3k.com/tag/windows/" rel="tag">windows</a>, <a href="https://blog.za3k.com/tag/windows-xp/" rel="tag">windows xp</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/xp-boot-usb-stick/" rel="bookmark" title="Permalink to XP Boot USB Stick"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: year-in-review
---
<!-- blogpost -->
-<article class="post-229 post type-post status-publish format-standard hentry category-non-technical tag-review tag-yearly-review" id="post-229">
-<h1 class="entry-title">Year in Review</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2015-06-28T17:07:34-07:00"> <a href="https://blog.za3k.com/year-in-review/" rel="bookmark" title="5:07 pm"><span class="entry-date">June 28, 2015</span> <span class="entry-time"> - 5:07 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2020-05-17T12:57:07-07:00">May 17, 2020</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Sep, Oct, Nov 2014: Vietnam.</p>
<p>A year ago, I left my job at Streak and moved to Vietnam. I felt like I needed change. Vietnam ended up being wonderful; I was really glad I travelled with my friends <a href="http://www.jollybit.com/">Richard</a> and <a href="http://thedragonseyelashes.tumblr.com/">Kathy</a>, which ended up making the experience a hundred times better than it would have been otherwise. The basic environment was: everything is cheap, I newly have endless free time, I was automatically prompted by my friends in the evenings and sometimes during the day to go on small novel adventures involving physical activity, and I had little internet access. This is probably my perfect environment, and I was functioning very well (the vietnamese diet also has small, well-balanced meals which might have helped). For some reason, I was also able to intensely single-task. [I’d like to write more about what Vietnam is like, but this article is quite long enough as it is]</p>
Description: Gwern writes about how to <a href="http://www.gwern.net/Archiving%20URLs">protect links</a> against link rot. He does this for all links on his website. I ambitiously plan to automatically save a copy of every site I visit (not just the actual URL I visit ideally, but the whole page).</span></div>
</li>
</ul>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/review/" rel="tag">review</a>, <a href="https://blog.za3k.com/tag/yearly-review/" rel="tag">yearly review</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/year-in-review/" rel="bookmark" title="Permalink to Year in Review"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: youtube-autodl
---
<!-- blogpost -->
-<article class="post-745 post type-post status-publish format-standard hentry category-non-technical category-technical tag-archiving tag-software tag-youtube" id="post-745">
-<h1 class="entry-title">youtube-autodl</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2022-07-08T12:02:57-07:00"> <a href="https://blog.za3k.com/youtube-autodl/" rel="bookmark" title="12:02 pm"><span class="entry-date">July 8, 2022</span> <span class="entry-time"> - 12:02 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2022-07-08T12:02:57-07:00">July 8, 2022</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/non-technical/" rel="tag">Non-Technical</a>, <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I just wrote the first pass at <a href="https://github.com/za3k/youtube-autodl">youtube-autodl</a>, a tool for automatically downloading youtube videos. It’s inspired by Popcorn Time, a similar program I never ended up using, for automatically pirating the latest video from a TV series coming out.</p>
<p>You explain what you want to download, where you want to download it to, and how to name videoes. youtube-autodl takes care of the rest, including de-duplication and downloading things ones.</p>
<p>The easiest way to understand it is to take a look at the example <a href="https://github.com/za3k/youtube-autodl/blob/master/config.yaml">config file</a>, which is my actual config file.</p>
<p></p>
<p>Personally, I find youtube is pushing “watch this related” video and main-page feeds more and more, to the point where they actually succeed with me. I don’t want to accidentally waste time, so I wanted a way to avoid visiting youtube.com. This is my solution.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/archiving/" rel="tag">archiving</a>, <a href="https://blog.za3k.com/tag/software/" rel="tag">software</a>, <a href="https://blog.za3k.com/tag/youtube/" rel="tag">youtube</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/youtube-autodl/" rel="bookmark" title="Permalink to youtube-autodl"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: zorchpad-keyboard-update
---
<!-- blogpost -->
-<article class="post-1372 post type-post status-publish format-standard hentry category-technical tag-hardware tag-zorchpad" id="post-1372">
-<h1 class="entry-title">Zorchpad keyboard update</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2024-05-26T18:25:37-07:00"> <a href="https://blog.za3k.com/zorchpad-keyboard-update/" rel="bookmark" title="6:25 pm"><span class="entry-date">May 26, 2024</span> <span class="entry-time"> - 6:25 pm</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2024-05-26T18:28:14-07:00">May 26, 2024</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>The Zorchpad needs a custom keyboard. Its power budget is only 1mW, and there’s just nothing available in that range. So, I need to make a custom keyboard. I started reading up on how to make your own–especially the electronics.</p>
<p>I don’t know how to make a PCB:</p>
<figure class="wp-block-image size-full"><a href="https://blog.za3k.com/wp-content/uploads/2024/05/keyboard57.png"><img alt="" class="wp-image-1379" decoding="async" height="215" loading="lazy" sizes="(max-width: 509px) 100vw, 509px" src="https://blog.za3k.com/wp-content/uploads/2024/05/keyboard57.png" srcset="https://blog.za3k.com/wp-content/uploads/2024/05/keyboard57.png 509w, https://blog.za3k.com/wp-content/uploads/2024/05/keyboard57-300x127.png 300w, https://blog.za3k.com/wp-content/uploads/2024/05/keyboard57-150x63.png 150w, https://blog.za3k.com/wp-content/uploads/2024/05/keyboard57-250x106.png 250w" width="509"/></a></figure>
<p>And I’ve started streaming some development of a case and keyboard on <a href="https://www.twitch.tv/za3k">Twitch</a> (Tue/Thu 12pm noon, EDT). Feel free to join! Anyone can watch, but you need an account to chat.</p>
<figure class="wp-block-image size-large"><a href="https://blog.za3k.com/wp-content/uploads/2024/05/stream.png"><img alt="" class="wp-image-1380" decoding="async" height="576" loading="lazy" sizes="(max-width: 1024px) 100vw, 1024px" src="https://blog.za3k.com/wp-content/uploads/2024/05/stream-1024x576.png" srcset="https://blog.za3k.com/wp-content/uploads/2024/05/stream-1024x576.png 1024w, https://blog.za3k.com/wp-content/uploads/2024/05/stream-300x169.png 300w, https://blog.za3k.com/wp-content/uploads/2024/05/stream-768x432.png 768w, https://blog.za3k.com/wp-content/uploads/2024/05/stream-1536x864.png 1536w, https://blog.za3k.com/wp-content/uploads/2024/05/stream-2048x1152.png 2048w, https://blog.za3k.com/wp-content/uploads/2024/05/stream-150x84.png 150w, https://blog.za3k.com/wp-content/uploads/2024/05/stream-250x141.png 250w" width="1024"/></a></figure>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/hardware/" rel="tag">hardware</a>, <a href="https://blog.za3k.com/tag/zorchpad/" rel="tag">zorchpad</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/zorchpad-keyboard-update/" rel="bookmark" title="Permalink to Zorchpad keyboard update"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: zorchpad-update-cardboard-mockup-mk1
---
<!-- blogpost -->
-<article class="post-1363 post type-post status-publish format-standard hentry category-technical tag-zorchpad" id="post-1363">
-<h1 class="entry-title">Zorchpad Update: Cardboard mockup, mk1</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2024-05-17T10:04:12-07:00"> <a href="https://blog.za3k.com/zorchpad-update-cardboard-mockup-mk1/" rel="bookmark" title="10:04 am"><span class="entry-date">May 17, 2024</span> <span class="entry-time"> - 10:04 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2024-05-17T10:05:55-07:00">May 17, 2024</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I’ve gotten to the point in Zorchpad development where I’d like to see how the whole thing fits together and if there will be any insurmountable problems. We’re still trying to figure out some things like–will it have one screen or two? What form factor will it be? Will the keyboard fold in half? So I put together a cardboard model.</p>
<figure class="wp-block-image size-large"><a href="https://blog.za3k.com/wp-content/uploads/2024/05/v0_cardboard_zorchpad.jpg"><img alt="" class="wp-image-1364" decoding="async" fetchpriority="high" height="576" sizes="(max-width: 1024px) 100vw, 1024px" src="https://blog.za3k.com/wp-content/uploads/2024/05/v0_cardboard_zorchpad-1024x576.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2024/05/v0_cardboard_zorchpad-1024x576.jpg 1024w, https://blog.za3k.com/wp-content/uploads/2024/05/v0_cardboard_zorchpad-300x169.jpg 300w, https://blog.za3k.com/wp-content/uploads/2024/05/v0_cardboard_zorchpad-768x432.jpg 768w, https://blog.za3k.com/wp-content/uploads/2024/05/v0_cardboard_zorchpad-1536x864.jpg 1536w, https://blog.za3k.com/wp-content/uploads/2024/05/v0_cardboard_zorchpad-150x84.jpg 150w, https://blog.za3k.com/wp-content/uploads/2024/05/v0_cardboard_zorchpad-250x141.jpg 250w, https://blog.za3k.com/wp-content/uploads/2024/05/v0_cardboard_zorchpad.jpg 1659w" width="1024"/></a></figure>
<li>It’s hard to get the screen to stay propped up on my cardboard model. I’d like a solution that doesn’t use hinges, since those tend to loosen over time.</li>
</ul>
<p>My next step will probably be to make a custom working keyboard. Then, I’ll make an entire working zorchpad. Both will be either cardboard or 3d-printed (whichever is easier).</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/zorchpad/" rel="tag">zorchpad</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/zorchpad-update-cardboard-mockup-mk1/" rel="bookmark" title="Permalink to Zorchpad Update: Cardboard mockup, mk1"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: zorchpad-update-first-3d-print
---
<!-- blogpost -->
-<article class="post-1384 post type-post status-publish format-standard hentry category-technical tag-zorchpad" id="post-1384">
-<h1 class="entry-title">Zorchpad update: first 3d print</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2024-06-05T10:36:45-07:00"> <a href="https://blog.za3k.com/zorchpad-update-first-3d-print/" rel="bookmark" title="10:36 am"><span class="entry-date">June 5, 2024</span> <span class="entry-time"> - 10:36 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2024-06-05T10:36:45-07:00">June 5, 2024</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>I’ve been designing a keyboard and case for the <a href="https://blog.za3k.com/tag/zorchpad/">zorchpad</a>.</p>
<figure class="wp-block-image size-large"><a href="https://blog.za3k.com/wp-content/uploads/2024/06/all_parts_color1.png"><img alt="" class="wp-image-1387" decoding="async" fetchpriority="high" height="1024" sizes="(max-width: 664px) 100vw, 664px" src="https://blog.za3k.com/wp-content/uploads/2024/06/all_parts_color1-664x1024.png" srcset="https://blog.za3k.com/wp-content/uploads/2024/06/all_parts_color1-664x1024.png 664w, https://blog.za3k.com/wp-content/uploads/2024/06/all_parts_color1-194x300.png 194w, https://blog.za3k.com/wp-content/uploads/2024/06/all_parts_color1-97x150.png 97w, https://blog.za3k.com/wp-content/uploads/2024/06/all_parts_color1.png 735w" width="664"/></a></figure>
<figure class="wp-block-image size-full"><a href="https://blog.za3k.com/wp-content/uploads/2024/06/printed_parts.jpg"><img alt="" class="wp-image-1396" decoding="async" height="512" loading="lazy" sizes="(max-width: 859px) 100vw, 859px" src="https://blog.za3k.com/wp-content/uploads/2024/06/printed_parts.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2024/06/printed_parts.jpg 859w, https://blog.za3k.com/wp-content/uploads/2024/06/printed_parts-300x179.jpg 300w, https://blog.za3k.com/wp-content/uploads/2024/06/printed_parts-768x458.jpg 768w, https://blog.za3k.com/wp-content/uploads/2024/06/printed_parts-150x89.jpg 150w, https://blog.za3k.com/wp-content/uploads/2024/06/printed_parts-250x150.jpg 250w" width="859"/></a></figure>
<p>The same pieces, spread out.</p>
<p>There were many, many problems with the first design and the first print. I’ll talk about them (and my fixes) in my next post.</p>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/zorchpad/" rel="tag">zorchpad</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/zorchpad-update-first-3d-print/" rel="bookmark" title="Permalink to Zorchpad update: first 3d print"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
wordpress_slug: zorchpad-update-keyboard
---
<!-- blogpost -->
-<article class="post-1342 post type-post status-publish format-standard hentry category-technical tag-hardware tag-zorchpad" id="post-1342">
-<h1 class="entry-title">Zorchpad Update: Keyboard</h1>
-<div class="entry-meta">
-<span class="author vcard"> By <a class="url fn n" href="https://blog.za3k.com/author/admin/" rel="author" title="View all posts by admin">admin</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="2024-05-08T09:47:52-07:00"> <a href="https://blog.za3k.com/zorchpad-update-keyboard/" rel="bookmark" title="9:47 am"><span class="entry-date">May 8, 2024</span> <span class="entry-time"> - 9:47 am</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="2024-05-08T09:50:58-07:00">May 8, 2024</time> <span class="bl_categ"> <a href="https://blog.za3k.com/category/technical/" rel="tag">Technical</a> </span> </div><!-- .entry-meta -->
<div class="entry-content">
<p>Another update on the zorchpad. We now have a working 16-button keyboard (sadly no QWERTY yet). Here you can see a simple typing program that shows what you type on screen.</p>
<figure class="wp-block-image size-large"><a href="https://blog.za3k.com/wp-content/uploads/2024/05/zorchpad_keyboard-scaled.jpg"><img alt="" class="wp-image-1343" decoding="async" fetchpriority="high" height="576" sizes="(max-width: 1024px) 100vw, 1024px" src="https://blog.za3k.com/wp-content/uploads/2024/05/zorchpad_keyboard-1024x576.jpg" srcset="https://blog.za3k.com/wp-content/uploads/2024/05/zorchpad_keyboard-1024x576.jpg 1024w, https://blog.za3k.com/wp-content/uploads/2024/05/zorchpad_keyboard-300x169.jpg 300w, https://blog.za3k.com/wp-content/uploads/2024/05/zorchpad_keyboard-768x432.jpg 768w, https://blog.za3k.com/wp-content/uploads/2024/05/zorchpad_keyboard-1536x864.jpg 1536w, https://blog.za3k.com/wp-content/uploads/2024/05/zorchpad_keyboard-2048x1152.jpg 2048w, https://blog.za3k.com/wp-content/uploads/2024/05/zorchpad_keyboard-150x84.jpg 150w, https://blog.za3k.com/wp-content/uploads/2024/05/zorchpad_keyboard-250x141.jpg 250w" width="1024"/></a></figure>
<li>Sound output (simple beeps for now)</li>
<li><a href="https://blog.za3k.com/zorchpad-update-keyboard/">Keyboard input</a></li>
</ul>
-</div><!-- .entry-content -->
-<div class="entry-utility">
-<span class="bl_posted">Tagged <a href="https://blog.za3k.com/tag/hardware/" rel="tag">hardware</a>, <a href="https://blog.za3k.com/tag/zorchpad/" rel="tag">zorchpad</a>.</span><span class="bl_bookmark"> Bookmark the <a href="https://blog.za3k.com/zorchpad-update-keyboard/" rel="bookmark" title="Permalink to Zorchpad Update: Keyboard"> permalink</a>.</span> </div><!-- .entry-utility -->
-</article>
+</div>
<!-- comments -->
--- /dev/null
+<ol>
+{{# deadlinks }}
+<li><a href="{{static}}">{{partial}}</a> <a href="{{wordpress}}">[orig]</a> <a href="{{source}}">[src]</a>
+{{/ deadlinks }}
+</ol>
</header>
{{# posts.first10 }}
- {{& post }}
+ {{& html }}
{{/ posts.first10 }}
>
<channel>
<title>{{title}}</title>
- <atom:link href="https://blog.za3k.com/pages/feed.xml" rel="self" type="application/rss+xml" />
+ <atom:link href="{{url}}" rel="self" type="application/rss+xml" />
<link>{{web_root}}</link>
<description>{{title}}</description>
<lastBuildDate>{{now_rfc822}}</lastBuildDate>
--- /dev/null
+{{# posts.first10 }}
+ {{& html }}
+{{/ posts.first10 }}
<meta name="viewport" content="width=device-width, user-scalable=yes, initial-scale=1.0, minimum-scale=1.0, maximum-scale=3.0">
<link rel="profile" href="http://gmpg.org/xfn/11">
<meta name="robots" content="max-image-preview:large">
- <link rel="alternate" type="application/rss+xml" title=" » Feed" href="https://blog.za3k.com/pages/feed.xml">
+ <link rel="alternate" type="application/rss+xml" title=" » Feed" href="{{feed_url}}">
<style id="wp-emoji-styles-inline-css" type="text/css">
img.wp-smiley, img.emoji {
display: inline !important;
padding: 0 !important;
}
</style>
- <link rel="stylesheet" id="wp-block-library-css" href="../wp-includes/css/dist/block-library/style.min.css?ver=6.5.5" type="text/css" media="all">
+ <link rel="stylesheet" id="wp-block-library-css" href="{{web_root}}/wp-includes/css/dist/block-library/style.min.css?ver=6.5.5" type="text/css" media="all">
<style id="classic-theme-styles-inline-css" type="text/css">
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
</style>
:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
.wp-block-pullquote{font-size: 1.5em;line-height: 1.6;}
</style>
- <link rel="stylesheet" id="mantra-style-css" href="../wp-content/themes/mantra/style.css?ver=3.3.2" type="text/css" media="all">
+ <link rel="stylesheet" id="mantra-style-css" href="{{web_root}}/wp-content/themes/mantra/style.css?ver=3.3.2" type="text/css" media="all">
<style id="mantra-style-inline-css" type="text/css">
- #wrapper { max-width: 1050px; } #content { width: 100%; max-width:810px; max-width: calc( 100% - 240px ); } #primary, #secondary { width:240px; } #primary .widget-title, #secondary .widget-title { margin-right: -2em; text-align: left; } html { font-size:14px; } body, input, textarea {font-family:Segoe UI, Arial, sans-serif; } #content h1.entry-title a, #content h2.entry-title a, #content h1.entry-title, #content h2.entry-title, #front-text1 h2, #front-text2 h2 {font-family:Georgia, Times New Roman, Times, serif; } .widget-area {font-family:Helvetica, sans-serif; } .entry-content h1, .entry-content h2, .entry-content h3, .entry-content h4, .entry-content h5, .entry-content h6 {font-family:Georgia, Times New Roman, Times, serif; } .nocomments, .nocomments2 {display:none;} #header-container > div { margin-top:20px; } #header-container > div { margin-left:40px; } body { background-color:#444444 !important; } #header { background-color:#333333; } #footer { background-color:#222222; } #footer2 { background-color:#171717; } #site-title span a { color:#0D85CC; } #site-description { color:#999999; } #content, .column-text, #front-text3, #front-text4 { color:#333333 ;} .widget-area a:link, .widget-area a:visited, a:link, a:visited ,#searchform #s:hover, #container #s:hover, #access a:hover, #wp-calendar tbody td a, #site-info a, #site-copyright a, #access li:hover > a, #access ul ul:hover > a { color:#0D85CC; } a:hover, .entry-meta a:hover, .entry-utility a:hover, .widget-area a:hover { color:#12a7ff; } #content .entry-title a, #content .entry-title, #content h1, #content h2, #content h3, #content h4, #content h5, #content h6 { color:#444444; } #content .entry-title a:hover { color:#000000; } .widget-title { background-color:#444444; } .widget-title { color:#2EA5FD; } #footer-widget-area .widget-title { color:#0C85CD; } #footer-widget-area a { color:#666666; } #footer-widget-area a:hover { color:#888888; } body .wp-caption { background-image:url(https://blog.za3k.com/wp-content/themes/mantra/resources/images/pins/Pin2.png); } .entry-content p:not(:last-child), .entry-content ul, .entry-summary ul, .entry-content ol, .entry-summary ol { margin-bottom:1.5em;} .entry-meta .entry-time { display:none; } #branding { height:75px ;}
+ #wrapper { max-width: 1050px; } #content { width: 100%; max-width:810px; max-width: calc( 100% - 240px ); } #primary, #secondary { width:240px; } #primary .widget-title, #secondary .widget-title { margin-right: -2em; text-align: left; } html { font-size:14px; } body, input, textarea {font-family:Segoe UI, Arial, sans-serif; } #content h1.entry-title a, #content h2.entry-title a, #content h1.entry-title, #content h2.entry-title, #front-text1 h2, #front-text2 h2 {font-family:Georgia, Times New Roman, Times, serif; } .widget-area {font-family:Helvetica, sans-serif; } .entry-content h1, .entry-content h2, .entry-content h3, .entry-content h4, .entry-content h5, .entry-content h6 {font-family:Georgia, Times New Roman, Times, serif; } .nocomments, .nocomments2 {display:none;} #header-container > div { margin-top:20px; } #header-container > div { margin-left:40px; } body { background-color:#444444 !important; } #header { background-color:#333333; } #footer { background-color:#222222; } #footer2 { background-color:#171717; } #site-title span a { color:#0D85CC; } #site-description { color:#999999; } #content, .column-text, #front-text3, #front-text4 { color:#333333 ;} .widget-area a:link, .widget-area a:visited, a:link, a:visited ,#searchform #s:hover, #container #s:hover, #access a:hover, #wp-calendar tbody td a, #site-info a, #site-copyright a, #access li:hover > a, #access ul ul:hover > a { color:#0D85CC; } a:hover, .entry-meta a:hover, .entry-utility a:hover, .widget-area a:hover { color:#12a7ff; } #content .entry-title a, #content .entry-title, #content h1, #content h2, #content h3, #content h4, #content h5, #content h6 { color:#444444; } #content .entry-title a:hover { color:#000000; } .widget-title { background-color:#444444; } .widget-title { color:#2EA5FD; } #footer-widget-area .widget-title { color:#0C85CD; } #footer-widget-area a { color:#666666; } #footer-widget-area a:hover { color:#888888; } body .wp-caption { background-image:url({{web_root}}/wp-content/themes/mantra/resources/images/pins/Pin2.png); } .entry-content p:not(:last-child), .entry-content ul, .entry-summary ul, .entry-content ol, .entry-summary ol { margin-bottom:1.5em;} .entry-meta .entry-time { display:none; } #branding { height:75px ;}
/* Mantra Custom CSS */
</style>
- <link rel="stylesheet" id="mantra-mobile-css" href="../wp-content/themes/mantra/resources/css/style-mobile.css?ver=3.3.2" type="text/css" media="all">
+ <link rel="stylesheet" id="mantra-mobile-css" href="{{web_root}}/wp-content/themes/mantra/resources/css/style-mobile.css?ver=3.3.2" type="text/css" media="all">
</head>
<body>
<div id="header-container">
<div>
<div id="site-title">
- <span> <a href="https://blog.za3k.com/" title="" rel="home"></a> </span>
+ <span> <a href="{{web_root}}/" title="" rel="home"></a> </span>
</div>
<div id="site-description">blog of zachary "za3k" vance</div>
</div>
<div class="socials" id="sheader">
- <a target="_blank" rel="nofollow" href="https://blog.za3k.com/pages/feed.xml" class="socialicons social-RSS" title="RSS">
- <img alt="RSS" src="../wp-content/themes/mantra/resources/images/socials/RSS.png">
+ <a target="_blank" rel="nofollow" href="{{feed_url}}" class="socialicons social-RSS" title="RSS">
+ <img alt="RSS" src="{{web_root}}/wp-content/themes/mantra/resources/images/socials/RSS.png">
</a>
<a target="_blank" rel="nofollow" href="https://twitter.com/unchoke" class="socialicons social-Twitter" title="Twitter">
- <img alt="Twitter" src="../wp-content/themes/mantra/resources/images/socials/Twitter.png">
+ <img alt="Twitter" src="{{web_root}}/wp-content/themes/mantra/resources/images/socials/Twitter.png">
</a>
</div>
</div> <!-- #header-container -->
<nav id="access" class="" role="navigation">
<div class="menu">
<ul id="prime_nav" class="menu">
- <li id="menu-item-255" class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-item-255"><a href="https://blog.za3k.com/category/non-technical/">Non-Technical</a></li>
- <li id="menu-item-256" class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-item-256"><a href="https://blog.za3k.com/category/technical/">Technical</a></li>
+ <li id="menu-item-255" class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-item-255"><a href="{{web_root}}/category/non-technical.html">Non-Technical</a></li>
+ <li id="menu-item-256" class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-item-256"><a href="{{web_root}}/category/technical.html">Technical</a></li>
</ul>
</div>
</nav><!-- #access -->
<p><a href="https://za3k.com/blog">archive</a><br><a href="https://za3k.com">za3k.com</a></p>
</li>
<li id="block-2" class="widget-container widget_block widget_search">
- <form role="search" method="get" action="https://blog.za3k.com/" class="wp-block-search__no-button wp-block-search"><label class="wp-block-search__label screen-reader-text" for="wp-block-search__input-2">Search</label><div class="wp-block-search__inside-wrapper "><input class="wp-block-search__input" id="wp-block-search__input-2" placeholder="Search" value="" type="search" name="s" required=""></div></form>
+ <iframe src="https://duckduckgo.com/search.html?width=250&site=blog.za3k.com&prefill=Search%20blog&focus=yes" style="overflow:hidden,margin:0;padding:0;width:308px;height:40xpx;" frameborder="0"></iframe>
</li>
<li id="block-14" class="widget-container widget_block widget_tag_cloud">
{{& tagcloud }}
--- /dev/null
+<ol>
+{{# alllinks }}
+<li><a href="{{static}}">{{partial}}</a> <a href="{{wordpress}}">[orig]</a> <a href="{{source}}">[src]</a>
+{{/ alllinks }}
+</ol>
+<article class="post type-post status-publish format-standard hentry">
+
+<h1 class="entry-title">{{title}}</h1>
+
+<div class="entry-meta">
+<span class="author vcard"> By <a class="url fn n" href="{{web_root}}/author/{{author.slug}}.html" rel="author" title="View all posts by {{author.tag}}">{{author.tag}}</a> <span class="bl_sep">|</span></span> <time class="onDate date published" datetime="{{date}}"> <a href="{{url}}" rel="bookmark" title="{{time}}"><span class="entry-date">{{day}}</span> <span class="entry-time"> - {{time}}</span></a> </time><span class="bl_sep">|</span><time class="updated" datetime="{{date}}">{{day}}</time>
+
+{{#has_categories}}
+<span class="bl_categ">
+ {{# categories_list }}
+ <a href="{{thing.url}}" rel="tag">{{thing.tag}}</a>{{^last}}, {{/last}}
+ {{/ categories_list }}
+</span>
+{{/has_categories}}
+</div>
+
+
{{& post }}
+
+<div class="entry-utility">
+{{#has_tags}}
+ <span class="bl_posted">Tagged
+ {{# tags_list }}<a href="{{web_root}}/tag/{{thing.slug}}.html" rel="tag">{{thing.tag}}</a>{{^last}}, {{/last}}{{/ tags_list }}{{#main_display}}.{{/main_display}}
+ </span>
+{{/has_tags}}
+{{#main_display}}
+<span class="bl_bookmark"> Bookmark the <a href="{{url}}" rel="bookmark" title="Permalink to {{title}}"> permalink</a>.</span>
+{{/main_display}}
+</div>
+
+{{#main_display}}
<div id="comments">
+ <h3 id="comments-title">Responses to <em>{{title}}</em></h3>
{{& comments }}
</div>
+{{/main_display}}
+
+</article>
</header>
{{# posts.first10 }}
- {{& post }}
+ {{& html }}
{{/ posts.first10 }}
from pathlib import Path
INPUT_DIR = Path("/home/zachary/blog.za3k.com")
-OUTPUT_DIR = Path("/home/zachary/blog_converter/posts")
+OUTPUT_DIR = Path("/home/zachary/blog/posts")
IMAGES = OUTPUT_DIR / 'images'
BLACKLIST={"wp-json", "feed"}
html = bs4.BeautifulSoup(post, 'html.parser')
article = html.find('article')
comments = html.find('ol', class_="commentlist")
+ post = article.find('div', class_="entry-content")
result = {}
- result["html_content"] = str(article)
+ result["html_content"] = str(post)
result["html_comments"] = (str(comments) if comments else "")
result["title"] = article.find('h1', class_="entry-title").get_text()
assert result["title"] == html.find('title').get_text()