Giter Site home page Giter Site logo

jamestomasino / stutter Goto Github PK

View Code? Open in Web Editor NEW
134.0 4.0 11.0 2.34 MB

RSVP for browsers

Home Page: https://addons.mozilla.org/en-US/firefox/addon/stutter/

License: GNU General Public License v3.0

JavaScript 89.06% HTML 3.92% SCSS 7.02%
rsvp speed-reading web-extension browser-extension firefox-extension chrome-extension productivity readability hacktoberfest

stutter's Introduction

stutter status GitHub Maintainability

Table of contents

About Stutter

stutter

Stutter is a Rapid Serial Visual Presentation (RSVP) extension for modern web browsers. RSVP is a way to read faster with less eye movement.

See a Stutter demonstration here.

Installation

  • Firefox Get Extension
  • Chrome Get Extension
  • Edge Get Extension

stutter demonstration

Usage

You can begin running Stutter in one of three ways:

  1. Click on the icon in the browser to start Stuttering. If you have text selected, it will use this as the content to Stutter, otherwise the entire page will be used.
  2. Press Alt+R to trigger Stutter by hotkey.
  3. Select text you'd like to Stutter and then right-click and choose "Stutter Selection".

When Stutter is running, you can use the following hotkeys for control:

  • Alt+R - Restart Stutter
  • Alt+P - Pause/Resume
  • Alt+Left - Skip backwards
  • Alt+Right - Skip forwards
  • Alt+Up - Increase WPM by 50
  • Alt+Down - Decrease WPM by 50
  • Esc - Close Stutter

You can reposition the Stutter interface on the screen by dragging the handle on the left hand side. Stutter will remember its position in the future.

Many other timing options and theming are available inside the full settings panel. Click on the gear icon on the left while Stutter is running to change these settings. Note: You must have allowed the storage permission in order to change these default settings.

Getting Help

You can leave feedback using GitHub issues. If you would like to discuss problems or features with me directly, you can visit the #stutter IRC channel on Libera.Chat.

Contributing

This is an open source project and we welcome contributions. See the Wiki for ways to contribute:

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Research

Read some of the research that influences Stutter.

Privacy Policy

This browser extension collects no user data. Nothing about your usage is stored or transferred to any server. It can be used offline.

License

GPL3

Mozilla's Readability library - http://www.apache.org/licenses/LICENSE-2.0

stutter's People

Contributors

aewens avatar dependabot-preview[bot] avatar dependabot[bot] avatar event avatar jamestomasino avatar minerobber9000 avatar morsecodemedia avatar thiswillbeyourgithub 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

stutter's Issues

remarks on jumping backwards and forward in text

Hi,

  • Is it me or jumping is a bit laggy ? I think it lacks a visual cue when jumping has been triggered, especially backwards. I was thinking that maybe the part of the "scrollbar" that's been shortened or elongated should appear red (backward) or grey (forward) for 1 frame, indicating movement on the timeline. (Obviously I know nothing about UI)

  • is it possible to edit in the settings how far the jump will go ? The current settings is not suited for all kinds of text and attention IMO

  • what do you think about using the "slow start" after jumping backwards ?

Add front-facing WPM controls

The more granular controls can stay in the "manage extension" tab. Add a way to quickly shift the WPM rate of a running player, though.

Should it save as the new default, or just run at that speed during that stutter?

add a "start from here" button on right click

Hi,
Currently there are two ways to use stutter :
1 - use the shortcut to read the whole page
2 - select a part of the text by dragging with the mouse then right click then stutter

I think it would be great to add a third way : right click then : "stutter from here to end".

edit : example of site where this would be already a bit useful : https://arstechnica.com/tech-policy/2020/01/apple-reportedly-nixed-plan-for-end-to-end-encryption-in-iphone-backups/
Using method 1 reads the text below each picture before getting to the main part. Method 2 takes loads of time and that's what we're trying to optimize here.

Is it possible to darken the background whilst stutter is active?

I love stutter, and use it to read through more long form articles, but I find that after I've read an article, I have a ghost-like after image burned into my eyes which takes a minute or two to go away, kinda like when your picture is taken with a strong flash.

The ghosting is effectively a negative image of the page with the stutter overlay, i.e. where stutter was, my eyes ghost that area lighter, and the rest of the page (normally white) is ghosted darker.

Would it be possible to have an option to dim the page in the background to closer match stutter's overlay so that this ghosting affect can be avoided by users with more sensitive retinas, like myself?

Start reading from the current viewpoint in the Browser

Hey, it'd be awesome if I'd be able to (optionally?) initiate stutter reading starting at the exact text I'm looking at and not from the beginning of the page.

Also is there any way at all to skip to a point in text that I'm interested in? (i.e. if I'm resuming reading a large article that I started on before). Besides selecting huge swath of text, I guess 😛?

Break after em dashes

The em dash (U+2014) is used to mark several kinds of break between distinct thoughts in a sentence, or sometimes between sentences. It's often used without whitespace on either side, e.g. this paragraph (from here):

He had a certain air of being a handsome man—which he was not; and a certain air of being a well-bred man—which he was not. It was mere swagger and challenge; but in this particular, as in many others, blustering assertion goes for proof, half over the world.

Currently stutter doesn't recognize a word break when it sees an em dash, unless it's combined with whitespace, so man—which displays as one word ("manwich"?). I think it would be smoother if a break were made after the dash in this case, as with colons and semicolons. Ideally no break would be made just before the dash, whitespace notwithstanding, so it would group with the preceding word instead of standing alone, but that's not as important.

Since I'm noting a problem with stutter, I should add in balance that I really like it! RSVP is helpful for me since my instinct is to glance back a lot while reading, and this is definitely the best browser implementation I've found, so thanks for putting in the work on it.

Style the settings page

It's a plain white form at the moment. Lets breath some life into it. Maybe make individual settings save as you change them instead of submitting the whole form.

adequate splitting of numbers

Hello again again,

I was reading a french article containing number written the french way, for example : 156 000 081

It is currently being split as 156 then 000 then 081 which can both help reading but doesn't work for succession of 000, example : 382 000 000 829. The middle 000 are shown in succession and you can't see they're different.

May I suggest splitting long numbers according to the same logic as in #45 : long numbers should stay longer on screen but no be split.

Also, I don't know if you've thought about how to split numbers the american way : $192,402 <- the comma should not be interpreted as another word.

Just thought it might be useful to post this :) It's not like it's a big problem anyway.

Can't save preferences in Firefox (78.15.0esr 64bit)

Hello. First of all, thank you for your work. I'm new to git, and I hope I'm posting this in the right place.

I have two issues while using the extension in Firefox.

First of all, I discovered I couldn't change wpm rate at runtime. I don't know if it is a matter of the keybindings selection or just that this function is not working. I can skip forward and backwards with Alt+'lateral arrows' without any problem (although sometimes it passes control to the browser and go though the history one website back or forward... I don't know why sometimes control is transferred and other times it's not.), and pause and resume work as assumed.

Trying to find a workaround for this, I tried to reattach the keybindings or change the default wpm rate and, at that time, I became aware that I could not modify the add-on preferences. I think this is because it needs storage permission, but I don't know how to give the add-on this privilege, since the option is hidden in the standard preferences menu.

So, right now I'm stuck at 400 wpm...

Thank you in advance for your help.

Non whitespace separated languages support

Currently stutter uses /[\n\r\s]+/ as a delimiter, so languages not separated by itself, such as Japanese, are unusable.
It seems google/budoux will do for at least Japanese, but since stutter finds word boundaries dynamically, it require some breaking changes.

Feature request: show more words

It would be great, if you could also choose the amount of words that are shown.
If you are missing manpower to implement it, I could probably create a PR and code it, although I am not that familiar with js and typescript.

e.g.: using my sentence above and selecting a word option: 3
It would be
great, if you
could also choose
the amount of
words that are
shown.

Kind regards
Yannick

Screen Wake Lock API

Add wake lock while running. Feature not yet supported in FF, so be sure to use feature detection.

Set the number of words at the time

Hello,
Thanks for your add-on that was exactly what I needed!
I saw one can add the following word (flanker) but would it be possible to add a 'words at the time' option, similar to that of SwiftRead on Chrome?
The idea being that our eyes can still recognize words at the periphery, and thus multiplying the WPM rate.
Thank in advance!!
skeudenn

Punctuation in localization isn't being used for word length calculations or text-fragment splitting

While we're using the punctuation regular expressions in a few places, word.js still has hard-coded characters being used to inform the delay calculations for a sentence-stopper or other punctuation unit. Additionally, these hard-coded values are being used to split up "fragments" for background progress highlighting.

To fix this I'll need to add more regex fields in the localization file and patch them into the correct space.

Add tests

At the very least, tests for the core parsing code would be great. As new languages are added for localization it would be very helpful to ensure the new patterns are all in alignment.

UI testing is likely not feasible with the extension architecture (someone prove me wrong and I'll be happy).

Purely suggestions from an ADHD – medium dyslexia individual

I've been seeking an RSVP reader that is quite similar to yours. None of them are put together as well as yours. I am rated severe ADHD and some light to medium dyslexia depending upon the day. I was recently introduced RSVP. I'm 67 years old! Where have you been all my life? :-). My neurologist asked me why I wasn't caught in school. I replied, "Doc, nuns were still beating us." (In some but not all)

I noticed suggestion such as having the bar follow the text on page which is good idea. It helps when you have to stop the reader to clarify something. This happens with more complex ideas which are sometimes not well written. RSVP cannot protect you from that.

The other one about splitting the words I don't agree with based on personal experience. When I go to a hyphenated word at the end of the page I have to stop and read the word because the meaning doesn't register. I have to stop and actually read it as a whole word.

Some other software is in this ilk use space bar for stop and go. It is incredibly convenient, after all I have the attention span of a rhesus monkey. Move up and down the page it's a modifier key and the arrow buttons. Both are easily accessible for those of us that are trying to break into 400 words a minute.

Being able to start RSVP by placing the cursor on the page and having the software start from that point is also critical element.

I had a long 45 years as a bank executive. I know what it's like to have to build up significant compensations stay employed. It generally means working longer hours than might be considered humanly possible.

Again these suggestions have nothing to do with programming. Strictly an observation from one of your users who uses your software it on a daily basis. Some of the other software out there may have one or two of these items but nobody has them all. Some of the software is charging over $100 a year, monthly payment auto debited. If I haven't tried them all it's not because of a lack of effort.

Putting a combination as detailed above and perhaps with some suggestions by others suggestions would drive other providers into the background. That's not a random thought, if the professional opinion from a financial analyst and economist. Of course, I can't tell you anything about marketing, but I can tell you the online marketing is complex and confusing with all of the products I reviewed. Although it may require investors, it would be worth doing a little bit of television advertising with the help of a professional producer.

Tagline – "Do you have concerns about reading?" A simple demonstration within that commercial would capture the market that needs or wants it. Everybody seems to be tagging this is "Speed Reading". There have been so many failure programs and methods along with scams in "Speed Reading" can carries a negative connotation. I can tell you none of them worked for me. Consider that this initial program was developed for people with disabilities, imagine how much a normal person would benefit.

Probably the longest, comment you have ever had. I'm old, I don't care anymore, and all I want to do is help. So take this narrative as you will. Remember, I could be completely loony! However, a long career in analyzing the financial capacity of things like this is my specialty. Learning also includes the idiotic things that I have seen. :-). Thank You for Your Product. It does make my life better, and of course there's nothing more important than me. :-).

thought on splitting words

Hi,

Currently the idea is that words longer than X characters should be split / hyphenated.

I was wondering what you would think about this instead : if the word is more than 13 characters long*, then add 0.2 time for each additionnal character. This way a 15 character word would be 1.4, and a 20 characters words like " counterrevolutionary, electroencephalogram, uncharacteristically." would stay 2.4

I say .2 but it could as well be .1. Or better yet : .1 between 13 and 20 and .2 above, as very long words take more time to understand.

This way : super long words would stay a long time (useful for german for example) and more so than "regular long words".

Sure it would "break the flow" of speed reading but hyphenating "counterrevolutionnary" can really be disorienting.

In effect, this would remove the idea of hyphenating long words and instead keep them on display for a longer period.

*like astonishingly, accommodation, cartographers

Add optional support for "flankers"

There's some really interesting and promising data in this study related to the inclusion of flankers in RSVP. Let's give that a shot as an optional feature which can be enabled/disabled. Directionality seems to have a major impact, so I'll look into whether it's better to have both words or only the following word flanking, and whether it should be styled the same as the target word or de-focused by color, transparency, or blur.

Comments welcome!

Alt+left and Alt+right shortcuts are not working

As mentioned in the title, those shortcuts are not working.
Using manjaro Linux with Plasma. I even disabled the system shortcuts for alt+left and alt+right, however they still don't work with stutter.

[request] Length for word split

Hello,

I notice that a lot of words are splitted and separated by "-".
I think it's easier to read a "not so long word" than "2 splitted parts of a not so long word".
For instance, the word "enregistrement" is splitted in 3 parts: "en-", "-registre-", "-ment"

Would it be possible to choose from which length a word would be cut out?

Thank you.

Shortcut issues

MacOS 12.0.1
Firefox 95.0.2
stutter: 1.12.3

  1. Skip Backwards and Skip Forwards shortcuts are not working for me. (even if they are set to single letters)
  2. Upon saving settings the first time I increase the WPM it jumps from default (400) to 1800.
  3. Having r on restart breaks native cmd+r reload functionality (this is not so important as the previous issues)

Extension won't work on Firefox 94.0.1 (64-bit)

The extension doesn't seem to work on Firefox 94.0.1 (64-bit) for MacOS (Monterey 12.0.1).
When clicking on the toolbar icon or seleting a text and choosing the stutter option, nothing happens.

I believe in some older versions it was working.

regression ? hotkeys not working anymore

Hello again !

I updated the addon today and hotkeys seem to have stopped working. I can't speed up/down escape pause or skip. I don't think I have changed anything since yesterday, and I tried restarting firefox to no avail.

Any idea ?

Firefox: Settings are essentially ignored...

I'm not even really sure how to describe this. Very frustrating.

I love the concept and would equally love to see this fixed.

The settings for when & where the engine pauses are utterly non-functional and nondeterministic. They quite simply don't work. Fresh, clean install of Firefox (even the dev version). The settings simply do not work.

I recommend a full audit & deep, objective, third-party QA.

Chrome reporting javascript error

Uncaught (in promise) TypeError: Cannot read property 'query' of undefined
    at StutterOptions.update (index.js:2422)
    at StutterOptions.set settings [as settings] (index.js:2486)
    at browser.storage.local.get.then.result (index.js:2399)

Once v1.1.0 is fully deployed to chrome store, this issue needs to be tracked down and squashed. It is not interrupting functionality.

Allow customizing the shortcuts

This addon is great, though one thing I wish I could do is to customize the shortcuts. Sometimes the shortcuts don't seem to work, maybe because some other system-wide shortcuts have taken precedence. It would be nice to be able to set them to different keys.

Show text formatting

Hi,
In the same vein as #58, I think it would be cool if the titles of section were displayed as one line instead of word by word.

I think the major weakness in your app right now is that the rate at which words appear doesn't follow the logical structure of the text.

Let's take an example with a random link : https://en.wikipedia.org/wiki/Argumentation_theory

If you toggle reader view, you can see that the title are kept in the reader but your app doesn't treat them differently than text :
screenshot

What I'm thinking is that when reaching a title, it should pause on it for some time while displaying the whole title. This would mark a pause between sections and help getting the point of what your reading.

I think we can't really keep up with a very high wpm speed for more than short bursts. So this should really help.

Auto Scroll to current word

Hey, it would be cool if you had a feature to have the page scroll with and even highlight the current word being shown while reading. It helps a lot to know where you are in a page/article.

Persian isn't supported.

Hi, I see Persian texts like this using stutter:
image
image

It seems stutter doesn't support RTL languages and doesn't use a suitable font for them.

PDF support?

This is such an awesome idea and so well done! I really appreciate you making this available. Any chance that you will be addling PDF support? Is that possible?

Investigate processing PDFs

Look into the web extensions API and verify if it is possible to read content from a PDF in the browser view for each browser. If possible, implement.

It may be helpful to seek guidance from the #webextensions IRC channel on Freenode.

Consider an option to hide/remove references in academic texts

Submitted via email:

I use your program mainly to read academic texts that contains a lot of references [eg (Johnson and Johnson, 1989)] that interrupts the flow. Adding an option to ignore these would be very beneficial for this usage. I have no idea if that is easy to implement, but it might not be so difficult as the references always is a parenthesis with about 3-30 characters, the first of which is a capital, followed by four digits and a closing parenthesis. Using these identifiers might give some false negatives and positives, but that number would be very small indeed. Of course, I have no way of knowing if your program is used on academic texts enough to warrant looking into this, so I’ll not be holding my breath, but it’d be a boon for students and researchers who tend to skim a lot of literature.

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.