site stats

Facebook is shuttering the Parse developer platform

<!–Facebook is shuttering the Parse developer platform Fb’s headquarters in Menlo Park, California, on Oct. 29, 2015</p> <p></span></p> <p> Credit:<span></p> <p> Martyn Williams<br /> </span></p> </figcaption> </figure> <section class="deck"> <h2>Facebook has Just given Developers a 12 months to prevent counting on its hosted Parse products and services</h2> </section> <div class="modal eml-friend-wrapper" id="emailModal"> <div class="eml-ty eml-friend-success"> <i class="ss-icon ss-delete" /></p> <h3>Thank You</h3> <p class="msg-sent">Your message has been despatched.</p> </p></div> <div class="eml-friend-error"> <i class="ss-icon ss-delete" /></p> <h3>Sorry</h3> <p class="msg-sent">There was once an error emailing this page.</p> </p></div> </div> <section class="bodee"> <p>$(‘#” + slotName + “‘).responsiveAd(screenSize:’971 1115’, scriptTags: []);”;<br /> var adDivString = “</p> <p>” + adString + “</p> <p>“;</p> <p> placementDiff = applyInsert($(this), adDivString);<br /> if (debug)<br /> console.log(“Simply placed an Advert and the placementDiff is: ” + placementDiff);</p> <p> placementTarget = cumulativeHeight + placementDiff + interModuleHeight + adHeightBuffer;</p> <p> else<br /> var moduleDivString = “”;<br /> var elementId = “drr-mod-“+moduleCounter;<br /> moduleDivString = “”;<br /> modules.push(elementId);</p> <p> placementDiff = applyInsert($(this), moduleDivString);<br /> if (debug)<br /> console.log(“Simply positioned a module and the placementDiff is: ” + placementDiff);</p> <p> placementTarget = cumulativeHeight + placementDiff + interModuleHeight + moduleHeightBuffer;<br /> moduleCounter++;</p> <p> loopCounter++;</p> <p> // Keep Away From putting Elements too quickly because of non-Huge figures inflating the cumulative Height<br /> if ($(this).is(“Figure”) && !$(this).is(“Figure.Large”))<br /> cumulativeHeight += grafHeight;</p> <p> else<br /> cumulativeHeight += $(this).Height() + grafHeight;</p> <p> );</p> <p> // clone Associated Stories module to come in after eighth para in article physique for Mobile breakpoint display<br /> var $relatedStories = $(‘.Related-promo-wrapper’);<br /> if ($relatedStories.length)<br /> var $relatedStoriesClone = $relatedStories.clone();<br /> $relatedStoriesClone.insertAfter( “#drr-container > p:eq(7)”); </p> <p> // For Cell simplest, Place Ad after 2d paragraph.<br /> if (firstMobileAdHtml)<br /> $(firstMobileAdHtml).insertAfter(“#drr-container > p:eq(1)”);</p> <p> var $insiderPromo = $(‘.insider-promo-wrapper’);<br /> if ($insiderPromo.size)<br /> var $insiderPromoClone = $insiderPromo.clone();<br /> $insiderPromoClone.insertAfter( “#drr-container > p:eq(1)”);</p> <p> //Location left facet Component<br /> cumulativeHeight = Zero;<br /> var leftPlacementTarget = tagHeight = leftPlacementTarget)<br /> if (debug)<br /> console.log(“congratulations… we now have passed the preliminary Start point”);</p> <p> if (leftPlacementIndex == null)<br /> //it is Now Not good enough to No Longer be a left Avoid – it also isn’t a </p> <p> with an right away previous small or medium image left Steer Clear Of.<br /> if (!isLeftAvoid($(this)) && noPrevFigures($(this)) )<br /> leftPlacementIndex = $(this).index();<br /> $leftPlacementElement = $(this);<br /> leftPlacementLookaheadStart = cumulativeHeight;<br /> if (debug)<br /> console.log(“will not be a left Keep Away From and no prev figures. ########## set placementIndex (“+leftPlacementIndex+”) and lookaheadStart (“+leftPlacementLookaheadStart+”) ##########”);</p> <p> else<br /> if (debug)<br /> console.log(“is a left Steer Clear Of or has previous figures. continue”);</p> <p> else<br /> if (debug)<br /> console.log(“#### leftPlacementIndex already set to “+leftPlacementIndex+”. having a look BEFOREHAND…”);</p> <p> //Not null; has been set<br /> if ((cumulativeHeight – leftPlacementLookaheadStart) > leftIntervalHeight)<br /> if (debug)<br /> console.log(“###### THRESHOLD REACHED. LOOKAHEAD FULL. End ###### (cumulativeHeight – leftPlacementLookaheadStart) (“+(cumulativeHeight-leftPlacementLookaheadStart)+”) > leftIntervalHeight (“+leftIntervalHeight+”).”);</p> <p> return false;<br /> else<br /> if (debug) $(this).hasClass(‘aside’) )))<br /> cumulativeHeight += $(this).Peak() + grafHeight;</p> <p> if (debug)<br /> console.log(“——————– set cumulativeHeight(“+cumulativeHeight+”) —————“);<br /> console.log(“”);</p> <p> );</p> <p> if (leftPlacementIndex != null && elementNotNearEnd($leftPlacementElement, leftPixelWindow))<br /> if (debug)<br /> console.log(” insert into index “+leftPlacementIndex);</p> <p> $(“#drr-container”).youngsters().eq(leftPlacementIndex).earlier than(“</p> <p>“);</p> <p> IDG.GPT.trackOmniture();</p> <p> // Add Proper rail module content material<br /> for (var i=Zero; i” + adString + “</section> </article> </section> </div> <p>“;</p> <p> operate getEpoParams() record.referrer.indexOf(“bing”) >= Zero)<br /> var categories = [3646];<br /> if (classes instanceof Array && categories.length > 0)<br /> var primaryCatId = categories[0];<br /> epoParams += “&catId=” + primaryCatId + “&referrer=search”;</p> <p> else<br /> epoParams += “&typeId=” + defaultTypeId + “&referrer=house”; // default is ‘residence’ conduct</p> <p> // Default is to indicate like coming from homepage<br /> else </p> <p> epoParams += “&typeId=” + defaultTypeId + “&referrer=dwelling”;<br /> // default is ‘dwelling’ habits</p> <p> return epoParams;</p> <p> /**<br /> * @param jqo Original jquery object Target<br /> * @param divString The div to be inserted.<br /> * @return Distinction in Peak between Unique placement Goal and remaining Goal.<br /> * Exams first 6 Elements for an allowable placement (600 pixel window).<br /> * If none, Take A Look At neighborhood for Elements that are not Right avoids.<br /> * If none, Location Component prior to current Target.<br /> */<br /> operate applyInsert(jqo, divString)<br /> if (debug)<br /> console.log(“applyInsert at prime and jqo index is: ” + jqo.index());</p> <p> for (var i=Zero; i 0)<br /> youngsters = $(“#drr-container”).children().slice(jqo.index(), allowElement.index() );</p> <p> else<br /> children = $(“#drr-container”).children().slice(allowElement.index(), jqo.index());</p> <p> if (kids != null)<br /> kids.EVERY(function(i)<br /> if (debug)<br /> console.log(“About to add this Part’s Height to heigh diff offset”);<br /> console.log($(this));</p> <p> Top += $(this).Peak() + grafHeight;<br /> );</p> <p> if (offset 300)<br /> if (debug)<br /> console.log(“isRightAvoid: discovered pre. return authentic”);</p> <p> return real;</p> <p> if (“Figure”) && jqo.hasClass(‘Large’))<br /> if (debug)<br /> console.log(“isRightAvoid: found Determine.Large return true”);</p> <p> return true;</p> <p> if (“Figure”) && jqo.hasClass(‘medium’) && jqo.hasClass(‘inline’))<br /> if (debug)<br /> console.log(“isRightAvoid: discovered Figure has Class medium and inline.”);</p> <p> return genuine;</p> <p> if (‘div’) && jqo.hasClass(‘Desk-wrapper’))<br /> if (debug)<br /> console.log(“isRightAvoid: found div with Classification Table-wrapper”);</p> <p> return real;</p> <p> if (‘apart’))<br /> if (jqo.hasClass(‘sidebar’) && !jqo.hasClass(‘medium’))<br /> if (debug)<br /> console.log(“isRightAvoid: discovered apart with Classification sidebar, with out Class medium”);</p> <p> return authentic;</p> <p> if (jqo.hasClass(‘statsTable’))<br /> if (debug)<br /> console.log(“isRightAvoid: discovered apart with Class statsTable”);</p> <p> return genuine;</p> <p> if (jqo.hasClass(‘download-asset’))<br /> if (debug)<br /> console.log(“isRightAvoid: discovered Classification download-asset return actual”);</p> <p> return real;</p> <p> if (jqo.hasClass(‘tableLarge’))<br /> if (debug)<br /> console.log(“isRightAvoid: discovered Class tableLarge return actual”);</p> <p> return genuine;</p> <p> if (jqo.hasClass(‘reject’))<br /> if (debug)<br /> console.log(“isRightAvoid: discovered Type reject. return true”);</p> <p> return proper;</p> <p> if (‘Desk’) && jqo.hasClass(‘scorecard’))<br /> if (debug)<br /> console.log(“isRightAvoid: found div with Class scorecard”);</p> <p> return actual;</p> <p> return false;</p> <p> // Return genuine if Part has Type ‘reject’: will not Location drr modules/advertisements subsequent to these Elements<br /> function isRightReject(jqo)<br /> console.log(“in isRightReject”);<br /> if (jqo != null)<br /> if (jqo.hasClass(“reject”))<br /> if (debug)<br /> console.log(“isRightReject: found ‘reject’ Category”);</p> <p> return authentic;</p> <p> return false;</p> <p> return false;</p> <p> // Returns actual if Peak of all Elements after this one is greater than 500; false otherwise<br /> function elementNotNearEnd(Element, pixelWindow)<br /> if (pixelWindow == null)<br /> pixelWindow = 500;</p> <p> if (Element == null)<br /> return false;</p> <p> var remainingHeight = Zero;<br /> var youngsters = $(“#drr-container”).youngsters().slice(Part.index());<br /> if (youngsters == null)<br /> return false;</p> <p> children.EVERY(operate(i)<br /> remainingHeight += $(this).Height();<br /> );<br /> if ( remainingHeight > pixelWindow)<br /> return proper;</p> <p> else<br /> if (debug)<br /> console.log(“Component too with reference to Finish. Ultimate Top is: ” + remainingHeight + ” and window is ” + pixelWindow); </p> <p> return false;</p> <p> /**<br /> * Return true if need to Keep Away From this Element when placing left module.<br /> */<br /> perform isLeftAvoid(jqo)<br /> if (“Figure”))<br /> if (debug)<br /> console.log(“isLeftAvoid: found Determine. return authentic”);</p> <p> return authentic;</p> <p> if (“apart.pullquote”))<br /> if (debug)<br /> console.log(“isLeftAvoid: found pullquote. return true”);</p> <p> return actual;</p> <p> if (“pre”))<br /> if (debug)<br /> console.log(“isLeftAvoid: found pre. return authentic”);</p> <p> return real;</p> <p> if (“div.gist”))<br /> if (debug)<br /> console.log(“isLeftAvoid: found github code block. return real”);</p> <p> return genuine;</p> <p> if (“aside”) && jqo.hasClass(“sidebar”) && jqo.hasClass(“medium”))<br /> if (debug)<br /> console.log(“isLeftAvoid: found medium sidebar. return genuine”);</p> <p> return actual;</p> <p> if (jqo.hasClass(“statsTable”))<br /> if (debug)<br /> console.log(“isLeftAvoid: found Category statsTable. return real”);</p> <p> return authentic;</p> <p> return false;</p> <p> /**<br /> * return true if there are not any figures sooner than the Target placement that would possibly bleed down into placement Element<br /> */<br /> perform noPrevFigures($originalTarget)<br /> var targetIndex = $originalTarget.index();<br /> var numElementsLookBack = 5;<br /> var figureIndex = null;<br /> var figureHeight = null;<br /> var startIndex = targetIndex – numElementsLookBack </p> <div id="drr-container"> <p>Facebook has Just given Developers a year to stop relying on its hosted Parse products and services, announcing it will shut down the products and services it got when it purchased The Corporate of the identical Identify in 2013. </p> <p>Which Is unhealthy News for people who have come to depend on the developer platform for issues like offering push notifications, analytics, and a server Again Finish for functions. On Jan. 28, 2017, Facebook will cease providing those products and services. </p> <p>Builders who do not want to rewrite their purposes to work with a brand new Back-Finish Carrier provider can Observe a migration information from Parse to make their functions work with an unbiased MongoDB occasion and a new open-Supply Parse Server That Is running on Salesforce-owned developer platform provider Heroku. </p> <p>The move comes as a surprise as a result of Parse was a celeb of Facebook’s recent F8 developer conferences. Simply closing month, Parse launched a collection of new tools to help Developers work with Apple’s WatchOS and TVOS, and on the time, Parse Product Supervisor Supratik Lahiri promised more updates someday.</p> <aside class="nativo-promo smartphone" id="" /> <p>Facebook said in a observation that it plans to devote more tools to growing “high-influence services in areas like analytics, monetization, discovery, and authentication.” That points to The Corporate doubling down on its free products and services for Developers, like Analytics and the Login Provider that lets users authenticate with functions thru their Fb bills.</p> <p>These Days’s announcement is a sign of adjusting times for Facebook. The Corporate bought Parse in 2013, Back when it wasn’t as sturdy in the Cell market as it’s now. Fast forward nearly three years, and Fb is way more suitable in Cellular, with Ninety p.c of the Carrier’s monthly active customers having access to it on their telephones in the closing quarter of 2015. </p> <p>It makes much less trade sense for Fb to keep growing a paid developer platform, especially due to the fact that main public cloud gamers like Amazon, Microsoft, and Google are all also growing their very own solutions. It seems to be betting it will get more worth out of serving to Builders hook up with its social Community fairly than promoting them paid instruments to construct apps unbiased from it. </p> </div> <div class="byline vcard author end-byline"> <p><img class="bylineImage imgId100620977 " src="" alt="Blair Hanley Frank" /></p> <div class="author-info with-image"> <p class="author-name"> Blair Hanley Frank — <span class="author-title">U.S. Correspondent</span></p> <p class="bio">Blair Hanley Frank is primarily fascinated by hyperscale cloud providers, Microsoft and its competitors for the IDG News Provider.</p> </p></div> <p><!-- end .author-info --></p> </div> <p><!-- blx4 #1218 blox4.html --></p> <div class="article-intercept"> <a href=""><br /> <i class="ss-icon ss-navigateright" /><em> From CIO:</em> Eight Free Online Lessons to Develop Your Tech Abilities<br /> </a></p> </div> <p> <!-- /.bodee --></p> <section id="funnel"> <section class="popular-brand-cols"> <section class="popular-col"><!-- /.promo --><br /> <!-- ./promo newsletter --></p> </section> <section class="brand-col"> </section> </section> <section class="featured-col"><!-- blx4 #937 blox4.simple --></p> </section> </section> <p> <!-- /role=main --><!-- /#page-wrapper --></p> <footer> <section class="brand"><span class="logo">InfoWorld</span><br /> <span class="tagline"> </span></p> <p> <span class="follow"><br /> <label>Follow us</label><br /> </span></p> </section> <section class="topics"> <nav id="ft1" /> <nav id="ft2" /></section> <section class="about"> </section> <section class="copyright"> <div class="wrapper"> <p>Copyright © 1994 – 2016 InfoWorld, Inc. All rights reserved.</p> <div class="network"> <div id="network-selector"> <p>Discover the IDG Community <i class="ss-icon tick">descend</i></p> </p></div> <p><!-- /#network-selector --> </div> <p><!-- /.network --> </div> <p><!-- /.wrapper --><br /> </section> </footer> <p><!-- Begin welcome ad overlay - gpt-overlay position --><br /> <!-- End welcome ad overlay - gpt-overlay position --></p> <p> <!-- Begin gpt-skin/gpt-pin/inread --></p> <p> <!-- End gpt-skin/gpt-pin/inread --> </p> <p><!-- Begin BlueKai Tag --></p> <p><!-- CryptoJS --></p> <p><!-- End BlueKai Tag --></p> <p><!-- BEGIN Krux Control Tag for InfoWorld --></p> <p><!-- END Krux Controltag --></p> <p><!-- START Nielsen Online SiteCensus? V6.0 --><br /> <!-- COPYRIGHT 2010 Nielsen Online --></p> <p><!-- END Nielsen Online SiteCensus? V6.0 --></p> <p><!-- SiteCatalyst code version: H.26.2. Copyright 1996-2013 Adobe, Inc. All Rights Reserved More info available at --></p> <p><img src="" height="1" width="1" border="0" alt="" /><!--/DO NOT REMOVE/--><br /> <!-- End SiteCatalyst code version: H.26.2. --></p></div> <p><br /> <br /><a href="">Source hyperlink </a></p> <div class="clear"></div> </div><!-- /entry --> <div id="comments"> <p> You must be logged in to post a comment <a href=""> Login </a> </p> </div><!-- #comments --> </div><!-- /main --> <div id="sidebar"> <div class="sidebarinner"> </div><!-- .sidebarinner --> </div><!-- /sidebar --> </div><!-- /container --></div><!-- end of wrapper --> <div id="footer"> <div id="foo_widget1"> <div id="flickr-widget-3" class="widget flickr_widget"><div class="widgetinner"><h3 class="widgettitle">Flickr Photo Stream</h3> <script type="text/javascript" src=""></script><div class="clear"></div></div></div> </div> <div id="foo_widget2"> <div id="recent-posts-3" class="widget widget_recent_entries"><div class="widgetinner"> <h3 class="widgettitle">Recent Posts</h3> <ul> <li> <a href="">Daredevil climber dies after plunge from Chinese skyscraper</a> </li> <li> <a href="">Theresa May says Brexit deal ‘good news’ for all voters</a> </li> <li> <a href="">Is Katie Ledecky Beatable In Her Domain Events?</a> </li> <li> <a href="">Why Education Still Matters In The Age Of Zuckerberg, Gates, Mackey, Etc.</a> </li> <li> <a href="">Port Authority explosion leaves several injured; 1 person in custody</a> </li> </ul> </div></div> </div> </div> <div id="footer_data"> <ul class="footerpages"> <li class="first"><a href="" title="Great Today News">Home</a></li> <li class="page_item page-item-6"><a href="">Privacy Policy</a></li> <li class="page_item page-item-195"><a href="">Contact Us</a></li> <li class="page_item page-item-198"><a href="">Video Gallery</a></li> <li class="page_item page-item-201"><a href="">Sitemap</a></li> <li><a rel="nofollow" href="">RSS</a></li> <li class="right"><a href="#top" title="Great Today News" rel="home"><strong>↑</strong> Great Today News</a></li> </ul> <div class="clear"></div> <p id="footer-left-side"> <a href="" title="Great Today News" rel="home">Great Today News</a> </p><!-- #site-info --> <p id="footer-right-side"> <a href="">Log in</a> - Designed by <a href="" title="Today News">Today News</a> <script type='text/javascript' src=''></script> <script type='text/javascript'> /* <![CDATA[ */ var wpcf7 = {"apiSettings":{"root":"http:\/\/\/wp-json\/contact-form-7\/v1","namespace":"contact-form-7\/v1"},"recaptcha":{"messages":{"empty":"Please verify that you are not a robot."}},"cached":"1"}; /* ]]> */ </script> <script type='text/javascript' src=''></script> <script type='text/javascript' src=''></script> </p> <!-- #footer-right-side --> </div><!-- /footer_data --> <div class="hide"> <div id="adv_here"> <h3 class="widgettitle">Widgetized Section</h3> <p>Go to Admin » appearance » Widgets » and move a widget into Advertise Widget Zone</p> </div> </div> <!-- Quantcast Tag --> <script type="text/javascript"> var _qevents = _qevents || []; (function() { var elem = document.createElement('script'); elem.src = (document.location.protocol == "https:" ? "https://secure" : "http://edge") + ""; elem.async = true; elem.type = "text/javascript"; var scpt = document.getElementsByTagName('script')[0]; scpt.parentNode.insertBefore(elem, scpt); })(); _qevents.push({ qacct:"p-XSTdT3wyH_FGD" }); </script> <noscript> <div style="display:none;"> <img src="//" border="0" height="1" width="1" alt="Quantcast"/> </div> </noscript> <!-- End Quantcast tag --> </body> </html> <!-- Performance optimized by W3 Total Cache. Learn more: Page Caching using disk: enhanced Served from: @ 2017-12-11 19:06:34 by W3 Total Cache -->