7 ms·
CommaFeed - Open-source bloat-free Google Reader clone
- shared4you 13y agoBah, the landing page forces me to login. No, I won't sign-up. I want to know what features do you offer, with some screenshots to get a feel of it.
- tpetrina 13y agoAgree, I don't want to give my personal info to any site nor I wish to remember yet another un/pw combination.
- dazzawazza 13y agoAgreed, I'd like to see a 'public' login with a few categories of RSS feeds which I can browse and play with (read only is fine).
- crapet 13y agoTry demo/demo
- sauce71 13y agoUnable to get write lock on 'subscribe' method for: com.commafeed.backend.services.FeedSubscriptionService Another waste ...
- mfringel 13y agoAll I can tell is that you've coded up a login page.
- jazzex 13y agoSince there aren't any screenshots I don't think I will use this till you fix the landing page. Does anyone have any alternatives that are 'bloat-free' Readers?
- jaggs 13y agoLooks very nice. Couple of points: 1. Error on Google Reader import 2. Agreed with others it does need at least a single screenshot on the front page (or an About page as a demo). 3. It would be nice to offer a default Google Reader CSS file to add to the styling function. But yeah, very nice attempt.
- onli 13y agodemo/demo for login works. And it looks good: Just a rss-reader with a list of feeds to the left and articles on the right, good performance in the demo. jk-navigation. custom css. I'm not exited by it being a java-application (hosting that on my own could be a hassle) and the google reader import doesn't work (invalid grant, error code 400, want the eror message?). Importing the .xml seems to have no effect at all (edit: now it does. just takes some time?). What is the feed-polling strategy? Does it support pubsubhubbub? Will this instance stay active? Good work though! I think i might use this.
- RyanZAG 13y agoWhat's wrong with it being a java app? As it says on the github, create an account on openshift and its just a few easy commands to get it running. OpenJDK is nice and easy to install on most open hosting environments too.
- onli 13y agoMaybe. That is just based on my experience with java stuff, it is always complicated. I agree though that the instructions seem easy enough.
- vidarh 13y agoA lot of us harbour a strong hate of Java due to a decade or more of exposure to abstract factory factories, and obnoxiously slow jvm startup times, and a series of Java applications that are supposed to perform as "native" yet somehow all feel clunky, slow and bloated (Eclipse being the posterchild for all that is wrong with Java...). I actually have a half-baked code generator to use Ruby to generate Java for some Android hobby-projects because I found that less painful and obnoxious than writing the Java directly.
- deelowe 13y agoAre you referring to backend or frontend applications? Java on the backend seems to be very stable and popular. Though I don't have any experience with it personally, my understanding is that it's probably the most popular backend language for web apps in terms of deployment size and complexity.
- Udo 13y agocom.commafeed.frontend.utils.exception.DisplayException: 400 Bad Request { "error" : "invalid_grant" } at com.commafeed.frontend.pages.GoogleImportCallbackPage.<init>(GoogleImportCallbackPage.java:94) at sun.reflect.GeneratedConstructorAccessor187.newInstance(Unknown Source) ...
- garrydanger 13y agoI get the same error. It looks like they need to put the import from google functionality as a background service.
- susi22 13y agoI love the speed an simplicity. All I need for me to be using is to have key mapping vor "<space>, v and o". Is this going to be open sourced? Thanks for showing
- michaelmior 13y agoIt is already open sourced. https://github.com/Athou/commafeed https://github.com/Athou/commafeed
- susi22 13y agoDo you mind providing better instructions to get it going on openshift? I know nothing about this java maven thingy and the build process.
- michaelmior 13y agoThe instructions on the readme detail everything pretty well. You don't need to know anything about Java or Maven. See the section "Deployment on OpenShift."
- gregwebs 13y agotheoldreader.com is a more faithful clone. I have been happy using it since it was announced that Reader is shutting down.
- abrowne 13y agoI like it so far. I think I might prefer this to The Old Reader. Open source is a plus, too. (And thank you for oldest-first! So many forget this.) One question: I uploaded my opml file, and ... nothing happened. It is processing or queued somewhere? (That's fine, I'd just like to know.) I then added a single feed, which worked fine. Edit: I'd switch to this from The Old Reader (and gladly pay) if you make a mobile view.
- abrowne 13y agoLooking again, it only offers to import a Google Reader XML export file, not any OPML, and I was uploading an export from The Old Reader, so it shouldn't have worked anyway.
- desbest 13y agoAn unexpected error occured Unable to get write lock on 'subscribe' method for: com.commafeed.backend.services.FeedSubscriptionService Go back to the previous page or to the home page. com.commafeed.frontend.utils.exception.DisplayException: Unable to get write lock on 'subscribe' method for: com.commafeed.backend.services.FeedSubscriptionService at com.commafeed.frontend.pages.GoogleImportCallbackPage.<init>(GoogleImportCallbackPage.java:94) at sun.reflect.GeneratedConstructorAccessor187.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:525) at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:170) at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:98) at org.apache.wicket.DefaultMapperContext.newPageInstance(DefaultMapperContext.java:137) at org.apache.wicket.core.request.handler.PageProvider.resolvePageInstance(PageProvider.java:278) at org.apache.wicket.core.request.handler.PageProvider.getPageInstance(PageProvider.java:166) at org.apache.wicket.request.handler.render.PageRenderer.getPage(PageRenderer.java:78) at org.apache.wicket.request.handler.render.WebPageRenderer.renderPage(WebPageRenderer.java:94) at org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:244) at org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:165) at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:840) at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64) at org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:254) at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:211) at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:282) at org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:244) at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:188) at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:267) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722) Caused by: javax.ejb.ConcurrentAccessTimeoutException: Unable to get write lock on 'subscribe' method for: com.commafeed.backend.services.FeedSubscriptionService at org.apache.openejb.core.singleton.SingletonContainer.aquireLock(SingletonContainer.java:303) at org.apache.openejb.core.singleton.SingletonContainer._invoke(SingletonContainer.java:222) at org.apache.openejb.core.singleton.SingletonContainer.invoke(SingletonContainer.java:205) at org.apache.openejb.core.ivm.EjbObjectProxyHandler.synchronizedBusinessMethod(EjbObjectProxyHandler.java:256) at org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:251) at org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:85) at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:279) at com.commafeed.backend.services.FeedSubscriptionService$LocalBeanProxy.subscribe(com/commafeed/backend/services/FeedSubscriptionService.java) at com.commafeed.backend.feeds.OPMLImporter.handleOutline(OPMLImporter.java:58) at com.commafeed.backend.feeds.OPMLImporter.importOpml(OPMLImporter.java:34) at com.commafeed.frontend.pages.GoogleImportCallbackPage.<init>(GoogleImportCallbackPage.java:92) ... 37 more
- grakic 13y agoIs this the current practice of building Java REST + AngularJS frontend web application? It looks like there is so much cruft code laying around.
- lenazegher 13y agoThese are some of the features I'd like to see in an RSS reader (I've actually considered trying to learn to program just to build a reader that has these features): * Import a list of feeds from a simple text file. I find it strange readers don't support this. If I have a list of 50 rss feeds, I don't really want to enter them one by one. Importing from a file another reader has exported is great, but I'd like to import from a text file too. * Filters. Per-feed and per-category. Again, perhaps naively, I imagine this would be simple to implement but I don't know of a web-based reader that does this and I usually have to resort to Yahoo Pipes or similar, which is a pretty clunky solution. Filters like: Only show entries containing "bar", or don't show entries containing "foo". Bonus points if I can edit a multi-line list of filters, so if I want to filter for 50 separate words I don't have to enter them one-by-one * Sort-by-newest that works properly across categories. I currently use feedly and somehow in category view posts 12 hours old show up ahead of posts 3 minutes old.
- icebraining 13y agoRegarding (1), many (most?) readers support OPML, and you can use OPMLBuilder[1] and similar tools to create a file from a list of URLs. Unless you're regularly import new lists, it seems a decent solution. [1]: http://reader.feedshow.com/goodies/opml/OPMLBuilder-create-opml-from-rss-list.php http://reader.feedshow.com/goodies/opml/OPMLBuilder-create-o...
- deleted 13y ago[deleted]
- pldrnt 13y agoNewsblur can filter by tag, author and title keyword(s). I only have a few dozen feeds but the popular ones spew so much content that I honestly could not touch them until I switched to NB.
- asb 13y agoThe sources are publicly available, but there is absolutely no mention of a license for the CommaFeed code in the repository. I have filed an issue https://github.com/Athou/commafeed/issues/48 https://github.com/Athou/commafeed/issues/48
- asb 13y agoThe author went with Apache v2: https://github.com/Athou/commafeed/commit/201468c085d18b74e2dbe83b07eaf504bf79b178 https://github.com/Athou/commafeed/commit/201468c085d18b74e2...
- pwnna 13y agoNo way to delete accounts... No keyboard shortcuts.
- Tyr42 13y agoI'd like to have the 'v' for view link, and '?' to show all shortcuts implemented, but it looks pretty good so far.
- webwanderings 13y agoYou advertised this here few days ago with a different name, if I'm not mistaken.
- crapet 13y agoI didn't, but I posted on reddit a fews days ago maybe someone posted it here then.
- gnosis 13y agoI value my privacy too much to use web services that are essentially spyware. What I'm reading or interested in is none of any company's business. This is why I prefer to use a dedicated RSS app on my computer rather than use one on some "free" web service.
- pavel_lishin 13y agoI worry that I'll have my computer off for the weekend, and miss some entries on a frequently updated feed. I guess a good solution to address both of our problems would be to run a hosted Reader clone.
- Groxx 13y agoSome screenshots from some random clicking around by somebody: Adding a feed: http://cl.ly/image/16183s0h0t2e http://cl.ly/image/16183s0h0t2e (clever, it auto-fills the name after a second) (not so clever, the only drop-down option is 'all', and it's not pre-selected) Having added two feeds, I see this: http://cl.ly/image/321t1J2p461p http://cl.ly/image/321t1J2p461p it persists for a while, the spinner in the corner goes away, it persists... toggled 'all', 'unread', etc, no results. Then it pulls in 5 PHD-comics: http://cl.ly/image/1Y0k01310Q04 http://cl.ly/image/1Y0k01310Q04 No XKCD yet, not sure what happened to it. And one comic, with read above, unread below: http://cl.ly/image/3N2d3i2Z0g2b http://cl.ly/image/3N2d3i2Z0g2b Some basic key commands I've used in Google Reader still work. The UI takes a moment to load data from the server when you change where you are, but once it finishes it's fast. Minor bugs, some holes things seem to fall through, but as a basic RSS reader it works. Maybe there's more to come? As long as nobody messes it up for everyone else, "somebody password" is what I used if you want to try it out.
- smcnally 13y agoyou are a gentleman and a scholar. thank you.
- gkumartvm 13y agoAn unexpected error occured Method onFormSubmitted of interface org.apache.wicket.markup.html.form.IFormSubmitListener targeted at [SignInForm [Component id = signInForm]] on component [SignInForm [Component id = signInForm]] threw an exception Go back to the previous page or to the home page. org.apache.wicket.WicketRuntimeException: Method onFormSubmitted of interface org.apache.wicket.markup.html.form.IFormSubmitListener targeted at [SignInForm [Component id = signInForm]] on component [SignInForm [Component id = signInForm]] threw an exception at org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:268) at org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:216) at org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:240) at org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:226) at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:840) at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64) at org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:254) at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:211) at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:282) at org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:244) at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:188) at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:267) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722) Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258) ... 28 more Caused by: javax.ejb.EJBException: The bean encountered a non-application exception; nested exception is: javax.ejb.EJBTransactionRolledbackException: The transaction has been marked rollback only because the bean encountered a non-application exception :java.lang.NullPointerException : null at org.apache.openejb.core.ivm.BaseEjbProxyHandler.convertException(BaseEjbProxyHandler.java:363) at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:283) at com.commafeed.backend.services.UserService$LocalBeanProxy.login(com/commafeed/backend/services/UserService.java) at com.commafeed.frontend.CommaFeedSession.authenticate(CommaFeedSession.java:54) at org.apache.wicket.authroles.authentication.AuthenticatedWebSession.signIn(AuthenticatedWebSession.java:65) at org.apache.wicket.authroles.authentication.panel.SignInPanel.signIn(SignInPanel.java:221) at org.apache.wicket.authroles.authentication.panel.SignInPanel.access$100(SignInPanel.java:51) at org.apache.wicket.authroles.authentication.panel.SignInPanel$SignInForm.onSubmit(SignInPanel.java:296) at org.apache.wicket.markup.html.form.Form$9.component(Form.java:1246) at org.apache.wicket.markup.html.form.Form$9.component(Form.java:1240) at org.apache.wicket.util.visit.Visits.visitPostOrderHelper(Visits.java:274) at org.apache.wicket.util.visit.Visits.visitPostOrder(Visits.java:245) at org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:1239) at org.apache.wicket.markup.html.form.Form.process(Form.java:921) at org.apache.wicket.markup.html.form.StatelessForm.process(StatelessForm.java:87) at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:767) at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:700) ... 32 more Caused by: javax.ejb.EJBTransactionRolledbackException: The transaction has been marked rollback only because the bean encountered a non-application exception :java.lang.NullPointerException : null at org.apache.openejb.core.ivm.BaseEjbProxyHandler.convertException(BaseEjbProxyHandler.java:345) at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:283) at com.commafeed.backend.dao.UserDAO$LocalBeanProxy.findByName(com/commafeed/backend/dao/UserDAO.java) at com.commafeed.backend.services.UserService.login(UserService.java:24) at sun.reflect.GeneratedMethodAccessor309.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:181) at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:163) at org.apache.openejb.cdi.CdiInterceptor.invoke(CdiInterceptor.java:130) at org.apache.openejb.cdi.CdiInterceptor.access$000(CdiInterceptor.java:43) at org.apache.openejb.cdi.CdiInterceptor$1.call(CdiInterceptor.java:67) at org.apache.openejb.cdi.CdiInterceptor.aroundInvoke(CdiInterceptor.java:73) at sun.reflect.GeneratedMethodAccessor32.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:181) at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:163) at org.apache.openejb.monitoring.StatsInterceptor.record(StatsInterceptor.java:180) at org.apache.openejb.monitoring.StatsInterceptor.invoke(StatsInterceptor.java:99) at sun.reflect.GeneratedMethodAccessor31.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:181) at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:163) at org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:138) at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:239) at org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:191) at org.apache.openejb.core.ivm.EjbObjectProxyHandler.synchronizedBusinessMethod(EjbObjectProxyHandler.java:256) at org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:251) at org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:85) at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:279) ... 47 more Caused by: java.lang.NullPointerException at com.commafeed.backend.dao.UserDAO.findByName(UserDAO.java:19) at sun.reflect.GeneratedMethodAccessor283.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:181) at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:163) at org.apache.openejb.cdi.CdiInterceptor.invoke(CdiInterceptor.java:130) at org.apache.openejb.cdi.CdiInterceptor.access$000(CdiInterceptor.java:43) at org.apache.openejb.cdi.CdiInterceptor$1.call(CdiInterceptor.java:67) at org.apache.openejb.cdi.CdiInterceptor.aroundInvoke(CdiInterceptor.java:73) at sun.reflect.GeneratedMethodAccessor32.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:181) at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(R
- oakaz 13y agoCan I listen podcasts with it?
- smcnally 13y agoI'm not seeing read items being marked as such. Is that on the roadmap?
- crapet 13y agoDo you mean have all the entries opened and scrolling through marking them as read ? I never used that feature of google reader so I haven't implemented that yet. If it's something people use and want, I'll add it.
- rpdillon 13y agoPerhaps off-topic, but to those that are interested in bloat-free open source Reader replacements, I've had extremely good luck with TT-RSS. It's been in development since 2005, is written in PHP, and is quite slick IMHO. I run my own instance on shared hosting (DreamHost) and it hasn't failed me yet. Open-source Android client as well (though it costs a couple of bucks in the play store.) http://tt-rss.org/ http://tt-rss.org/
- crapet 13y agoI tried it but I really didn't like the old iframe look.
- Morendil 13y agoNot quite ready for prime time? Reader import fails for me too.
- deleted 13y ago[deleted]