{"id":179,"date":"2006-09-02T12:51:00","date_gmt":"2006-09-02T19:51:00","guid":{"rendered":"http:\/\/www.red-sweater.com\/blog\/179\/subservient-blips"},"modified":"2006-09-02T14:34:49","modified_gmt":"2006-09-02T21:34:49","slug":"subservient-blips","status":"publish","type":"post","link":"https:\/\/redsweater.com\/blog\/179\/subservient-blips","title":{"rendered":"Subservient Blips"},"content":{"rendered":"<p>I was pleased by the kind of &#8220;cheezy space film&#8221; mood David Van Brink&#8217;s <a href=\"http:\/\/www.subservientastronaut.com\/blog\/?p=19\">pointless applet<\/a> put me in, so I got the wild idea of creating a Mac OS X screen saver out of it.<\/p>\n<p>\nSince I don&#8217;t do Java and am not sure how difficult it would be to use it directly in a screen saver, I decided to do a more-or-less verbatim translation to Objective-C Cocoa. This turned out not to be too much work, and the process I adopted was to paste David&#8217;s Java code into my Cocoa source file, #ifdef&#8217;d out. I then proceeded to bite of chunks of the code and translate them into equivalent Cocoa. This was motivational because I got visual feedback on my progress, even if it wasn&#8217;t too pretty at first:\n<\/p>\n<p>\n<img decoding=\"async\" src=\"http:\/\/www.red-sweater.com\/blog\/images\/DVBScreen1.png\" width=\"450\"\/>\n<\/p>\n<p>\nSome of the bugs were surprisingly charming:\n<\/p>\n<p>\n<img decoding=\"async\" src=\"http:\/\/www.red-sweater.com\/blog\/images\/DVBScreen2.png\" width=\"225\" \/><br \/>\n<img decoding=\"async\" src=\"http:\/\/www.red-sweater.com\/blog\/images\/DVBScreen3.png\" width=\"225\" \/><br \/>\n<img decoding=\"async\" src=\"http:\/\/www.red-sweater.com\/blog\/images\/DVBScreen4.png\" width=\"225\" \/><br \/>\n<img decoding=\"async\" src=\"http:\/\/www.red-sweater.com\/blog\/images\/DVBScreen5.png\" width=\"225\" \/>\n<\/p>\n<p>\nThough not as charming as the final product, with most if not all of the bugs ironed out.\n<\/p>\n<p>\n<img decoding=\"async\" src=\"http:\/\/www.red-sweater.com\/blog\/images\/SubBlips.png\" \/>\n<\/p>\n<p>\n<a href=\"http:\/\/www.red-sweater.com\/misc\/SubservientBlips1.0.zip\">Download Subservient Blips 1.0<\/a><br \/>\n<a href=\"http:\/\/www.red-sweater.com\/misc\/SubservientBlips1.0-Source.zip\">Download Source Code<\/a> (Requires Xcode)\n<\/p>\n<p>\nIn David&#8217;s applet you can add new blips by clicking the window, but in the screensaver that would just stop the screensaver from running. Thanks to <a href=\"http:\/\/borkware.com\/\">Mark Dalrymple<\/a> for pointing out that I can still grab keystrokes without waking up. Press &#8220;b&#8221; to add a new blip, and &#8220;i&#8221; to toggle the stats display.\n<\/p>\n<p>\nIf you like the screen saver, <a href=\"https:\/\/www.paypal.com\/cgi-bin\/webscr?cmd=_xclick&amp;business=jalkut%40red%2dsweater%2ecom&amp;item_name=Subservient%20Blips%20Donation&amp;item_number=BLIPS1&amp;no_shipping=2&amp;no_note=1&amp;tax=0&amp;currency_code=USD&amp;bn=PP%2dDonationsBF&amp;charset=UTF%2d8\">donate some cash<\/a> and I&#8217;ll split the proceeds with David.\n<\/p>\n<p>\n<strong>Update<\/strong>: Well, I just can&#8217;t put this thing down. I decided to play with the background color and I think this looks just amazing with a medium gray backdrop. I&#8217;ve decided to update the binary download with this setting.\n<\/p>\n<p>\n<img decoding=\"async\" src=\"http:\/\/www.red-sweater.com\/blog\/images\/DVBScreen7.png\" \/>\n<\/p>\n<p>\nIf you don&#8217;t like it, well, build your own!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I was pleased by the kind of &#8220;cheezy space film&#8221; mood David Van Brink&#8217;s pointless applet put me in, so I got the wild idea of creating a Mac OS X screen saver out of it. Since I don&#8217;t do Java and am not sure how difficult it would be to use it directly in [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,15],"tags":[],"class_list":["post-179","post","type-post","status-publish","format-standard","hentry","category-cocoa","category-programming"],"_links":{"self":[{"href":"https:\/\/redsweater.com\/blog\/wp-json\/wp\/v2\/posts\/179","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/redsweater.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/redsweater.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/redsweater.com\/blog\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/redsweater.com\/blog\/wp-json\/wp\/v2\/comments?post=179"}],"version-history":[{"count":0,"href":"https:\/\/redsweater.com\/blog\/wp-json\/wp\/v2\/posts\/179\/revisions"}],"wp:attachment":[{"href":"https:\/\/redsweater.com\/blog\/wp-json\/wp\/v2\/media?parent=179"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/redsweater.com\/blog\/wp-json\/wp\/v2\/categories?post=179"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/redsweater.com\/blog\/wp-json\/wp\/v2\/tags?post=179"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}