{"id":21438,"date":"2018-05-04T14:51:16","date_gmt":"2018-05-04T18:51:16","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=21438"},"modified":"2018-06-02T15:33:16","modified_gmt":"2018-06-02T19:33:16","slug":"retrobatch-public-beta","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2018\/05\/04\/retrobatch-public-beta\/","title":{"rendered":"Retrobatch Public Beta"},"content":{"rendered":"<p><a href=\"http:\/\/shapeof.com\/archives\/2018\/5\/retrobatch_public_beta.html\">Gus Mueller<\/a>:<\/p>\n<blockquote cite=\"http:\/\/shapeof.com\/archives\/2018\/5\/retrobatch_public_beta.html\">\n<p>Retrobatch is a node based (not the JS language) batch image processor. A bit like Quartz Composer, and a bit like Audio Hijack. But for images. Lots and lots of images (or maybe a few or even one).<\/p>\n<p>[&#8230;]<\/p>\n<p>But why node based? Every batch image processor I&rsquo;ve come across was linear. You put images in one end, and out they came the other side. But that&rsquo;s so limiting! What if it was possible to take a folder of images and then operate on them twice with the same workflow? What if you could create branches where one would resize images to 50%, and another write out PNG files with the @2x suffix added to the file name? What if you had a workflow that referenced multiple folders which combined into a single output?<\/p>\n<p>And all the possibilities! What if you could read an image from the clipboard, apply a filter to it, and write it to a folder <em>and<\/em> to the clipboard? What if you had a way to separate out PNG images of a certain size from a folder and only do an operation to those? What if you could script the application in response to new images being added to a shared folder? What about if it could capture all the open windows of your favorite application as images, then apply a filter to those, and then write out a layered PSD of those windows? What if you wanted to apply a machine learning model against your images, to figure out which contains pictures of hotdogs in them, and then perform some action based on that?<\/p>\n<\/blockquote>\n\n<p>This is a really cool idea for an app, and I like the way he&rsquo;s designed the interface. The beta seems to be pretty mature already.<\/p>\n\n<p><a href=\"https:\/\/flyingmeat.com\/retrobatch\/docs\/faq\/#why-isnt-retrobatch-pro-for-sale-in-the-mac-app-store\">FAQ<\/a>:<\/p>\n<blockquote cite=\"https:\/\/flyingmeat.com\/retrobatch\/docs\/faq\/#why-isnt-retrobatch-pro-for-sale-in-the-mac-app-store\"><p>The App Store requires apps be sandboxed, which would considerably limit Retrobatch&rsquo;s functionality.<\/p><\/blockquote>\n\n<p>Update (2018-06-02): <a href=\"http:\/\/shapeof.com\/archives\/2018\/5\/retrobatch_1.0.html\">Gus Mueller<\/a>:<\/p>\n<blockquote cite=\"http:\/\/shapeof.com\/archives\/2018\/5\/retrobatch_1.0.html\">\n<p>Which is all to say <a href=\"https:\/\/flyingmeat.com\/retrobatch\/\">Retrobatch<\/a> 1.0 was released yesterday!<\/p>\n<p>[&#8230;]<\/p>\n<p>For instance, the initial work to bring Metal to Acorn 6.1 was originally done in Retrobatch. Since I had no legacy code to worry about with Retrobatch 1.0, I started with Metal from the beginning. And with that experience I was able to figure out how I could move code around and refactor Acorn in an intelligent way to bring Metal rendering there.<\/p>\n<\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Gus Mueller: Retrobatch is a node based (not the JS language) batch image processor. A bit like Quartz Composer, and a bit like Audio Hijack. But for images. Lots and lots of images (or maybe a few or even one). [&#8230;] But why node based? Every batch image processor I&rsquo;ve come across was linear. You [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2018-06-02T19:33:18Z","apple_news_api_id":"7f8fe16e-1327-42c0-942f-f7cd32426175","apple_news_api_modified_at":"2018-06-02T19:33:19Z","apple_news_api_revision":"AAAAAAAAAAAAAAAAAAAAAA==","apple_news_api_share_url":"https:\/\/apple.news\/Af4_hbhMnQsCUL_fNMkJhdQ","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[],"tags":[159,619,30,32,39,1529,1669,53],"class_list":["post-21438","post","type-post","status-publish","format-standard","hentry","tag-applescript","tag-graphics","tag-mac","tag-macapp","tag-macappstore","tag-macos-10-13","tag-retrobatch","tag-sandboxing"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/21438","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=21438"}],"version-history":[{"count":2,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/21438\/revisions"}],"predecessor-version":[{"id":21620,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/21438\/revisions\/21620"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=21438"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=21438"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=21438"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}