{"id":1468,"date":"2009-01-02T22:09:13","date_gmt":"2009-01-03T01:09:13","guid":{"rendered":"http:\/\/brockerhoff.net\/bb\/viewtopic.php?p=2625"},"modified":"2010-05-08T12:10:16","modified_gmt":"2010-05-08T15:10:16","slug":"year","status":"publish","type":"post","link":"https:\/\/brockerhoff.net\/blog\/2009\/01\/02\/year\/","title":{"rendered":"Year++"},"content":{"rendered":"<p>It&#8217;s been a couple of weeks since my last post, but I haven&#8217;t been idle. Well, a few of the holidays excepted, of course. Here&#8217;s what&#8217;s on my radar for the new year, or at least for the first months.<\/p>\n<p>\nI&#8217;ve finally had time to look at the SnowLeopard (Mac OS X 10.6) beta. Can&#8217;t say much about it, except that there are interesting and significant changes in the infrastructure &#8211; important for programmers. I really hope that, once out, a majority of users will adopt it.<\/p>\n<p>\nA consequence of seeing the 10.6 APIs is that I decided to do a serious rework of <a href=\"\/klicko\">Klicko<\/a> and <a href=\"\/quay\">Quay<\/a>, so they&#8217;ll be ultimately easier to migrate to 10.6 and a 64-bit environment. Klicko inherited a lot of code, and I&#8217;m really glad that I decided to do it as a training exercise, since I&#8217;ll very soon back-port much of that back to Quay, after enhancing and optimizing.<\/p>\n<p>\nIf all goes well, Klicko 1.1 will be out soon. I&#8217;ve got all but installation and updating procedures done. Most notably, it&#8217;s now a System Preferences panel that installs a background process. While this is a departure from the easy-to-run, simple-Cocoa-app mantra, splitting this type of application into a faceless background process and a foreground GUI will soon be mandatory for all practical purposes, and there are advantages; for the user, once properly installed and configured, Klicko will &#8220;just work&#8221; automatically and in the background, and use very few resources.<\/p>\n<p>\nOne new Klicko feature was requested by several users (and others who have emailed me in the past). There will be a (configurable) preference to have the window&#8217;s &#8220;zoom&#8221; button do a true maximize &#8211; or at least attempt to, not all applications will support it properly. While I find the importance that Windows users attach to maximizing everything all the time a little puzzling, trying it out convinced me that it&#8217;s useful now and then. I always maximize NetNewsWire, Xcode, and a few other application windows, for instance. I also decided that it may be useful in pointing users that are new to the Mac to shareware software in general and to my own applications.<\/p>\n<p>\nOnce that is done &#8211; hopefully with very few build updates &#8211; it&#8217;s back to reimplementing everything I learned into Quay (probably 1.2). I&#8217;m not decided whether that will become a preferences panel too, but it may be possible. More importantly, I&#8217;m now pretty fluent with the <a href=\"\/bb\/viewtopic.php?p=2600#2600\">event tap<\/a> and accessibility APIs that both Quay and Klicko use.<\/p>\n<p>\nThe major new feature of Quay will be that Quay menus will also pop up for Finder icons. Ultimately, I&#8217;d like to make this work in any and all Finder window modes &#8211; icon, list and column &#8211; and in all circumstances where the Finder&#8217;s own contextual menus pop up. I&#8217;ve done some preliminary testing and it looks like it <i>might<\/i> be possible. There are a few edge cases where I&#8217;m not sure that I&#8217;ll be able to compute the correct path for the icon.<\/p>\n<p>\nAnyway, if all works as planned, I&#8217;ll be able to introduce more flexibility through plug-ins. A plug-in would get a file or folder handed to it and would produce either a popup menu, or an information window. This would allow me to finally declare <a href=\"\/xray\">XRay<\/a> entirely defunct (it already runs very poorly on Leopard), and replace it with many small, specialized plug-ins. My older contextual menu plug-ins, like <a href=\"\/zingg\">Zingg!<\/a> and <a href=\"\/nudge\">Nudge<\/a> would also be trivial to rewrite as Quay plug-ins.<\/p>\n<p>\nA similar, much more ambitious plug-in scheme, was planned for XRay II, and I can reuse some of that code&#8230; there are still some complex issues to decide, however. Opening the plug-in interface to other developers is of course what I&#8217;d like to do, but licensing, updating, keeping plug-ins from interfering with each other will be very tricky.<\/p>\n<p>\nAll in all there&#8217;s lots of ideas to implement and this should keep me busy for most of the year. I&#8217;m not considering going into iPhone\/iPod development for now; there&#8217;s a glut of $0.99 applications and the way the App Store is working seems overly opaque to me.<\/p>\n<p>\nMore soon! Stay tuned.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>It&#8217;s been a couple of weeks since my last post, but I haven&#8217;t been idle. Well, a few of the holidays excepted, of course. Here&#8217;s what&#8217;s on my radar for the new year, or at least for the first months. I&#8217;ve finally had time to look at the SnowLeopard (Mac OS X 10.6) beta. Can&#8217;t [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[3,19],"tags":[28,23,27],"class_list":["post-1468","post","type-post","status-publish","format-standard","hentry","category-apple","category-software","tag-klicko","tag-mac","tag-quay"],"featured_image_src":null,"author_info":{"display_name":"Rainer Brockerhoff","author_link":"https:\/\/brockerhoff.net\/blog\/author\/rbrockerhoff\/"},"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/s1q3Zc-year","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/brockerhoff.net\/blog\/wp-json\/wp\/v2\/posts\/1468","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/brockerhoff.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/brockerhoff.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/brockerhoff.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/brockerhoff.net\/blog\/wp-json\/wp\/v2\/comments?post=1468"}],"version-history":[{"count":0,"href":"https:\/\/brockerhoff.net\/blog\/wp-json\/wp\/v2\/posts\/1468\/revisions"}],"wp:attachment":[{"href":"https:\/\/brockerhoff.net\/blog\/wp-json\/wp\/v2\/media?parent=1468"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/brockerhoff.net\/blog\/wp-json\/wp\/v2\/categories?post=1468"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/brockerhoff.net\/blog\/wp-json\/wp\/v2\/tags?post=1468"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}