Project Super Glyph

Multiple Dynamic Source content handler and filter system


Akutra-Ramses Atenosis Cea
Designer and Developer


University of Advancing Technology

May 2015 – Current



Abstract

This project will put forth to design and develop a programmatic tool for handling multiple dynamic and static sources not limited to yet primarily idealized as internet delivered content. Content will be prepared for programmatically convenient design. The objective is to provision and enable the site developer to swiftly present content (rapid site development) in various creative ways such as pages, rollers, content windows and bars. In today’s world, content is available from many source and in many forms, this w ill be a tool to enable the creation of easy and quick yet flexibly dynamic content pages that stream from both the massive content made available as well as designer created content streams for quick updating.


Keywords

Internet, multiple, content, context, sensitive, formatting, filter, sift, sorting, collating, paging, organization, quick, web, development, architecture


Background Information and Prior Art

Content streams are available in many forms on the internet. Often these content streams allow user defined content such as blogs, social media and video (i.e. YouTube). Other content pages can stream content in the likes of news and reviews. Typically these ‘tools’ have user pages as well as searchable content available to the general web surfer. The vastness of this space is what often may cause us to feel as though ‘everything’ is on the internet (Conger, 2011).

Having spent some time in developing internet sites for various personal and professional reasons, I always seem to need to create several ‘content’ pages that may include content from other places. These pages at times need dynamic updating and/or the site administrator would find dynamic content an advantageous idea. Considering my time developing these pages has left me pondering how great it would be to have an easily programmable dynamic content system.

Content feeds are actually quite a popular an item, yet I know of very few people who utilize this to the fullest. Content feeds are frequently available from many sites including news and blog sites (Duffy, 2014). Google has long created dynamic content pages when one “Googles anything at all” which includes the news (Google, Inc., n.d.). Anyone can instantly subscribe to the feed and dynamically receive content based upon the search. While this is a great service, it still takes a bit of work to include such content into a web site and organize it according to the designs of the web site.

Most social media sites and blogs tools have programmatic methods of attaining content. The means can be by way of HTTP, JavaScript, PHP and others. In this way, an internet developer can design their web site to include public content posted to the media either by themselves or other available public content. A tedious scenario might include trying to programmatically include content from more than one source. An example would be that a famous person might have a public social media site like Facebook. The web site developer may desire to include content on the famous person (Facebook, n.d.) from that as well as news feeds, YouTube, etc. Here the web site manager may be interested in very specific content such as from a particular day or event. The objective of this tool would be to make such a process configurable, sortable and customizable.

While searching for ideas similar to this concept I located Yahoo Pipes. There are many “feed” tools that allow filters and keywords, etc. Most usually, they are limited in scope and/or capability. They often only work on RSS feeds or do not offer a full set of feed reorganization tools to be as useful to web developers as the idea I am proposing. Yahoo pipes is perhaps closest to what I was thinking. It allows full customization of multiple content pages (Yahoo! Inc., n.d.). However, this is generally designed to “create” a web page for output content rather than programmatically within a web page.

The sheer amount of content available can be astronomical. Many browsers simply decide not to view all the content “out there” (Business.com, 2014) or they may be overwhelmed by even trying. (Newton, 2015) This leaves ample room for web sites containing well-formatted and selected content to be interesting to the casual browser. A webmaster would be keen to take advantage of that idea and present their visitors with subject appropriate content and even ads (which could be done with this tool).


Project Description and Innovation Claim

The web designer would define a list of input/downloadable content sources from the internet or a specific local file. Content could be customized to show specific sorts of content based upon the selected parameters. This idea would be implemented in a dynamic link-library or other form of programmatically accessible library object. Selectable input “content” streams configured by the developer of a web site or other programmatic content can be “streamed” to an HTML/ASP.NET (and/or other internet design archetype) content presentation page. Specifics of the content will be presented in definable specific selectable parts. Several parameters will be programmatically available to the web developer to allow various selectivity, organization and presentation of the content.

This application has a wide variety of possibilities. Its uses include such things as rapid site development, context sensitive advertisements, dynamic specific content for web sites and blogs, dynamic “headlines” and easily updatable content. The primary application target of this tool would be for web developers and web writers.


Usage Scenario

While writing a web site, I would find it very advantageous to be able to quickly and programmatically request certain content. For instance, within my web site I could desire to have specific content concerning a particular event from a particular day all the while showing only one page at a time. A simple library call similar to this would ideally do this:

// Filter in the contents field, by the keyword money.
SIPSuperGlyph.QueryFilter KeywordQuery = new SIPSuperGlyph.QueryFilter("Money");
RSSFeedObj.addProcessor(KeywordQuery);

// Get Page 2 of the content from the date 05.04.2015
SIPSuperGlyph.BloggerContentSource RSSFeedObj = new SIPSuperGlyph.BloggerContentSource(@"http://someblog.blogspot.com/feeds/posts/default");
list = RSSFeedObj.LoadContent();

Say someone would like to setup a fan page of a movie. Utilizing our product the web code could easily make a page that looks like the following:


Keep in mind the content could be dynamic or specified in a static xml file so the videos could change according to many available parameters like popularity or age without updating the code on the web site. Notice on the left is a small image ad. This too could be in a dynamic content to allow for variation and/or updating the ads when it has run its course.


Evaluation Criteria

A criteria based software evaluation method was utilized. This methodology is based upon the ISO/IEC 9126-1 Software Engineering product quality specification. The primary criteria was usability, sustainability and maintainability. For each criteria the project is checked to determine if it exhibits various qualities and characteristics. The more qualities it exhibits the more it is rated in a specific area. “Criteria-based assessment is a quantitative assessment of the software in terms of sustainability, maintainability, and usability” The following rubric was utilized for the specifics of this criteria.


The project will be successful if it provides an easy to utilize method of retrieving content from multiple internet content sources. Besides retrieval of the data it should be easily formatted as well as the means to retrieve specific partial content of the stream data such as the middle two records. The output of which should be flexible and easy to utilize within an internet software development environment such as a list of ‘objects’ with easy access to field data.


Project Logic Model

GOAL: To create a swift to implement content retrieval and handling system for web site developers with advanced features and characteristics for rapid content development and updating.

  1. Objective: Define and develop input source module
    1. Consider ideal and initial internet source content stream modules (RSS/YouTube/Twitter/Blog, etc.)
    2. Define a flexible input structure
    3. Develop input module for content retrieval
    4. Test input verify flexibility with multi-input content feeds
  2. Objective: Define and develop content organization module
    1. Define desired parameters (sort, selectivity, page, sift, filter, reorder, etc.)
    2. Develop initial basic content organization/filter modules
    3. Test initial filter/organization modules
  3. Objective: Define and develop library interface
    1. Define desired access structure
    2. Develop wrapper ASP.NET access DLL modules for ASP based web sites
    3. Develop Simple test ASP app
    4. Test and Verify, multiple dynamic content functionality
    5. Resolve any remaining issues
  4. Objective: Define and develop basic access example C# ASP .NET
    1. Develop basic HTML/ASP.NET example application
    2. Test and verify functionality
  5. Objective: Package and prepare for distribution
    1. Define installation parameters
    2. Develop instructions, ReadMe and parameters
    3. Organize Package
    4. Develop installation basics
    5. Verify installation package

Prototype Implementation

Project SuperGlyph consists of a .NET Dynamic Link Library and runs in an ASP environment. A web site developer would develop his application in an ASP.NET environment. A developer may add the functionality of SuperGlyph to their project by referencing the library file within their project as pictured.



Methods and Classes are accessible in the usual way that a library is added to the Visual Studio ASP.NET environment typically by either by invoking the ‘using’ keyword or by elaborating on the class source library objects.



Evaluation

Based upon the evaluation criteria, Project Super Glyph does everything it is supposed to do quickly and smoothly. The code to implement its functionality offers both simplicity and a powerful feature base. The documentation is complete and provides everything necessary to develop with the specified tool. The project is forward thinking and is likely to have future application use, its writing style provides easy future expansion and adaptability to the evolving internet technology it works with.


Project Completion Assessment

The Project Logic Models objectives:

“GOAL: To create a swift to implement content retrieval and handling system for web site developers with advanced features and characteristics for rapid content development and updating.”

The DLL meets the objective goal because it is straightforward in implementation and scalable swift to implement single or multiple content solutions. The DLL allows for far more rapid development as several forms of content can be quickly implemented (and even changed in the case of XML/Blogger/User Channel content) allowing the ASP developer more time on CSS and user interface.

  1. Objective: Define and develop input source module
    1. The input source modules in the meet all the original development ideas for Blogger/Google/Twitter/YouTube source
  2. Objective: Define and develop content organization module
    1. Utilizing the ‘ContentStream’ object multiple sources can be combined accessed and handled.
  3. Objective: Define and develop library interface
    1. The project is implemented into a Dynamic Link Library for easy access via ASP.NET
  4. Objective: Define and develop basic access example C# ASP .NET
    1. Several Test pages are written and implemented in the test project.
  5. Objective: Package and prepare for distribution
    1. The documentation is basic, yet covers all necessary aspects while the installation is simple enough it does not need an installer.

The objective of this project was to assist in web site rapid content development for a web developer and I believe it does that well. It is very easy to add content to a blog and then format it via ASP to any web page. On the other hand the web page must utilize the ASP environment so it is not for all situations. It is highly possible to redevelop it into a Java application library or something else in the future so as to enable additional options. As an ASP developer, I really like the idea of being able to spend more time on my CSS and interface design than questions like, ‘how do I get that content to go there without writing a whole lot of code?’

While it is very adaptive at this point and should the content source technologies change it will usually still read the content. There is always the possibility that suddenly Blogger will utilize an entirely new access interface due to Google redevelopment and thereby causing it to cease to function. Should a developer get into such a situation they could always ‘extend’ the ContentSource object and write their own ‘ContentSource’ object while utilizing the rest of the infrastructure. Obviously, I would plan a redesign as well at that point.

There is actually a lot that can be done with it, I could literally spend years on this project with all the various content sources, processes and content details. For now it does what I set out to do, and it is expandable. This project enables future web site development and updating when concerned with the actual content to be quick, powerful and even dare I say simplistic.


Appendix A

The following is another example of what this might do. The contents of http://spidersilk.leapmaker.com/reviews.aspx are actually updated and maintained on another page ( http://spidersilkreviews.blogspot.com/ ). When visiting the “reviews” page the content is actually instantly “streamed” from the blogger site. In this way the reviews page can be updated quickly and easily any time even by multiple authors.



Appendix B

The following is video on how to build a Yahoo Pipe and explains what it does. https://www.youtube.com/watch?v=J3tS_DkmbVA


Appendix C

The following is a document on the criteria-based assessment utilized for evaluation. http://software.ac.uk/sites/default/files/SSI-SoftwareEvaluationCriteria.pdf


Appendix D

The following is an example criteria based assessment response:

Hi Akutra,

I have evaluated your SIP project and found it to be pretty interesting. Below is my evaluation of your project based on the applicable criteria in the pdf you supplied.

Usability - The program is easy to use and understand both code and content wise. The most recent news is pulled from the designated websites without any issues and loads up fairly quickly. The numerous comments within the code makes learning how every function works while also making it easy to make changes. Super Glyphs current documentations does a really good job of explaining the programs purpose and how to use the two DLL formats.

Sustainability and Maintainability – The code shows that future content is applicable and can be easily implemented and tested due to all the exception code within the program. Google Chrome, Firefox, and internet explorer all work with the program without any issues. All authentications seem to be in order for grabbing information from twitter (oAuthentication).

Overall Super Glyph does everything it is supposed to do quickly and smoothly while still being easy to understand code wise. The codes simplicity also allows for easy updates to allow the user to add various sites to pull RSS content from. The documentation gives plenty of information on how the various functions work and what they do and also gives the necessary information for getting in contact with the developer for troubleshooting.

Good luck with your SIP,

Michael Duque



References

Business.com. (2014, December 31). Working with RSS Feeds: Maximizing Your Content Stream. Retrieved 05/24/2015 from Business 2 Community: http://www.business2community.com/content-marketing/working-rss-feeds-maximizing-content-stream-01108577

Conger, C. (2011, March 29). Is All of Human Knowledge on the Internet? Retrieved 05/24/2015 from Discovery News: http://news.discovery.com/tech/is-all-of-human-knowledge-on-the-internet-110329.htm

Duffy, J. (2014, May 19). Get Organized: Streamline Your News Feeds. Retrieved 05/24/2015 from PC Magazine: http://www.pcmag.com/article2/0,2817,2458165,00.asp

Facebook. (n.d.). Using the Graph API. Retrieved 05/24/2015 from Developers at Facebook: https://developers.facebook.com/docs/graph-api/using-graph-api/v2.3

Google, Inc. (n.d.). Feed 101. Retrieved 05/24/2015 from Support.Google.com: https://support.google.com/feedburner/answer/79408?hl=en

Jackson Crouch and Baxter, M. S. (2011, November). Software Evaluation: Criteria-based Assessment. Retrieved 12/19/2015 from ac.uk: http://software.ac.uk/sites/default/files/SSI-SoftwareEvaluationCriteria.pdf

Newton, J. (2015, May 23). Creating order from content chaos. Retrieved 05/24/2015 from IT Pro Portal: http://www.itproportal.com/2015/05/23/creating-order-from-content-chaos/

Yahoo! Inc. (n.d.). Pipes. Retrieved 05/24/2015 from Yahoo Pipes: http://pipes.yahoo.com/pipes/