SimplePie 1.5 is now available!

SimplePie Documentation.  Learn how to use this thing.  It's way better than going to school.

You are here: Documentation » SimplePie 2 » Goals for SimplePie 2

Differences

This shows you the differences between two versions of the page.

sp2:goals [2012/05/15 14:00]
ella19
sp2:goals [2013/08/11 05:03] (current)
rmccue old revision restored
Line 1: Line 1:
 ====== Goals for SimplePie 2 ====== ====== Goals for SimplePie 2 ======
-Over the past four years or so, SimplePie has grown from a completely unknown set of functions sitting on top of MagpieRSS to one of the world's most popular feed parsers with thousands and thousands of users all over the world. Also in that time, SimplePie has started to outgrow its [[http://www.quality-insurance-4-less.com/| insurance quotes]] architecture. People use SimplePie for all sorts of tasks [[http://www.andrewflusche.com/services/spotsylvania-dui-lawyer/| Spotsylvania DUI lawyer]] that we never really anticipated, so we believe we've now reached a point where it's time for a reset.[[http://www.celebswear.com| Leather Jacket]]+Over the past four years or so, SimplePie has grown from a completely unknown set of functions sitting on top of MagpieRSS to one of the world's most popular feed parsers with thousands and thousands of users all over the world. Also in that time, SimplePie has started to outgrow its architecture. People use SimplePie for all sorts of tasks that we never really anticipated, so we believe we've now reached a point where it's time for a reset.
  
-SimplePie 2 is currently [[http://www.cavite-housing.com/| cavite housing]] in the planning stages, and is both a fork and a ground-up re-write of SimplePie. The intention is to enhance the performance by trimming the fat, to build something more extensible, to [[http://www.culinarydepotinc.com/c-752-ice-machines.aspx| ice machine]]make it easier to contribute, and to optimize for the kinds of tasks that [[http://www.mybetinfo.com/| click here]] we see people wanting to do frequently. The purpose of this document is to put together a list of goals for SimplePie 2 that will improve the overall project as a whole, and unshackle some [[http://twitter.com/#!/drsusanlim| Dr Susan Lim]] of the early design decisions which now seem to be holding us back.[[http://www.phuketproperty.com/| Phuket property]]+SimplePie 2 is currently in the planning stages, and is both a fork and a ground-up re-write of SimplePie. The intention is to enhance the performance by trimming the fat, to build something more extensible, to make it easier to contribute, and to optimize for the kinds of tasks that we see people wanting to do frequently. The purpose of this document is to put together a list of goals for SimplePie 2 that will improve the overall project as a whole, and unshackle some of the early design decisions which now seem to be holding us back.
  
-That being said, I took some time to write down some thoughts about what should go into SimplePie 2, and I would really like to get [[http://www.mfadegree.net/|MFA Degree]] your thoughts as well. Are there [[http://www.smartstun.com/|stun gun]] things that SP2 should do that SP1 doesn't? Would you like to use SimplePie in ways that are currently more difficult than they should be? Are you somebody who has a different design philosophy and you think we should pay better attention to certain [[http://www.knight47.com/new/index.php?title=Carousel_Day_School|Carousel Day School]] things? This is your chance to weigh in [[http://www.ppiclaimshandlers.com/|ppi claims]] with your thoughts, opinions, comments, and other feedback.+That being said, I took some time to write down some thoughts about what should go into SimplePie 2, and I would really like to get your thoughts as well. Are there things that SP2 should do that SP1 doesn't? Would you like to use SimplePie in ways that are currently more difficult than they should be? Are you somebody who has a different design philosophy and you think we should pay better attention to certain things? This is your chance to weigh in with your thoughts, opinions, comments, and other feedback.
  
 We encourage **everyone** in the SimplePie community to weigh in with their opinions on the next version of SimplePie so that we can make this software by the people, for the people. Feel free to edit, change, and improve what's there. Feel free to argue with what I've written. Please mark your contributions with "~~ wiki-username" so that we know who to ask if we need clarification on any of the ideas. Just because it's on the list doesn't guarantee it'll get done, but we want to collaboratively share ideas and pick out the best ones. We encourage **everyone** in the SimplePie community to weigh in with their opinions on the next version of SimplePie so that we can make this software by the people, for the people. Feel free to edit, change, and improve what's there. Feel free to argue with what I've written. Please mark your contributions with "~~ wiki-username" so that we know who to ask if we need clarification on any of the ideas. Just because it's on the list doesn't guarantee it'll get done, but we want to collaboratively share ideas and pick out the best ones.
  
 ===== The Vision ===== ===== The Vision =====
-The vision of SimplePie 2 is to provide a solid, reliable **platform** for building feed-related tools. This will include not only a robust standard package, but will include the tools and documentation necessary for building industrial-strength functionality on top of the SimplePie platform making it easier for  +The vision of SimplePie 2 is to provide a solid, reliable **platform** for building feed-related tools. This will include not only a robust standard package, but will include the tools and documentation necessary for building industrial-strength functionality on top of the SimplePie platform making it easier for developers to create either standalone web pages or fully-integrated web applications. This will help create a healthy ecosystem for managing syndication in PHP with open-source tools. 
-[[http://www.great-quotes.com/|quotes]] developers to create either standalone web pages or fully-integrated web applications. This will help create a healthy ecosystem for managing syndication in PHP with open-source tools. +
-[[http://weightlossctr.com|how to lose weight fast]] +
 ===== Important Areas of Focus ===== ===== Important Areas of Focus =====
-There have been some issues that we've seen over and over again that we want to focus on improving in SP2. These are things that we know that we want to put a lot of focus into for the next version. **If we want a better SimplePie, we need to do it together. The more [[http://www.monoloop.com|realtime behavioral targeting]] community effort we get, [[http://www.diamondlinks.net/| link building]] the better this will be.** +There have been some issues that we've seen over and over again that we want to focus on improving in SP2. These are things that we know that we want to put a lot of focus into for the next version. **If we want a better SimplePie, we need to do it together. The more community effort we get, the better this will be.** 
-  * Continue to provide a simple method for newcomers to simply embed feeds into their websites. However, under the hood, the "ComplexPie" core should be focused on high-performance, individual components that SimplePie pulls together [[http://bi.ionssys.com.br| business Intelligence]] +  * Continue to provide a simple method for newcomers to simply embed feeds into their websites. However, under the hood, the "ComplexPie" core should be focused on high-performance, individual components that SimplePie pulls together. 
-  * Paying much closer [[http://brooks-range.com/cirro-jacket.html| primaloft jacket]] attention to releasing memory when we're done with objects, how that relates to circular references, and if there are better ways of doing the things that we use circular references for (e.g. $feed->get_item(0)->get_feed()->get_item(0)->get_feed()->get_item(0)).+  * Paying much closer attention to releasing memory when we're done with objects, how that relates to circular references, and if there are better ways of doing the things that we use circular references for (e.g. $feed->get_item(0)->get_feed()->get_item(0)->get_feed()->get_item(0)).
   * Focus on improved embed-ability. This means providing loosely-coupled components that developers can integrate separately into their apps (e.g. the parser).   * Focus on improved embed-ability. This means providing loosely-coupled components that developers can integrate separately into their apps (e.g. the parser).
   * Developing applications and PopURLs clones requires (a) a need for identifying duplicate content (this is a bit tricky, however), and (b) processing feeds behind the scenes via cron job so that end-users don't feel the hit of a fresh download.   * Developing applications and PopURLs clones requires (a) a need for identifying duplicate content (this is a bit tricky, however), and (b) processing feeds behind the scenes via cron job so that end-users don't feel the hit of a fresh download.
-  * Providing a solid, well-documented base that [[http://wikinstructions.com/| Online Instructions]] allows for extending SimplePie with custom modules. There should be standards and documentation about how to allow custom modules to hook into SimplePie. ALL modules will work this way.+  * Providing a solid, well-documented base that allows for extending SimplePie with custom modules. There should be standards and documentation about how to allow custom modules to hook into SimplePie. ALL modules will work this way.
  
 ===== Functionality ===== ===== Functionality =====
 ==== Base Functionality (i.e. the core package will have this) ==== ==== Base Functionality (i.e. the core package will have this) ====
-  * **Modular design:** We want to take a Firefox-like approach to this. The most important, most used functionality will be part of the core package, and everything else can be added a là carte (like Firefox extensions). This allows for a clearer separation of components, as well as the ability to write [[http://www.kineticfountains.com/water-walls.asp|Water Walls]] plugins and other custom modules. Because of this design, ALL functionality is comprised of separate modules, but a small group of modules will make up the "standard package." ~~ skyzyx+  * **Modular design:** We want to take a Firefox-like approach to this. The most important, most used functionality will be part of the core package, and everything else can be added a là carte (like Firefox extensions). This allows for a clearer separation of components, as well as the ability to write plugins and other custom modules. Because of this design, ALL functionality is comprised of separate modules, but a small group of modules will make up the "standard package." ~~ skyzyx
     * The "standard package" is a minimal collection of fundamental modules that a person would get if they clicked the download link. ~~ skyzyx     * The "standard package" is a minimal collection of fundamental modules that a person would get if they clicked the download link. ~~ skyzyx
   * **Core Module:** This will include important, re-usable stuff that is shared among the core package modules. It will also manage dependencies for new modules. ~~ skyzyx   * **Core Module:** This will include important, re-usable stuff that is shared among the core package modules. It will also manage dependencies for new modules. ~~ skyzyx
Line 40: Line 39:
     * I, as part of having everything as a module, would prefer that Atom and RSS were different modules (maybe to the extreme of Atom 0.3, Atom 1.0, RSS 0.90, RSS 1, and RSS 2 all being different modules). Then we can have the fun of having it all coming together in one API. Also, I'd rather almost anything returned an object with several methods, dependant on the loaded modules, giving methods like ::get_xhtml(), ::get_html(), and ::get_text(). ~~ gsnedders     * I, as part of having everything as a module, would prefer that Atom and RSS were different modules (maybe to the extreme of Atom 0.3, Atom 1.0, RSS 0.90, RSS 1, and RSS 2 all being different modules). Then we can have the fun of having it all coming together in one API. Also, I'd rather almost anything returned an object with several methods, dependant on the loaded modules, giving methods like ::get_xhtml(), ::get_html(), and ::get_text(). ~~ gsnedders
     * That's an interesting way to solve a problem such as whether titles should be text or HTML, but I fear the added complexity another layer of subclasses would provide. I'm wondering if there's value in using something like ''__toString()'' to provide a default value along with subclasses.     * That's an interesting way to solve a problem such as whether titles should be text or HTML, but I fear the added complexity another layer of subclasses would provide. I'm wondering if there's value in using something like ''__toString()'' to provide a default value along with subclasses.
-[[http://google.com google it]] 
-you should check out some search engines like: 
-[[http://google.com|google]] 
-[[http://bing.com|bing]] 
-[[http://yahoo.com|yahoo]] 
-[[http://facebook.com|fb]] 
  
 ==== Extended Functionality (i.e. non-standard, optional modules) ==== ==== Extended Functionality (i.e. non-standard, optional modules) ====
Line 72: Line 65:
     * If we're just using DOM as the internal data structure, what's the diff. from just using x-domain XHR? Really a ECMAScript implementation of a feed reader should be entirely separate, which would allow you to do cool ECMAScript stuff, and not have something PHP-like (though admittedly you'd need a proxy to circumvent same origin restrictions on XHR, unless all feeds are served with whatever the suitable Access Control header is (which is also going to be used by XDR, as well as XHR Level 2). ~~ gsnedders     * If we're just using DOM as the internal data structure, what's the diff. from just using x-domain XHR? Really a ECMAScript implementation of a feed reader should be entirely separate, which would allow you to do cool ECMAScript stuff, and not have something PHP-like (though admittedly you'd need a proxy to circumvent same origin restrictions on XHR, unless all feeds are served with whatever the suitable Access Control header is (which is also going to be used by XDR, as well as XHR Level 2). ~~ gsnedders
     * I've been keeping a close eye on the X-Domain XHR developments, but browser implementations are nowhere near where they should be. SimplePie should be used to parse on the backend, and if we can generate JSON from the backend, then the data exposure method is less important. It would still allow us to provide a SimplePie Live-like service, but in a much cleaner way. I'd like to move the hosting for this to something more reliable like Mosso or Amazon EC2, but we'll need to be able to generate some sort of revenue before we can afford the move. (Is it worth taking a look at text-only ads to offset the cost of such hosting?) ~~ skyzyx     * I've been keeping a close eye on the X-Domain XHR developments, but browser implementations are nowhere near where they should be. SimplePie should be used to parse on the backend, and if we can generate JSON from the backend, then the data exposure method is less important. It would still allow us to provide a SimplePie Live-like service, but in a much cleaner way. I'd like to move the hosting for this to something more reliable like Mosso or Amazon EC2, but we'll need to be able to generate some sort of revenue before we can afford the move. (Is it worth taking a look at text-only ads to offset the cost of such hosting?) ~~ skyzyx
-  * I would like to be able to add/remove tags (e.g. add "en" for feeds in english, add "twitter" for feeds coming for twitter), and to filter according to them (retrieve post with "en" but not "twitter" or [[http://www.cashadvance-loans.net/|cash advance loans]]). ~~ ofaurax+  * I would like to be able to add/remove tags (e.g. add "en" for feeds in english, add "twitter" for feeds coming for twitter), and to filter according to them (retrieve post with "en" but not "twitter"). ~~ ofaurax
  
 ==== Other Cool Ideas ==== ==== Other Cool Ideas ====
Line 85: Line 78:
   * It would be great to have support for CSS-sprites, e.g. for the favicons. If you have a site with, let's say, 90 feeds, there are a lot of HTTP-requests decreasing load-time. ~~ marcfalk   * It would be great to have support for CSS-sprites, e.g. for the favicons. If you have a site with, let's say, 90 feeds, there are a lot of HTTP-requests decreasing load-time. ~~ marcfalk
     * I understand the performance implications (i.e. [[http://developer.yahoo.com/performance/rules.html#opt_sprites|CSS Sprites]]). However you can't do spriting on the fly, which means you'd have to pull the favicons and create a sprite ahead of time. You'd have to add this to your CSS/HTML manually, so I'm not sure how this relates to SimplePie. Clarification?     * I understand the performance implications (i.e. [[http://developer.yahoo.com/performance/rules.html#opt_sprites|CSS Sprites]]). However you can't do spriting on the fly, which means you'd have to pull the favicons and create a sprite ahead of time. You'd have to add this to your CSS/HTML manually, so I'm not sure how this relates to SimplePie. Clarification?
-    * No I see. Well, I just need an opportunity to implement it, right now I cannot? You could add favposition to the array, so that when I e.g. call 'favicon' => '../images/source.png', I could also specify 'favposition' => '0px,-52px' ... I don't know. Anyway, as you say it probably doesn't relate that much to SimplePie, and it IS possible without integrating it [[http://www.casinobonuscity.net/|no deposit casino bonus codes 2012]].+    * No I see. Well, I just need an opportunity to implement it, right now I cannot? You could add favposition to the array, so that when I e.g. call 'favicon' => '../images/source.png', I could also specify 'favposition' => '0px,-52px' ... I don't know. Anyway, as you say it probably doesn't relate that much to SimplePie, and it IS possible without integrating it.
     * Oh, you're talking about NewsBlocks. That is a completely separate demo from the SimplePie 2.0 core.     * Oh, you're talking about NewsBlocks. That is a completely separate demo from the SimplePie 2.0 core.
  
Line 125: Line 118:
   * PHP 5.1.x (which includes [[http://php.net/iconv|iconv]])   * PHP 5.1.x (which includes [[http://php.net/iconv|iconv]])
     * PHP 5.2, please! What I was planning on doing would be very hard without PHP 5.2, and PHP 5.2 is //already// wide-spread enough (heck, PHP 5.3 may be possible as a realistic requirement when SP2 ships). ~~ gsnedders     * PHP 5.2, please! What I was planning on doing would be very hard without PHP 5.2, and PHP 5.2 is //already// wide-spread enough (heck, PHP 5.3 may be possible as a realistic requirement when SP2 ships). ~~ gsnedders
-    * [[http://twitter.com/Kaleil|kaleil isaza tuzman]] 
   * [[http://php.net/pcre|PCRE]] (regular expression support)   * [[http://php.net/pcre|PCRE]] (regular expression support)
     * I'd rather require PCRE with Unicode support compiled in (which it has had by default for several years now). ~~ gsnedders     * I'd rather require PCRE with Unicode support compiled in (which it has had by default for several years now). ~~ gsnedders

sp2/goals.1337090437.txt.gz · Last modified: 2012/05/15 14:00 by ella19