You are on page 1of 9

107

remember me reset password


login
search reddit
this post was submitted on 02 Mar 2014
107 points (78% like it)
147 upvotes 40 downvotes
shortlink: http://redd.it/1zd1qr
username password
programming
subscribe 507,788 readers
856 users here now
/r/programming is a reddit for discussion and
news about computer programming
Guidelines
Please try to keep submissions on topic
and of high quality.
Just because it has a computer in it
doesn't make it programming.
Memes and image macros are not
acceptable forms of content.
If there is no code in your link, it probably
doesn't belong here.
App demos should include code and/or
architecture discussion.
Please follow proper reddiquette.
Info
Do you have a question? Check out
/r/learnprogramming,
/r/cscareerquestions, or stackoverflow.
For posting job listings, please visit
/r/forhire or /r/jobbit.
Check out our faq. It could use some
updating.
If you're an all-star hacker (or even just
beginning), why not join the discussion at
/r/redditdev and steal our reddit code!
Related reddits
speedread - a command-line
implementation of the Spritz speed
reading system (log.or.cz)
submitted 8 days ago by paskie
66 comments
all 66 comments
sorted by:
[] pandubear 11 points 8 days ago
Is there some particular method you used to find
the "focus" letter?
permalink
[] reddnotebook 12 points 8 days ago*
How Spritz do it:-
switch (word.length)
{
case 0:
case 1:
pivot = 0;
break;
case 2:
case 3:
case 4:
case 5:
pivot = 1;
break;
case 6:
case 7:
case 8:
case 9:
pivot = 2;
break;
case 10:
case 11:
case 12:
case 13:
pivot = 3;
break;
default:
pivot = 4;
};
(findBestLetter in http://www.spritzinc.com/wp-
content/themes/spritz/js/SpritzDisplay.js)
permalink parent
[] paskie [S] 3 points 7 days ago*
I know that Spritz just uses a fixed focus
coordinates. I use a more complex algorithm
that picks the nearest consonant slightly to the
left of the middle of the word; it makes more
sense to me but who knows if it works better.
Edit: I compared them both and it
Submit a new link
best
PROGRAMMING comments related
FRONT - ALL - RANDOM | PICS - FUNNY - GAMING - ASKREDDIT - WORLDNEWS - NEWS - VIDEOS - IAMA - TODAYILEARNED MY SUBREDDITS MORE
want to join? login or register in seconds | English
a community for 8 years
message the moderators
/r/technology
/r/learnprogramming
/r/coding
/r/compsci
/r/dailyprogrammer
/r/netsec
/r/webdev
/r/web_design
/r/gamedev
/r/cscareerquestions
/r/reverseengineering
/r/startups
/r/techsupport
Specific languages
created by spez
discuss this ad on reddit
MODERATORS
ketralnis
spez
Poromenos
tryx
dons
masta
kylev
chromakode
a_redditor
AutoModerator
doesn't. :) I have now switched to the
stock Spritz method, I'll update the
screencasts soon.
permalink parent
[] reddnotebook 1 point 7 days ago
See findBestLetter in
http://www.spritzinc.com/wp-
content/themes/spritz/js/SpritzDisplay.js
permalink parent
[] FogleMonster 8 points 8 days ago
When will the Spritz clones learn to have a slight
pause after commas and periods?
permalink
[] paskie [S] 7 points 7 days ago*
I pause 1.3x longer after fullstop words than
after other words. Do you think a much longer
pause would be in order? (You can prolong it by
changing the constant on line my $fstoptime =
1.2; # relative to wpm.)
Edit: I have played with this a little and
now agree that you have a point there. I
have radically raised the pauses after
colons and fullstops and it helps reading
quite a bit I think.
permalink parent
[] MedicatedDeveloper 1 point 7 days ago
It pauses and displays "."" after the word
privacy.
permalink parent
[] chasecaleb 1 point 8 days ago
Seconded. This is a deal-breaker for me.
permalink parent
[] reddnotebook 4 points 8 days ago
I added that to mine. I've not spent much
time on it, feel free to fork.
permalink parent
[] perinnial 3 points 7 days ago
Hmm. You know what would be
awesome: If it built up in speed. So it
would start off slow and then progress
to the top speed. I feel like starting
"cold" leaves me playing catch-up from
the get-go.
permalink parent
[] ItsAConspiracy 12 points 7 days ago
It's going to be interesting watching this play out. Spritz claims three years of R&D, patent-
pending, wants people to license it. Meanwhile people are replicating at least most of its design
in a matter of days.
I know which I would use, given this tidbit from their FAQ:
Can you see everything that I read?
Well, we have to provide the content to you, dont we? For more information, check out our
Privacy Policy.
permalink
[] richard_cheney 2 points 2 days ago
Fucking ew. Yeah I'm gonna go open source with this as even if the interface is slightly
worse.
permalink parent
[] reddnotebook 16 points 8 days ago
I hacked together a JS version
permalink
[] corysama 6 points 7 days ago
Now I need to learn how to make this into a FF/Chrome add-on. Select wall-o-text, alt-s to
pop-up a spritz reader, up/down arrow to change speed, left/right arrow to skip
back/forward a few dozen words.
permalink parent
[] ds300 16 points 5 days ago
I did it.
permalink parent
[] corysama 2 points 5 days ago
Awesome! I've already shared this with some friends.
permalink parent
[] ds300 3 points 4 days ago
woah, thanks! Someone already forked it!
permalink parent
[] DocRocket 2 points 3 days ago
You deserve infinitely more than 3 upvotes for this.
permalink parent
[] cqwww 1 point 4 days ago
Using it within 3 minutes of reading this comment. Awesome, thanks!
permalink parent
[] vjain166 1 point 4 days ago
Well this is a little embarassing. How do I use that installation "line" that you posted?
"git clone git@github.com:ds300/jetzt" ?
permalink parent
[] ds300 4 points 4 days ago
Sorry about that. The installation instructions assume you have not only a passing
familiarity with git, but also a github account.
That's not terribly clever of me. Here are some instructions for those to whom
the above does not apply:
click the "download zip" link on the right hand side of the page and
extract the folder somewhere
navigate to chrome://extensions , enable developer mode, click "Load
unpacked extension..." and select the directory you extracted.
permalink parent
[] eriktjacobsen 1 point 2 days ago
I just threw together my own... have controls and whatnot, wasn't sure if you wanted
to work it into a chrome add-on or just take the underlying code
https://github.com/eriktjacobsen/read4speed
permalink parent
[] Norikal 1 point 2 days ago
*For those wanting to use 'ds300's chrome extension to read PDF files, you can use
this as a Chrome PDF reader: http://mozilla.github.io/pdf.js/web/viewer.html
Click the 'open file' icon in the top right, select the PDF you want & you're good to go.
*A temporary solution until a smoother one's worked out.
permalink parent
[] richard_cheney 1 point 2 days ago
Replying to find later yes I know about res I am on my phone
permalink parent
[] ecs_box 1 point 2 hours ago
Just a heads-up, those wanting to read e-books using ds300's awesome chrome
extension, the best method seems to be to convert them into epub using Calibre then
uploading them to Google Books. If you have bought Kindle books you can strip the
DRM off them first using the same software. From there you can alt-s. For some
reason Readium doesn't work. Another method is converting to text (again using
Calibre) and dragging that into Chrome. Text is easy to work with but then it's not in
the cloud and accessible from all your machines. This is literally life-changing. I also
recommend combining with readibility.com so you can easily read articles without
text-selection hassle. Well done ds300!
permalink parent
[] monototo 4 points 7 days ago
Yes.
spacebar to pause
escape to close popup.
I was also keen to give this exact idea a crack.
permalink parent
[] AceHarding 4 points 7 days ago
Let's do it.
I'm serious. Are you really going to do it? Because if not, I will.
permalink parent
[] corysama 1 point 7 days ago
Please go right ahead and message me when you have a beta. I'd love to figure it
out, but I already have several projects in need of finishing.
To be honest, I wrote the comment mainly to egg someone like you into doing it for
me ;)
permalink parent
[] AceHarding 3 points 6 days ago
permalink parent
Here's a Chrome Extension that does something similar, but in a new window. I
haven't tested it much.
https://chrome.google.com/webstore/detail/accelareader/hfbaenjmkakiipopnfaingjgcbdinkoi
[] Frog_Coins 1 point 3 days ago
In case you missed it, /u/ds300 did it
permalink parent
[] WillHansen 1 point 7 days ago
A bit too much of a pause at the end of sentences.
permalink parent
[] reddnotebook 2 points 7 days ago
Sure - play around with the variables in the code. I had no idea what to set these to
permalink parent
[] netghost 1 point 7 days ago
I find that I drop words on occasion when trying your demo, which makes the story much
more amusing. Thanks!
permalink parent
[] eriktjacobsen 1 point 2 days ago
Throwing my name in:
https://github.com/eriktjacobsen/read4speed
permalink parent
[] deadstone 0 points 7 days ago
One of the most important features of Spritz is how it splits up long words. I'm pretty sure
neither of these do that.
permalink parent
[] reddnotebook 1 point 7 days ago
I got the switch statement from their code. Their JS is not minified.
permalink parent
[] deadstone 2 points 7 days ago
I'm not talking about the switch statement, I'm talking about how the text it's showing
is already pre-formatted to split long words and change speed depending on word
importance. You can see how badly it fails without these when you try using it on
non-preformatted text, like the FAQ page.
permalink parent
[] miki4242 2 points 7 days ago*
My gut tells me that "inner speech" is the key to all this. Imagine doing subtitles
(one word at a time) to a video of someone speaking very fast. Run the text thru
a speech synthesizer (with speech rate set to target words per minute, and no
actual sound output) and capture its [now speaking "word"] events, then simply
show the words at the appropriate times. espeak has a nice event/callback API
for that.
permalink parent
[] reddnotebook 1 point 7 days ago
http://www.spritzinc.com/wp-content/themes/spritz/js/SpritzDisplay.js
See findBestLetter function
permalink parent
[] GhostNULL -4 points 7 days ago
If you make comments, make them right..
LINE_STROKE_WIDTH = .025, // .25% of height with a min of 1
permalink parent
[] wozkol 1 point 4 days ago
Yeah, according to them our brain can recognize only 13 chars at a time..
permalink parent
[] alias_vim_eq_reddit 2 points 7 days ago*
Can I just point out that spritz has literally the worst SEO I've ever witnessed in my life. Here's
their web site for anyone curious. I tried googling them after the huff post article and nothing
brought them up on page 1.
edit:
it looks like spritz uses a meta tag for robots noindex on all of their pages, for whatever reason,
and that's leading to them not showing up in google.
permalink
[] Wolfbeta 1 point 3 days ago
The reason would be that they've been trying to develop it without releasing it to the public,
but still have a product that they can demo to developers and partners.
permalink parent
[] alias_vim_eq_reddit 2 points 2 days ago
Once you've got articles in huff post, it's time to remove that noindex line, IMO.
permalink parent
[] TotallyNotAVampire 1 point 8 days ago
Neat, now all I need to do is convert some of my books to text so I can try this out.
Also, what does ORP stand for?
permalink
[] paskie [S] 1 point 8 days ago
ORP stands for Optical Recognition Point (the red-colored alignment pilot).
permalink parent
[] zepanzercommanzer 1 point 7 days ago
It still isn't Spritz. It's spreeder.
permalink
[] paskie [S] 2 points 7 days ago
I belive the key difference is the focus letter. Are you aware of other important points? I
really wish I could try Spritz out myself...
permalink parent
[] zepanzercommanzer 2 points 7 days ago
I'm not trying to bash your work. It is very cool. I just don't like that people are jumping
all over spritz like it is revolutionary when spreeder is faster and has more features.
Except for the highlighted letter.
Spreeder lets you read an arbitrary number of words at a time, which is faster than the
single word spritz limits you to because you can comprehend several words at once if
you are an experienced reader. It also has full stop pauses and can speed up/down
dynamically such that you read a smoothly average number of words in any given time.
permalink parent
[] paskie [S] 1 point 7 days ago
Sure, I respect that other tools will be more sophisticated, it's just not clear to me in
what ways. I refer to Spritz here mainly because it's the way the concept got to me,
and also I believe that there is a huge qualitative difference due to the improved
word alignment. I tried Spreeder but the centering just doesn't work for me - at all.
I tried to combine multiple short words together (the -m switch in speedread), but
my eyes immediately tend to saccade in that case, instead of relying on peripheral
vision like in case of singular longer words. Maybe it can be trained or fixed by a
better alignment but initial experiments just turned me off.
permalink parent
[] zepanzercommanzer 2 points 7 days ago
I'm sorry it just gets to me when Spritz gets the whole internet talking about it
when it really is not that novel an idea. I can respect that it had great marketing,
but I am sad that it has to be that way. To be fair the centering is really good,
much better than spreeder.
The multiple word part definitely has to be trained, but it really is worth it. It
should not be many words at once, 5 words at a time is incredible, 2-3 is fine.
permalink parent
[] ItsAConspiracy 1 point 7 days ago
The Spritz website does acknowledge apps like Spreeder, and says the
technique has been around a long time. They just claim to have improved the
method so the eye doesn't have to move at all.
permalink parent
[] ItsAConspiracy 1 point 7 days ago
Does it break up long words like the Spritz FAQ describes?
When your eye recognizes a word longer than that, it naturally jumps to the right of those
first 13 characters while processing the first part of the word as it jumps. In reality, a long
word requires your eye to break it into multiple pieces and that is how your brain stores it.
We analyze each word and break them up based on this standard and show you long words
in multiple pieces, just like your brain is expecting them.
permalink
[] palistov 1 point 7 days ago
Very cool! Had no idea what Spritz was before this, but both are very intriguing.
Edit: Grammar
permalink
[] creamenator 1 point 7 days ago
What would be really nice is if context to know if the word is in a block of parens or quotation
marks. It's kind of weird to sometimes see
"word1
word2
word3
word4"
Sometimes I lose track of whether or not a possible large block of text is actually surrounded by
quotation marks or brackets.
permalink
[] miki4242 3 points 7 days ago*
Perhaps wrap each word in the corresponding quotes?
"This"
"is"
"awesome,"
he
said.
Fits the whole idea of keeping you focussed on the center nicely. As soon as the quotes
around the words disappear, you know that the quoted sentence is finished :) Of course,
adding color to words in a quoted passage may be even more awesome :))
permalink parent
[] LForLambda 1 point 7 days ago
But you've now given yourself the trouble of parsing parenthesis if you try to scale to
nested parens. And most ebook conversion software will insert some noise into the
output. I can see that going badly.
permalink parent
[] miki4242 1 point 7 days ago*
Well, we aren't linting Shakespeare or eval()ing a newspaper article, are we? Thank
goodness human poetry and prose usually doesn't contain more than a couple of
levels of nested quotes and parens (unless it is written by a programmer perhaps,
but that doesn't make him/her a good writer). Keep track of at most 2 levels of
quotes/parens, make sure to stay between 0 and this upper bound, and reset the
quoting level to 0 after a reasonable amount of text. That will keep most readers
happy, I think.
permalink parent
[] creamenator 1 point 7 days ago
Suppose we have the sentence
"This is awesome", he said.
"This
"is // quotation mark here is faded
"awesome", // first quotation mark here is faded
he
said
permalink parent
[] prometheus5500 1 point 5 days ago
I have no idea what I'm doing with programming but I downloaded your files and would love to
have this working. It wont run on it's own. Do I need to rename the speedread file to something,
or have a specific program?
Thanks ahead of time, this is awesome.
permalink
[] Gery51 1 point 3 days ago
Spritz on beat speed ? Would it be possible to show the words at the ritm of a song ? It would be
nice for carioke singing.
permalink
[] AndreasTPC 1 point 7 days ago
Nice. I've coded something similar myself, but your code is cleaner so I will abandon mine in
favor of modifying yours.
I coded in the ability to resume from an arbitary point rather than from the start of the file, that
was the biggest thing I missed from my version when trying yours. I've submitted a pull request
for it. I may add a few other small things in the coming days if I feel inspired.
How would you feel about slurping and processing the entire text before displaying it? It would
add a slight delay before starting on longer texts, but it would allow you to determine a delay
between words that would make the true wpm equal to the wpm you specify. It would also allow
you to have a status indicator indicating the time left before the text finishes, which could be
nice for longer texts, and would be an interesting way to see how changing the WPM changes
how long it takes to read a text.
permalink
[] paskie [S] 2 points 7 days ago
Thanks, I've merged the pull request.
Regarding slurping + processing the entire text, I'm not really sure, but I suppose if it
enables us some nice functionality, why not; it'd be good to have a way to turn slurping off,
possibly defaulting to off in case of reading from a pipeline?
But I'm not sure fixing the wpm by default is a good thing. For me, the "wpm" I specify
represents my reading ability, not that I need the text replayed in exactly wpm*words
minutes. If the text is full of difficult words, I prefer to go at the same pace but slow down
more often, rather than speed up everything but the difficult words to reach the same true
wpm. I'm not principially opposed to adding another option, but does anyone really want to
fix on the playback length?
I'd propose continuing the discussion in GitHub issues?
permalink parent
[] gnuvince 0 points 7 days ago
So with Spritz, are you supposed to read everything one word a time, or is it just a method to
train you to recognize the ORP of words so that when you read a regular document, your eyes
immediately go from ORP to ORP?
permalink
[] dr_theopolis 1 point 7 days ago
You are supposed to read one word at a time.
permalink parent
[] knowshun 0 points 7 days ago
Well I had no idea what it was trying to display to me till I went to the github page and read it
for myself the old fashioned way.
permalink
about
blog
about
team
source code
advertise
jobs
help
wiki
FAQ
reddiquette
rules
contact us
tools
mobile
firefox extension
chrome extension
buttons
widget
<3
reddit gold
store
redditgifts
reddit.tv
radio reddit
Use of this site constitutes acceptance of our User Agreement and Privacy Policy. 2014 reddit inc. All rights reserved.
REDDIT and the ALIEN Logo are registered trademarks of reddit inc.

You might also like