cybershadow / dfeed Goto Github PK
View Code? Open in Web Editor NEWD news aggregator, newsgroup client, web newsreader and IRC bot
Home Page: http://forum.dlang.org/help#about
D news aggregator, newsgroup client, web newsreader and IRC bot
Home Page: http://forum.dlang.org/help#about
Feature request.
Inspired by "The Right Approach to Exceptions" thread. It is quite awesome but makes newsgroup exploration harder a lot if
just want to rush through the new posts quickly. Switching to linear layout temporarily is an option, but less convenient.
Currently, at forum.dlang.org, the search feature searches the old archives for messages. There should be a search capability in dfeed (or at the very least, the search should focus on forum.dlang.org instead of www.digitalmars.com/d/archives)
I think the margin on the right side of "20 minutes ago" is too small. It's not really visible on the screenshot below or in the simulator because it's so big. But on the phone it doesn't feel right and it feels like it's smaller than it was before, when the "Replies" column was present. It also feels like there's a bigger margin on the left side of the avatars/images.
I think the margin for the on the right side of "2 days ago" would look better.
A general guideline would probably be, in the simulator, if the scrollbar covers something, then it's too close to the edge.
Frozen on June 14.
This happens to me some time to time when using the forum web interface but now I have a good example:
If you look at this Bugzilla comment and how it's displayed in the web interface you'll see that the last paragraph is missing.
DFeed is great; scrolling up through the IRC channel to look through it all is not so.
Basically, the idea is to get DFeed to send periodic digests via email (and/or maybe IRC?).
So, users would need some way to subscribe (possible by talking to DFeed in #d) and specify a period (these can be pre-defined or customisable with a maximum). DFeed would then store a list of subscribers and their periods; and it would also store all of its events up to its maximum period.
I would suggest customisable per-user periods, with a resolution of 1 hour, and a maximum of 168 (1 week).
Many forums let you read all posts by a user, this could be surfaced on DFeed by clicking on the user's name.
Imho all annoucements should be posted to HackerNews too. It's similar to reddit, but only has a programmer audience.
https://news.ycombinator.com/
https://en.wikipedia.org/wiki/Hacker_News
Automatize tweeting every announcement - maybe even with the official DLanguage account?
If I counted correctly, it currently fits 92 characters. I believe it should be shrunk so it fits exactly 66 characters (which I believe is where it wraps currently). This will give users a better idea of what their post will look like (even if it's not exact).
I just tested and width: 66ch;
actually works in Chrome. Not sure about other browsers.
I just got locked outside the forum because it made its cookie so bit it couldn't handle it anymore (err400, Header or Cookie too big). Isn't it supposed to remove old events to make room for the new ones? I know I browse the forum a lot, but it still came to me as a surprise.
Hi,
searching within the forum is not really useful right now and I have some ideas that may help.
I'm ready to step in and implement this if it's ok with you.
see e.g. https://dl.dropboxusercontent.com/u/910836/Screen%20Shot%202016-01-25%20at%2012.50.38.png
Toggling off the navigation avoids this, but one shouldn't have to do that.
The follow-up threads in the Issues group report "Not found" errors, e.g. https://forum.dlang.org/thread/[email protected]%2F
I believe DFeed is the best example of a real world d program on the net. Unfortunately, there is absolutely zero documentation. As a newcomer to d, it is odd to see that dfeed uses no build tool. Is in possible to add a simple readme to the project to explain how to build it? Is it possible to build it?
I'm not sure if this is a bug in iPhone 6 or something with DFeed, but I've only seen it on the forums. When I view the site in landscape mode, for some links, in the text of a post, the links have a smaller font size. The computed font size is 12px. When I click on the link nothing happens and the font size gets larger (standard size, 20px). Clicking on the link again navigates to the linked site.
The reply mode seems to change the font size based on the window size, here's some examples:
http://i.imgur.com/srLZESm.png
http://i.imgur.com/ubrn5ji.png
http://i.imgur.com/SwadBtx.png
It should rather wrap text around like the rest of the website does.
Using Firefox and Chrome recreate this behavior.
I am attempting to install/build this project on a vanilla Ubuntu Precise 32 box - below is the script that I run:
sudo wget http://master.dl.sourceforge.net/project/d-apt/files/d-apt.list -O /etc/apt/sources.list.d/d-apt.list
sudo apt-get update && sudo apt-get -y --allow-unauthenticated install --reinstall d-apt-keyring && sudo apt-get update
sudo apt-get install git dmd-bin sqlite3 -y
git clone --recursive git://github.com/CyberShadow/DFeed.git
cd DFeed
mkdir data
#need to change this sudo
sqlite3 data/dfeed.s3db < schema.sql
echo 80>data/web.txt
echo localhost>>data/web.txt
rdmd nntpdownload
rdmd dfeed_web
Everything succeeds until rdmd nntpdownload with the following errors:
ae/utils/time.d(213): Error: no property 'fracSecs' for type 'SysTime', did you mean 'fracSec'?
ae/utils/time.d(216): Error: no property 'fracSecs' for type 'SysTime', did you mean 'fracSec'?
ae/utils/time.d(213): Error: no property 'fracSecs' for type 'SysTime', did you mean 'fracSec'?
ae/utils/time.d(216): Error: no property 'fracSecs' for type 'SysTime', did you mean 'fracSec'?
ae/utils/time.d(100): Error: template instance ae.utils.time.putTime!(BlindWriter!char).putTime.putTimeImpl!(fmt, BlindWriter!char).putTimeImpl.putToken!('C', context, sink) error instantiating
There are many more identical complaints which I have left out for brevity.
I followed the instructions in the README - so I am posting here as it seems there is an issue with the code (unlikely) or I am not performing a required step absent from the README.
Although I've received some positive feedback about DFeed, many seem to thing that with its current behavior, it is too spammy. I've created this ticket to discuss some possible solutions and reach a common ground.
Some of the suggested solutions are:
When trying to access the D language message board on forum.dlang.org I get an error message which just says "buf error". I'm using Chrome on Ipad but I've seen the problem too on my Desktop Chrome installation. When I clear all my browser data or when I browse in Inkognito mode the forum works fine. Using my Safari browser on Ipad I saw once the warning message that my cookie size reaches the RFC limit and I'll loose my browsing history (unfortunately I can't remember the exact message). Maybe the buf error is produced by a too large cookie..
It's flat now.
Hi there,
This project looked cool to me, but this is my first time ever using D (so apologies if this is a trivial issue) and when I try to run rdmd dfeed
I get the following error:
ae/net/ssl/openssl.d(28): Error: module ssl is in file 'deimos/openssl/ssl.d' which cannot be read
import path[0] = .
import path[1] = /Library/D/dmd/src/phobos
import path[2] = /Library/D/dmd/src/druntime/import
Failed: ["dmd", "-v", "-o-", "dfeed.d", "-I."]
Any suggestions on how to address this would be hugely appreciated..
Haven't tried with other mobile browsers, but on Android Firefox:
Expected: Go back (to list of threads in group).
Actual: Current page (the thread) simply reloads.
It looks like this css property
leads to a display problem under Opera 30 - Windows:
with the property (current version):
without the property:
E.g.
https://dlang.org/howto-promote.html (this page is probably unknown to most devs)
Could we get a paginator at the top of each page, not just at the bottom?
When posting a comment on forum.dlang.org I get an error:
StopForumSpam error: Socket error: Lookup error: getaddrinfo error: Name or service not known. Please solve a CAPTCHA to continue.
I generally use a newsreader program to view newsgroups. However, occasionally I want to refer to an older post. Using dfeed is great to be able to provide a link to said post, however, there is no search by date. If I know the date of the post I want to find, I should be able to specify that date and have a list of messages posted on that date appear.
Slashdot is like hackernews or reddit
Some people wraps text at 79 columns. It seems the web interface wraps at less than this. This makes all text written with manual wrapping look very bad. Would it make more sense to wrap at 79 columns than the current default?
IRC log:
[18:55] * DFeed [D.gnu] [email protected] posted "[Issue 25] New: Segmentation fault on a simple template class; no segfault if substitute class by structure": http://j.mp/SEdU7q
Links to:
http://d.puremagic.com/issues/show_bug.cgi?id=25
But it should link to:
http://gdcproject.org/bugzilla/show_bug.cgi?id=25
Older GDC issues might still be opened on puremagic though.
Checked out the latest version but i get this error when running $ rdmd dfeed
<...>
NNTP-Downloader: 2408 messages in group digitalmars.D.ldc.
NNTP-Downloader: < ARTICLE 1133
NNTP-Downloader: > 211 29502 1 29714 D
NNTP-Downloader: < ARTICLE 1134
NNTP-Downloader: > 220 1071 <[email protected]> article
NNTP-Downloader: > Path: digitalmars.com!elf.comlab!yqz
NNTP-Downloader: > From: Yu Qian Zhou <[email protected]>
NNTP-Downloader: > Newsgroups: D
NNTP-Downloader: > Subject: How to avoid code duplication in D? MI/CI/delegation/C&P?
NNTP-Downloader: > Date: Thu, 30 Aug 2001 06:06:50 +0100
NNTP-Downloader: > Organization: Digital Mars
NNTP-Downloader: > Lines: 125
NNTP-Downloader: > Sender: [email protected]
NNTP-Downloader: > Message-ID: <[email protected]>
NNTP-Downloader: > Mime-Version: 1.0
NNTP-Downloader: > Content-Type: TEXT/PLAIN; charset=X-UNKNOWN
NNTP-Downloader: > Content-Transfer-Encoding: QUOTED-PRINTABLE
NNTP-Downloader: > X-Trace: digitaldaemon.com 999147976 26341 163.1.27.82 (30 Aug 2001 05:06:16 GMT)
NNTP-Downloader: > X-Complaints-To: [email protected]
NNTP-Downloader: > NNTP-Posting-Date: Thu, 30 Aug 2001 05:06:16 +0000 (UTC)
NNTP-Downloader: > In-Reply-To: <[email protected]>
NNTP-Downloader: > Xref: digitalmars.com D:1071
NNTP-Downloader: >
NNTP-Downloader: >
NNTP-Downloader: > Admittedly Java's single inheritance is easy to implement, and simple to
NNTP-Downloader: > use. But it does have some defect which sometimes force a programmer to
NNTP-Downloader: > duplicate code by 'copy & paste':
NNTP-Downloader: >
NNTP-Downloader: > Suppose I have two classes 'Car' and 'Dog', which *have already inherited*
NNTP-Downloader: > from some more important classes 'Vehicle' and 'Animal' respectively
NNTP-Downloader: > (let's assume that 'Vehicle' and 'Dog' do not have a common modifiable
NNTP-Downloader: > ancestor); now I want both these two classes to implement another
NNTP-Downloader: > interface 'Idable', how can I do it?
NNTP-Downloader: >
NNTP-Downloader: > Answer:
NNTP-Downloader: > =09 Java: Copy & Paste, code duplication !!!
NNTP-Downloader: > =09 C++: Multiple inheritance, no code duplication
NNTP-Downloader: > =09 C++: Textual code inclusion, no code duplication
NNTP-Downloader: > =09Eiffel: Multiple inheritance, no code duplication
NNTP-Downloader: > =09Sather: Semantic code inclusion, no code duplication
NNTP-Downloader: > Kiev: MI by delegation, no code duplication
NNTP-Downloader: >
NNTP-Downloader: > so what's the solution D can provide?
NNTP-Downloader: >
NNTP-Downloader: > =09 D: ??? code duplication ???
NNTP-Downloader: >
NNTP-Downloader: > D borrowed DbC from Eiffel, perhaps it also worth to check the multiple
NNTP-Downloader: > inheritance mechanism of Eiffel, which is much cleaner than C++ (by
NNTP-Downloader: > renaming and redefinition).
NNTP-Downloader: >
NNTP-Downloader: > Or if you still feel strongly against MI, maybe you can also consider
NNTP-Downloader: > Sather's semantic code inclusion, or Kiev's forward-able delegation?
NNTP-Downloader: >
NNTP-Downloader: > Let me know your thoughts on this.
NNTP-Downloader: >
NNTP-Downloader: > YuQian
NNTP-Downloader: >
NNTP-Downloader: >
NNTP-Downloader: > Sample code:
NNTP-Downloader: > /***********************************************************************
NNTP-Downloader: > Java: Copy & Paste, code duplication
NNTP-Downloader: > ***********************************************************************/
NNTP-Downloader: > interface Idable
NNTP-Downloader: > {
NNTP-Downloader: > public void setId(int i);
NNTP-Downloader: > public void getId();
NNTP-Downloader: > }
NNTP-Downloader: >
NNTP-Downloader: > class Car
NNTP-Downloader: > extends Vehicle
NNTP-Downloader: > implements Idable
NNTP-Downloader: > {
NNTP-Downloader: > private int id;
NNTP-Downloader: > public void setId(int i) { id =3D i; } =20
NNTP-Downloader: > public void getId() { return i; }
NNTP-Downloader: > }
NNTP-Downloader: >
NNTP-Downloader: >
NNTP-Downloader: > class Dog=20
NNTP-Downloader: > extends Animal
NNTP-Downloader: > implements Idable
NNTP-Downloader: > {
NNTP-Downloader: > private int id;=09=09=09=09// copy
NNTP-Downloader: > public void setId(int i) { id =3D i; } =09// &
NNTP-Downloader: > public void getId() { return i; } =09// paste!
NNTP-Downloader: > }
NNTP-Downloader: >
NNTP-Downloader: > /***********************************************************************
NNTP-Downloader: > Kiev: Multiple inheritance by delegation, no code duplication
NNTP-Downloader: > ***********************************************************************/
NNTP-Downloader: > class Id
NNTP-Downloader: > {
NNTP-Downloader: > private int id;
NNTP-Downloader: > public void setId(int i) { id =3D i; } =20
NNTP-Downloader: > public void getId() { return i; }
NNTP-Downloader: > }
NNTP-Downloader: >
NNTP-Downloader: > class =A0Car=A0
NNTP-Downloader: > extends Vehicle
NNTP-Downloader: > {
NNTP-Downloader: > =A0=A0=A0=A0forward=A0public=A0Id myId; // forward car.getId() to car.myI=
NNTP-Downloader: > d.getId()
NNTP-Downloader: > }
NNTP-Downloader: >
NNTP-Downloader: > class =A0Dog
NNTP-Downloader: > extends Animal
NNTP-Downloader: > {
NNTP-Downloader: > =A0=A0=A0=A0forward=A0public=A0Id myId; // forward dog.getId() to dog.myI=
NNTP-Downloader: > d.getId()
NNTP-Downloader: > }
NNTP-Downloader: >
NNTP-Downloader: > /***********************************************************************
NNTP-Downloader: > C++: Multiple inheritance, no code duplication
NNTP-Downloader: > ***********************************************************************/
NNTP-Downloader: > class Idable
NNTP-Downloader: > {
NNTP-Downloader: > private: int id;
NNTP-Downloader: > public:
NNTP-Downloader: > void setId(int i) { id =3D i; } =20
NNTP-Downloader: > void getId() { return i; }
NNTP-Downloader: > };
NNTP-Downloader: >
NNTP-Downloader: > class Car: public Vehicle, Idable {};
NNTP-Downloader: > class Dog: public Animal, Idable {};
NNTP-Downloader: >
NNTP-Downloader: > /***********************************************************************
NNTP-Downloader: > C++: Textual code inclusion, no code duplication
NNTP-Downloader: > ***********************************************************************/
NNTP-Downloader: >
NNTP-Downloader: > //--- begin file: id.ci ---
NNTP-Downloader: > private: int id;
NNTP-Downloader: > public:
NNTP-Downloader: > void setId(int i) { id =3D i; } =20
NNTP-Downloader: > void getId() { return i; }
NNTP-Downloader: > //--- end file: id.ci ---
NNTP-Downloader: >
NNTP-Downloader: >
NNTP-Downloader: > class Car: public Vehicle
NNTP-Downloader: > {
NNTP-Downloader: > #include "id.ci"
NNTP-Downloader: > };
NNTP-Downloader: >
NNTP-Downloader: > class Dog: public Animal
NNTP-Downloader: > {
NNTP-Downloader: > #include "id.ci"
NNTP-Downloader: > };
NNTP-Downloader: >
NNTP-Downloader: >
NNTP-Downloader: > .
NNTP-Downloader: Got message 1071 (<[email protected]>)
/usr/bin/iconv: conversion from X-UNKNOWN unsupported
/usr/bin/iconv: try '/usr/bin/iconv -l' to get the list of supported encodings
Because of the automatic wrapping, it's sometimes hard to know what your post will look like once you send it, especially when you're dealing with quoting and its associated format mangling. A preview that allows users to load what it will look like after posting would be helpful to alleviate this.
I'd appreciate some way to disable the keyboard shortcuts. They interfere with find-as-you-type in my browser and, even when I'm not searching, I end up accidentally losing my place more often than I find myself benefiting from them.
UI-wise, I'm thinking a checkbox above or below the pane that describes the shortcuts. Also, a cookie to store the value would be welcome if it's not too much trouble.
At the moment, the phobos/druntime/dmd internals mailing list forum interface is nothing more than a mirror of github commits.
See here my post about it: http://forum.dlang.org/post/[email protected]
I also, in a recent reply to that, posted a filter I established for my mail client that will ignore certain ML messages that are always github commits (http://forum.dlang.org/post/[email protected]). Could dfeed allow filtering of mail to ignore those messages? They are mostly noise.
http://forum.dlang.org/post/[email protected]
"буквенно" is shown as "бук��нно".
It would be convenient if threads could be collapsed to only their title, like code folding in vim and other editors. I've noticed it's fairly common for there to be multiple long threads that I simply do not care to read, or have read, or no longer wish to follow. (digitalmars.D has some real doozies at times, and I think it's only going to get more long-winded... ;))
I'm primarily thinking of the split view, but this may be applicable elsewhere.
Some systems (like Slashdot, IIRC) get fancy and let you collapse conversations at any level; that's cool and I have to imagine it comes almost for free once the base case is working, but is above and beyond the call of duty as far as this user is concerned-- I could take it or leave it.
Another thing I think I've seen is folding that shows new unread posts. This is likewise, beyond scope, but possibly neat.
There are a couple of threads started at announce, that shouldn't be there and also we could then move threads to off-topic
E.g.:
DFeed [D Wiki] Verax edited "Memory Management": http://j.mp/1u2Xs4d
The summary for that change is:
(→Controling GC Allocations: Added more information about `-vgc`)
DFeed could add this summary to the IRC line after the short link.
When I run on localhost and try to register it says:
data/salt.txt: No such file or directory
I think would be nice to add it to readme
For example:
http://forum.dlang.org/post/[email protected]
This is a post from March 7th, but the date says Tuesday, 18 March 2014, 21:22:29 C (just now)
Screenshot:
Seems to only happen in threaded mode.
Screenshot:
http://i.snag.gy/ChKXt.jpg
Very annoying when scrolling a long comment. You have to make sure that only the inner scrollbar is triggered.
This could be a problem on other browsers as well, but I haven't tested it.
Occasionally, seemingly unpredictably, the element id:"group-index" is approximately 30 or 80 pixels too wide on the right hand side, causing it to overlap with the message window.
As discussed in
https://forum.dlang.org/post/[email protected]
we should try to tackle the problem of many unrelated threads at the forum. An idea would be to have a language and phobos repo to discuss design decision and phobos additions. Currently the dmd and phobos repo are not usable because they get all the git commit messages.
Some people often overquote, it would be nice if DForums would add some protection. Perhaps a simple warning message placed somewhere when overquoting is detected?
Automatize posting announcements to Facebook.
https://www.facebook.com/dlang.org/
i recently came a across a few posts which used my username (but an invalid email address) and where not done by me.
might help the quality of the forum if such "fake" posts would be marked (even not shown in the web interface)
Win7, DMD v2.064.2. The last few lines in the log are:
NNTP-Downloader: > .
NNTP-Downloader: 882 messages in group digitalmars.D.ldc.
NNTP-Downloader: < ARTICLE 68
NNTP-Downloader: > 211 6157 1 6213 c++
NNTP-Downloader: < ARTICLE 69
NNTP-Downloader: > 220 1 <[email protected]> article
NNTP-Downloader: > Path: digitalmars.com!not-for-mail
NNTP-Downloader: > From: Jan Knepper <[email protected]>
NNTP-Downloader: > Newsgroups: c++
NNTP-Downloader: > Subject: Test
NNTP-Downloader: > Date: Sun, 07 Jan 2001 23:57:30 -0500
NNTP-Downloader: > Organization: Digital Mars
NNTP-Downloader: > Lines: 2
NNTP-Downloader: > Message-ID: <[email protected]>
NNTP-Downloader: > Mime-Version: 1.0
NNTP-Downloader: > Content-Type: text/plain; charset=us-ascii
NNTP-Downloader: > Content-Transfer-Encoding: 7bit
NNTP-Downloader: > X-Trace: digitaldaemon.com 978929962 52898 209.158.92.81 (8 Jan 2001 04:59:22 GMT)
NNTP-Downloader: > X-Complaints-To: [email protected]
NNTP-Downloader: > NNTP-Posting-Date: Mon, 8 Jan 2001 04:59:22 +0000 (UTC)
NNTP-Downloader: > X-Mailer: Mozilla 4.75 [en] (Windows NT 5.0; U)
NNTP-Downloader: > X-Accept-Language: en
NNTP-Downloader: > Xref: digitalmars.com c++:1
NNTP-Downloader: >
NNTP-Downloader: > Test
NNTP-Downloader: >
NNTP-Downloader: > .
NNTP-Downloader: Got message 1 (<[email protected]>)
core.exception.RangeError@rfc850(330): Range violation
----------------
0x0045D070
0x00431629
0x0041C7F7
0x0042E2E5
0x0042D455
0x0042D352
0x0041ED83
0x0041ECB6
0x0041DB79
0x0041D6EE
0x004020FB
0x0044B184
0x0044B157
0x0044B06F
0x004196CB
0x76663677 in BaseThreadInitThunk
0x77569D72 in __RtlUserThreadStart
0x77569D45 in _RtlUserThreadStart
----------------
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.