Engage your readers with great content that expresses your interests!
Primal for WordPress uses Primal's powerful interest graph and content filtering technology to give your readers relevant and timely content that's tailored to each individual page you create.
Content curation is disrupting content creation. Are content marketers moving fast enough?
A few weeks ago, I made the trip down to Content Marketing World, "the largest content marketing event on the planet" with over 2600 delegates representing 50 countries.
I wanted to explore how the activity of content curation—the process of collecting, organizing and displaying information relevant to a particular area of interest—was impacting this massive content marketing industry.
Content curation may be one of the most disruptive forces in marketing, with an impact crater particularly devastating to activities directly and indirectly linked to content creation.
Based on a review of the activities at Content Marketing World and a supporting data analysis of thousands of articles in the media, content marketers appear slow to respond to this change.
The activity of curation is perceived as subordinate to content creation, complementary but not disruptive. Content curation is a new engine of content marketing, but the industry is tightly coupling it to the old activity of content creation.
The response from marketers? "It's not creation or curation, it's both!" Yes, it's both. I would have had a tremendously difficult time making the arguments in this post without creating the content for it.
A comprehensive resource for content marketing covering a wide range of topics of interest to content marketers.
Primal, a content discovery assistant, does most of the grunt work of finding the right information for the specific topics featured on the site.
Content curation, the activity of collecting, organizing, and presenting information of interest to a target audience, is an essential component of content marketing.
As in many areas of marketing, aspects of content curation are being automated. Marketers are exploring how smart machines can help improve their productivity and performance. Automated content curation, however, is a young field and it's difficult to separate the promise from the hype.
At Primal, we're well aware of the importance of curation, but constraints of time, money, staffing left us unable to pursue sustained campaigns in content curation. As such, we wanted to explore how automated systems could be used to improve our efforts.
If you're like us, RSS feeds are an essential part of your content pipeline. You use these feeds to keep track of the sources you care about, and share the best items with your customers and colleagues.
RSS is often referred to as Really Simple Syndication. The truth is, it's really not that simple. And the more you use it, the more complicated it gets!
In this post, we'll show you how to add Primal's data service to your content curation solutions, as a fully automated, machine-editor.
1. How to filter out irrelevant content from your content supply.
2. How to provide personalized collections of content.
For our demo, we'll use a content aggregator called Alltop, and show you how to recreate these examples and build a similar solution yourself.
In the early days of the Web, librarians would often compile directories of "trusted sites" on a range of important topics. In fact, Yahoo! has its roots in what was essentially a human-edited directory of online content — then called David and Jerry's Guide to the World Wide Web. These are early examples of online content curation.
A content curator is someone who finds, groups, organizes and shares the best and most relevant content on a specific issue. In the past, content curation was largely the domain of small groups of professionals.
Today, services like Tumblr have begun to attract part-time, amateur content curators by making it easier than ever to "publish" the interesting things you find online. While these services have undoubtedly brought content curation to new audiences, the time and effort involved remain significant barriers.
Further technological innovation is needed to lighten the burden of the entire process of finding, organizing, and grouping, and sharing content.
One problem with existing tools is that they force people to work at the level of individual pieces of content. Given the flood of content on the Web, this approach requires a lot of manual labor on the part of a content curator. If the manual approach is the only one available, content curation is doomed to be a niche activity.
A new system is needed — one that puts raw computing horsepower in the hands of content curators to help them get the job done orders of magnitude faster than they can today.
Content curators want to spend their time focusing on their editorial vision, pulling together the ideas that matter most to them and their audience. They likely don't want to wade through hundreds of pages of search results and feeds, painstakingly organizing what they find.
The key, then, is to enable content curators to quickly express their ideas, indicate a few sources to get content for those ideas, and let computers do the hard work of finding and organizing content around those ideas. The final step is for the content curator to vet the work of the computer, modifying the results as they see fit to give the results that "human" touch.
With a product like this, content curation could become easy enough — and fast enough — that anyone could do it.
Primal's technology for understanding individual interests and Web scale content filtering takes much of the grunt work out of content curation.
To learn more, check out our developers site.


text:
Q: JQuery window.scroll() not working for mobile I am working on a Infinite scroll (on a div which have large number of subdiv)
infinite scroll is working for Desktop device but not for mobile devices
i checked that window.scroll function not getting fired for mobile device
i checked for some other events like OnTouchStart etc .. but none is working
Here is infinite scroll fiddle Infinite Scroll Fiddle
Here is infinite scroll project code example
infinitescroll: function() {

    var $doc=$(document);
    var $win=$(window);
    var itemsPerScroll=5;

    // hide everything that is out of bound
    $('.scroll').filter(function(index){
        return (($(this).offset().top) > $win.height());
    }).hide();

    $(window).scroll(function(event){
        #event.preventDefault();
        alert("here");

        if ($doc.height()-$win.height()-$(this).scrollTop() == 0) {
            $('.scroll:hidden:lt('+itemsPerScroll+')').show();
        }

    });
},

A: Alter the code to this and it should fix it -
if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|Windows
Phone/i.test(navigator.userAgent) == false) {
$(document).height() - window.visualViewport.height;
$('.article').filter(function(index){
return (($(this).offset().top) > $win.height());
}).hide();

$(window).scroll(function(){
if ($doc.height()-$win.height()-$(this).scrollTop() == 0) {
$('.article:hidden:lt('+itemstoshow+')').show();
        }
})};

redpajama_set_name: RedPajamaStackExchange


text:
//----------------------------------------------------------------------------------------------
//    Copyright 2014 Microsoft Corporation
//
//    Licensed under the Apache License, Version 2.0 (the "License");
//    you may not use this file except in compliance with the License.
//    You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
//    Unless required by applicable law or agreed to in writing, software
//    distributed under the License is distributed on an "AS IS" BASIS,
//    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//    See the License for the specific language governing permissions and
//    limitations under the License.
//----------------------------------------------------------------------------------------------

using Microsoft.IdentityModel.Clients.ActiveDirectory;
using O365_WebApp_OAuthController.Models;
using O365_WebApp_OAuthController.Utils;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using System.Security.Claims;
using System.Web.Mvc;

namespace O365_WebApp_OAuthController.Controllers
{
    public class OAuthController : Controller
    {
        //
        // This method will be invoked as a call-back from an authentication service (e.g., https://login.windows.net/).
        // It is not intended to be called directly, only as a redirect from the authorization request in FilesController.
        // On completion, the method will cache the refresh token and access tokens, and redirect to the URL
        // specified in the state parameter.
        //
        public ActionResult Index(string code, string error, string error_description, string resource, string state)
        {
            string userObjectID = ClaimsPrincipal.Current.FindFirst("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier").Value;

            // NOTE: In production, OAuth must be done over a secure HTTPS connection.
            if (Request.Url.Scheme != "https" && !Request.Url.IsLoopback)
                return View("Error");

            // Ensure there is a state value on the response.  If there is none, stop OAuth processing and display an error.
            if (state == null)
            {
                ViewBag.ErrorMessage = "Error Generating State.";
                return View("Error");
            }

            // Handle errors from the OAuth response, if any.  If there are errors, stop OAuth processing and display an error.
            if (error != null)
                return View("Error");

            string redirectUri = ValidateState(state, userObjectID);

            if (redirectUri == null)
            {
                ViewBag.ErrorMessage = "Error Validating State.";
                return View("Error");
            }

            // Redeem the authorization code from the response for an access token and refresh token.
            try
            {
                ClientCredential credential = new ClientCredential(SettingsHelper.ClientId, SettingsHelper.AppKey);
                AuthenticationContext authContext = new AuthenticationContext(SettingsHelper.Authority, new TokenDbCache(userObjectID));
                AuthenticationResult result = authContext.AcquireTokenByAuthorizationCode(
                    code, new Uri(Request.Url.GetLeftPart(UriPartial.Path)), credential, SettingsHelper.AADGraphResourceId);

                // Return to the originating page where the user triggered the sign-in
                return Redirect(redirectUri);
            }
            catch (Exception e)
            {
                return Redirect("/Files/Index?authError=token");
            }
        }

        /// Validate the state parameter in the OAuth message by checking its Guid portion against the value in the cache.
        /// Again, we have combined the Guid and RedirectUri values for sending in our authorization request.
        public string ValidateState(string state, string userObjectID)
        {

            try
            {
                var stateBits = Convert.FromBase64String(state);
                var formatter = new BinaryFormatter();
                var stream = new MemoryStream(stateBits);
                List<String> stateList = (List<String>)formatter.Deserialize(stream);
                var stateGuid = stateList[0];

                ApplicationDbContext db = new ApplicationDbContext();
                var userStateValues = from u in db.UserStateValues
                                      where (u.userObjId == userObjectID && u.stateGuid == stateGuid)
                                      select u;
                var stateValuesList = userStateValues.ToList();
                foreach (var stateValue in stateValuesList)
                    db.UserStateValues.Remove(stateValue);
                db.SaveChanges();

                if (stateValuesList.Count == 0)
                    return null;

                return stateList[1];
            }
            catch
            {
                return null;
            }
        }
    }
}

redpajama_set_name: RedPajamaGithub


Instead of being "off grid", they're very much on it – but they're not dependent on an energy provider. Instead, houses automatically generate, store, and trade electricity between themselves based on which neighbours need extra, and which have lots of excess in their batteries. Thanks to blockchain technology, this is no longer science fiction.
According to New Scientist, blockchain- based micro grid solutions already let neighbours trade solar power in New York and the West Coast of Australia. LO3 Energy, the start-up company behind the TransActive Grid which operates in NY, is also getting ready to expand its services to Europe and Africa.
Australia's Future Grid Forum identified scenarios that could alter the electricity ecosystem by 2050. Each one presented changes to the traditional business model with a range of shifts from a centralized-controlled model to a decentralized, customer-centric one, or a hybrid.
As someone wise once said – "Business leaders should not solely look at technology as a way to improve current processes, but more as a way to pivot their business models." It remains to be seen whether Irish energy providers will see Blockchain as an opportunity and will pro-actively adjust their business model, …or they will perceive it as a threat and try to tighten their grip on the energy market.


Clinton nodded to several policy positions, including a proposal for debt-free college, in her appeal to younger readers for their vote. While promising more job creation and expanded family leave policies, she referenced crafting the debt-free college plan with primary rival Sen. Bernie Sanders, who she has increasingly deployed as a surrogate to win over reluctant millennial voters.
Sanders and fellow Sen. Elizabeth Warren of Massachusetts, widely regarded as a leader of the party's progressive wing, both spoke on college campuses over the weekend on Clinton's behalf, the New York Times reported. Their appearances — and Clinton's Mic article — also preceded a millennial-focused speech at Temple University in Philadelphia planned Monday afternoon.
Clinton communications director Jennifer Palmieri told the New York Times that the speech would be directed at "millennial voters about how they have the most at stake in this election," adding that Clinton's policies do the most to advance young voters' causes.
But in the statement, Palmieri conceded that the campaign has work to do in its messaging: "It's clear that the campaign must do more to earn their vote," she said.