site stats

IDG Contributor Network: Is learning the next killer app for mobile?

<!–Is Learning the following killer app for Mobile? Mobile gives a unique supply mechanism to make Finding Out accessible to everyone, as its use in growing nations presentations</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>Thanks</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 an error emailing this PAGE.</p> </p></div> </div> <div class="byline"> <p class="dateline"> <p><span><span>InfoWorld</span></span> <span class="divider">This Text?<br /> <i class="ss-icon thumbsup">thumbsup</i></p> <p> <span class="vote-count">Zero</span><br /> <i class="ss-icon thumbsdown">thumbsdown</i></p> <p> </span><br /> </span></p> </p></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 positioned an Ad 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 placed a module and the placementDiff is: ” + placementDiff);</p> <p> placementTarget = cumulativeHeight + placementDiff + interModuleHeight + moduleHeightBuffer;<br /> moduleCounter++;</p> <p> loopCounter++;</p> <p> // Avoid inserting Components too soon as a result of non-Huge figures inflating the cumulative Height<br /> if ($(this).is(“Figure”) && !$(this).is(“Determine.Huge”))<br /> cumulativeHeight += grafHeight;</p> <p> else<br /> cumulativeHeight += $(this).Top() + grafHeight;</p> <p> );</p> <p> // clone Related Tales module to come back in after eighth para in article body for Mobile breakpoint display<br /> var $relatedStories = $(‘.Related-promo-wrapper’);<br /> if ($relatedStories.size)<br /> var $relatedStoriesClone = $relatedStories.clone();<br /> $relatedStoriesClone.insertAfter( “#drr-container > p:eq(7)”); </p> <p> // For Mobile best, Position Advert after second paragraph.<br /> if (firstMobileAdHtml)<br /> $(firstMobileAdHtml).insertAfter(“#drr-container > p:eq(1)”);</p> <p> var $insiderPromo = $(‘.insider-promo-wrapper’);<br /> if ($insiderPromo.length)<br /> var $insiderPromoClone = $insiderPromo.clone();<br /> $insiderPromoClone.insertAfter( “#drr-container > p:eq(1)”);</p> <p> //Situation left side Component<br /> cumulativeHeight = Zero;<br /> var leftPlacementTarget = tagHeight = leftPlacementTarget)<br /> if (debug)<br /> console.log(“congratulations… we’ve got handed the preliminary Start level”);</p> <p> if (leftPlacementIndex == null)<br /> //It Can Be No Longer just right sufficient to No Longer be a left Keep Away From – it additionally will not be 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(“just isn’t a left Steer Clear Of 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 earlier figures. proceed”);</p> <p> else<br /> if (debug)<br /> console.log(“#### leftPlacementIndex already set to “+leftPlacementIndex+”. taking a look IN ADVANCE…”);</p> <p> //No Longer 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)<br /> console.log(“threshold Now Not reached: (cumulativeHeight – leftPlacementLookaheadStart) (“+(cumulativeHeight-leftPlacementLookaheadStart)+”) tags<br /> if (!(isLeftAvoid($(this)) && ($(this).hasClass(‘small’)<br /> );</p> <p> if (leftPlacementIndex != null && elementNotNearEnd($leftPlacementElement, leftPixelWindow))<br /> if (debug)<br /> console.log(” insert into index “+leftPlacementIndex);</p> <p> $(“#drr-container”).kids().eq(leftPlacementIndex).sooner than(“</p> <p>“);</p> <p> IDG.GPT.trackOmniture();</p> <p> // Add Proper rail module content material<br /> for (var i=0; i” + adString + “</section> </article> </section> </div> <p>“;</p> <p> perform getEpoParams()<br /> var Parts = document.referrer.change(/^https?:///, ”).split(‘/’);<br /> var defaultCatId = 3029;<br /> var defaultTypeId = 2;<br /> var epoParams = “module.epo”;</p> <p> Components.shift();</p> <p> // From HOMEPAGE; Convey default typeId articles<br /> if (Components.subscribe to(‘/’) == “” && document.referrer.indexOf(report.area)) </p> <p> epoParams += “&typeId=” + defaultTypeId + “&referrer=HOUSE”;</p> <p> // From ARTICLE: Express articles w referrer catId<br /> else if (report.referrer != undefined && document.referrer.indexOf(‘article’) >= Zero)<br /> var a = document.createElement(‘a’);<br /> a.href = report.referrer;<br /> var uriParts = a.pathname.cut up(‘/’);<br /> a = ”;<br /> if (typeof uriParts[3] == ‘undefined’)<br /> epoParams += “&typeId=” + defaultTypeId + “&referrer=RESIDENCE”; // default is ‘HOME’ habits</p> <p> else<br /> var refCatSlug = uriParts[3];<br /> epoParams += “&catSlug=” + refCatSlug + “&referrer=article”;</p> <p> // From SEARCH: Exhibit article with catId same as current article<br /> else if (document.referrer.indexOf(“google”) >= Zero </p> <p> /**<br /> * @param jqo Unique jquery object Goal<br /> * @param divString The div to be inserted.<br /> * @return Difference in Top between Unique placement Goal and remaining Target.<br /> * Exams first 6 Parts for an allowable placement (600 pixel window).<br /> * If none, Test neighborhood for Parts that are not Proper avoids.<br /> * If none, Position Element earlier than current Target.<br /> */<br /> function applyInsert(jqo, divString)<br /> if (debug)<br /> console.log(“applyInsert at top and jqo index is: ” + jqo.index());</p> <p> for (var i=Zero; i Zero)<br /> children = $(“#drr-container”).kids().slice(jqo.index(), allowElement.index() );</p> <p> else<br /> children = $(“#drr-container”).youngsters().slice(allowElement.index(), jqo.index());</p> <p> if (youngsters != null)<br /> youngsters.EACH AND EVERY(perform(i)<br /> if (debug)<br /> console.log(“About so as to add this Part’s Height to heigh diff offset”);<br /> console.log($(this));</p> <p> Top += $(this).Top() + grafHeight;<br /> );</p> <p> if (offset 300)<br /> if (debug)<br /> console.log(“isRightAvoid: Found pre. return actual”);</p> <p> return true;</p> <p> if (“Determine”) && jqo.hasClass(‘Huge’))<br /> if (debug)<br /> console.log(“isRightAvoid: Discovered Figure.Large return real”);</p> <p> return genuine;</p> <p> if (“Determine”) && jqo.hasClass(‘medium’) && jqo.hasClass(‘inline’))<br /> if (debug)<br /> console.log(“isRightAvoid: Discovered Figure has Category medium and inline.”);</p> <p> return proper;</p> <p> if (‘div’) && jqo.hasClass(‘Table-wrapper’))<br /> if (debug)<br /> console.log(“isRightAvoid: Discovered div with Type Table-wrapper”);</p> <p> return genuine;</p> <p> if (‘apart’))<br /> if (jqo.hasClass(‘sidebar’) && !jqo.hasClass(‘medium’))<br /> if (debug)<br /> console.log(“isRightAvoid: Found 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 Classification statsTable”);</p> <p> return true;</p> <p> if (jqo.hasClass(‘obtain-asset’))<br /> if (debug)<br /> console.log(“isRightAvoid: Discovered Category obtain-asset return real”);</p> <p> return true;</p> <p> if (jqo.hasClass(‘tableLarge’))<br /> if (debug)<br /> console.log(“isRightAvoid: Found Type tableLarge return authentic”);</p> <p> return proper;</p> <p> if (jqo.hasClass(‘reject’))<br /> if (debug)<br /> console.log(“isRightAvoid: Found Type reject. return genuine”);</p> <p> return genuine;</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 true if Part has Classification ‘reject’: won’t Location drr modules/ads next to those 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: Discovered ‘reject’ Class”);</p> <p> return real;</p> <p> return false;</p> <p> return false;</p> <p> // Returns proper if Top of all Elements after this one is greater than 500; false in any other case<br /> perform elementNotNearEnd(Part, pixelWindow)<br /> if (pixelWindow == null)<br /> pixelWindow = 500;</p> <p> if (Part == null)<br /> return false;</p> <p> var remainingHeight = 0;<br /> var kids = $(“#drr-container”).children().slice(Component.index());<br /> if (children == null)<br /> return false;</p> <p> youngsters.EVERY(operate(i)<br /> remainingHeight += $(this).Top();<br /> );<br /> if ( remainingHeight > pixelWindow)<br /> return actual;</p> <p> else<br /> if (debug)<br /> console.log(“Element too with regards to End. Last Top is: ” + remainingHeight + ” and window is ” + pixelWindow); </p> <p> return false;</p> <p> /**<br /> * Return actual if wish to Keep Away From this Element when placing left module.<br /> */<br /> function isLeftAvoid(jqo)<br /> if (“Determine”))<br /> if (debug)<br /> console.log(“isLeftAvoid: Discovered Figure. return true”);</p> <p> return true;</p> <p> if (“apart.pullquote”))<br /> if (debug)<br /> console.log(“isLeftAvoid: Found pullquote. return authentic”);</p> <p> return proper;</p> <p> if (“pre”))<br /> if (debug)<br /> console.log(“isLeftAvoid: Discovered pre. return real”);</p> <p> return genuine;</p> <p> if (“div.gist”))<br /> if (debug)<br /> console.log(“isLeftAvoid: Found github code block. return actual”);</p> <p> return proper;</p> <p> if (“aside”) && jqo.hasClass(“sidebar”) && jqo.hasClass(“medium”))<br /> if (debug)<br /> console.log(“isLeftAvoid: Discovered medium sidebar. return authentic”);</p> <p> return real;</p> <p> if (jqo.hasClass(“statsTable”))<br /> if (debug)<br /> console.log(“isLeftAvoid: Found Class statsTable. return proper”);</p> <p> return authentic;</p> <p> return false;</p> <p> /**<br /> * return authentic if there are not any figures sooner than the Goal placement that might bleed down into placement Element<br /> */<br /> operate 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>Over The Last few years, I Have been very fortunate to work with plenty of companies in Africa. These firms like Shop the Elephants, Ol Pejeta Conversancy, and Lewa Natural World Conservatory, to name a couple of, do amazing work for the people and Natural World of Africa.</p> <p>Like The folks of most emerging nations, these groups rely on Cellular apps in a so much deeper means that we do here within the west. In Most Cases, Cellular apps in developed international locations is round comfort. For rising countries, Cellular is a fundamental utility that promises financial products and services, well being, training, and safety.</p> <p>I’ve mentioned Cellular as a utility before and consider we can Learn rather a lot from Africa’s manner. The last time I went to Africa was once a number of years in the past. This Can Be A lifetime in the Cellular world. I Am preparing for shuttle to Rwanda with the Salesforce Foundation to work with some local faculties and questioned whether these few years had changed Africa’s use of Cell.</p> <p>I was once really excited to come back across the following piece on that highlighted a lot of actually spectacular apps beyond the Cell payments apps that we most often hear about. It used to be nice to look Cell utility products and services like Frontline SMS, an organization I met with remaining time I was in Kenya, persevering with to lead the rush in connecting rural communities the usage of SMS and united states of america technology. In rising nations, $Forty flip telephones dominate the market. With A Purpose To make apps for these devices, developers have a laser center of attention on conversation (offline is the norm), and the audience (in many rural communities literacy charges are low), to deliver basic desires. That Is one thing I Feel western app builders who’ve access dependable, fast web and the latest units, often forget. It Can Be a lesson we are able to all Analyze.</p> <p>The piece highlighted a strong, and continuing movement towards Finding Out and education delivered through Cell expertise. The <a href="" target="new">eLearning Africa convention in 2015 had members from 68 international locations with Eighty Three percent of individuals coming from sub-Sahara international locations. Which Is an excellent coverage!</p> <figure class="large "><img src="" alt="Children in Kenya" width="620" height="413" /><small class="credit">Quinton Wall </small></figure> <figure class="medium "><small class="credit">Quinton Wa </small></p> <figure class="medium "><small class="credit">Quinton Wall </small></figure> </figure> <p>My shuttle to Rwanda is a still a number of months away, but it’s lovely clear that education is important for emerging nations. And It’s Now Not just for rising countries, or traditional Learning that we associate with education. We Are Learning every day. Mobile offers a singular delivery mechanism to make Studying accessible to everyone, whether or not you’re a farmer in Africa, Learning a brand new language (I Use Duolingo everyday to Learn Spanish all the way through my walk to work), or even constructing a non-revenue and wish to discover ways to fund raise and create offers. Even the most recent model of iOS ultimately supports many features education app builders and colleges had been ready a long time for.</p> <p>I Guess I realized something today too. My subsequent app has a transparent goal: it’ll educate you one thing new. Now I Simply wish to determine <em>what that one thing is</em>. Possibly It’s time for any other espresso….</p> <p><strong>This Text is published as a part of the IDG Contributor Network. Need to sign up for?</strong></p> </div> <div class="byline vcard author end-byline"> <p><img class="bylineImage imgId100630368 " src="" alt="Quinton Wall" /></p> <div class="author-info with-image"> <p class="author-name"> Quinton Wall</p> <p class="bio">Quinton Wall is the Sr. Director of Developer Members Of The Family at Salesforce the place he’s keen on native Cellular utility development and the cloud.</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> 8 Free On-line Courses 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>Explore 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="">Supply link </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="">Arkansas panel clears way for new Ten Commandments marker</a> </li> <li> <a href="">Toni Mascolo, co-founder of salon chain Toni & Guy, dies</a> </li> <li> <a href="">Port Authority bomber brought down by officers with military training</a> </li> <li> <a href="">Fancy A Cup? How Technology Is Affecting What And How You Drink.</a> </li> <li> <a href="">Facebook to book advertising revenue locally amid political pressure</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-12 21:42:51 by W3 Total Cache -->