wesl-ee / ral Goto Github PK
View Code? Open in Web Editor NEWNeo-forum / Textboard / Future simulator
Neo-forum / Textboard / Future simulator
This is a lot of extra functionality but it's really essential in moving forward.
Currently there is no way to administrate the site other than via that Perl script. A web portal would allow more community moderation while also focusing the administrator's responsibility on simply picking reliable moderators.
Difficulty: 4/5
BBCode is less intuitive than Markdown. Additionally, Markdown has less of a learning curve and is more forgiving to mistakes. Some features I am looking for within our implementation of Markdown are:
>>
Hook into the moderation / administration interface to write a SQL record anytime someone is banned or a post is deleted or edited. Record should include:
Further, the log should be publicly visible via a webpage.
Difficulty: 2/5
Honestly this implies a lot of work; organizationally it makes a lot of sense to keep Topics
separate from Replies
because they are different layers of the elitist superstructure, viewed on different pages etc. etc.
But maintaining two tables of almost exactly the same data also tends to create redundant code; I still want to organize by [Continuity/Year/Topic/Reply] but I can do better with the back-ended organization.
When ASCII Art with any of the [
or ]
characters is interpreted into HTML, unexpected HTML is output. For instance, the [aa] tag may be closed early or may leave out characters...
I suspect this is because those characters are interpreted as BBCode tag openings or closings but I'm really not bored enough to fix it
Currently all posts are gathered into the reader and displayed linearly and all on one page, but there is much room for an alternate reader. Some ideas I've had about the alternate views:
All views should be available to toggle at the bottom of the reader as a <footer>
or something similar
Searching all posts is a useful feature for a growing textboard. This would be a completely new feature and ideally it would not place code in the existing includes/
files.
Essentially, the search would accept a simple one-line search of key words, then collect and display all posts which match those key words in some way or another. Search bar could be displayed on the main page or in a side panel.
Additionally, write a function in the existing API to respond to search queries.
Difficulty: 4/5
The way RAL communicates between processes is silly. As has been done since its earliest days, RAL uses PHP SysV bindings to communicate real-time updates to the RAL database by way of SysV message queues, shared memory, and semaphores.
Presently this all works all well and good.
However if one wants this to be the most-loved textboard software, some work must be done to upgrade the SysV Interprocess Communication to a POSIX socket-based IPC frame of mind.
Difficulty: 10/10
Hand-in-hand with issue #2
Simply add the functionality at the top of B4U/max.php
into its own block in the current API (written at B4U/courier.php
though subject to change)
Difficulty: 1/5
It's the year 2097 of course you know that your post was successful:
If you have Javascript enabled then you are already are subscribed to remote updates (long-polling). Since you will be notified of all new posts, you will be notified of your own new post as well (given that you've completed the robocheck correctly).
Using JS you can submit the <form>
via XHR and you will not even need to write any code to add the new post to the page (already listening to new posts); the XHR will only need to submit to some page (maybe B4U/max.php
or you could write a function in B4U/courier.php
as part of that API) and check the HTTP status code that is returned.
Difficulty: 3/5 to add function in B4U/courier.php
or
Difficulty: 2/5 to submit to B4U/max.php
I prefer that code is added to B4U/courier.php
since this is an API
Because complex BBCode is difficult to get right the first time, some way to edit your own posts after they are submitted may be a worthwhile feature.
It'd be pretty simple to implement, since each post already has an identifier (Auth
) which is a unique, meaningless ID generated for each user and stored in a cookie. As easy as it would be, the only thing left is to do it :P
I hate it when pages immediately ask for "Permission to display notifications". No fuck off I don't want that and then it keeps asking, asking, asking me if I want to because their dev c/p'd something from SO that just keeps asking me every time I load a new page.
Anyhow, add some code to the B4U/js/remote.js
that notifies the user of new posts (using Notifications API if and only if they have opted in to receive notifications. Probably stick that opt-in some where on an options / configuration page like where the theme selection is now.
Very important to be opt-in, not opt-out.
Difficulty: 2/5
It writing v3.0 I was really focused on the object-oriented features of PHP that I neglected to distinguish types of objects (i.e. Replies, Years, Topics) within the ContinuityIterator
class. This class could use a good deal of clean-up, especially around the Selection
array and everything...
Not a trivial change, it'd require a lot of planning (and probably another branch ^-^
)
Straight-forward problem and straight-forward solution.
When a user clicks either "New Post" or "New Topic", s/he should immediately see the appropriate <form>
for submitting a post. This could be accomplished in several ways, which I rank in order of preference:
id=bottom
to the <form>
and anchor using the URL # (hash )class=reader
Obviously the first is preferable as a JS-independent solution
Difficulty: 1/5
One of the cool things about the sidebar is that it has arrows for flipping through pages of items. However, when an option is selected, the page is not remembered; this is not much of a pain now but if there were more than a few pages this would quickly become sore.
I have a few ideas on how this may be fixed, ordered by how much I like each idea:
When implementing one of these suggestions, remember that multiple navigation arrows / containers must be supported, i.e. I don't want to see page=1
because I'm not sure which navigation you are talking about?
Ideally loop through the DOM and store the page
of each collection of items.
Difficulty: 3/5
As it is, you only receive real-time updates when you are on the main page or inside a topic; continuities do not receive real-time updates.
Trivial to write, just use the same technique I lay out for real-time updates using the API with the topic view and main page views. Might be hard to understand at first but just take a look through it anyway and follow what's written already.
Difficulty: 2/5
#!/usr/bin/php Your databse options in includes/config.php are Server: 127.0.0.1 User: root Pasword: (omitted) Databse: Chan MySQL Error: Can't create database 'Chan'; database exists MySQL Error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'year(Created
), PRIMARY KEY (Continuity
,Year
,Id
) ) ENGINE=InnoDB DEFAUL' at line 7 MySQL Error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'year(Created
), Topic
int(11) NOT NULL, Content
text NOT NULL DEFAULT '',' at line 5 MySQL Error: Specified key was too long; max key length is 767 bytes Downloading and installing jBBCode-1.3.0 Finished!
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.