GithubHelp home page GithubHelp logo

practicing-ruby-web's People

Contributors

andychase avatar brentvatne avatar daniely avatar jordanbyron avatar mlafeldt avatar practicingruby avatar ruanwz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

practicing-ruby-web's Issues

Disable email notifications for inactive accounts

From @sandal:

  1. Add a boolean called active_account which is off by default on all users.
  2. Set this field to true on login
  3. Set up an unsubscribe hook which sets this field to false when people unsubscribe.
  4. Only send notification emails to active accounts.

E-mail Full Article Content to Subscribers

I've begun work on a branch to allow administrators to e-mail the full body of an article to subscribers as and when they are first published (following the example of James Edward Gray II's "Rubies in the Rough").

In order to retain the rich formatting shown on the Practicing Ruby web site, I'm experimenting with a multipart email showing HTML content for those who support it but gracefully degrading to plain text for those without (see CampaignMonitor's "Guide to CSS support in Email re support). It would also make sense to allow users to choose their delivery format in case they wish to receive only the plain text version.

However, to be more representative of actual Practicing Ruby content, could I please have the original Markdown source of a representative article, perhaps one that is already free to the public such as "Unobtrusive Ruby" in Practice" or perhaps one with images such as "Using games to practice domain modeling"?

At the moment, I believe @sandal manually sends announcement emails (please correct me if I'm wrong) so perhaps it would be good to allow for that freeform announcement message to be specified in the mailshot as well (though this could wait).

Star recommendations

⭐ ⭐ ⭐ ⭐ ⭐ ⭐
⭐ ⭐ ⭐ ⭐ ⭐ ⭐
⭐ ⭐ ⭐ ⭐ ⭐ ⭐
⭐ ⭐ ⭐ ⭐ ⭐ ⭐
⭐ ⭐ ⭐ ⭐ ⭐ ⭐
⭐ ⭐ ⭐ ⭐ ⭐ ⭐
⭐ ⭐ ⭐ ⭐ ⭐ ⭐
⭐ ⭐ ⭐ ⭐ ⭐ ⭐
⭐ ⭐ ⭐ ⭐ ⭐ ⭐
⭐ ⭐ ⭐ ⭐ ⭐ ⭐
⭐ ⭐ ⭐ ⭐ ⭐ ⭐

What should happen when a user is deleted?

Currently if a user is deleted their comments, shared articles, and @ mentions are abandoned. In general users should never be deleted, but it appears there is a case were that has happend (User#id == 53) in production. Now that user's share links are failing.

I see a few ways forward:

  1. Delete that user's shared article links and add :dependent => : destroy to the has_many :shared_articles relationship. A similar approach could be taken for comments, and we'd have to do some fancy footwork to invalidate caches where the user was mentioned.
  2. Systematically disable the ability to delete users and instead forcing administrators to disable accounts.

Personally I am not too crazy about the first approach. I want those share links to keep working and all user's comments to remain intact. A nice compromise for User #53 might be to assign their share links to @sandal or @jordanbyron.

@mention linking too aggressive

I reverted the MdMention patch, because the implementation is going to need several changes before it can be used in production:

  1. It should check mentions against our users before converting them into links
  2. It should work only in comments, not in every markdown field.
  3. It should not match things like: [email protected], mentions should only be processed if they are preceeded by the beginning of the line or whitespace.

We had some tests for dealing with mention edge cases (not all of the above were tested, but some were), but this patch completely bypasses them. We'd want proper tests in place for all of the above, as well as anything we originally tested for.

In general, whenever we add something using RedCarpet, it seems like we need to put extra effort into detailed manual testing. Every change made there can potentially break every page on the site, so... more attention to detail is needed. 🚒

Store & load Article#body in separate git repo

This is mostly a brain dump and will need to be fleshed out before it can be implemented:

  • Store articles in markdown files in a separate git repository, which should be symlinked into app.
  • Continue to save article meta data (Title, Issue #, Volume #) in the database and load body by matching on Issue # and Volume #
  • Add Article#updated_at to the article cache key so it is invalidated when article is updated.
    • We will also need to add template updated at time to this key.
  • Syncing article files should update Article#updated_at to the file's date modified time if it is less than Article#updated_at
  • Cache Cooker should update any changed articles when they are synced

Confirmation links should display an intelligible error after expired

A user was complaining because they had confirmed their account but then later attempted to log in by clicking the confirmation link. I think it's OK for this to fail, but ideally with a more clear error than "Sorry, something went wrong". Should say something like "That confirmation link has already been used, [try logging in] instead. If you run into problems, contact [email]"

Add Visit model

  • url
  • hashed_ip
  • share_key
  • user_id
  • time_on_page
  • start_time
  • end_time

Create before_filter. Don't log redirects, webhooks, logins, etc

iOS icon for bookmark

I read Practicing Ruby on an iPad typically, and as someone who likes to have a clean set of icons, I would love if the bookmark had a robo or ruby icon. To do this, it seems that we just need to create a 512px x 512px png file, similar to: http://everytimezone.com/everytimezone-512.png

The code that they use on that site to make the bookmark have an icon is then:

<link rel=apple-touch-icon-precomposed href=everytimezone-512.png>
<link rel=icon type=image/png href=everytimezone-512.png>

If someone can provide a vector version (or 450ish px version) of robo or the practicing ruby favicon I'd be happy to play around with the image until it looks good as an icon and submit a patch.

Should confirm edits to published articles

Sometimes I accidentally replace old articles with new ones. This is annoying and would be confusing to users. I should display a confirmation whenever editing an article with published status.

Store & load Article#body in separate git repo

This is mostly a brain dump and will need to be fleshed out before it can be implemented:

  • Store articles in markdown files in a separate git repository, which should be symlinked into app.
  • Continue to save article meta data (Title, Issue #, Volume #) in the database and load body by matching on Issue # and Volume #
  • Add Article#updated_at to the article cache key so it is invalidated when article is updated.
    • We will also need to add template updated at time to this key.
  • Syncing article files should update Article#updated_at to the file's date modified time if it is less than Article#updated_at
  • Cache Cooker should update any changed articles when they are synced

Use Gollum for article storage

@sandal: I've been playing around with Gollum today and wanted to clarify some assumptions before starting implementation. Here's the requirements I have.

  1. Spawn a new Gollum wiki on the VPS.
  2. Replicate the articles in the PR database in the wiki
  3. Update the PR codebase to use the wiki as a database, pulling articles from it instead of the db.

Please correct or expand on any of these assumptions.

comments are not shown in shared articles

Just a suggestion - I'm assuming this was done on purpose but maybe you can at least show how many comments the shared article has or let the user know it's possible to comment on the article. It will help users understand practicing ruby better by knowing there's a conversation that takes place and possibly give them more incentive to join.

Excerpts

Similar to linking to a selection in a Github source file.

Emoji should not be run in code samples

Had to revert the emoji patch because it was breaking a sample in this article:
http://practicingruby.com/articles/1

It was running into a stack trace which contained :2:

If we want to support Emoji on Practicing Ruby, we need to be sure it only runs against text that's not in code block (or any preformatted / blockquote / similar type thing)

I really want to ❤️ this change, but right now it's giving me a 💔

Intermittent login failure

from @brentvatne:

sometimes when i login, already being logged in github, it says the page cannot be found...

He's unable to reproduce but I'm just making this a placeholder because he'll email me next time it happens and I'll check the logs and post back here.

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.