{"id":5570,"date":"2025-05-13T15:57:36","date_gmt":"2025-05-13T15:57:36","guid":{"rendered":"https:\/\/dalelane.co.uk\/blog\/?p=5570"},"modified":"2025-05-13T15:57:36","modified_gmt":"2025-05-13T15:57:36","slug":"npx-dalelane","status":"publish","type":"post","link":"https:\/\/dalelane.co.uk\/blog\/?p=5570","title":{"rendered":"npx dalelane"},"content":{"rendered":"<p><strong>If you\u2019re a Node.js person, try running: <code style=\"font-size: 1.1em;font-weight: bold;\">npx dalelane<\/code><\/strong> <\/p>\n<p>I recently read Ashley Willis\u2019 <a href=\"https:\/\/ashley.dev\/posts\/turning-feedback-into-features\/\">blog post<\/a> about her \u201c<a href=\"https:\/\/github.com\/ashleymcnamara\/ashley.dev-card\">terminal business card<\/a>\u201d &#8211; a lovely project she shared that prints out a virtual CLI business card if you run <code style=\"color: #770000;background-color: #FFFFC0;padding: 0.2em 0.4em;font-size: 1.1em;font-weight: bold;\">npx ashleywillis<\/code>. <\/p>\n<p>Check out <a href=\"https:\/\/ashley.dev\/posts\/turning-feedback-into-features\/\">her blog post<\/a> for the history of where this all started, and an explanation of how it works. <\/p>\n<p>I love this!<\/p>\n<pre style=\"color: #770000;background-color: #FFFFC0;padding: 0.2em 0.4em;font-size: 1.1em;font-weight: bold;\">npx dalelane<\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/dalelane.co.uk\/blog\/post-images\/250513-npx\/screenshot-1.png\" alt=\"screenshot of running npx dalelane\" style=\"width: 100%; max-width: 750px;\"\/><\/p>\n<h3>Blast from the past<\/h3>\n<p>It reminds me (<em>and I\u2019m showing my age here<\/em>) of the <code style=\"color: #770000;background-color: #FFFFC0;padding: 0.2em 0.4em;font-size: 1.1em;font-weight: bold;\">finger<\/code> UNIX command we had in my University days. <\/p>\n<p>Other than IRC, <code style=\"color: #770000;background-color: #FFFFC0;padding: 0.2em 0.4em;font-size: 1.1em;font-weight: bold;\">finger<\/code> was our social media: we maintained <code style=\"color: #770000;background-color: #FFFFC0;padding: 0.2em 0.4em;font-size: 1.1em;font-weight: bold;\">.plan<\/code> and <code style=\"color: #770000;background-color: #FFFFC0;padding: 0.2em 0.4em;font-size: 1.1em;font-weight: bold;\">.project<\/code> files in our profile directory, and anyone else at Uni could run <code style=\"color: #770000;background-color: #FFFFC0;padding: 0.2em 0.4em;font-size: 1.1em;font-weight: bold;\">finger &lt;username&gt;<\/code> to see info about you and what you\u2019re up to. <\/p>\n<p>We created all sorts of endlessly creative ASCII-art plan files, and came up with all sorts of unnecessarily elaborate ways to automate updates to those files.<\/p>\n<p>I haven\u2019t thought about that for years, but Ashley\u2019s project reminded me of it so strongly that I had to give it a try. <\/p>\n<pre style=\"color: #770000;background-color: #FFFFC0;padding: 0.2em 0.4em;font-size: 1.1em;font-weight: bold;\">npx dalelane<\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/dalelane.co.uk\/blog\/post-images\/250513-npx\/screenshot-2.png\" alt=\"screenshot of running npx dalelane\" style=\"width: 100%; max-width: 750px;\"\/><\/p>\n<h3>A dynamic business card needs live data<\/h3>\n<p>Her blog post explains how to get it working. I mostly just shamelessly copied it. But where her project is elegant and concise, I naturally crammed in noise. \ud83d\ude42 <\/p>\n<p>I wanted live data, so I updated my \u201cbusiness card\u201d to include what I\u2019m currently reading (from <a href=\"https:\/\/www.goodreads.com\/dalelane\">my Goodreads profile<\/a>), the most recent video game I\u2019ve played (from <a href=\"https:\/\/www.backloggd.com\/u\/dalelane\">my Backloggd profile<\/a>), the most recent song I\u2019ve listened to (from <a href=\"https:\/\/last.fm\/user\/dalelane\">my Last.fm profile<\/a>) and my most recent post from <a href=\"https:\/\/bsky.app\/profile\/dalelane.co.uk\">Bluesky<\/a>. <\/p>\n<p>(<em>It is a little bit hacky and scrape-y, but realistically it\u2019ll be run so infrequently I don\u2019t feel like it\u2019ll cause any harm!<\/em>)<\/p>\n<h3>Try it for yourself!<\/h3>\n<p>You can see my fork of the project at<br \/>\n<a href=\"https:\/\/github.com\/dalelane\/dalelane.dev-card\">github.com\/dalelane\/dalelane.dev-card<\/a>. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you\u2019re a Node.js person, try running: npx dalelane I recently read Ashley Willis\u2019 blog post about her \u201cterminal business card\u201d &#8211; a lovely project she shared that prints out a virtual CLI business card if you run npx ashleywillis. Check out her blog post for the history of where this all started, and an [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":5578,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-5570","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-code"],"_links":{"self":[{"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/posts\/5570","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5570"}],"version-history":[{"count":0,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/posts\/5570\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/media\/5578"}],"wp:attachment":[{"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5570"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5570"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5570"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}