{"id":915,"date":"2010-12-27T14:15:49","date_gmt":"2010-12-27T20:15:49","guid":{"rendered":"http:\/\/thepizzy.net\/blog\/?p=915"},"modified":"2011-03-06T07:24:08","modified_gmt":"2011-03-06T13:24:08","slug":"concept-dropbox-api-integration-webhost-sync","status":"publish","type":"post","link":"https:\/\/thepizzy.net\/blog\/2010\/12\/concept-dropbox-api-integration-webhost-sync\/","title":{"rendered":"Concept: DropBox API Integration, Webhost Sync"},"content":{"rendered":"<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1160\" data-permalink=\"https:\/\/thepizzy.net\/blog\/2010\/12\/concept-dropbox-api-integration-webhost-sync\/box1\/\" data-orig-file=\"https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2010\/12\/box1.png?fit=500%2C500&amp;ssl=1\" data-orig-size=\"500,500\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Dropbox Logo\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2010\/12\/box1.png?fit=500%2C500&amp;ssl=1\" class=\"alignleft size-thumbnail wp-image-1160\" title=\"Dropbox Logo\" src=\"https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2010\/12\/box1-150x150.png?resize=150%2C150\" alt=\"\" width=\"150\" height=\"150\" srcset=\"https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2010\/12\/box1.png?resize=150%2C150&amp;ssl=1 150w, https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2010\/12\/box1.png?resize=300%2C300&amp;ssl=1 300w, https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2010\/12\/box1.png?resize=36%2C36&amp;ssl=1 36w, https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2010\/12\/box1.png?resize=115%2C115&amp;ssl=1 115w, https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2010\/12\/box1.png?w=500&amp;ssl=1 500w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>I enjoy trying to find solutions to things that are difficult to accomplish, whether that is researching existing technologies to try and mash them together, or developing new ones to solve a problem. It&#8217;s rare that I have to create completely new things, so more often than not, all the pieces to solve the problem currently exist. This is one such\u00c2\u00a0occasion.<\/p>\n<p>Here&#8217;s my dilemma:<\/p>\n<ul>\n<li>I&#8217;m creating a web-based application for my company&#8217;s intranet. We&#8217;ll call the application &#8220;Jada&#8221;.<\/li>\n<li>Jada is hosted on a computer that has a one-way connection to the internet: out. No one can get in from the internet.<\/li>\n<li>I sync my files to the cloud with Windows Live Mesh 2011 on Jada, and that gives me a real-time backup, as well as a copy on my computers at home.<\/li>\n<li>Windows Live Mesh 2011 does not have the ability to edit files in the browser. DropBox does not have the ability to edit files in the browser. But DropBox has an API.<\/li>\n<\/ul>\n<p>My requirement:<\/p>\n<ul>\n<li>I have a Cr-48 Chrome OS netbook, and must edit my codes inside a browser. When I save the file, it must automatically end up back on the Jada server, without installing software (since I can&#8217;t, on this laptop).<\/li>\n<\/ul>\n<p>The file-editor of choice for my codes is to host them on Kodingen and use their Bespin integration (as the actual Bespin site doesn&#8217;t have an import\/upload feature yet). I have uploaded a copy of the files via FTP, however, that is a single instance of those files&#8230;thus any changes I make there must then be downloaded onto the Jada server via an FTP client, or pushed. Either way, that would happen at intervals, and not instantly, and definitely not from the Chrome OS laptop.<\/p>\n<p>The concept of webhost sync would be similar to this:<\/p>\n<ul>\n<li>A user would set up their DropBox folder so that the files they want would be scraped up by the software, and sent to the DropBox website.<\/li>\n<li>A user would then authenticate to Dropbox on the editor (Kodingen in this example), and then map a folder created on the Kodingen FTP server to say &#8220;<strong>this<\/strong> folder is where I want the Selective Sync of <strong>that<\/strong> DropBox store to be located&#8221; or a new folder option would be offered to say &#8220;make this a folder in my dropbox account, and sync it.&#8221;<\/li>\n<li>Every X minutes of inactivity to the files (no files have been edited or modified), or the user being logged out\/session expiration, the Kodingen would poll DropBox&#8217;s file metadata to see if any files have changed. If so, pull them over to Kodingen&#8217;s store.<\/li>\n<li>While inside the editor, a Save action on the file being edited would activate a hook to sync that file and any other files that have been changed.<\/li>\n<li>There would also need to be a manual sync button for posterity in environments where multiple people would be working in other locations. Such changes could exist in the span of X minutes between CRON jobs to sync the server, and one would want to make sure they have the latest version of the files before they get started.<\/li>\n<\/ul>\n<p>This is a general overview of how I would envision something like this working &#8211; and would definitely be a huge step in the right direction for programmers who wish to keep all their files in the cloud, but don&#8217;t have direct access to the computers they are developing for&#8230;especially if the Cr-48 is going to be as limited as it is when it comes to file editing.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I enjoy trying to find solutions to things that are difficult to accomplish, whether that is researching existing technologies to try and mash them together, or developing new ones to solve a problem. It&#8217;s rare that I have to create completely new things, so more often than not, all the pieces to solve the problem [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1160,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"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,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[507,3,15],"tags":[689,502,690,734,738,737,745,739,742,743,744,700],"class_list":["post-915","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud-computing-concepts","category-tech","category-thought_experiments","tag-chrome-os","tag-cloud-computing","tag-cr-48","tag-dropbox","tag-file-sync","tag-file-synchronization","tag-ftp-server","tag-google-chrome-os","tag-kodingen","tag-programing","tag-webhost-sync","tag-windows-live-mesh"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2010\/12\/box1.png?fit=500%2C500&ssl=1","jetpack_likes_enabled":false,"jetpack_shortlink":"https:\/\/wp.me\/prOO4-eL","jetpack-related-posts":[{"id":896,"url":"https:\/\/thepizzy.net\/blog\/2010\/12\/cloud-file-synchronization\/","url_meta":{"origin":915,"position":0},"title":"Cloud File Synchronization","author":"[[Neo]]","date":"December 28, 2010","format":false,"excerpt":"While the rest of my work requires access to files on a server, when I'm mobile, everything must be in sync with the cloud. Here's my setup.","rel":"","context":"In &quot;Cloud Computing&quot;","block_context":{"text":"Cloud Computing","link":"https:\/\/thepizzy.net\/blog\/category\/cloud-computing-concepts\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2010\/10\/3201.Sync256_5F00_1E0A24D91.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":942,"url":"https:\/\/thepizzy.net\/blog\/2011\/01\/living-in-the-cloud-code-editing\/","url_meta":{"origin":915,"position":1},"title":"Living in the Cloud: Code Editing","author":"[[Neo]]","date":"January 4, 2011","format":false,"excerpt":"TextDrop is a text-editing, cloud-based web-application that allows you to create, modify, and save text-based files back to Dropbox.","rel":"","context":"In &quot;Cloud Computing&quot;","block_context":{"text":"Cloud Computing","link":"https:\/\/thepizzy.net\/blog\/category\/cloud-computing-concepts\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2011\/01\/apple-touch-icon.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":635,"url":"https:\/\/thepizzy.net\/blog\/2010\/10\/migrating-from-live-mesh-beta-to-live-mesh-2011\/","url_meta":{"origin":915,"position":2},"title":"Migrating from Live Mesh beta to Live Mesh 2011","author":"[[Neo]]","date":"October 4, 2010","format":false,"excerpt":"Recently, all my Windows Vista & Windows 7 machines started displaying errors saying that Live Mesh had crashed and needed to be shut down. Unfortunately, the errors wouldn't stop occurring even when the program was exited and the error cleared. It was thought that IE9 beta and Live Mesh beta\u2026","rel":"","context":"In &quot;Cloud Computing&quot;","block_context":{"text":"Cloud Computing","link":"https:\/\/thepizzy.net\/blog\/category\/cloud-computing-concepts\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2010\/10\/3201.Sync256_5F00_1E0A24D91-150x150.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":227,"url":"https:\/\/thepizzy.net\/blog\/2009\/03\/how-to-use-live-mesh-to-sync-your-programs\/","url_meta":{"origin":915,"position":3},"title":"How to sync your program\u00e2\u20ac\u2122s plugins using Live Mesh","author":"[[Neo]]","date":"March 14, 2009","format":false,"excerpt":"I'm sure you've been at work, thinking \"Crap, I don't want to go home and do this, because I don't have the software there.\" Or maybe you do have the software, but you don't have some certain set of plugins (i.e. Photoshop Brushes for a graphic designer), and you need\u2026","rel":"","context":"In &quot;Cloud Computing&quot;","block_context":{"text":"Cloud Computing","link":"https:\/\/thepizzy.net\/blog\/category\/cloud-computing-concepts\/"},"img":{"alt_text":"Welcome to Mesh.com","src":"https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2009\/03\/2009-03-14_1329-150x150.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":1086,"url":"https:\/\/thepizzy.net\/blog\/2011\/02\/my-favorite-google-chrome-os-extensions\/","url_meta":{"origin":915,"position":4},"title":"My favorite Google Chrome OS extensions","author":"[[Neo]]","date":"February 2, 2011","format":false,"excerpt":"After 2 months of Chrome OS daily use, I've compiled a list of plugins a web developer & casual social network engineer should use.","rel":"","context":"In &quot;Cloud Computing&quot;","block_context":{"text":"Cloud Computing","link":"https:\/\/thepizzy.net\/blog\/category\/cloud-computing-concepts\/"},"img":{"alt_text":"Google Chrome OS Logo - Source: doobybrain.com","src":"https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2011\/02\/google-chrome-OS-logo1-150x113.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":852,"url":"https:\/\/thepizzy.net\/blog\/2010\/12\/living-in-the-cloud-first-things-first\/","url_meta":{"origin":915,"position":5},"title":"In the Cloud, First Things First","author":"[[Neo]]","date":"December 23, 2010","format":false,"excerpt":"The hardest part about cutting the cord is making sure everything you need is available online, and how you're going to access it.","rel":"","context":"In &quot;Cloud Computing&quot;","block_context":{"text":"Cloud Computing","link":"https:\/\/thepizzy.net\/blog\/category\/cloud-computing-concepts\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2010\/12\/2418509850_6b7ac5196b1-300x225.jpg?resize=350%2C200","width":350,"height":200},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/thepizzy.net\/blog\/wp-json\/wp\/v2\/posts\/915","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thepizzy.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thepizzy.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thepizzy.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thepizzy.net\/blog\/wp-json\/wp\/v2\/comments?post=915"}],"version-history":[{"count":9,"href":"https:\/\/thepizzy.net\/blog\/wp-json\/wp\/v2\/posts\/915\/revisions"}],"predecessor-version":[{"id":919,"href":"https:\/\/thepizzy.net\/blog\/wp-json\/wp\/v2\/posts\/915\/revisions\/919"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thepizzy.net\/blog\/wp-json\/wp\/v2\/media\/1160"}],"wp:attachment":[{"href":"https:\/\/thepizzy.net\/blog\/wp-json\/wp\/v2\/media?parent=915"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thepizzy.net\/blog\/wp-json\/wp\/v2\/categories?post=915"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thepizzy.net\/blog\/wp-json\/wp\/v2\/tags?post=915"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}