{"id":21518,"date":"2025-11-21T11:28:00","date_gmt":"2025-11-21T11:28:00","guid":{"rendered":"https:\/\/johnjohnston.info\/blog\/?p=21518"},"modified":"2025-11-21T12:29:48","modified_gmt":"2025-11-21T12:29:48","slug":"daily-create-tdc5055-catch-up","status":"publish","type":"post","link":"https:\/\/johnjohnston.info\/blog\/daily-create-tdc5055-catch-up\/","title":{"rendered":"Daily Create #tdc5055 catch up"},"content":{"rendered":"\n<p>I&#8217;ve been thinking about the DS106 experience recently due to my marginal involvement in the <a href=\"https:\/\/combobulating.net\">combobulating<\/a> experience. This was very much focused on The <a href=\"https:\/\/daily.ds106.us\">Daily Create<\/a>, a bit of fun I dip into occasionally. One of the things that I thought about was the fact I often got more fun out of the DS106 assignment bank than the daily tasks. Today <a href=\"https:\/\/cogdogblog.com\/2025\/11\/dogroll-in-space\/\">Alan&#8217;s post<\/a> reminded me why. It made me dig into this post, notes for which were sitting the my drafts app, spiff it up a bit and post it.<\/p>\n\n\n\n<p>The other day I saw the <a href=\"https:\/\/daily.ds106.us\/tdc5055\/\">#tdc5055 #ds106 ASCII Art<\/a> on The Daily Create<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Use the\u00a0<a href=\"https:\/\/kirilllive.github.io\/ASCII_Art_Paint\/ascii_paint.html\" target=\"_blank\" rel=\"noreferrer noopener\">ASCII Art Paint site<\/a>\u00a0to create something interesting with the thematic symbols.<\/p>\n<\/blockquote>\n\n\n\n<p> It immediately reminded me of <a href=\"https:\/\/www.figlet.org\/\">figlet<\/a>. Took me a couple of minutes to remember the name.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.figlet.org\">Figlet<\/a> makes big ASCII text on the command line. You just type in &#8220;figlet &#8220;#DS106&#8221; and you get something like this in the terminal:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted has-black-background-color has-text-color has-background has-link-color wp-elements-1c28bf5b90712779701639a68cebd929\" style=\"color:#ffff00\"> _____         _   <br>|_   _|__  ___| |_ <br>  | |\/ _ \\\/ __| __|<br>  | |  __\/\\__ \\ |_ <br>  |_|\\___||___\/\\__|<br>                   <br><\/pre>\n\n\n\n<p>You can try figlet out online if you don&#8217;t want to use the terminal and install it: <a href=\"https:\/\/asciified.thelicato.io\/\">Asciified<\/a><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>asciified is a small webapp that gives you the ability to create figlets using the figlet package<\/p>\n<\/blockquote>\n\n\n\n<p>I had a dim memory that figlet had the concept of &#8220;<a href=\"https:\/\/www.figlet.org\/examples.html\">fonts<\/a>&#8221; so checked the help. The fonts were stored in a folder. As there didn&#8217;t seem to be an easy way to preview them, I thought I&#8217;d just write a script. This would loop through all the fonts I&#8217;d copied to a text file, and  allow me to pick the best version.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>while IFS= read -r font; do\n    figlet -f \"$font\" -c -S \"Daily Create\"\n\tsleep 0.5\ndone &lt; figfonts.txt<\/code><\/pre>\n\n\n\n<p>Watching them scroll past then made me think a screen recording might be interesting. I cleaned up the list of fonts<sup data-fn=\"66052328-2c5c-4892-b148-b38829c8a619\" class=\"fn\"><a href=\"#66052328-2c5c-4892-b148-b38829c8a619\" id=\"66052328-2c5c-4892-b148-b38829c8a619-link\">1<\/a><\/sup> a little and recorded my window, posted it to YouTube and <a href=\"https:\/\/social.ds106.us\/@johnjohnston\/115554234347330828\">replied<\/a> to <a href=\"https:\/\/daily.ds106.us\/\">@creating<\/a>. Job done<sup data-fn=\"c3a317c5-45ae-48d2-9617-0a84d045f892\" class=\"fn\"><a href=\"#c3a317c5-45ae-48d2-9617-0a84d045f892\" id=\"c3a317c5-45ae-48d2-9617-0a84d045f892-link\">2<\/a><\/sup>.<\/p>\n\n\n\n<p>The next day I wondered if I could do a better job of this: automate the screen capture by grabbing screenshots and then taking them and stringing them together to make a &#8220;video&#8221; with ffmpeg. And indeed I could.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/usr\/bin\/env bash\n\nWINID=$(osascript -e 'tell application \"Terminal\" to id of front window')\n\nscreencapture -l $WINID  -o  0000.png  >\/dev\/null 2>&amp;1\n\nwhile IFS= read -r font; do\n\tpngfile=$(printf \"%04d.png\") \n    figlet -f \"$font\" -c -S \"Daily Create\"\n \tscreencapture -l $WINID  -o  $pngfile  >\/dev\/null 2>&amp;1\n\tsips --resampleWidth 1200 $pngfile  >\/dev\/null 2>&amp;1\ndone &lt; figfonts.txt\n\nffmpeg -framerate 5 -i %04d.png -c:v libx264  -vf \"pad=ceil(iw\/2)*2:ceil(ih\/2)*2\" -r 24 -pix_fmt yuv420p figfontfun.mp4<\/code><\/pre>\n\n\n\n<p><code>screencapture<\/code> can capture just a window if you give it a Window ID. A <a href=\"https:\/\/apple.stackexchange.com\/questions\/56561\/how-do-i-find-the-windowid-to-pass-to-screencapture-l\">search showed me how to get that<\/a>.  sips resizes the images. I sent the output off screen with  <code>>\/dev\/null 2>&amp;1<\/code>.  Taking a screenshot of the window without shadow, the <code><em>-o<\/em> <\/code>bit,  made for neater images.<\/p>\n\n\n\n<p>The loop give me  a bunch of png files which are concatenated into a video. I&#8217;ve done that a few times. Unfortunately I don&#8217;t use ffmpeg enough to get that right the first time. Video codec and many ffmpeg paramaters seem very complicated. Again a few searches put me right<sup data-fn=\"5203fd0e-f39a-432c-a3b7-3b972321bf4a\" class=\"fn\"><a href=\"#5203fd0e-f39a-432c-a3b7-3b972321bf4a\" id=\"5203fd0e-f39a-432c-a3b7-3b972321bf4a-link\">3<\/a><\/sup>. And I had a short script that would work.<\/p>\n\n\n\n<p>Here is the result:<\/p>\n\n\n\n<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\">\n<span class=\"embed-youtube\" style=\"text-align:center; display: block;\"><iframe loading=\"lazy\" class=\"youtube-player\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/3VpIXkZzrUU?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=en-US&#038;autohide=2&#038;wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\"><\/iframe><\/span>\n<\/div><\/figure>\n\n\n\n<p>I am still not sure why writing up this post, trying to put a rather silly idea in order, is satisfying. But it was.<\/p>\n\n\n<ol class=\"wp-block-footnotes\"><li id=\"66052328-2c5c-4892-b148-b38829c8a619\">I just copied out the list of items in the figlet font folder to a text file, removed folder and then file names that didn&#8217;t work. I am sure a smarter script could do that without the manual clean up. <a href=\"#66052328-2c5c-4892-b148-b38829c8a619-link\" aria-label=\"Jump to footnote reference 1\">\u21a9\ufe0e<\/a><\/li><li id=\"c3a317c5-45ae-48d2-9617-0a84d045f892\">When I say job done I mean footering about for an hour or two with figlet, and QuickTime Player to record the screen. <a href=\"#c3a317c5-45ae-48d2-9617-0a84d045f892-link\" aria-label=\"Jump to footnote reference 2\">\u21a9\ufe0e<\/a><\/li><li id=\"5203fd0e-f39a-432c-a3b7-3b972321bf4a\">FFMPEG solutions are very <a href=\"https:\/\/duckduckgo.com\/?q=ffmpeg+height+not+divisable+by+2+videos+fron+images&amp;t=iphone&amp;ia=web&amp;iax=qa\">searchable<\/a>.  NTS: the bit about rounding sizes to even numbers has bitten me before. Hopefully this footnote will help me remember that the next time.  <a href=\"#5203fd0e-f39a-432c-a3b7-3b972321bf4a-link\" aria-label=\"Jump to footnote reference 3\">\u21a9\ufe0e<\/a><\/li><\/ol>\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve been thinking about the DS106 experience recently due to my marginal involvement in the combobulating experience. This was very much focused on The Daily Create, a bit of fun I dip into occasionally. One of the things that I thought about was the fact I often got more fun out of the DS106 assignment [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":21520,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"mf2_syndication":["https:\/\/social.ds106.us\/@johnjohnston\/115587454565686363"],"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"webmentions_disabled_pings":false,"webmentions_disabled":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"[{\"content\":\"I just copied out the list of items in the figlet font folder to a text file, removed folder and then file names that didn't work. I am sure a smarter script could do that without the manual clean up.\",\"id\":\"66052328-2c5c-4892-b148-b38829c8a619\"},{\"content\":\"When I say job done I mean footering about for an hour or two with figlet, and QuickTime Player to record the screen.\",\"id\":\"c3a317c5-45ae-48d2-9617-0a84d045f892\"},{\"content\":\"FFMPEG solutions are very <a href=\\\"https:\/\/duckduckgo.com\/?q=ffmpeg+height+not+divisable+by+2+videos+fron+images&amp;t=iphone&amp;ia=web&amp;iax=qa\\\">searchable<\/a>.  NTS: the bit about rounding sizes to even numbers has bitten me before. Hopefully this footnote will help me remember that the next time. \",\"id\":\"5203fd0e-f39a-432c-a3b7-3b972321bf4a\"}]"},"categories":[27],"tags":[2029,446,813,1413,2016],"post_format":[],"class_list":{"0":"post-21518","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-ds106","8":"tag-tdc5055","9":"tag-cogdog","10":"tag-dailycreate","11":"tag-figlet","12":"tag-wildds106","13":"kind-article","15":"h-entry","16":"hentry"},"better_featured_image":{"id":21520,"alt_text":"Screenshot of terminal, text #TDC5055 FigLet Fun in a figlet 'font'","caption":"","description":"","media_type":"image","media_details":{"width":1230,"height":584,"file":"2025\/11\/figletfun.png","filesize":8562,"sizes":{"medium":{"file":"figletfun-620x294.png","width":620,"height":294,"mime-type":"image\/png","filesize":39780,"source_url":"https:\/\/johnjohnston.info\/blog\/wp-content\/uploads\/2025\/11\/figletfun-620x294.png"},"large":{"file":"figletfun-1024x486.png","width":1024,"height":486,"mime-type":"image\/png","filesize":79119,"source_url":"https:\/\/johnjohnston.info\/blog\/wp-content\/uploads\/2025\/11\/figletfun-1024x486.png"},"thumbnail":{"file":"figletfun-150x150.png","width":150,"height":150,"mime-type":"image\/png","filesize":10443,"source_url":"https:\/\/johnjohnston.info\/blog\/wp-content\/uploads\/2025\/11\/figletfun-150x150.png"},"medium_large":{"file":"figletfun-768x365.png","width":768,"height":365,"mime-type":"image\/png","filesize":52699,"source_url":"https:\/\/johnjohnston.info\/blog\/wp-content\/uploads\/2025\/11\/figletfun-768x365.png"},"post-thumbnail":{"file":"figletfun-668x317.png","width":668,"height":317,"mime-type":"image\/png","filesize":44111,"source_url":"https:\/\/johnjohnston.info\/blog\/wp-content\/uploads\/2025\/11\/figletfun-668x317.png"},"sempress-image-post":{"file":"figletfun-668x317.png","width":668,"height":317,"mime-type":"image\/png","filesize":44111,"source_url":"https:\/\/johnjohnston.info\/blog\/wp-content\/uploads\/2025\/11\/figletfun-668x317.png"},"jetpack-portfolio-admin-thumb":{"file":"figletfun-50x50.png","width":50,"height":50,"mime-type":"image\/png","filesize":2808,"source_url":"https:\/\/johnjohnston.info\/blog\/wp-content\/uploads\/2025\/11\/figletfun-50x50.png"}},"image_meta":{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0","keywords":[]}},"post":21518,"source_url":"https:\/\/johnjohnston.info\/blog\/wp-content\/uploads\/2025\/11\/figletfun.png"},"jetpack_featured_media_url":"https:\/\/johnjohnston.info\/blog\/wp-content\/uploads\/2025\/11\/figletfun.png","jetpack_shortlink":"https:\/\/wp.me\/p57zFQ-5B4","jetpack_likes_enabled":false,"jetpack_sharing_enabled":true,"kind":false,"_links":{"self":[{"href":"https:\/\/johnjohnston.info\/blog\/wp-json\/wp\/v2\/posts\/21518","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/johnjohnston.info\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/johnjohnston.info\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/johnjohnston.info\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/johnjohnston.info\/blog\/wp-json\/wp\/v2\/comments?post=21518"}],"version-history":[{"count":6,"href":"https:\/\/johnjohnston.info\/blog\/wp-json\/wp\/v2\/posts\/21518\/revisions"}],"predecessor-version":[{"id":21525,"href":"https:\/\/johnjohnston.info\/blog\/wp-json\/wp\/v2\/posts\/21518\/revisions\/21525"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/johnjohnston.info\/blog\/wp-json\/wp\/v2\/media\/21520"}],"wp:attachment":[{"href":"https:\/\/johnjohnston.info\/blog\/wp-json\/wp\/v2\/media?parent=21518"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/johnjohnston.info\/blog\/wp-json\/wp\/v2\/categories?post=21518"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/johnjohnston.info\/blog\/wp-json\/wp\/v2\/tags?post=21518"},{"taxonomy":"post_format","embeddable":true,"href":"https:\/\/johnjohnston.info\/blog\/wp-json\/wp\/v2\/post_format?post=21518"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}