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.