Giter Club home page Giter Club logo

ether's Introduction

This repository contains the source code for PhantomWatson.com.

ether's People

Contributors

dependabot[bot] avatar phantomwatson avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

ether's Issues

Question collector

From @PhantomWatson on December 10, 2013 22:38

A script could be written that scans through thoughts to find questions. A big page with a list of all questions ever asked on Ether could be generated for the wonderful fuck of it.

Copied from original issue: #5

Fix 'long' cache

'long' cache configuration is missing, but used in the code.

This cache configuration is used for storing unpopulated thoughtwords, but a cron job is (awkwardly) used to refresh this value weekly. Unpopulated thoughtwords should probably be cached daily and refreshed daily, and with a command, rather than a request to /thoughts/suggested.json.

Generator: Display improvements

  • Display entropy score as a slider instead of as a numerical value
    Randomness: [===||=========]

  • Maybe move entropy score out of the "thinkin'" box, to the right of the "results:" header

  • Change "block length" and 1-5 numerical options to "randomness" and these choices:

    • 1: Nonsense (90% random, displays warning that this is processor-intensive)
    • 2: Chaotic (60% random)
    • 3: Slightly chaotic (20% random)
    • 4: Predictable (10% random)
  • Change "words per second" to "speed" with these choices:

    • 0.5: Very slow
    • 1: Slow
    • 2: Normal
    • 4: Fast
    • 6: Faster
    • 8: Fasterer
    • 10: Warp speed
  • Change "limit" to "automatically stop" with these choices

    • Never
    • After 100, 250, 500, 1000 words
    • After each word
  • Improve "thinkin'" section

    • Make automatically hidden and expandable
    • Instead of just one display per generated word, show a progression of the last three(?) words (perhaps a max is set and the displayed number is determined by device width)
    • Each word-selection section shows a maximum of five(?) options, which must include the selected word, with an expandable (+X more) button if there's more
    • Style unselected words darker
    • When a new word is added, the collection shifts to the left, removing the leftmost word-selection section from view if at the limit
  • Remove "this is a work in progress" text

  • Put all controls in a single row

  • Provide a short introduction, then a button that reveals a more detailed introduction

Code cleanup

  • Import updates from CakePHP skeleton app
  • Separate out app.php configuration data into app.local.php so that app.php can be overwritten from skeleton app repository
  • Use IDE Helper plugin to generate annotations
  • Fix deprecated code to start making transition to CakePHP 4 easier

Cancel AJAX request with Esc key

From @PhantomWatson on February 20, 2014 21:13

Any current AJAX request that displays the loading indicator and creates a popup should be able to be canceled with the Esc key.

Once there are keyboard commands like this working, there should be a page or a popup that explains what they are.

Copied from original issue: #13

Figure out why the front page cloud gets reordered

From @PhantomWatson on February 1, 2014 0:48

From request to request, the cloud of thoughtwords has its order changed slightly, noticeably with the placement of words that begin with digits. Fuck if I know why. The website is probably being developed on an ancient Native American burial domain and I'll have to call in an exorcist.

Copied from original issue: #12

Dynamic cloud filtering

From @PhantomWatson on March 3, 2014 23:48

I didn't know what else to call this.

On the front page (or whenever the cloud of thoughtwords is visible), typing into the search box could result in the visible words being narrowed down to only those that contain the typed string.

As words get filtered in and out, a minor animation would look nice. Transitioning the width and opacity to zero might look best.

Copied from original issue: #17

Line graph

Line graph of

  • Thoughts
  • Users
  • Comments
  • Messages sent

over time

Prune inactive accounts

From @PhantomWatson on January 26, 2014 0:53

A daily cron job can prune accounts that are > X days old and have had no activity (no messages sent, no comments, no thoughts).

Copied from original issue: #11

Color namer

Consider using https://xkcd.com/color/rgb/ to name matched colors on a user's profile page, e.g. "According to the XKCD color survey, this color is $colorName".

For colors that don't match, the closest match within a certain threshold is chosen instead. "...this color is closest to $colorName".

If there are no matches within the threshold, no such line is displayed.

Markdown buttons

It would be nice to have same buttons available in the thought form that are in the GitHub issue form, which wrap selected text with markdown and insert list-item or blockquote opening code. That way, writers would be able to take advantage of these features without having to read the markdown styling guide.

Bonus points: Also replicate Ctrl+I and Ctrl+B keystroke functionality

Default thought options

From @PhantomWatson on January 22, 2014 1:7

Under 'my account', the user's default choice for 'enable comments' and 'post anonymously' should be selectable and integrated into the preprocessing of /thoughts/add.

Copied from original issue: #10

Popup placement

From @PhantomWatson on January 3, 2014 2:42

Instead of placing popups at the top of the page or at the headers of /thoughts/index and scrolling to them, just place them at whatever position the page is currently scrolled to.

Copied from original issue: #8

Markdown guide on same page as form

The page for adding/editing a thought should have a markdown guide that can be revealed in-place instead of available on a separate page via a link.

TO DO: Messages

From @PhantomWatson on February 24, 2014 1:47

  • Indication in header when the user has new messages
  • Sending messages from a user's profile (synchronous / ajax)
  • Sending messages from /messages with AJAX
  • Remove unnecessary fields from messages table (sender, recipient, parsedTextCache, cacheTimestamp, status)

Copied from original issue: #14

Allow anonymous thinker to comment anonymously

Currently, after posting a thought anonymously, a thinker cannot respond to comments anonymously.

Proposal:

Option 1
All comments by the author of the corresponding thought are anonymous if the thought was posted anonymously (so the comments switch from anonymous to... uh... nonymous when the user edits the thought and toggles the 'anonymous' flag)

Option 2
Because the author may not want to comment anonymously (and their inability to comment with their color exposed under their own anonymous thought could possibly hint at their identity), give thinkers the 'anonymous?' option for any comments they post under their own thoughts that are currently marked anonymous.

  • Comment records need an anonymous boolean field added
  • Comment forms under an anonymously-posted thought should be shown to that thought's author with radio buttons for
    - (selected by default) Comment anonymously
    - Comment as your color

TO DO: Layout

From @PhantomWatson on February 24, 2014 1:50

  • Have the size of content boxes change with the window/device size
  • Properly responsive header

Copied from original issue: #15

Fix "Thinkin'" box in generator

Duplicate words are no longer grouped together with a "(ร—2)" note.
image

The words also aren't ordered, and it seems like alphabetizing them would be nice.

Suggested thoughtwords

From @PhantomWatson on December 26, 2013 8:59

getSuggestedThoughtwords()
The contents of all thoughts are scanned and words with no associated thoughts are pulled out. Random words are chosen, weighed in favor of more frequently-used words.

Example: On the homepage and on the 'post a new thought' page (assuming thoughtword has not yet been chosen), display a line like: "No one has posted thoughts about [heartache], [attention], or [fix] yet." Suggested thoughtwords are linked and clicking on them takes you to the thought-posting form with the thoughtword field already filled out.

This should give users convenient prompts for new thoughts and help increase the number of linked thoughtwords in thoughts. Because why not.

Copied from original issue: #7

Thought preview

Provide a live preview of a thought as it's being written, updated every second if its content has changed by a call to what's effectively an API endpoint. If for some reason a live preview is troublesome (maybe because response time from the server is slow), there could be separate tabs for "write" and "preview", like the GitHub issues form.

This should help people out with markdown and the weird way that markdown handles line breaks.

Keep footer visible

From @PhantomWatson on December 22, 2013 1:28

Currently, the footer gets obscured if #overlaid is taller than #content_outer. This can be fixed by using JS to manually set the height of #content_outer to the height of #overlaid if this is the case when a new popup is opened or after a page with the over_cloud layout is loaded.

Copied from original issue: #6

Remove the "double space at end of line" markdown rule

The "put two spaces at the end of a line if you want to follow it with a single line break" markdown rule is not intuitive for most writers, and failure to understand this rule results in line breaks not appearing (which can really fuck up poetry).

If this rule were replaced with a simple nl2br() alternative, it wouldn't be a breaking change for existing thoughts.

  • Update markdown-to-HTML conversion process
  • Update markdown guide
  • Clear all cached HTML content for thoughts, profiles, etc.

Actually

A better solution to this would be to replace plain markdown editing with a markdown-compliant rich text editor. ToastUI Editor looks like a good option.

Enable email notifications of new comments

  • Send emails to thought authors when their thoughts receive new comments
  • Allow this feature to be opted in/out of
  • SUPERCOOLBONUSPOINTS: Allow author to opt out of notifications for a specific thought (at the bottom of the email, include a link for "stop sending me notifications about this thought")

Will probably require something like a CommentNotifier model/table.

Develop a tie-in with Google Music Lab

Perhaps procedurally-generated songs for:

  • Each thought
  • Each thinker
  • The entire site

Songs altered by:

  • Sentiment analysis (angry sounds for negative sentiment expressed with all caps and exclamation marks, sad sounds for negative sentiment otherwise, happy sounds for positive sentiment)
  • Length of input
  • Diversity of word length / average word length
  • Average length of sentences

Reference:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.