Ciro Santilli  Sponsor 中国独裁统治 China Dictatorship 新疆改造中心、六四事件、法轮功、郝海东、709大抓捕、2015巴拿马文件 邓家贵、低端人口、西藏骚乱
= Ciro's Edict \#8


This month included several exciting extremelly user visible web developments.

I can't help to feel how the speed of developments reflects my relative mastery of the stack, I'm very happy about how it went.


= Advances

= Article metadata shown next to every header

This is a major feature: we have now started to inject the following buttons next to every single pre-rendered header:
* "Like"
* "By Other On The Same Topic"
* "Discussions", i.e. the issue tracker for the header
* "Create my own version" or "View my version of the page" or "Edit" button depending on wether the user can edit or already has a version of the article or not

This crucial feature makes it clear to every new user that every single header has its own separate metadata, which is a crucial idea of the website.

{title=Screenshot showing metadata next to each header}
{description=The page is:[]. Note how even the subheaders "Chemical element" and "Hydrogen" show the metadata.}

= List topics on home page

The new default homepage for a logged out user how shows a list of the topics with the most articles.

This is a reasonable choice for default homepage, and it immediately exposes users to this central feature of the website: the topic system.

Doing this required in particular calculating the best title for a topic, since it is possible to have different titles with the same ID, the most common way being with capitalization changes, e.g.:
would both have topic ID `javascript`.

With this in place we also added the preferred topic title to the top topic page.

The algorithm chosen is to pick the top 10 most upvoted topics, and select the most common title from amongst them. This should make topic title vandalism quite hard. This was made in a single <SQL> query, and became the most complext SQL query <Ciro Santilli> has ever written so far:

{title=Screenshot showing the list of topics}
{description=The page is:[] for the logged out user,[] for the logged in user.}

{title=Screenshot showing a topic page}
{description=The page is:[]. Before this sprint, we didn't have the "Vector Space" at the top, as it wasn't necessarily trivial to determine what the preferred title would be.}

= Article size and count limits

Limited the number of articles, and the size of article bodies. This, together with the reCAPTCHA setup from <7/Email verification and reCAPTCHA signup protection> should prevent the most basic types of <denial-of-service> attacks by filling up our database.

The limits can be increased by admin users from the web UI, and will be done generously when it is evident that it is not a <DoS attack>. Admin users are also a recently added feature.

= Next steps

Editor. As last time. And the one before. But now it is for real.

I guess ended up doing all the "how things should look like" features because they clarify what the website is supposed to do, and I already have my own content to bring it alive via `ourbigbook --web` upload.

But now I honestly feel that all the major elements of "how things should look like" have fallen into place.

And yeah, nobody else is never going to contribute as things are! <WYSIWYG> is a must.

I was really impressed by <Trillium Notes>. I should have checked it long ago. The UI is amazing, and being all Js-based, could potentially be reused for our purposes. The project itself is a single-person/full trust notetaking only for now however, so not a direct replacement to OurBigBook.