A new web newsreader

Vladimir Panteleev vladimir at thecybershadow.net
Thu Dec 8 13:30:50 PST 2011


On Thursday, 8 December 2011 at 20:15:38 UTC, Andrei Alexandrescu 
wrote:
> This is an absolutely fantastic development. It's exactly the 
> kind of thing that D needs - using D to write something 
> nontrivial and highly useful. I just got in touch with Walter 
> about it, and as of now you have in us strong supporters for 
> replacing the existing Web bridge with this one.

I'm excited :)

> One thing though - you must use hyphenation everywhere :o).

Now not so much :(

:)

> Here are a few large topics that we should discuss a bit:
>
> - Would you consider merging your codebase with 
> d-programming-language.org? That way we'd have a simple 
> deployment target and simpler unified maintenance.

I'm not against moving the project to the D-Programming-Language 
GitHub organization, but I'm not sure what would be achieved by 
merging the two git repositories. Git's "submodule" feature may 
be more helpful here.

One thing that needs to be mentioned is that the project's scope 
is not solely the web interface. "DFeed" actually started out as 
an IRC bot, which among other sources, included the newsgroup as 
an event source for IRC notifications. I've refactored the code 
to use a publish/subscribe pattern, so IRC and the local message 
database (used by the web interface) are two of the consumers. A 
third one will be the front-page news widget I was planning to 
have a go at.

> The downside would be that your project would have less 
> individuality as an independent NNTP-WWW bridge. (That could be 
> partially addressed with directory structure etc.)

This is actually not much of a problem right now, as the codebase 
wasn't written with much abstraction in mind, so refactoring it 
into a generic NNTP interface would be a task of its own (and 
probably better off as a fork of this project).

> - If not, how do we go about integrating with 
> d-programming-language.org? For example say we change the 
> navigation panel on the left. Then we'd need to coordinate with 
> you to pull the code, regenerate your own page, and so on.

This can be automated... Also, I'm not against the idea of 
providing direct shell access for D VIPs.

> - I'm thinking something with iframes may work for the above 
> issue, but cross-domain iframes are limited. Could we serve 
> your content off d-p-l.org?

Yes. By far the best method would be subdomains (e.g. 
forum.d-programming-language.org or discussion.d-p-l.org).

The second-best method is to use Apache's mod_proxy or 
mod_rewrite's [P] flag, to make a certain "directory" send web 
requests to my server. This would greatly affect latency, though 
- assuming d-p-l.org is hosted in the US, a request from an 
European visitor would need to make a roundtrip through the US 
and back to Europe, and back.

Frames are not much of an option, due to their 
non-interoperability with browser address bars.

> - We should look at ways to integrate some of your code with 
> the standard library. For example, would be great to put some 
> NNTP and CGI support in std.

I don't use CGI. The NNTP module implements little above what's 
needed for the task. There may be some code good enough for 
Phobos in the network library I use (asynchronous line-buffered 
sockets, HTTP client/server), but there are licensing issues I'd 
need to solve.

> My nits to be added to others':
>
> * Registration flow is odd. You register, but then you're not 
> taken back to the forums page.

It's a bug. I'll fix.

> * Password during registration appears in clear.

That was a deliberate choice... perhaps not a very good one.

> * The C and C++ forums should not be on the same page. We 
> should focus only on the D forums. It's possible to link them 
> via a new page.

Yes.

I was thinking about creating a digitalmars.com stylesheet, and 
sending the corresponding stylesheet and list of forums depending 
on the used URL / subdomain.

> * This may be a good time to retire a few unused forums such as 
> dtl., debugger, dwt, ide, and merge their contents with 
> digitalmars.D.

I'm not sure if merging groups is possible on the NNTP level. 
Doing it in DFeed would involve lots of hacks.

> * The forum descriptions and possibly layout should emphasize 
> digitalmars.D as the "main" forum, and digitalmars.D.learn as 
> the "main n00b" forum. Generally first-comers will be confused 
> as to where they should be posting when facing a large table 
> that must be read in full, and most of the time they want 
> either digitalmars.D or digitalmars.D.learn.
>
> * The lists dmd-beta etc. should be under a different heading 
> and deemphasized. They are for experts only and not nearly as 
> prominent as the main forums.

The layout is actually almost a verbatim copy of 
http://digitalmars.com/NewsGroup.html . The only change is a typo 
fix and addition of the omitted D-runtime list.

> * The style file should be loaded from d-p-l.org such that 
> changes in style will be automatically picked up by the forums 
> page.

I edited the main stylesheet to avoid yet another few !important 
CSS overrides. I think it's best to handle this in the same way 
as the HTML template (automatic or semi-automatic patching).

> * In horizontal split mode, the footer is disproportionately 
> large (btw I made it smaller recently).

Will fix.

> * Use of bold in split mode for unread posts seems a bit heavy. 
> How about a different background color?

I believe bolding is a common UI element used by newsreaders and 
mail clients. I just played with background colors a bit, and 
couldn't get it to not look weird.

However, how does it look now?

> * It's not obvious how people should set up their own gravatar.

Will fix.


More information about the Digitalmars-d mailing list