{"id":741,"date":"2015-07-13T12:49:51","date_gmt":"2015-07-13T11:49:51","guid":{"rendered":"http:\/\/exponentialdecay.co.uk\/blog\/?p=741"},"modified":"2023-07-10T18:21:45","modified_gmt":"2023-07-10T17:21:45","slug":"man-bot-homage-to-thompson-and-ritchie-and-the-linux-man-pages","status":"publish","type":"post","link":"https:\/\/exponentialdecay.co.uk\/blog\/man-bot-homage-to-thompson-and-ritchie-and-the-linux-man-pages\/","title":{"rendered":"$man bot: homage to Thompson and Ritchie and the Linux man pages"},"content":{"rendered":"<p>A departure from my <a href=\"https:\/\/github.com\/exponential-decay\/binary-numbers\" target=\"_blank\" rel=\"noopener\">first<\/a>, and <a href=\"https:\/\/exponentialdecay.co.uk\/blog\/not-quite-perfect-a-lil-automatic-twitter-thingy\/\" target=\"_blank\" rel=\"noopener\">revamped<\/a> Twitter bot, I was inspired at work to create a more functional bot, one tweeting daily, the pages of the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Man_page\" target=\"_blank\" rel=\"noopener\">Linux Programmer&#8217;s Manual<\/a>.<\/p>\n<figure id=\"attachment_744\" aria-describedby=\"caption-attachment-744\" style=\"width: 800px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2015\/07\/linux-programmers-manual-avatar.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-744\" src=\"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2015\/07\/linux-programmers-manual-avatar.jpg\" alt=\"Linux Programmers Manual\" width=\"800\" height=\"1039\" srcset=\"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2015\/07\/linux-programmers-manual-avatar.jpg 800w, https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2015\/07\/linux-programmers-manual-avatar-231x300.jpg 231w, https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2015\/07\/linux-programmers-manual-avatar-788x1024.jpg 788w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><figcaption id=\"caption-attachment-744\" class=\"wp-caption-text\">Linux Programmers Manual<\/figcaption><\/figure>\n<p>The bot came about through my colleague&#8217;s <a href=\"https:\/\/twitter.com\/andreakbyrne\/status\/618631374640025601\" target=\"_blank\" rel=\"noopener\">extended use<\/a> of Linux in an environment where it has previously\u00a0proven\u00a0difficult to use it &#8211; <a href=\"https:\/\/exponentialdecay.co.uk\/blog\/the-civil-servant-perspective\/\" target=\"_blank\" rel=\"noopener\">the civil service<\/a>.<\/p>\n<p>It came about through a continuing appreciation of how cool Linux really is; how useful it is in our work; and further, the unintentional, but rather ridiculous &#8216;<a href=\"https:\/\/en.wikipedia.org\/wiki\/Gender-specific_and_gender-neutral_pronouns\" target=\"_blank\" rel=\"noopener\">gender specification<\/a>&#8216; that occurs when one looks up a function within the Linux environment: $man &lt;command name&gt; A specification that creates a curious and often humorous juxtaposition:<\/p>\n<blockquote class=\"twitter-tweet\" data-width=\"550\" data-dnt=\"true\">\n<p lang=\"en\" dir=\"ltr\">$ man man(1): an interface to the on-line reference manuals&#8230; <a href=\"http:\/\/t.co\/JIez0xtkTd\">http:\/\/t.co\/JIez0xtkTd<\/a> <a href=\"https:\/\/twitter.com\/hashtag\/linux?src=hash&amp;ref_src=twsrc%5Etfw\">#linux<\/a> <a href=\"https:\/\/twitter.com\/hashtag\/manpage?src=hash&amp;ref_src=twsrc%5Etfw\">#manpage<\/a><\/p>\n<p>&mdash; Manpage du Jour (@manpagedujour) <a href=\"https:\/\/twitter.com\/manpagedujour\/status\/595649647244349444?ref_src=twsrc%5Etfw\">May 5, 2015<\/a><\/p><\/blockquote>\n<p><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<blockquote class=\"twitter-tweet\" data-width=\"550\" data-dnt=\"true\">\n<p lang=\"en\" dir=\"ltr\">$ man flock(2): apply or remove an advisory lock on an open file&#8230; <a href=\"http:\/\/t.co\/22o1PShE3u\">http:\/\/t.co\/22o1PShE3u<\/a> <a href=\"https:\/\/twitter.com\/hashtag\/linux?src=hash&amp;ref_src=twsrc%5Etfw\">#linux<\/a> <a href=\"https:\/\/twitter.com\/hashtag\/manpage?src=hash&amp;ref_src=twsrc%5Etfw\">#manpage<\/a><\/p>\n<p>&mdash; Manpage du Jour (@manpagedujour) <a href=\"https:\/\/twitter.com\/manpagedujour\/status\/621379969046966273?ref_src=twsrc%5Etfw\">July 15, 2015<\/a><\/p><\/blockquote>\n<p><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<blockquote class=\"twitter-tweet\" data-width=\"550\" data-dnt=\"true\">\n<p lang=\"en\" dir=\"ltr\">$ man sleep(3): sleep for the specified number of seconds&#8230; <a href=\"http:\/\/t.co\/bH3AZY8fi9\">http:\/\/t.co\/bH3AZY8fi9<\/a> <a href=\"https:\/\/twitter.com\/hashtag\/linux?src=hash&amp;ref_src=twsrc%5Etfw\">#linux<\/a> <a href=\"https:\/\/twitter.com\/hashtag\/manpage?src=hash&amp;ref_src=twsrc%5Etfw\">#manpage<\/a><\/p>\n<p>&mdash; Manpage du Jour (@manpagedujour) <a href=\"https:\/\/twitter.com\/manpagedujour\/status\/589754629161779201?ref_src=twsrc%5Etfw\">April 19, 2015<\/a><\/p><\/blockquote>\n<p><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<blockquote class=\"twitter-tweet\" data-width=\"550\" data-dnt=\"true\">\n<p lang=\"en\" dir=\"ltr\">$ man undocumented(3): undocumented library functions&#8230; <a href=\"http:\/\/t.co\/CFtEWPGPV2\">http:\/\/t.co\/CFtEWPGPV2<\/a> <a href=\"https:\/\/twitter.com\/hashtag\/linux?src=hash&amp;ref_src=twsrc%5Etfw\">#linux<\/a> <a href=\"https:\/\/twitter.com\/hashtag\/manpage?src=hash&amp;ref_src=twsrc%5Etfw\">#manpage<\/a><\/p>\n<p>&mdash; Manpage du Jour (@manpagedujour) <a href=\"https:\/\/twitter.com\/manpagedujour\/status\/594290540658696194?ref_src=twsrc%5Etfw\">May 2, 2015<\/a><\/p><\/blockquote>\n<p><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<p>It is therefore a conscious attempt at subverting the concept of gender role, but notably, it is also a conscious, and serious attempt to introduce all users to the <a href=\"http:\/\/www.linfo.org\/unix_philosophy.html\" target=\"_blank\" rel=\"noopener\">simplicity and accessibility<\/a> of the Linux environment.<\/p>\n<p>The concept of this\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/Twitterbot\" target=\"_blank\" rel=\"noopener\">bot<\/a>\u00a0is simple, to tweet a single* command daily. Alongside the command is a link to a manual page; approximating the act of typing the command into a Linux <a href=\"https:\/\/en.wikipedia.org\/wiki\/Linux_console\">terminal<\/a> and\u00a0subtly hinting to users to experiment by doing the same for themselves.<\/p>\n<p>Attempts were made to find methods of accessing the manual in different ways, e.g. emulation, but in the end a suitable and minimalist web resource was selected in\u00a0<a href=\"http:\/\/man7.org\/linux\/man-pages\/\" target=\"_blank\" rel=\"noopener\">http:\/\/man7.org\/linux\/man-pages\/<\/a>.<\/p>\n<p>The <a href=\"https:\/\/github.com\/exponential-decay\/manpage-du-jour\/blob\/master\/manpage-tweetdata\/man7.org-linux-manpages-all-alphabetic.html\" target=\"_blank\" rel=\"noopener\">index<\/a> was scraped and reorganized into a comma separated values (CSV) <a href=\"https:\/\/github.com\/exponential-decay\/manpage-du-jour\/blob\/master\/manpage-tweetdata\/manpage-tweetdata.csv\" target=\"_blank\" rel=\"noopener\">spreadsheet<\/a>\u00a0that could be used as a source for randomized tweets. While this could be done automatically via script, I elected to do this by hand for this first attempt. If I update the source in a few months, or a few years, then I will consider a scripted mechanism.<\/p>\n<p>From there it was a matter of taking my code already utilizing the Python\u00a0<a href=\"https:\/\/github.com\/sixohsix\/twitter\" target=\"_blank\" rel=\"noopener\">sixohsix<\/a> twitter API libraries and enabling it to tweet from a new account. \u00a0The primary function sits here:\u00a0<a href=\"https:\/\/github.com\/exponential-decay\/manpage-du-jour\/blob\/master\/manpage-du-jour.py#L55\">https:\/\/github.com\/exponential-decay\/manpage-du-jour\/blob\/master\/manpage-du-jour.py#L55<\/a> it&#8217;s a little simplistic, and could easily be improved to make better use of constants and to improve clarity.<\/p>\n<p>The function needs to grab the command name, the command description, and the relative path from the CSV and generate an absolute reference. URLs\u00a0are always shortened to <a href=\"https:\/\/support.twitter.com\/articles\/78124-posting-links-in-a-tweet\" target=\"_blank\" rel=\"noopener\">22 characters<\/a> in a tweet and so the code also has to honor that and a 140 character <a href=\"https:\/\/dev.twitter.com\/overview\/api\/counting-characters\">limit<\/a> when formatting, before submitting to the server:<\/p>\n<pre>$ man &lt;command name&gt;: &lt;description&gt; &lt;hyperlink&gt; <a href=\"https:\/\/twitter.com\/hashtag\/linux?src=hash\" target=\"_blank\" rel=\"noopener\">#linux<\/a> <a href=\"https:\/\/twitter.com\/hashtag\/manpage?src=hash\" target=\"_blank\" rel=\"noopener\">#manpage<\/a><\/pre>\n<h2>&lt;POST&gt;<\/h2>\n<p>And it&#8217;s done. A twitter bot, a learning resource, a source of humor, and a source of gender subversion; an entity that should still be around when twitter itself becomes\u00a0post-apocalyptic. Roaming in a vast desert of <a href=\"https:\/\/twitter.com\/horse_ebooks\" target=\"_blank\" rel=\"noopener\">spam bots<\/a>, <a href=\"https:\/\/twitter.com\/facedepot\" target=\"_blank\" rel=\"noopener\">education bots<\/a>, <a href=\"https:\/\/twitter.com\/exosaurs\" target=\"_blank\" rel=\"noopener\">random bots<\/a>, and all manners of <a href=\"https:\/\/en.wikipedia.org\/wiki\/Grey_goo\" target=\"_blank\" rel=\"noopener\">grey-goo<\/a>.<\/p>\n<p>There isn&#8217;t a lot more to discuss in the detail but I&#8217;m open to receive questions about the code. This blog entry is as much about promotion for this resource; your sharing of it\u00a0with colleagues and friends interested in programming, Linux, computing history, or just computing in general is appreciated. Thank you in advance for <a href=\"https:\/\/twitter.com\/manpagedujour\">following<\/a>.<\/p>\n<p>Source code and more information can be found on GitHub:\u00a0<a href=\"https:\/\/github.com\/exponential-decay\/manpage-du-jour\">https:\/\/github.com\/exponential-decay\/manpage-du-jour<\/a><\/p>\n<h6>*Because there is such a vast number of Linux commands (<a href=\"https:\/\/github.com\/exponential-decay\/manpage-du-jour\/blob\/master\/manpage-tweetdata\/manpage-tweetdata.csv#L6495\" target=\"_blank\" rel=\"noopener\">6494<\/a> in the source data available to me at the time of writing) I decided to tweet twice in a single go. Ideally I would use a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Cron\" target=\"_blank\" rel=\"noopener\">cron<\/a> job to tweet, maybe three times; three random tweets to capture the broadest range of time zones each day.<\/h6>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_741\" class=\"pvc_stats total_only  \" data-element-id=\"741\" style=\"\"><i class=\"pvc-stats-icon small\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"excerpt":{"rendered":"<div class=\"entry-summary\">\nA departure from my first, and revamped Twitter bot, I was inspired at work to create a more functional bot,&hellip;\n<\/div>\n<div class=\"link-more\"><a href=\"https:\/\/exponentialdecay.co.uk\/blog\/man-bot-homage-to-thompson-and-ritchie-and-the-linux-man-pages\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &ldquo;$man bot: homage to Thompson and Ritchie and the Linux man pages&rdquo;<\/span>&hellip;<\/a><\/div>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_741\" class=\"pvc_stats total_only  \" data-element-id=\"741\" style=\"\"><i class=\"pvc-stats-icon small\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"author":1,"featured_media":743,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":3,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[49,20,19],"tags":[67,73,65,72,64,66],"class_list":["post-741","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-digital-humanities","category-just-code","category-python","tag-computing-history","tag-digital-humanities","tag-linux","tag-python","tag-twitter","tag-unix","entry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>$man bot: homage to Thompson and Ritchie and the Linux man pages - ross spencer :: exponentialdecay.digipres :: blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/exponentialdecay.co.uk\/blog\/man-bot-homage-to-thompson-and-ritchie-and-the-linux-man-pages\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"$man bot: homage to Thompson and Ritchie and the Linux man pages - ross spencer :: exponentialdecay.digipres :: blog\" \/>\n<meta property=\"og:description\" content=\"A departure from my first, and revamped Twitter bot, I was inspired at work to create a more functional bot,&hellip; Continue reading &ldquo;$man bot: homage to Thompson and Ritchie and the Linux man pages&rdquo;&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/exponentialdecay.co.uk\/blog\/man-bot-homage-to-thompson-and-ritchie-and-the-linux-man-pages\/\" \/>\n<meta property=\"og:site_name\" content=\"ross spencer :: exponentialdecay.digipres :: blog\" \/>\n<meta property=\"article:published_time\" content=\"2015-07-13T11:49:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-07-10T17:21:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2015\/07\/thompson-ritchie-pdp-11-banner-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"2050\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Ross Spencer\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@beet_keeper\" \/>\n<meta name=\"twitter:site\" content=\"@beet_keeper\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ross Spencer\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/man-bot-homage-to-thompson-and-ritchie-and-the-linux-man-pages\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/man-bot-homage-to-thompson-and-ritchie-and-the-linux-man-pages\\\/\"},\"author\":{\"name\":\"Ross Spencer\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/4cae0a954400f42b9c1b70c699837716\"},\"headline\":\"$man bot: homage to Thompson and Ritchie and the Linux man pages\",\"datePublished\":\"2015-07-13T11:49:51+00:00\",\"dateModified\":\"2023-07-10T17:21:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/man-bot-homage-to-thompson-and-ritchie-and-the-linux-man-pages\\\/\"},\"wordCount\":632,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/4cae0a954400f42b9c1b70c699837716\"},\"image\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/man-bot-homage-to-thompson-and-ritchie-and-the-linux-man-pages\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/07\\\/thompson-ritchie-pdp-11-banner-scaled.jpg\",\"keywords\":[\"Computing History\",\"Digital Humanities\",\"Linux\",\"Python\",\"Twitter\",\"Unix\"],\"articleSection\":[\"Digital Humanities\",\"Just Code\",\"Python\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/man-bot-homage-to-thompson-and-ritchie-and-the-linux-man-pages\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/man-bot-homage-to-thompson-and-ritchie-and-the-linux-man-pages\\\/\",\"url\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/man-bot-homage-to-thompson-and-ritchie-and-the-linux-man-pages\\\/\",\"name\":\"$man bot: homage to Thompson and Ritchie and the Linux man pages - ross spencer :: exponentialdecay.digipres :: blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/man-bot-homage-to-thompson-and-ritchie-and-the-linux-man-pages\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/man-bot-homage-to-thompson-and-ritchie-and-the-linux-man-pages\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/07\\\/thompson-ritchie-pdp-11-banner-scaled.jpg\",\"datePublished\":\"2015-07-13T11:49:51+00:00\",\"dateModified\":\"2023-07-10T17:21:45+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/man-bot-homage-to-thompson-and-ritchie-and-the-linux-man-pages\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/man-bot-homage-to-thompson-and-ritchie-and-the-linux-man-pages\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/man-bot-homage-to-thompson-and-ritchie-and-the-linux-man-pages\\\/#primaryimage\",\"url\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/07\\\/thompson-ritchie-pdp-11-banner-scaled.jpg\",\"contentUrl\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/07\\\/thompson-ritchie-pdp-11-banner-scaled.jpg\",\"width\":2560,\"height\":2050,\"caption\":\"Ken Thompson and Dennis Ritchie, overlook the PDP-11.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/man-bot-homage-to-thompson-and-ritchie-and-the-linux-man-pages\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"$man bot: homage to Thompson and Ritchie and the Linux man pages\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/\",\"name\":\"ross spencer :: exponentialdecay.digipres :: blog\",\"description\":\"Digital preservation analyst, researcher, and software developer\",\"publisher\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/4cae0a954400f42b9c1b70c699837716\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/4cae0a954400f42b9c1b70c699837716\",\"name\":\"Ross Spencer\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/avatar-scaled.png\",\"url\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/avatar-scaled.png\",\"contentUrl\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/avatar-scaled.png\",\"width\":2560,\"height\":2560,\"caption\":\"Ross Spencer\"},\"logo\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/avatar-scaled.png\"},\"description\":\"Digital preservation domain expert and full-stack software developer.\",\"sameAs\":[\"http:\\\/\\\/www.exponentialdecay.co.uk\\\/blog\",\"https:\\\/\\\/www.instagram.com\\\/b33tk33p3r\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/ross-spencer-b6b9b758\\\/\",\"https:\\\/\\\/x.com\\\/beet_keeper\"],\"url\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/author\\\/exponentialdecay\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"$man bot: homage to Thompson and Ritchie and the Linux man pages - ross spencer :: exponentialdecay.digipres :: blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/exponentialdecay.co.uk\/blog\/man-bot-homage-to-thompson-and-ritchie-and-the-linux-man-pages\/","og_locale":"en_US","og_type":"article","og_title":"$man bot: homage to Thompson and Ritchie and the Linux man pages - ross spencer :: exponentialdecay.digipres :: blog","og_description":"A departure from my first, and revamped Twitter bot, I was inspired at work to create a more functional bot,&hellip; Continue reading &ldquo;$man bot: homage to Thompson and Ritchie and the Linux man pages&rdquo;&hellip;","og_url":"https:\/\/exponentialdecay.co.uk\/blog\/man-bot-homage-to-thompson-and-ritchie-and-the-linux-man-pages\/","og_site_name":"ross spencer :: exponentialdecay.digipres :: blog","article_published_time":"2015-07-13T11:49:51+00:00","article_modified_time":"2023-07-10T17:21:45+00:00","og_image":[{"width":2560,"height":2050,"url":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2015\/07\/thompson-ritchie-pdp-11-banner-scaled.jpg","type":"image\/jpeg"}],"author":"Ross Spencer","twitter_card":"summary_large_image","twitter_creator":"@beet_keeper","twitter_site":"@beet_keeper","twitter_misc":{"Written by":"Ross Spencer","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/exponentialdecay.co.uk\/blog\/man-bot-homage-to-thompson-and-ritchie-and-the-linux-man-pages\/#article","isPartOf":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/man-bot-homage-to-thompson-and-ritchie-and-the-linux-man-pages\/"},"author":{"name":"Ross Spencer","@id":"https:\/\/exponentialdecay.co.uk\/blog\/#\/schema\/person\/4cae0a954400f42b9c1b70c699837716"},"headline":"$man bot: homage to Thompson and Ritchie and the Linux man pages","datePublished":"2015-07-13T11:49:51+00:00","dateModified":"2023-07-10T17:21:45+00:00","mainEntityOfPage":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/man-bot-homage-to-thompson-and-ritchie-and-the-linux-man-pages\/"},"wordCount":632,"commentCount":1,"publisher":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/#\/schema\/person\/4cae0a954400f42b9c1b70c699837716"},"image":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/man-bot-homage-to-thompson-and-ritchie-and-the-linux-man-pages\/#primaryimage"},"thumbnailUrl":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2015\/07\/thompson-ritchie-pdp-11-banner-scaled.jpg","keywords":["Computing History","Digital Humanities","Linux","Python","Twitter","Unix"],"articleSection":["Digital Humanities","Just Code","Python"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/exponentialdecay.co.uk\/blog\/man-bot-homage-to-thompson-and-ritchie-and-the-linux-man-pages\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/exponentialdecay.co.uk\/blog\/man-bot-homage-to-thompson-and-ritchie-and-the-linux-man-pages\/","url":"https:\/\/exponentialdecay.co.uk\/blog\/man-bot-homage-to-thompson-and-ritchie-and-the-linux-man-pages\/","name":"$man bot: homage to Thompson and Ritchie and the Linux man pages - ross spencer :: exponentialdecay.digipres :: blog","isPartOf":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/man-bot-homage-to-thompson-and-ritchie-and-the-linux-man-pages\/#primaryimage"},"image":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/man-bot-homage-to-thompson-and-ritchie-and-the-linux-man-pages\/#primaryimage"},"thumbnailUrl":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2015\/07\/thompson-ritchie-pdp-11-banner-scaled.jpg","datePublished":"2015-07-13T11:49:51+00:00","dateModified":"2023-07-10T17:21:45+00:00","breadcrumb":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/man-bot-homage-to-thompson-and-ritchie-and-the-linux-man-pages\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/exponentialdecay.co.uk\/blog\/man-bot-homage-to-thompson-and-ritchie-and-the-linux-man-pages\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/exponentialdecay.co.uk\/blog\/man-bot-homage-to-thompson-and-ritchie-and-the-linux-man-pages\/#primaryimage","url":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2015\/07\/thompson-ritchie-pdp-11-banner-scaled.jpg","contentUrl":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2015\/07\/thompson-ritchie-pdp-11-banner-scaled.jpg","width":2560,"height":2050,"caption":"Ken Thompson and Dennis Ritchie, overlook the PDP-11."},{"@type":"BreadcrumbList","@id":"https:\/\/exponentialdecay.co.uk\/blog\/man-bot-homage-to-thompson-and-ritchie-and-the-linux-man-pages\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/exponentialdecay.co.uk\/blog\/"},{"@type":"ListItem","position":2,"name":"$man bot: homage to Thompson and Ritchie and the Linux man pages"}]},{"@type":"WebSite","@id":"https:\/\/exponentialdecay.co.uk\/blog\/#website","url":"https:\/\/exponentialdecay.co.uk\/blog\/","name":"ross spencer :: exponentialdecay.digipres :: blog","description":"Digital preservation analyst, researcher, and software developer","publisher":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/#\/schema\/person\/4cae0a954400f42b9c1b70c699837716"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/exponentialdecay.co.uk\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/exponentialdecay.co.uk\/blog\/#\/schema\/person\/4cae0a954400f42b9c1b70c699837716","name":"Ross Spencer","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/06\/avatar-scaled.png","url":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/06\/avatar-scaled.png","contentUrl":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/06\/avatar-scaled.png","width":2560,"height":2560,"caption":"Ross Spencer"},"logo":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/06\/avatar-scaled.png"},"description":"Digital preservation domain expert and full-stack software developer.","sameAs":["http:\/\/www.exponentialdecay.co.uk\/blog","https:\/\/www.instagram.com\/b33tk33p3r\/","https:\/\/www.linkedin.com\/in\/ross-spencer-b6b9b758\/","https:\/\/x.com\/beet_keeper"],"url":"https:\/\/exponentialdecay.co.uk\/blog\/author\/exponentialdecay\/"}]}},"views":5052,"_links":{"self":[{"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/posts\/741","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/comments?post=741"}],"version-history":[{"count":11,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/posts\/741\/revisions"}],"predecessor-version":[{"id":1385,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/posts\/741\/revisions\/1385"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/media\/743"}],"wp:attachment":[{"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/media?parent=741"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/categories?post=741"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/tags?post=741"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}