{"id":283,"date":"2006-09-24T20:39:33","date_gmt":"2006-09-24T20:39:33","guid":{"rendered":"http:\/\/tromey.com\/blog\/?p=283"},"modified":"2006-09-24T20:39:33","modified_gmt":"2006-09-24T20:39:33","slug":"gnome-deployment","status":"publish","type":"post","link":"https:\/\/tromey.com\/blog\/?p=283","title":{"rendered":"Gnome Deployment"},"content":{"rendered":"<p>I was reading about Gnome 3.0 recently (and I&#8217;m working on a long post about it), when I ran across <a href=\"http:\/\/tieguy.org\/blog\/2006\/07\/05\/guadec-thoughts-2-client-development-platforms-and-the-web\/\">a post by Luis Villa<\/a> about Gnome versus web development.  (BTW you should read his blog if you don&#8217;t already.)<\/p>\n<p>I found this pretty compelling in general &#8212; it is a nice analysis and it is also a list of things that can actually be addressed without going crazy.<\/p>\n<p>I&#8217;m interested in the deployment issue, since I&#8217;ve done some playing in this area with Java Web Start.  And, though I think I don&#8217;t agree that this is really a blocker, it is still fun to think about a bit &#8212; the technology is fun and cool, I&#8217;m just not convinced it solves a pressing problem.  (Your response here&#8230;)<\/p>\n<p>First, yes, with C or C++ I think deployment is just going to continue to suck.<\/p>\n<p>Java already solved this problem in a pretty nice way.  It is no big deal to write a single-click install, with automatic updating, good security (either a sandbox or signatures for apps that need more permissions), etc.  This could use a little work for better Gnome integration, and of course we should be shipping this in Fedora, but the amount of needed work here is quite small.  (I assume C# has something similar but I really don&#8217;t know.)<\/p>\n<p>I looked into this for Python a little this weekend.  And, it looks like Python Eggs and <a href=\"http:\/\/cheeseshop.python.org\/pypi\">the Python cheese shop<\/a> provide a nice basis to make this work.  Finishing this is pretty concrete:<\/p>\n<ul>\n<li>Define an XML document describing an application.  This would include the same kinds of things that ended up in JNLP: icons, splash screens, the required python version, a list of python egg URLs, etc.<\/li>\n<li>Add some kind of signing to python egg downloads.  Unfortunately I don&#8217;t think sandboxing is an option.  One idea would be to restrict eggs to python.org and gnome.org URLs &#8212; but that interferes with the idea of easy deployment.<\/li>\n<li>Make a new URL type so that Mozilla will know to run appropriate python script to parse the XML, install the eggs, and launch the application.<\/li>\n<\/ul>\n<p>For best results this would incorporate some things I was looking at for NetX: having the ability to download an application without running it; dbus integration so that a previously cached application won&#8217;t try to update itself in a net-less environment; drag-and-drop of entire applications from Mozilla to the panel; and now,  integration with  <a href=\"http:\/\/tw.apinc.org\/weblog\/tag\/mathusalem\">mathusalem<\/a> when downloading eggs.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I was reading about Gnome 3.0 recently (and I&#8217;m working on a long post about it), when I ran across a post by Luis Villa about Gnome versus web development. (BTW you should read his blog if you don&#8217;t already.) I found this pretty compelling in general &#8212; it is a nice analysis and it [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-283","post","type-post","status-publish","format-standard","hentry","category-software"],"_links":{"self":[{"href":"https:\/\/tromey.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/283","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tromey.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tromey.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tromey.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/tromey.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=283"}],"version-history":[{"count":0,"href":"https:\/\/tromey.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/283\/revisions"}],"wp:attachment":[{"href":"https:\/\/tromey.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=283"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tromey.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=283"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tromey.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=283"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}