RSSAmplifier

Blog

Taskboy

taskboy.comRSS feed ↗1217 posts

Latest posts

So, notes are the main thing now

So I am blogging/microblogging again, but this time I am only publishing to taskboy.com. I have feeds! You should use them. We need to build out indieweb to get back the Internet that was. Because that internet was weirder and more enjoyable. Mostly, I needed to update my notes feed. You can find that feed under 'feeds' in the navbar. Mostly, I will talk about my music. If you are here for perl…

The Harbinger of Mood

My first Bandcamp EP is call The Harbinger of Mood and is available now. This album was recorded over the summer of 2023 using many of the synthesizers I obtained in 2022. The four tracks have a distinctly synthwave flavor to them, but without over nostaglia. Five original pieces of art were commissioned for this album from the talented Michal Kváč . The great thing about Bandcamp is…

Wordle Solver revisited

A few rounds of testing suggested that adding a "required" list of letters would be helpful. These are letters for which the position is unknown, but Wordle has identified as correct. The usage pattern is: wordle-solver.pl â¦er wat ulc Also, the world list gets additional prefiltering. No words with capitals or apostrophes are considered. #!/usr/bin/env perl use strict; use warnings; sub main { my…

Solving Wordle with Perl

Wordle, love it or hate it, has grabbed the popular imagination for many. It is a solo puzzle game that is like Mastermind, but with words and you have but six tries to figure out the 5 word puzzle. Of course, this is a task for Perl #!/usr/bin/env perl use strict; use warnings; sub main { my ($pattern, $exclude) = @ARGV; if (!$pattern) { die("$0 [PATTERN] [EXCLUDE]"); } $exclude //= ""; open my…

Jon Stewart has left the building

Jon Stewart appeared to be backing the racist , debunked idea that COVID-19 was made in a Wuhan science lab on the very first Late Show filmed in front of a full audience in more than 400 days. On the one hand, this is just a drop in the ocean that is "people being wrong in public" problem that is the scourge of our Information Economy times. Further, to speak unpopular or even wrong ideas is (in…

Escape Rooms At Home: A Personal Journey

Even before the COVID-19 lockdown, my family and I enjoyed doing escape rooms. We are lucky enough to be a place with easy access to commercial escape rooms like Escapology Live Escape Games - Worldwide Escape Rooms , plus a few other smaller ones. However, we are not master puzzle breakers. Our track record for solving the puzzles is rather low. Still, the experience of doing escape rooms is so…

Improving the User Interface of Everyday Things

Because I design and implement web applications, the issue of how people discover existing features in them and how easily they can accomplish their tasks is a daily concern. The most important rule of iterative interactive design is to believe user complaints . This may seem so obvious as to go without calling it out, but it should be the mantra of all app designers. It is not. I will quickly…

Runnel is my MP3 app I built in 2020 despite not wanting to

Runnel is my answer to an increasingly broken Internet. It's a program I did not want to write, that I tried not to write, but finally had to. The result is a hacked together, light-weight web app that reads the directory in which you keep your MP3s, extracts ID3 tags from each mp3 file, and presents a sorted list to the user, who may add songs to ONE, GLOBAL PLAYLIST for listening. No persistent…

A Sojourn into Christian History

When you are lost in the wilderness, most survival guides will tell you to find an elevated position (like a hill or mountain) from which to survey your location. Often getting above the overwhelming details of your surroundings will help you find recognizable landmarks so that you will no longer be lost. Although I am a computer engineer by training and practice, I have long been a student of…

A Pregnant Time

I write this on Wednesday, November 11, 2020. The US election has been over a week. The clear majority of electoral and (the notional) popular vote has gone to the Democratic challenger. The incumbent, bucking tradition, has yet to concede the election. There are legitimate recourses to challenge the results of an uncertain election, which are currently being pursued by the incumbent. These…

Raspberry PI Blicken Lights in Perl

This is a silly program that blinks the green and red LEDs lights on Rasberry Pi 3 models (probably works for RPI 4 too). It is written in perl, but frankly, you don't need anything more than shell commands. #!/usr/bin/env perl use strict; use warnings; # https://www.raspberrypi.org/forums/viewtopic.php?p=136266#p136266 main(); sub main { if ( $> != 0 ) { die( "Must run as root\n" ); }…

Using Twitter Without Losing Your Mind

Twitter (I won't bother linking to it) is like a bar you go to where fights always break out. As a forum for conflict resolution, it is remarkably terrible. However, not everyone in this virtual bar is looking for a fight. There are wonderful people sharing uplifting, creative ideas on the platform that really are worth your time to seek out. But to use the web interface of Twitter using the…

I am a Kubernetes sceptic

I recently watched a video of someone explaining the problems kubernetes (k8) solves. Frankly, I was outraged. For the moment, let's grant that you need to deploy an application in docker containers. Perhaps you need several instances of parts of the application (like frontend UI that talks to centralized catalog DB and authentication directory). I get using some kind of orchestrating software…

When Fantasy Becomes Racist, Oriental Adventures

This is a photo of my copy of Gary Gygax's Advanced Dungeons and Dragons Oriental Adventures rule book, which was published and bought in 1985. There is no way to fully express the totality of excitement shared by my friends and I around this title at the time it was published. In pre-Internet days, role playing supplements like this were a lifeline to kids stuck in places designed to be boring.…

STEM Content on YouTube for the Inquisitive Kid

I have a 10 year old son. He has an active mind that needs to be filled with ideas. If you find yourself needing to both help your child's mind and also take a little break from constant surveillance, you should know about the following channels on YouTube. All this content is free, which continues to blow my mind. Many of these channels you will already be familiar with, but all deserve…

How does taskboy.com run and why?

Hello, Internet. I want to talk to about about my website, taskboy.com, which has been in more or less continuous operations for almost 20 years. As a professional full-stack web developer, taskboy.com has often been my playground to experiment with new ideas. It is now primarily a "resume" site with an attached blog. Much of my professional work involves creating database-driven…

On the Banks of a Shouty River

Slow thinking. I am deracinating myself from Twitter to regain my slow thinking. Slow thinking is that activity of cognition which strives toward a goal, but indulges in seeming off-ramps and non-sequiturs. It is a desultory journey that stubbornly refuses to be rushed. Yet, patiently following one idea and its subsequent siblings is the path to knowledge, understanding, a wider perspective, and…

Designing Notes for my Plerd

Designing Notes Here are some design ideas for extending my fork of Plerd to implement notes. What are notes? Notes are twitter-like short posts lacking markup or titles, but may have embedded tags. Structurally, these notes should be published marked up like Indieweb Notes . Note tags are implemented as post tags and will be visible on the Archive view generated by Plerd. Notes do not support…

My fork of Plerd is now in production on taskboy

OK. I have figured out how to run plenv from a cron to run plerd, like this: PLERD_HOME=_path_to_plerd_src * * * * * /path/to/plerd_pub.sh Where plerd_pub.sh is: #!/bin/bash -l PLERD_HOME=/home/jjohn/src/plerd_taskboy3000 cd $PLERD_HOME && ./bin/plerdcmd -P Clunky, I know. Worth it for me, since plenv offers crazy flexibility. Also, the source file name from bear isn't going to be a problem.

I want to use Bear

Bear is a fine editor on iOS that is pretty, has markdown support, Dropbox support, and enough features for me to use for blogging. I would like better control of the export filename, but maybe I can finesse this in code? Like assume the first line of the file is the title if the second line looks like an attribute? This seems like murky waters. Also, the triple backticks used in beer for…

Thinking about rubrics within Plerd

Since I want to step back from Twitter for a while, I need a substitute. I have been thinking about expanding the concept of Now pages to be more like a personal timeline of my current thoughts. Sort of like: I am currently a fulltime employee of MathWorks and not looking for new opportunities. I am a tabletop game designer and music composer in my spare time. Here is the latest from the top of my…

Our mission to Mars

Like many Americans, my family has been sheltering in place due to the outbreak of Covid-19. Although we have provisioned well enough for our physical needs, there is the larger problem of managing the ongoing stress of isolation. To this end, we have created a fiction that our home is a luxury space ship, the USS CosyTown, on route to colonize Mars. To track our daily progress, I created a…

On Organizing JavaScript and CSS Assets Within MVC Frameworks

(h/t to @pinboard on Twitter for posting this pyramid graphic) When I develop web apps (which these days are generally small, intranet business apps), I use Perl 5.2x and Mojolicious for the core stack. MySQL, apache and my custom ORM are also part of that stack, but let's leave that for a future post. My front-end JavaScript and CSS footprints are fairly small: Bootstrap 4.x (which currently…

Using gmail to send mail with Perl's Email::Sender

Every couple of years, someone in the Perl community writes a new wrapper around sending email. Although an old protocol, stuff like security and multimedia attachments present a lot of wrinkles that some libraries handle poorly. As you may know, you can use gmail to send mail, but you need to jump through some hoops. In the following example, I am going to show how to connect to gmail using…

Testing iWriter from iPhone

This is a test of iwriter from my iphone. Can I change the file name? Yes. Looks like there is spell check. Seems OK, actually. Does dropbox sync work? Yes.

NarraScope 2019

2019 saw the first big outreach project of the Interactive Fiction Technology Foundation in the form of a conference named NarraScope . I was luckily enough to attend it, as it happen essentially in my backyard. Since this is the only conference I will be going to this year, NarraScope is sort of my Comicon and The Perl Conference bundled into one event. The three day conference kicked off Friday…

Installing Plerd from head with no root access

This post is more of some admin notes as I try to get a clean install of plerd from github. First, you need a modern perl (I'm using perl 5.24 via plenv). You should install Carton next. It will make everything easier. $ git clone git@github.com:jmacdotorg/plerd.git $ cd plerd $ carton Create a new file called env.sh. Make it look like this: #!/bin/bash # source me: ./env.sh # export…

A Public Kaizen on Blogging

Going through my old blog posts from over ten years ago has been a humbling experience. A good deal of my writing style was cloying and needy. Joe Michael Straczinski has suggested that to be a good writer, you need to burn about 100,000 words writing poorly. I think Joe was a quick study. Often, this blog attempted to provide insights into the tech industry. These attempts were meager and weak.…

On Single-play games

A friend of mine sent me a meme today featuring a picture of someone filling a cup using two spouts of a soda fountain at the same time. One spout was labelled "Legacy system" and the other "Literally every other game". On the hand holding the cup was the name of a well-known game designer who is famous for producing legacy games. "Sick burn," I remarked. However, this meme got me thinking more…

plerd-cli - an interactive tool for Plerd

My self-imposed Twitter exile has already paid off with the creation of this little program: plerd-cgi. This is designed to be an interactive tool to "manage" your plerd instance. Currently, the tool can regenerate all your content or from your sources directory or just a single post. This is very helpful when you are on the host running plerd and you are changing stylesheets or other settings. I…

Picture, if you will

I was today years old when I learned about rotation metadata in the EXIF header of jpgs.

Configuring emacs25 with perltidy, an epic adventure

It's a simple thing to ask. You want emacs to nicely indent your code. Emacs comes with two perl editing modes: perl-mode and cperl-mode. For many years, I have used cperl-mode happily. However, $dayjob prefers the way perltidy arranges code and I have come to agree. If you would like to get perltidy to format your code in emacs, you will need to do the following: install emacs25 install…

A New Hope

Something happened on Twitter today. Rather, something happened to my relationship with Twitter today. I am taking a break from the platform for a while. This isn't because I got into a fight with someone online or discovered some new terrible business practice of Twitter. This flight from social media is driven by two personal things. The first is my own dissatisfaction at my constant use of…

Testing network speed with raspberry pi

This is a quick hack to test the Internet connection speed of your raspberry pi running rasbian linux. As you may know, I have a small farm of RPIs doing SETI@Home work . I have one head node that all that traffic flows through. This simplifies configuration and makes the farm portal. Here's an architecture diagram via emacs artist-mode . +ââ-+ ââ+ node1 | | +ââ-+ | +âââ+ +âââ+ | +ââ-+ | Public…

A systemd service file for plerdwatcher and more

So you have plerd all happy on your system. You run plerdwatch start and your off to the races. But what happens if your machine reboots? You need to restart both Dropbox and plerdwatcher. If you are on a linux box that supports systemd, you're in luck. The following file will restart dropbox for you (you will need to change {USER} to username of the account running dropbox). [Unit]…

Taskboy Blogging again for the first time

Welcome to my new blog. It is powered by Plerd, which is a OSS project I contribute to. More details later. This blog is also made by computer and powered by keys. You need a little humor in your blog. â My Son, Angus

Tags are working

I have implemented blog post tagging in Plerd, although I confess the implementation could be a little better. There are attribute conventions within the Plerd.pm class than I may have trampled upon. Maybe I will just create a patch for jmac to look at. Changes include: parsing out "tags" header from post creating an index containing all tags creating a page for each tag linking to all posts…

Another quick post

I am writing this post in a text editor on the iPad , as if I were a person free from RSI-induced back pain. I spent a great deal of time with Jason McIntosh's plerd blogging software . It is with this software I hope to restart blogging. Plerd is fairly simple to install (if you're a perl nerd) and configure. I hacked and continuing hacking the guts of the Plerd engine to produce the sort of HTML…

from the drobox editor

I can do better than this.

It Begins

This is an example of the kind of brilliant content I am looking to publish. Hold my beer .

Using jQuery with JSONP, a brief example

Since I couldn't find a jquery/jsonp example that I liked, here is my stab at it. JSONP is a way of getting around cross-domain restrictions browsers levy on javascript HTTP calls. The protocol makes the server return a JS code fragement of a function that it then executes. Sneaking, right? Imagine a server with this bit of perl CGI code: #!/usr/local/bin/perl â use strict; use CGI; sub main { my…

Shorty turns 40

Well, it had to happen. I reached my fortieth birthday this week. Given that my son is a year and change old, I don't have as much time for blogging as I once did. They say parenthood changes your perspective on many things. Despite my best efforts, I am afraid that has happened to me too. I launched two web services this year in the social media space: Nestor and Linksnest . While neither is…

Modeling RPG-style combat

Following on to yesterday's post about economics, I'd like to present this brief note about how to model role-playing game (RPG) style combat easily with math. Anyone familiar with Dungeons and Dragons will recall the very tortured set of combat tables broken out by class and level. A simpler method for resolving combat is found in Freeciv. Assuming a two party combat, you create two attributes…

Modeling supply and demand in computer games

update: Removed magic scalar from supply and demand calculations. This is more of a note to be expanded on later. However, I believe some will find it useful in this raw form. Many interesting games, like M.U.L.E. and Trade Wars, involve the mechanic of supply and demand. To model this in code, where you calculate demand and supply to arrive at a price, can be done through the following forumlae.…

Simple maze generation in Perl

Sometimes, you just want to generate mazes. The code presented here is a depth-first search. A couple of notes about the code below. It works with vanilla, 2D grids, but these can be of varying sizes. The maze data is stored is a simple 2D array. Each room is presented as a hash. The algorithm needs to track which rooms have been visited (more on this later). Any room may also not have a south…

Linksnest: storing social media links for you

Linksnest is a new web tool I have developed to help you collect and manage URLs mentioned by you or your friends on social media sites, like Twitter or LinkedIn. You can even see your latest collected links as an RSS feed. It's free to use and I think pretty easy to understand. Please give it a try and tell me what you think.

MySQL: Creating BIGINT unique random IDs

The inspiration for this post comes from the mysql forum . The problem is common enough: you want your SQL tables to have unique, secure primary keys. You also don't want to kill your database performance by using string UUIDs as keys. You also don't want serialized auto numbering for keys that may present security risks later on. One very solid solution to this problem is an IDs table. That is,…

Simple HTTP handling with urllib2

I am continuing to poke around python this week looking the "standard way" to make HTTP requests and process HTTP responses. In Perl, there is the very complete LWP set of modules. In Java, there is the Apache HTTP client library. Python has several modules with related functionality, including httplib, urllib and urllib2 (which will change with Python 3.0). What I need to do is create HTTP…

Accessing Twitter's API through Python

If I understand the Internet correctly, the new hottness for doing oauth stuff in Python is this oauth2 library . This twitter doc is a little out of date, so here's my version of it. import oauth2 as oauth from pprint import pprint import json def req (url=None, http_method="GET", post_body='', http_headers='', key='', secret='' ) : con = oauth.Consumer(key='ConsumerKey' secret='ConsumerSecret')…

Beta testers wanted for social media analytics project

Over the past several months, I have been slowly pulling together a project that I hope others will find useful. It is called Nestor . Nestor is an analytics tool that provides trending information for followers and retweets on Twitter. The service is free and not spammy. Since authentication is done through Twitter, I don't even collect email addresses. What I need are users on the system who are…