Showing posts with label RSS. Show all posts
Showing posts with label RSS. Show all posts

May 11, 2019

Sharing a link is equal to curate a playlist


With the upraising of social networks like Google+ and Facebook a new term was introduced into the normal language which is called share. The word is so important that a dedicated share button was invented and is visible on million of webpages in the internet. The surprising fact is, that the definition what share means is unclear. I'd like to explain the idea in detail.
To make things easier we assume that not a real social network with a proprietary software is used which is hidden from the user but all the actions are made in a textfile on a local computer. This allows to see complete inside the box. Now we can compare the classical idea of copy&paste a link into a textfile with press the share button. Before i will present the textfile it is important to warn the reader. Even if the cases looks the same there are a difference, and i will explain the difference shortly. For the meantime here is the textfile.
normal linking:
The best programming language for AI projects is Python.
 https://www.python.org/

sharing:
The best programming language for AI projects is Python.
 https://www.python.org/
Like i said, both cases look the same. What i want to explain is, that sharing is not defined in the textfile itself but depends on something which is hidden behind the text. And now we have to search for this hidden meaning. I'd like to start the journey with the more easier case which is the first one. Somebody writes a sentence, is referencing to a programming language and puts a URL at the end of the sentence so that people who are not familiar with the subject can find more information. I would guess that case1 is uncomplicated and most users will argue the same way. Posting such a link is common.
The more interesting and more complicated to explain case is the second one. If the bytes which are typed in are the same how can the sharing feature be realized? Where is the button to share the link? This problem can be answered if we know the complete situation. In case one a single user talks to an anonymous audience. He has created a text and likes to explain to the world what the best programming language is. Such a communication style is heavily used in blogs and in forums.
Sharing means something which is completely different. The literature is a bit shy to give the concrete details. The best explanation which i have found is in the documentation around the planet feedreader aggregator. If somebody has understood what the planet software is doing he has understood what sharing is.
Let us take a look into the planet manual. What is described there is a command line tool. The program takes different RSS feeds as input and produces a single RSS feed as output. If this feed is put on a website the website is called a planet frontpage. What planet is doing is called sharing.
Let us analyze the motivation of somebody who has created a planet newsfeed. Is his motivation to explain the world what the best programming language is? No he operates on a metalevel, that means, he takes existing content which is located in the input RSS feeds and puts this information forward. Putting something forward means to aggregate the information.
How can a user press the sharing button? The interesting point is that no real button is available, the decision if a paragraph is created in the normal linking mode or in the sharing mode is done before a text is written. Let me give an example. An author sits on his computer and likes to write a normal text, He can type in the following sentence:
Each neural network needs a training algorithm to adjust the weights.
This sentence is the result of the author's knowledge. The sentence is visible in the texteditor. The author likes to a add a reference, he is searching in the internet and finds the WIkipedia page. Even the URL is a bit too general he copy&paste the URL at the end, to show that he is a professional author.
Each neural network needs a training algorithm to adjust the weights. https://en.wikipedia.org/wiki/Artificial_neural_network
Now we can play a slightly different example game in which the author is working in a different mode. Again, he sits in front of an empty texteditor. But this time he is motivated to share something. What he is doing is the following. The author asks himself, which piece of information is important. According to the planet software handbook he needs a URL of an existing RSS feed. One possible source for the imaginary RSS inputfeed is https://mc.ai/deep-learning-best-practices-activation-functions-weight-initialization-methods%E2%80%8A-%E2%80%8Apart-1/
Under this URL a longer text about weight initialization in neural networks was published recently. It was written by an expert and contains useful images. Now the URL can be shared. That means the URL is copy&pasted to the beginning of the text and then a small annotation is made.
https://mc.ai/deep-learning-best-practices-activation-functions-weight-initialization-methods%E2%80%8A-%E2%80%8Apart-1/ Each neural network needs a training algorithm to adjust the weights.
This kind of short message is send to a friend. I hope it was made clear what the difference is between putting a link to an existing text and play the planet software feedreader game. The decision is made of the author of a text before he types in the characters. He has to decide if he would like to type in a normal text which is added with references, or if he likes to do content aggregation of existing information.
The difference is how important the URL is. At the case one, the URL supports the existing information. If the URL is missing the information remains the same. In the second case, the URL is the dominant information and the text gets the lower priority.
For reason of a better understanding i have changed the order:
case1: text URL
case2: URL text
But in theory, the case 2 can be ordered in the same way like case 1:
case1: text URL
case2: text URL
Which means we have the confusion situation that both are looking the same, but they aren't.
Definition of sharing
I don't like the word sharing very much because the underlying description is that sharing is motivated by the individual who would like forward a message. The more elaborated definition is focused on the RSS feed which is used before something can be shared. Sharing means to search for an existing RSS feed, extract one or all URLs and paste this information into an e-mail with the advice that the receiver should read it.
Let me give an example. Suppose we want to explore better what sharing means. Before we can do so we need an input RSS feed. This is described in the planet software manual and this is the correct workflow. Which RSS feed is the right one? Maybe the RSS feed from Arxiv is great, or the RSS feed from the own blog, or the RSS from an online forum. There are lots of sources in the internet. We can select one of them or we can use random generator which takes the decision
The surprising fact is, that if we select via random generator one of the URL of the Arxiv RSS feed and put this into an e-mail the receiver will understand that we are in the sharing mode. Even if the e-mail contains only of text he can read by a magical force that the URL is tagged as shared link. The exact background why the receiver sees the sharing tag even it is not explicit there is unknown. This is the reason why the definition of sharing is so complicated because the topic is not fully understood.
One general rule is, that the sharing mode is used for coordinating projects in the now and use realtime sources, while the mode of referencing to URL is used for describing more general ideas which are not belonging to current projects. Books which are available in the library are using references. It is not important to read the book within the next 24 hours a book can wait months and years until it gets it's readers.
The more eloquent term over share is to say “curate a link” or even better to “curate a playlist” because this is refering more explicit to the underlying activity. Before a link can copy&pasted to a textfile, somebody has to identify the RSS feed and extract the URL from it. This task is called curating or aggregation. It means to decide which of the content is appropriate for the opponent. In the offline world, curating is something what a DJ or a radio moderator is doing. He takes a look into the database and decides to play a certain song. He acts as a gatekeeper between song producer and audience.

Understanding the importance of Google+ autoposter


On the first look a Google+ autoposter is a typical example for a spam bot. If the tool is used, the admin of the Google+ group will delete the spam post, because he is doing the same what the admin of forum will do. Right? No, he won't. It is important to know, that a social network is different from a forum. Using an autoposting tool for flooding a forum doesn't make much sense. The first message which is send with the tool, gets flagged as spam and after posting the second message the admin will ban the entire user account.
I didn't found a single video on youtube in which it was explained how to use autoposting software for flooding Stackoverflow or Wikipedia. Because such behavior wouldn't make much sense.
The only way an autoposter can be used meaningful is against social networks. The amount of tutorials is endless and the tools are used widespread. The funny thing is, that the average autoposter gets never banned of a Google+ group. In contrast, he is the backbone of a group. Social networks without autoposter wouldn't work.
To understand this phenomena we have to go into the details. What the average autoposter is doing is the following. At first the user behind the bot is creating manual a list of carefully selected URL. They have to fit to the group and they have to announce new content in a blogging network. This list is used by the autoposter to create a new post in a Google+ group.
Now we scale the principle up. Not a single user, but 3 different users are using an autoposter. The result is, that each day in the forum 3 new postings are visible with links to external websites. If a user is subscribed to the group he will see in the timeline relevant news. He can read, that in his community new content is available from different blogs and if he likes he can press the link.
What i want to tell is, that autoposter are providing a value. A certain group is subscribed by the reader because each day the autoposters are active. The best example from outside Google+ is the Planet wikimedia newsstream https://en.planet.wikimedia.org/ It can be compared to a feed which was generated by an autoposter. The interesting point is, that the amount of subscribers of this stream is high, because the stream aggregates information from different blogs of the Mediawiki ecosystem.
The same service is provided by Google+ autoposters, the only difference is, that more than a single autoposter is active in the group and additionally the user can upvote certain posts. That means a Google+ group which is filled with autoposting technology is more advanced than the Planet wikimedia stream.
Advantages and disadvantages
Using an autoposter against a forum is always a fail. The stackoverflow admin will recognize the bot fast and ban the user. Even if the autoposter is configured differently, it is not possible to post something with the tool to a forum. Even the most advanced autoposter which is posting slowly and is able to produce longer text with a neural network will be recognized in a forum as a spam post and gets deleted fast.
In contrast, an autoposter for a Google+ group is in general a great idea. What can be made wrong in reality are the details. That means, if the autoposter is configured in a way that he will produce 1000 messages a day, this will result into trouble. Not because of autoposting in general, but only because of detail problem. A second possible misconception is to post URL with catphotos to a group which is called Linux. This will also result into a misunderstanding. But, if the autoposter was configured the right way and was filled with the right URL playlist the tool is generating meaningful postings. That means, human users will click the upvote button and sometimes the amount of subscribers will gets higher.

May 10, 2019

The content aggregator planet is an autoposter


https://en.wikipedia.org/wiki/Planet_(software) is a converter from RSS XML into HTML. It takes an RSS feed as input and generates HTML code plus the CSS style sheet as output. The generated HTML site is hosted in the internet for example planet Gnome, http://planet.gnome.org/
What most people doesn't know is, that the planet software can be seen as an autoposter. It takes the existing RSS feed and converts ALL entries into postings. The difference to a real autoposter is, that the HTML code is not directed to a different website, but is put direct to the webserver. This forbids the user to write a comment.
In theory, the planet software can be modified a bit. Instead of generating HTML output, it is possible to produce markdown syntax. The script for doing so is 10 lines long and was posted in a previous posting here in the same blog.
What makes planet unique is, that from the perspective of an autoposter it is a very aggressive bot. A dedicated autoposter bot has the ability to adjust in detail the schedule. Most autoposter are creating not more than 1 posts a day. While the planet gnome project is flooded with the complete RSS feed. If in the underlying blogs new content was created all the headlines are submitted to the planet gnome website. This is not done in delay but as soon as possible. So we can name the planet software the most radical autoposter ever. It can't be slow down, not it can't be filtered.
If the Planet software would be used in Google+ groups the chance is high that the user would be banned soon. The reason is, that the planet gnome RSS feed contains to much information. On a single day up to 5 postings are generated. The reason is that the gnome community is a bit chatty and produces a lot of news.
Somebody may ask what the meaning of the planet gnome project is at all. If the content is available in the referenced blog why is a dedicated frontpage created to combine all the content? Wouldn't it be more pleasant if the user will subscribe each blog individual and combines the RSS feeds in his local computer? The main reason why the planet software and the planet gnome project was realized is because of the needs of the bloggers who are producing the content. They want to be part of a larger community. They want to see, that it makes a different if they are positing a new article about a gnome related project. They want, that the other bloggers from their community will be aware of it and they want to informat the general public what is going on in their community.
The planet gnome project was created to unite the gnome community and to form a hub for communicating with the outside world. The literature call such an attempt a social network. Social network is equal to content aggregation. It combines decentralized content into a single website. From a technical perspective a social network is a playlist. It contains of URLs which are directing to the content. Social networks are very similar to a newspaper. The main task of a newspaper is not to write articles. But to curate existing content.

May 09, 2019

RSS to markdown converter (poor mans planet clone)


The first thing what we need is a RSS feed, a sample file can be found at https://www.feedforall.com/sample-feeds.htm Now, we need to install a python library:
pip install feedparser
The best thing to realize a RSS to markdown converter is not using existing software but interactively testing out a self-written program. This gives more control over the process. The first demo program is to test out if the feedparser library is working:
import feedparser
url="sample.xml"
feed = feedparser.parse( url )
Now we can create a simple mini program which goes through the file and prints out the headlines:

import feedparser
url="sample.xml"
feed = feedparser.parse( url )
items = feed["items"]
for item in items:
title = item[ "title" ]
url = item[ "link" ]
print title, url

Now it is time to introduce the markdown syntax.
import feedparser
url="sample.xml"
feed = feedparser.parse( url )
items = feed["items"]
for item in items:
title = item[ "title" ]
url = item[ "link" ]
print "#",title
a="["+url+"]("
b=url+")"
print a+b+"\n"

The interesting feature of the generated markdown output is, that the links are clickable. The only thing what is missing is a comment and upvote system which is available in the hackernews website. Another option is to copy the generated markdown output into a mediawiki installation. Mediawiki has a builtin comment system already.

Content aggregation in the Web 2.0


According to Dieu, Barbara, and Vance Stevens. "Pedagogical affordances of syndication, aggregation, and mash-up of content on the Web." TESL-EJ 11.1 (2007): 1-15. the Web 2.0 contains of different websites:
- blogging hoster (wordpress)
- photohoster (flickr)
- quick messaging (twitter)
- mapping (communitywalk)
- podcasting hoster
- videohoster
The paper is bit outdated because recent developments like Youtube and Instagram are not mentioned, but in general the list of hosting providers make sense. These websites have in common that the user can upload a file from his local computer to the internet. After the file was submitted it is available under a URL.
On page 4 of the paper an additional category of websites is mentioned which should be treated in a extra category. It is called “social networks”:
quote: “These are integrated social platforms designed to allow people to easily connect and share resources.”
And often social networks are described as the most important hub in the Web 2.0 which is superior to normal hosting websites. Why? The article itself doesn't provide an answer, but it gives some hints into the direction. It has to do with RSS feed, content aggregation and social sharing. Let us ignore the paper and try to answer the question by it's own. The list of webhosting providers make sense. If somebody has created a video he has to upload the video to a hoster. IF someone has created text he can store the text in a blog and so on.
But how ca all these sources be combined into something which is useful? What the individual user has uploaded is known, what is unknown is, how the other side will select the information stored in the internet. Social networks like Facebook are answering this question. Without a social network, the content in the Internet won't produce traffic.
Perhaps we should define what a forum is. The paper doesn't have categorized. IMHO a forum is similar to a wordpress blog a normal website. A forum was not invented for content aggregation. Only social networks and aggregated newsfeeds are able to do so. A forum can produce a RSS feed with all the latest postings, but this feed has to combined with the feeds from blogs, from twitter and from videohosters to an aggregated feed.

In the picture no search engine is available and it is not needed. Instead the RSS feed is produced in a linear way. That means, the user doesn't type in keywords, but he is scrolling his feed from top to bottom. Some beginners may think, this principle is equal to Facebook. But the correct term is simple “content aggregation”. It means to combine existing RSS feeds into a new one, which contains more entries.
It is important to know, that the sources on the left (the hosting websites) are not deliver the content of the user in the right section. It makes no sense for a user to ask for files he has created by himself. He knows what is written in the own blog. What the user is interested are information created by other. Describing the situation is a bit complicated. So we have to change the point of view first. Social networks can be described without focussing on the user. Instead we have to focus on the content sources. I'd like to give an example.
Suppose there is a virtual community around Lego mindstorms. Content which belongs to the community are textblogs, photos, videos, podcasts and forum postings, In the picture the content is stored on the left side at the hosting websites. The problem of the Lego mindstorms community is to connect to each other. That means, the community needs comments, needs an audience, needs more members and needs new content. Basically spoken, the community “lego mindstorms” has to use the Planet aggregator software, build a RSS feed of all the content of the last week and put the stream on a website. This is equal to building a frontpage for the community. Such a stream can be consumed by users.
Now we can explain the idea in an example. The planet gnome website is an example for a virtual community. On planet gnome the user finds the latest blogposts, the latest podcasts and the latest forum entires of the Gnome community. A Google+ group is working with the same principle. In a a Google+ group about Lego Mindstorms, a news feed is shown which is the result of a combined RSS feed. It contains, text posts, videos and pictures.
Like i mentioned before we can ignore the user in a social network completly. Because a virtual community is not interested in deliver the content to a certain audience or getting comments from a certain user, but what the community is asking in connection itself.
Let us take a look on a typical social network page. What the reader gets is a combined newsfeed from different sources. In a Google+ group about Lego mindstorms, he gets blogposts from different Lego mindstorms blogs, he gets some videos and photos. All the content is ordered chronological. That means a Social network group is the ideal place for a community to present themself to the public. In theory it is possible to get access to the content without using a social network. For example by entering a keyword into google and search for a certain blog. But then the content is isolated. A certain blogposts is not connected to a similar podcast. This is not desired by the community and not wanted by the user.
The concept of a social network and aggregated content has a large disadvantages. It results into information overload. It is very easy to create an information stream which contains to much information from to much sources. It is important to know, that the content on the left side in the image was not created by a single newspaper or a single blogger, but it contains the content of different bloggers who doesn't know each other. The resulting RSS feed is more powerful than a normal feed from a single blog. Powerful means, that it contains to much details and a normal user can't filter the information.
Let us describe the situation a user sees Facebook the first time. The common behavior is, that the user is impressed. He gets all the information he needs and the feed is updated continuously. That means, a social network is much better than a normal internet. In contrast to a forum it connects different websites and allows community building. The big problem of social networks is, that most user are the victim of the information. They get high quality information and this makes them angry, fearful and panic.
Sometimes the emotional reaction of Facebook users is located within Facebook. But the same effect is visible on websites like planet gnome. If a user scrolls through the latest news he can become angry too. So it has nothing to do with a certain social network but information overload is the result of content aggregation. If highquality content from seperate websites are mixed into a single stream the user will become a victim of the content.
One possible answer is to avoid any kind of social networks and use a normal fulltext search engine. This strategy helps to reduce the information overload problem. The user gets only information he has asked before, and is in control of the filter. A second option is to improve social networks with a different filter mechanism which allows the user better to decide which content he needs and which not.
playlist
The good news is, that content aggregation can be reduced to a simple question: what is in the playlist? A playlist is a textfile which contains URLs to external websites. It contains of a date, a URL and a tag. Such a list can be small or it can be larger.
What social networks and content aggregators are doing has to do with creating and updating such playlists. The result is rendered on the screen and the user sees a preview image. Because content aggregation and producing a playlist is the same the task can be simplified to the problem of how to create a URL list.
Suppose the resulting URL list has 1000 entries contains of 40kb. The good news is, that apart from this simple list nothing else is needed for a social network. If the URL list is not available the content aggregation has failed, and the user has to search manual for the blogs and textfile.
A lot of technologies are available to edit 40kb large textfiles. The simplest one is a texteditor. A more advanced technique is a Excel spreadsheet. The most advanced technology I'm aware of it to edit a 40kb textfile is a wiki. That means, the textfile is uploaded to a wiki and different users can make edits at the list in realtime. No current social network today is using a wiki system to create URL lists. What Facebook and Google+ are using is an in transparent voting system (the famous like button), they are using admins which can ban users from a group and they using mythical algorithm which will add new URLs to the list if a certain trigger is active. Especially the last mentioned technique to add with a random generator new URLs to the playlist will result into information overload. If the user can't explain why he sees a certain picture on the screen he is not in control of the situation. He was fooled by the Facebook stream and a troll in the background laughs about the victim.
To describe the phenomena from an abstract perspective the first step is to recognize that a social network contains of playlists which are containing URLs to content. The second step is to ask how the lists are created and especially how a group of people can generate such playlists.
The advantage of wiki for editing URL playlists is, that the entire process is visible. Each edit is stored in the version history. And if the URL list contains some weired links it can be traced back who exactly has added the linkspam. If the process of URL curation is made transparent we can discuss how the workflow is to creating such a list. Should an upvote/downvote system be integrated? Should the user has the right to comment a link? Can the list be modified with bots? And if yes, what is the sourcecode of the bot who adds URLs?
These question can't be answered in existing social networks like Google+ or Facebook. Because they are denying that a uRL playlist is in the system available and they doesn't provide transparency who the list was made. The only way to improve the situation is a wiki. If a wiki is used for creating the playlist, it is possbiel to argue with admins in the wiki what they are doing.
In theory, even an edit war around a URL playlist is possible. If two admis have different opinions they will revert the edit of each other. The good news is, that it's known from other WIki projects, that even edit wars doesn't hurt the overall structure. Instead, edit wars have the tendency to escalate inside the wiki. Which means, that the issue is put to the discussion page and a higher ranked admin will ban one the users.

May 08, 2019

What's wrong with Planet gnome?


Content aggregation was realized on the http://planet.gnome.org/ website with the help of the Planet software. In the backend, different RSS streams are combined into one, and the planet gnome websites is rendering the result on the screen. On the first look, the website looks straight forward, because the user gets under one URL all the news from different blogs. But something is wrong with planet gnome. It looks very similar to the Google+ social network. The problem is that the user gets all the information combined on a single place, is asked for reading all the content but it is too much for him.
A normal single blog can be consumed without too much problem. The user sees a certain amount of information and if he is no longer interested he can close the tab. The problem with Planet Gnome is, that if the user will close the tab, he can miss all the important news. But it's not possible for a normal untrained user to get an overview over the news. The reason is, that the articles were written by a decentralized community which is working independend from each other. That means, planet gnome presents a shuffle of all the information. On the first look, this is a great idea, but it overwhelms the user.
The problem of aggregated information will become more visible if the domain is much larger and presents apart from only LInux related information much more content. The well known Google+ was an example. Google+ is some kind of improved Planet gnome. The user finds normal information from the open Source community but also information about sport, entertainment and much more.
Can we slow down the idea of a content aggregator? The index.html document from the project can be downloaded with the wget utility and contains 252 kb which is a lot. It contains of dynamic generated content which is displayed with a CSS stylesheet. The website is curated on the fly, that means, the user sees always the latest news and is well informed. This kind of websites produce a high workload for the enduser. It can be compared if somebody becomes 100 journals at the same time on his desk and should them read all in under an hour. Somebody may argue, that this is the idea of news aggregator to produce an information overload, but i think the technology can be improved a bit.
There are two possible modifications, the first one is to curate the content by hand. Instead of deliver the complete content stream a human curator selects the relevant information. The second step is to overcome the planet software and use a mediawiki installation for displaying the content. A mediawiki has the advantage that the user isn't forced into a passive role but can change the content on the website. That means, if he doesn't like a certain headline, he can login with an account and remove the article. I believe, that a mediawiki can display aggregated content more easier to read. The difference is, that the content creation is not done in the background by advanced planet scripts but by human users, and the reader can become the curator if he likes. Humans like the idea, if they are not forced in a passive role but have control over a situation.
The current planet Gnome website, but also the former Google+ social network have treated the reader as a victim. They have delivered all the aggregated content to him but didn't provided space for experienced based learning.
I would like to explain the idea of a news wiki a bit. The RSS newsstream from the planet gnome project is a nice starting point for connecting different blogs into a larger system but it is only the first step. A group of people has to take the stream as input and create wiki pages for each article. Let me give an example. The headlines today were:
1. “Why crowdfunding freely licensed documentation is illegal in Finland” -> blogspot.com
2. “GDA 5.2.9 Released” -> gnome.org
3. “GTK 3.96.0” -> gtk.org
All the headlines are produced by the syndicated RSS stream. The task of the user is to convert each headline into a seperate wiki page. That means, the crowdfunding article gets a page and at the end, the link to the original website is added. The second GDA article gets a wiki page and the link to the gnome.org website is added.
This kind of manual wiki creation sounds complicated but it is not that hard. If the articles are in the wiki system, the RSS won't delivered to the user, but he gets the easy to read wiki-website. If he likes to provide feedback he can write it to the talk page. And if he want's to improve typo mistakes he can edit each page direct. The mediawiki system allows it to detect spam and vandalism quickly, this principle is known from the Wikipedia website and it is working for a news website as well.
Each day, around 3 headlines are published at planet gnome, in a years this would be equal to 3*365=1095 wiki pages which have to be created from scratch. In a wiki the content would like much cleaner in comparison to the current planet gnome website. And it's even possible to provide a RSS stream of all the articles.