Is speed reading really possible?  - <AUTHOR> http://skeptoid.com/episodes/4229 <comment><USER3> At around 7 or 8 years old, my reading level was several grades ahead of schedule. I was consuming large (for my age) novels with no sweat.

My parents noticed this and gave me a speed reading book. I incorporated each an every item on that book including the removal of subvocalization. It certainly gave returns right away, allowing me to consume books at a faster rate, but a huge cost.

Years later, I entered college as an engineering student. I noticed that when reading highly technical textbooks, and classes that required deep comprehension of text, I was much much slower that my classmates, or my comprehension level was much lower. Turns out, it was taking almost double the time for me to get through a section.

Really wished I didnt read the speed reading book now. I dont blame my parents at all, it was unfortunate that at nearly 40, i'm still trying to unlearn what that speed reading book taught me. I'm trying to re-learn subvocalication but its very very hard to 'slow' myself down. I've actually installed screen readers to replace subvocalization with some positive effect.

<comment><USER4> I just tried reading a number of articles on the front page using www.spreeder.com that another commenter here mentioned. I got up to 800wpm with chunk size of 3 before my suspicion was confirmed: while I had no problem following the story, it felt like I had a mental buffer that was constantly filling up and skipping over interesting questions or thoughts based on what I was reading.

Fundamentally, speed reading through something is at odds with processing that information in a useful way. And therein lies the rub: I don't read something merely for the sake of reading it.

When I read novels, I enjoy losing myself daydreaming in another world, and savouring the emotions of the characters while thinking about how I would react in their shoes. When I read technical documentation I'm attemping to create or update mental models of technical concepts. When I read a friend's Facebook post I think about what, if any, response I will offer or how I would deal with their situation. When I read a message from my girlfriend I have to take time to understand and plan for whatever she's discussing or asking.

I'm honestly struggling to see the value in speed reading. I cannot think of why I would be reading something simply for the sake of reading it without further processing. More valuable would be learning ways to _process_ information more efficiently, i.e. accurately and quickly.

<comment><USER5> I think speed reading, as skimming, would be good in cases where you are trying to skip through data rather than process it. I do something very similar with lectures on topics which I'm already familiar with -- I speed them up to 2x or 3x speed in VLC, then slow them down when I reach a topic which requires extra thinking and comprehension.

There is also a tremendous value to watching an important lecture twice: the first time on fast-forward so that you understand the structure of the talk and the gist of the subject, and the second time on normal speed so that you can really get into the details. A lot of writing tries to give you an "overview" or "table of contents" to accomplish the same task, but when it's not there, skimming can be extremely useful.

</comment></comment></comment><comment><USER6> > _You can't read without subvocalization._

While this article seems well researched, I find this claim very hard to believe. I can read while singing (not a song with words, but a tune that I know well, without words).

I really don't think I "talk to [myself] so quietly, it cannot be heard" and while my "tongue and vocal chords" may "receive speech signals from [my] brain", I'm pretty sure they're not executed and neither my tongue or my vocal chords move in any way.

(While reading in English there are some words I don't even know how to pronounce, so how could I "subvocalize" them...?)

\- - -

The other point I have issues with is the fact that one should retain everything they read while speed reading. While I'm unfamiliar with speed reading classes' claims, I would argue that it's useful to be able to skim a big wall of text to

1- get a rough idea of what it's about

2- determine if it's worth a further, more thorough examination

That may not be called "speed reading", but it's certainly a helpful skill.

<comment><USER7> Proof that you can read without subvocalization are ideographic languages such as Chinese (especially the traditional variety), where the written text and the 'vocalization' are not directly related - it is possible to understand a passage of text based on the relation of the characters to each other and the appearance of characters themselves (e.g. the radicals used and the parts within) without actually knowing how each character is pronounced.

<comment><USER8> My personal experience studying Japanese for a few years makes me skeptical of this claim. Granted, the radicals, etc in the symbols can give you a hint of their meaning, but ultimately a writing system is created to communicate vocalized words.

In fact, many of the "hints" in the written symbols are based on words that sound similar to other words when pronounced (their actual meaning being unrelated), which is fully lost if you cut out the vocalization. As another point, most words are written with multiple symbols, and the meaning of the overall word may be rather different than the words you would get if you read the symbols individually. At that point, I don't see any difference from a word written with an alphabet like English.

<comment><USER7> You and the poster below mention Japanese as an example. I counter by saying that Japanese use of Kanji is very different than the Chinese use. I am a native Chinese speaker and have taken Japanese classes, and their vocalization in the language are very different. Japanese places a heavy emphasis on how the characters are pronounced because their language is not purely ideographic; rather they use a hybrid phonetic and ideographic system which forces the reader to vocalize sentences including the Kanji characters.

I posit that if you were a native Chinese speaker, you could skim (or speed read as claimed in the article) without any subvocalization and still understand the given passage.

<comment><USER8> Hm...fair enough. I'm still skeptical, honestly, but I don't know enough about Chinese specifically to argue with that. I do see your point about Japanese being a mixture of systems.

</comment></comment></comment></comment></comment><comment><USER9> I took a speed-reading course and read War and Peace in twenty minutes. It involves Russia.

-Woody Allen

</comment><comment><USER10> "I took a speed-reading course and read War and Peace in twenty minutes. It involves Russia." Woody Allen

</comment><comment><USER11> The comments in this thread, specifically the questions about deaf readers prompted me to Google "deaf readers subvocalization", which lead me to the book "The Psychology of Reading" by Keith Rayner and Alexander Pollatsek.

I'll excerpt a few paragraphs.

[Page 191 - <http://goo.gl/VLaaM>]

 _Electromyographic Recording (EMG) records have been widely used to study the role of subvocalization in reading. [...] Generally, EMGs are also recorded from some other part of the body, such as the forearm, where muscle activity should have no relevance for reading. In fact, normal skilled readers show little forearm activity during reading, while EMG activity in the speech tract increases markedly during reading in comparison to the baseline condition (where the subject sits quietly). In contrast, deaf readers show a considerable amount of forearm activity during reading (we shall see the reason for that later in this chapter)._

[Page 211 - <http://goo.gl/R3NPT>]

 _That profoundly deaf people can read at all is sometimes taken as evidence that speech recoding in normal readers is optional. However, as we have seen, they do not read very well, and the best available evidence indicates that when reading English text deaf readers recode the printed information into their native language (ASL) for comprehension purposes. Since they have not experienced speech sounds, recoding into a phonological code is precluded from deaf readers. Instead, the information is recoded into a manual form to aid comprehension. The poor reading of deaf people is thus probably due in part to inner speech being a more efficient system of recoding than overt manual gestures.

Readers of logographic systems such as Chinese can probably access the meaning of many printed characters directly from the visual representation. However, associations between the printed word and the appropriate pronunciation are activated during reading and appear to be important in comprehending text._

<comment><USER12> my theory is that subvocalization (or this sub-signlanguaging) is actually a 'memory-query' aid that the brain uses. the subvocalization of a word is a key, in addition to the printed key, that lets the brain rapidly conjure the meaning from memory. _not_ doing this makes reading inefficient, so there is a very strong conditioning for it

</comment></comment><comment><USER13> In so far as I have had "success" with speed reading it has been to force myself to run over the words more quickly and so interpret the commonly seen structures as single units. This means that if a piece is written in a very formulaic style then I can get through it fast because most of the stock sentences read like single words with only the unique modifiers jumping out of the page.

Think about when you look at code and automatically chunk the bits you have seen a million times before but are somehow magically able pick out the needle in the haystack which tells you what is special in this instance. The layout of code helps enormously for us, but I find the effect is the same with reading if I go quickly and with specific purpose to reformulate the information as it is scanned. And the more you do it the better you get because you have more data to draw from when identifying structures. It gets to the point where often I _want_ an author to be formulaic rather than stylish and idiosyncratic because it makes it much quicker to reorganise and internalise.

<comment><USER14> > It gets to the point where often I want an author to be formulaic rather > than stylish and idiosyncratic because it makes it much quicker to > reorganise and internalise.

Hence legalese, and bureaucratese, and any number of other things that get laughed at and railed against in equal measure.

<comment><USER15> Excellent point. I rarely think of those as standardised structural conventions for clearly and efficiently conveying meaning to those acquainted with the terms and, to my shame, usually write them off as obfuscating functions to mislead or confuse. Not so!

</comment></comment></comment><comment><USER16> Obviously, you get your best speeds when you're just accepting the text uncriticially. If you stop to think about it, you won't hit top speeds.

Beyond that, you can certainly train for optimal eye movement, local or global optimum as the case may be. After I took speed-reading, I knew not to look directly at the very ends of lines, and I found it more comfortable to center my eyes on white space than on actual text.

IIRC, I tested up to 800 WPM, but that was on grade-appropriate material in a high school I found easy.

(Of course, this was all in the 1970s, when what one read was black text in a familiar font in neat rows on white paper, all at least somewhat thoughtfully arranged. Things are different now ...)

My best real-life estimates of my reading speed was in the 400 words a minute range, with sub-vocalization. E.g., I have a few times read 3 novels the same day, most memorably 2 days before my PhD qualifying exams. (One day beforehand, I crammed like mad. :D One hour beforehand, I led my fellow students in the most awkward game of frisbee ever.)

But it all depends on the material, and the approach to reading it. E.g., there are certain chapter subsections of Hormander's book on Analysis of Several Complex Variables that famously take a week or more each to "read".

And yes -- I subvocalize.

<comment><USER17> "(Of course, this was all in the 1970s, when what one read was black text in a familiar font in neat rows on white paper, all at least somewhat thoughtfully arranged. Things are different now ...)"

Different how?

<comment><USER18> Nowadays one mostly reads online. Adds, adds everywhere.

<comment><USER17> I thought CurtMonash was referring to books nowadays, and I must disagree with him if he's suggesting that typesetting, book design and the quality of book production was better in the 1970s than it is today.

</comment></comment></comment></comment><comment><USER19> Yes, it is possible, I do it, but not as good as I would like. You could read a book in twenty minutes as if it was a video with better comprehension that reading it slowly(as most of the brain disconnects with such a low bandwidth).

When you speed read you train your eyes to look over a wide area and you are able to read several lines at the same time and train the brain to make sense of it(use the subconscious to store-order the lines automatically).

So the best thing you could do is to control the formatting, so text is always the same size and always organized the same way, so if you force your brain to make sense of it, it does after time.

The best structure is newspaper-like text, lots of columns, small lines so your brain could make sense of entire sentences with just an eye shot.

It does not work with Hacker News, or most of the web by the way as each format is different and content is scrolled, with wide lines, not paginated.

It works really well when you could control the formatting, aka non DRM text you could interpret with your own software, but if you try to sell this software you will have problems when even blind people are not permitted to modify copyrighted text.

</comment><comment><USER20> Wow. That was well worth a read, at whatever reading speed gives you full comprehension. The author did a good job of reading the previous scientific literature on the subject, and relating important issues to one another. He examined both historical claims (supposed world records of reading speed) and scientific claims (statements about how people read in general).

I read quite a few books about speed-reading when I was a university student in the early 1970s, putting the techniques to the test while taking courses in linguistics, foreign languages, history of technology, and Japanese literature in English translation. There are a number of good books about how to improve reading skills, with various levels of credulity about "speed-reading" claims. After my own research and experience, I have to agree with the paragraphs in the article submitted here based on more recent research:

"Ronald Carver, author of the 1990 book _The Causes of High and Low Reading Achievement,_ is one researcher who has done extensive testing of readers and reading speed, and thoroughly examined the various speed reading techniques and the actual improvement likely to be gained. One notable test he did pitted four groups of the fastest readers he could find against each other. The groups consisted of champion speed readers, fast college readers, successful professionals whose jobs required a lot of reading, and students who had scored highest on speed reading tests. Carver found that of his superstars, none could read faster than 600 words per minute with more than 75% retention of information.

"Keith Rayner is a professor at the University of Massachusetts, Amherst and has studied this for a long time too. In fact, one of his papers is titled 'Eye movements in reading and information processing: 20 years of research,' and he published that in 1993. Rayner has found that 95% of college level readers test between 200 and 400 words per minute, with the average right around 300. Very few people can read faster than 400 words per minute, and any gain would likely come with an unacceptable loss of comprehension."

I figure that my comfortable, steady reading speed in materials on a wide variety of subjects at an upper-division undergraduate to graduate school level is about 500 words per minute, with good comprehension. I plainly don't need "tl;dr" summaries of articles submitted to HN as often as many HN participants ask for those. (To be sure, many HN participants read English as a second language, and we should admire people who come here to participate in a second language, something very few Americans could do in a non-English- language online community.) I definitely read more slowly and with less comprehension on the first pass in Chinese or in German, my two strongest languages for second-language reading, but I have read whole books in both of those languages for fun or for research. I have diminishing ability to read other languages that are mentioned in my user profile here.

tl;dr: Don't worry about fancy eye movements too much, and don't worry about subvocalization too much. Just read steadily and think about what you are reading while you are reading it for best memory of what you read and best comprehension of what the author was trying to say. Building up your vocabulary--by more reading, of course--is the best way to build up your reading speed.

AFTER EDIT: The claim in another subthread here is specifically WRONG that Chinese constitutes any kind of proof about subvocalization. I'm not committing to a position on whether or not subvocalization, as defined by throat muscle movements, always occurs in reading, but I know from the books _Visible Speech_ by John DeFrancis (a scholar of Chinese)

[http://www.amazon.com/Visible-Speech-Asian-Interactions- Comp...](http://www.amazon.com/Visible-Speech-Asian-Interactions- Comparisons/dp/0824812077)

and _Reading in the Brain: The Science and Evolution of a Human Invention_ by Stanislas Dehaene (a neuroscientist who does brain imaging studies)

[http://www.amazon.com/Reading-Brain-Science-Evolution- Invent...](http://www.amazon.com/Reading-Brain-Science-Evolution- Invention/dp/B003H4RAOU/)

and from my own study of four different Sinitic modern languages (Mandarin, Cantonese, Taiwanese, and Hakka) that all writing systems, properly so called, are systems for writing out speech. Writing is based on speech everywhere in the world and the Chinese writing system is full of clues that most written characters are based on the SOUND of spoken morphemes.

How you might write the conversation

"Does he know how to speak Mandarin?

"No, he doesn't."

他會說普通話嗎?

他不會。

in Modern Standard Chinese characters contrasts with how you would write

"Does he know how to speak Cantonese?

"No, he doesn't."

佢識唔識講廣東話?

佢唔識。

in the Chinese characters used to write Cantonese. As will readily appear even to readers who don't know Chinese characters, many more words than "Mandarin" and "Cantonese" differ between those sentences in Chinese characters.

<comment><USER21> > Don't worry about fancy eye movements too much, and don't worry about > subvocalization too much.

I took a speed reading class back in the 80's, and it focused on these techniques. I gave up. I found that I was concentrating so much on trying to move my finger fast and not subvocalize that I lost focus on the activity at hand - reading.

I was an engineering major, and the techniques weren't practical for my academic reading. When reading fiction and non-academic work, it took the joy out of reading. What was the point of reading a novel fast if I didn't enjoy it.

For my academic reading, i did a little self analysis. I found my biggest hurdle to reading quickly with high comprehension was concentration. After 10-15 minutes my mind tended to wander. It's an endurance exercise, and my brain is no marathon runner. So instead of trying to block out an hour or two for reading, I would break it up into shorter stints and try to focus very hard.

It turns out this works out well for reading programming books. I do not want to read a full book front to back without going over to the computer and trying it myself. Otherwise, you end the book thinking you understand everything but realize that stuff way back in chapter 3 is a bit fuzzy.

<comment><USER22> > When reading fiction and non-academic work, it took the joy out of reading. > What was the point of reading a novel fast if I didn't enjoy it.

Agreed. Personally, I think that if you don't subvocalize at least the dialogue in a novel, you're missing out.

</comment></comment></comment><comment><USER23> I checked the link to The Straight Dope about the reading comprehension tests they had conducted; turns out they hadn't conducted one at all. So I guess the author didn't read slow enough before writing.

</comment><comment><USER24> I've discovered a few things about reading speed in my experience.

1) When I read fiction by good authors, I take great delight in reading their sentences, so I slow down drastically to take every word and piece of punctuation in.

2) Reading speed improves with practice.

3) Read smarter: if you don't need 100% comprehension then read topic sentences of paragraphs carefully then skim the rest of the paragraph for details you think are useful. And in news stories, they follow the "inverted pyramid" for paragraphs meaning that they're ordered such that the first paragraph is the most important, second one is second most important, etc. So you can stop reading at any time.

4) Choose a column width that suits you. A lot of time is spent on line transitions. Smaller columns makes this easier which you can control via your window size.

</comment><comment><USER25> I read this at 800 wpm (adjust this down @ 10-20% if a test I did a while back still stands) fairly comfortably using <http://www.spreeder.com/app.php>. I find it very much easier to stay "in the zone" using it.

<comment><USER26> This is called Rapid Serial Visual Presentation ([http://en.wikipedia.org/wiki/Rapid_serial_visual_presentatio...](http://en.wikipedia.org/wiki/Rapid_serial_visual_presentation)). After a few hours (or minutes) you start to identify the drawbacks presented in the wiki.

<comment><USER25> Yeah I should probably add, I've only used it intermittently. For whatever reason I don't find it comfortable enough to replace regular reading. It works best for articles and the like where I want to actively extract information or quickly ascertain quality.

</comment></comment></comment><comment><USER27> Speaking of speed reading, the current layout of HN is not optimal for reading. Main content width is way too long which makes of long sentences. Font size is too small - so you're forced to zoom in.

Perhaps PG could think about improving readability of the site.

</comment><comment><USER28> I did a speed reading course when I started uni and yes it does work. A lot of stuff is bad habits - some others have mentioned, sub vocalisation, keeping your eye in the middle of the page and read with your peripheral vision, obvious stuff - don't slide your finger along the page, don't use a ruler (some do) and so on. I improved my reading and comprehension quite a lot, but find I turn it off when reading for pleasure versus reading to extract facts. It's well worth doing - even if it only increases your reading speed 10 or 20%. [edit: How to skim read was another useful tool]

<comment><USER29> "don't slide your finger along the page"

Interesting, most speed reading techniques teach the opposite and condition you to move your fingers along the page.

</comment></comment><comment><USER30> I did a speed reading course in high school and often wondered if it was a scam.

Not a scam, scam more a motivational speaker/Eat less exercise more style scam. If you followed it through it would work but almost no one follows through hence the course/advice becomes bunk.

For instance one thing we were taught was to first skim the book/chapter really quick then read it 'properly'

Makes sense to me, but I never do it.

People do have different reading speed levels and I don't think it's all innate so I don't think it a crap idea.

I would agree that maybe the teaching is currently more based around customers and less about pedagogy though.

</comment><comment><USER31> When I was younger I took a reading test and scored just over 1,000 words per minute with 100% retention.

I remember reading an article that there were 3 types of readers.

Readers who sub-vocalize the words

Readers who "hear" the words

Readers who "see" words

Not sure if that's an accurate assessment, but I definitely don't sub- vocalize. If I sub-vocalized, I think would at least some general idea how to pronounce unusual character names from fantasy novels. I couldn't have even tried to pronounce most of the character names in Lord of the Rings, immediately after reading it but I could recognize the name patterns if I saw them.

<comment><USER32> I am very much a sub-vocalizer, and I have _no_ idea how to pronounce a lot of fantasy words. What I find I do is I just don't sub-vocalize that word. I don't even think about it, I just don't have a way of pronouncing the word, so I "skip" it. Subsequently, I honestly couldn't tell you, were we to have a conversation about that story, what that word was. My comprehension of names I can't sub-vocalize is dismal compared to my comprehension of a) names I can and b) larger story concepts and whatnot that I can largely sub-vocalize.

When reading Crime and Punishment in school, I remember specifically saying, "I have no idea how to pronounce a whole bunch of stuff in here and I'm going to need to talk about it, so I'm going to specifically come up with a pronunciation." Without that conscious effort, I simply wouldn't have tried to vocalize the names whatsoever, despite that being my standard method of reading.

And to be clear, I _can_ not sub-vocalize, but it's just... uncomfortable.

</comment></comment><comment><USER33> I think speed reading is most useful when you are reading some text where only parts are relevant or new to you. By quickly reading those, you can focus on the important pieces and spend more time to think about them.

Interestingly, the faster I read, the less I'm able to "filter" the information I read about, it seems almost as if my brain absorbs it directly. That means that I'd never speed read content that might contain bad memes or false information: political propaganda, religious texts, etc.

Does anyone know a good test for reading speed (including comprehension)?

<comment><USER34> This book did in fact double my reading speed in 1 hour and there are 2 nice tests in the back which can help calculate you reading speed and also comprehension

[http://www.amazon.co.uk/Speed-Reading-Double-Triple- ebook/dp...](http://www.amazon.co.uk/Speed-Reading-Double-Triple- ebook/dp/B008J2MMWU)

<comment><USER35> how ironic.

</comment></comment></comment><comment><USER36> I've been a bookworm from early age and even though I slow down when the material is highly technical and requires better comprehension I don't find the words being repeated in my head. As a matter of fact, while reading I find that while I do talk in my head, I might summarize or ask myself questions about a paragraph (stuff like: "Don't believe. Rem. check refs", like I did a few times in this article), as opposed to repeating the words I'm reading. The only moment I find I'm repeating words mentally or sub-vocalizing is when I'm writing, and I believe I do so to get the underlying tone of what I'm writing.

When I read a novel, I tend to want to spend more time immersing in the world and the events in it. While I slow myself down in this case, I tend to make images in my head while reading and I've found that it becomes inherently harder to do if I'm subvocalizing... it removes focus from the imagination side of things for me. I don't really believe that it's impossible to read without subvocalization.

In any case, one of the tricks I use to speed read at a moderate speed (as opposed to skimming) is to black out mentally everything but the current line and process it as a whole. It works like imagining a rectangle enclosing the current line. Works wonders for me taking into account I'm the fastest reading person in my social circles.

</comment><comment><USER37> there are plenty of books around this topic. In short there are a at least 4 ways speed reading that you use for different materials. As the other comment pointed out the 1st thing you have to do is stop vocalizing what you read, then you need to learn vocabulary so you would know all of the words without putting much thought to it.

speed reading can really be a game changer, I used to get bored of books myself, but when I can read faster the experience seem to be way more enjoyable!

<comment><USER38> But do you experience the same limits as stated on Skeptoid? Are your reading at 500-600 words per minute, with full comprehension, or even faster?

<comment><USER39> I can read pretty quickly (I've never really measured, but it takes me about a minute to read a page, which I guess is around 500 words). Depending on the text, though, there's a lot of slowing down or re-reading. I read Harry Potter pretty quickly, but "Thinking: Fast and Slow" is nowhere near at the same pace.

<comment><USER40> Yes, a lot of times speeds keep on varying. It depends a lot on the type of book that you're reading. For the rest, it's inherent abilities that assist.

</comment></comment></comment></comment><comment><USER41> I worry more about the quality of my comprehension than the speed at which I read. I"d rather take ages and get a good understanding than speed up the pace at which I read. Depth over breadth any time. In product features, in overall understanding, in capability, in testing, art, in all things life. This is akin to a get rich quick scheme, do things on the cheap, doing more with less. You can only do less with less.

</comment><comment><USER42> I'd argue with a few points made in this article. Subvocalization can most definitely be minimized - Not removed completely, but minimized. The article brought out a study from NASA stating that there were minute muscle movements, which I would believe - but if you can minimize it to a dull effect, can drastically improve your speed of reading.

As with "fancy eye movements" as some have claimed it - Whether they have much of a help, I'm not sure. Personally I generally read with my right eye, and my left eye tails a fraction of a second behind which generally helps pick up a few details I may have missed - But I notice I have trouble with this if a page's width is too large (HN has a fairly large width and I will read much faster if I make the window smaller). Anything more than that seems as if it would be fairly difficult - But I haven't read into the various techniques.

Can you learn to read at the crazy speeds mentioned in the article? Probably not. Speeding your reading up though seems definitely plausible - At least it _seems_ to work for me, but I can't draw a very good conclusion from just myself in the sample.

</comment><comment><USER43> I used the coursebook Breakthrough Speedreading successfully in teaching myself the technique a number of years ago. Though all arguments here about nuance and critical thinking also were nagging in the back of my mind then, the actual reason that made me drop it was actually reading another book on an unusual technique: Relearning to See on the Bates method.

The Bates Method emphasizes that one of the worst offenders to natural vision is staring, or the act of fixing a point and relying on peripheral vision to capture a much bigger area. Relearning to See is in big part about relearning to skip, like animals do, when they constantly move their eyes and heads to scan the environment or an object. And speedreading was at odds with this, because it emphasized you should fix your vision on some center point in the page and allow your peripheral vision to gobble up the surrounding text, and you need not even do it sequentially, you should get to the point where you "understand" the image of the page as a whole. That's the bill, anyway. So I opted for natural vision (and comprehension).

</comment><comment><USER44> As I was reading this article, I used the SpeakIt! Chrome Extension[1] with the native voice setting to gauge how fast the quoted speeds actually are.

For me, 800 wpm was about the limit of how fast I could read while still understanding most of it. That's the '4x' setting. The '2x' setting is 400 wpm, which based on the article and my experience is a good target reading speed.

It's not entirely perfect because the rhythm imposed by the text-to-speech engine is not optimal for fast reading – it pauses when you don't need a pause and powers through complex sections, but I found it an interesting exercise nonetheless.

Lately I do most of my reading by listening to audiobooks. The last two books I read, I experimented with the 2x speed setting on the iPhone. It took a few minutes to get used to, but now I can't recommend it highly enough. Now I can get through audiobooks in half the time and I've totally adjusted to the butchered sound quality.

[1]: [https://chrome.google.com/webstore/detail/speakit/pgeolalili...](https://chrome.google.com/webstore/detail/speakit/pgeolalilifpodheeocdmbhehgnkkbak?hl=en)

</comment><comment><USER45> Anecdotal personal stuff: I learned to stop subvocalizing in grad school. I had no idea it was a canonical speed reading strategy. I can read really fast now, with unimpeded comprehension.

Common sense stuff: The author says that scientists say that reading without subvocalization is impossible. The fact that deaf people can read is extremely inconvenient for this theory. Seriously, man?

</comment><comment><USER46> It's funny this comes up here and now, as I am working through "How to Read a Book", which was in one of the recommended reading threads on HN recently. In HtRaB, they talk a little about speed reading, but dismiss it as mainly something that can help bring someone up to speed, ie, it is mainly helpful in a remedial sense. I think the commentary with comprehension is quite cogent (it's precisely why I'm reading HtRaB), and so therefore the discussion should turn to what to read, since time is limited. Again, I am grateful to previous threads on HN for pointing out good reads, and feel that a more considered approach to how time is spent (both in what is chosen to be done and how well it is done), rather than in how quickly something is done is most beneficial.

</comment><comment><USER47> There's another Ronald Carver book called _"Reading rate : a review of research and theory"_ , which comes to the conclusion that speed reading doesn't work.

People can skim at faster rates than they can when reading with full comprehension, but then their comprehension will suffer. You can learn to skim, to take notes, to get quick overviews of whatever you're reading by noting things like chapter and section headings and by reading for the main ideas of sections and paragraphs.

These are all useful skills. But they are a far cry from being to read every single word in the text with full comprehension, and doing that at a significantly faster rate than normal. This latter achievement is something there is little or no evidence of.

<comment><USER48> > read every single word in the text with full comprehension

Some would say this is impossible and unnecessary.

</comment></comment><comment><USER49> The whole eye-moving thing is a complete waste of time and effort. The real trick to speed reading is RSVP[1], rapid serial visual presentation.

In RSVP the words or small groups of words are flashed in extremely fast succession without the need for the reader to move their eyes at all.

I use iRSVP on my iPhone to read books from my Calibre library and my reading speed has never been higher. It's not for everyone and requires a high degree of concentration, but it enables me to read and understand books much faster that I would have been able to otherwise.

[1] [http://en.wikipedia.org/wiki/Rapid_serial_visual_presentatio...](http://en.wikipedia.org/wiki/Rapid_serial_visual_presentation)

<comment><USER50> If you've had good luck with RSVP on your phone, I built a RSVP bookmarklette[1] a while back for reading articles on the web. I never had much luck reading with it, but it might be useful if RSVP works for you.

[1] <http://qwerjk.com/force-feed>

</comment></comment><comment><USER51> Wondering about subvocalization, what about reading in a language I never learned to speak?

<comment><USER52> unless it used an alphabet you don't know how to pronounce that's impossible.

<comment><USER39> What's impossible? Reading without subvocalization? I do it all the time.

</comment></comment></comment><comment><USER53> I agree with the conclusion that improving reading comprehension is the best way to improve reading speed, at least for me. There are two things I learned from my stuttered attempts at speed reading: (1) The best way to increase reading speed for me is to simply stop re-reading sentences that I already read. I do this unconsciously usually because I didn't fully understand the sentence the first time. Better reading comprehension reduces this. (2) Attempting to speed read is probably a waste of time for me because most of the material I read is technical, so comprehension is usually the bottleneck to getting through the material, anyway.

</comment><comment><USER54> Different people have different minds/brains. My ex read so fast that trying speed reading techniques slowed him down. I read ridiculously slowly for someone who was in a lot of gifted classes. I tried speed reading techniques. I was able to read faster. I hated it and went back to my snails pace voluntarily. I read with good comprehension, but, yes, I "say" everything mentally.

My oldest son also reads shockingly fast. When I began watching him play videogames, he flipped through dialogue so fast I could not read it. I thought he was just skipping familiar parts. Nope. He just reads that fast. He has to slow down if he wants to include me.

</comment><comment><USER55> I have 3 thoughts on speed reading

1\. Speed reading fiction is about as sensible as watching movies in fast forward.

2\. Speed reading non-fiction will not lead to much formation of conceptual knowledge in your brain, and definitely not the sort of rich inter-connected learning that we probably read for in the first place.

3\. Speed reading where you develop a sixth sense for which parts of, say, an academic paper you should slow down and read carefully could probably be a good thing.

In general, while I used to think there was some sort of prestige attached to how much / how fast you could read, I don't think that anymore. It's how 'deeply' you read that counts.

</comment><comment><USER56> I once heard a talk by an top government official who says she has to read a briefing book of hundreds of pages every single day from 10p.m. to maybe 1a.m. Of course, They skim a lot and they probably know a lot about the issues already but still they must read at a much higher speed than a college kid to finish that kind of reading assignment every day, right?

I know some people who read a book a day and I can't do it a week, and none of them need to advocate their reading speed. They must read a few times faster I do, I think.

Does anybody here read new texts, with no skimming and a decent comprehension at 1000wpm?

</comment><comment><USER57> How do deaf (since birth) people subvocalize?

<comment><USER58> Studies have suggested that some do, some don't. The more deaf you are, the less likely you are to subvocalise.

Totally not an expert in this area, but I think everybody associates more than just the sound of the word - movement of lips, memories, and other senses are also involved. Deaf people can obviously acquire those 'subvocalisations' instead.

[http://books.google.co.uk/books?id=8PhwXf9uj1IC&pg=PA114...](http://books.google.co.uk/books?id=8PhwXf9uj1IC&pg=PA114&lpg=PA114&dq=deaf+subvocalization&source=bl&ots=ZzKLbj_KCD&sig=204yVPfW8uNexHCO2M1-fby5kVk&hl=en&sa=X&ei=fE8rUeGZLsqR4ASE5IGgAw&ved=0CGwQ6AEwCA#v=onepage&q=deaf%20subvocalization&f=false)

</comment></comment><comment><USER59> Around 5th-7th grade, I was in advanced reading and part of a speed reading training class/experiment. It still all seems a bit odd to me. A woman came in a couple times a week with a special projector that projected a book on the screen, but using a rapidly moving light, only showed a few words at a time on the screen. Each week the light moved faster. This was followed by comprehension tests.

I read about 30% faster than most people, but I have no idea if this is really why. Was anyone else a guinea pig? This was in Central NY in the 80's.

</comment><comment><USER60> So, whenever I think of the subvocalization debate, I immediately see this video. The basic idea was, do not presume that everyone does the same thing you do in order to achieve the same goal.

[https://www.youtube.com/watch?list=PL273BA8C6E484C988&fe...](https://www.youtube.com/watch?list=PL273BA8C6E484C988&feature=player_detailpage&v=Cj4y0EUlU-Y#t=148s)

In other words, I find it hard to believe a claim that subvocalization is required across the board. At least, at an absolute level.

<comment><USER61> Feynman is not talking about subvocalization in that video.

He's talking about seeing and hearing. According to psychology, humans have two sets of "short-term memorybuffers"; spatio-visual, and auditory. It is perfectly possible to do two tasks at once, as long as you use different "buffers". Like juggling and singing.

But to be able to comprehend text, it needs to go through the linguistic centre. It doesn't matter if it goes through the spatio-visual or auditory sensors. Subvocalization is created by the linguistic centre.

Simple words or numbers do not need to go through the linguistic centre. So it is perfectly possible to comprehend text and at the same time count if you "see"/"hear" text and "hear"/"see" counting. But you cannot comprehend two advanced texts at once.

<comment><USER60> Hmm... I can obviously not claim you are wrong. But I do find the difference between internally hearing something and "subvocalization" tough to distinguish.

And, my entire point was that reading is different to different people. So... it may well be that many folks can not speed read. Might even be the case that most speed readers are not as good as they believe. Still, to see the numbers in this, 600wpm with 75% retention sounds ridiculously fast and not too shabby on the retention. So... yeah?

</comment></comment></comment><comment><USER62> After reading this very informative article, it occurred to me that developers of new tools that will be built upon heavily would do well to try to think of names that can be vocalized in one or two syllables. Reading the name PHP or the mouthful WYSIWYG should take longer than words such as C or Java or SCRUMM or perl if we are indeed vocalizing them. Perhaps the convention of adding www to the beginning of website names has had a substantial impact on the efficiency of web navigation?

</comment><comment><USER63> It's really up to the text. When I read math or comuputer science papers, I have to read slowly, and a few times over, to get any comprehension, even from the non-formula prose.

</comment><comment><USER64> I wonder if NASA has done comparative studies on native vs foreign language wrt sub-vocalization and reading/speed reading ?

It is rather well known that native language and (all) foreign languages are "stored" in separate parts of the brain (with some limited controversy over whether there exists "bilingual" people in a biological sense).

I wonder if that has an effect on how we read written text (other than that most people presumably read faster and with better comprehension in their native tongue).

</comment><comment><USER65> Good speed reading courses and books not only teach you how to skim faster and not to subvocalize but how to comprehend and learn better. For example in Paul R. Scheele's book he teaches you how to start on a book:

read the table of contents,

then read the headlines through the book,

then speed read the book and then try to probe your comprehension, ask questions etc.

The table of contents and the probing is the most important. Teaches you recursive learning, when you first build a foundation then you fill out the details.

</comment><comment><USER66> I also use spead reading once in a while. I can read realy fast going through large documents To be able to find something quickly I once got a huge document on my desk 3400 pages, and i had to decide if we would do that project, please try to read it. To their surprice i fineshed reading and pointed them on the hard parts of it, they never thought anyone would be able to read the entire doc in just a few hours for the deadline.

</comment><comment><USER67> Around the point in the article describing the eye movements required for reading, I experienced a weird anxiety as I attempted to both perceive my own eye movements and consume more of the text. After a few sentences it actually became uncomfortable. Gave me the impression that implementing speed reading strategies would be dubious for me, personally.

<comment><USER68> I have this sort of problem all the time, and I wonder if it is due to a Problem. For example, if I become aware of my blinking (like if someone does the "manual blinking" trick on me ... ... damn it), then I become anxious and uncomfortable until I can be sufficiently distracted from thinking about it.

Another one is eye contact; I generally don't have a problem making eye contact during conversation, but if I start _thinking_ about it, I become aware that I can only look at one eye at a time and, I get a similar feeling of anxiety and discomfort. I can't decide whether to focus on one eye, switch between them (and at what rate?), or stare past the person, "magic eye" style so they look like a triclops.

<comment><USER67> Hah, the triclops comment made me chuckle. And don't read too much into this, as I doubt it is at all an appropriate indicator, but I should disclose that I actually have an anxiety disorder. Particularly in conversation I will sort through conversational trees and actively analyze the dialog I am having, as it is happening.

It can be both maddening and very useful. But more than anything it makes you realize how comfortable you are with those closest to you, because all that overlaid mapping and planning fades away into actual casual conversation.

Veering far off topic now though!

<comment><USER68> Interesting. I also have an anxiety disorder, so maybe there is some relationship there. We just need someone neurotypical to chime in and tell us whether it happens to them too.

</comment></comment></comment></comment><comment><USER69> I'm surprised about the bit about the subvocalization; I always thought that brain speed was the number one limiting factor.

<comment><USER38> I have had a few workshops on speed reading at my university, and what those guys said about subvocalization was something along the lines of: We learn to read when we are about 6 years old, how do we learn this? By sitting in a classroom and reading out aloud a simple text, with the entire class at once. In this stage we start to connect reading with subvocalization, when we learn to read better the teacher tells us to 'read in our heads'. Meaning that you are still sub vocalizing. This is a limiting factor as one can (presumably) only speak around a maximum of 500-600 words per minute. Coincidentally, this is the maximum speed for which we can read with a high comprehension according to skeptoid.

I personally never thought much of the guys giving the speedreading workshops, they seemed to be acting and came across like secondhand car dealers. Their claims of comprehension with over 1500 words / minute just sound insane. The techniques however are not all nonsense, and I do believe that I have learned to increase my reading speed from +/- 300 to around 500 words per minute.

The most important lesson they thought was 'guiding your eyes'. Our eyes are not that good in following a straight line by themselves, just try to stare straightforward, and make a perfect circle with your eyes: it will more likely be a pentagon or something. When we let our eyes follow our finger drawing a circle however, it is a lot easier. Applying this to reading, simply means using your finger or pen to follow each sentence on the paper. I find it a lot faster to read that way, but I still let myself subvocalize the sentences, for comprehension. Doing this on a 500-600 words/minute rate is a lot more exhausting though, and I only use it for academic articles or textbooks.

</comment></comment><comment><USER70> 1) Silence the inner voice.

2) Don't fallback with your eyes, just re-read the entire sentence.

I can combine two lines I've read into a sentence while reading the next two lines. It helps when I'm in an exam, or when looking for something in a Website.

I heard of people who scan pages diagonally, which makes my envious :)

</comment><comment><USER71> Besides sub-vocalization I tend to read loudly making full use of my oral musculature. It helps me stay active, improves comprehension and retention. I am not sure if it's a bad habit or just the way my brain works. Any of you guys have same experience.

</comment><comment><USER72> Just a shout out for forcefeed - a javascript bookmarklet that lets you read any web page without moving your eyes. I think it's incredibly helpful, even if my comprehension isn't 100%.

<comment><USER73> link? thanks

</comment></comment><comment><USER74> Yes, if you don't value what you read and just want to get a quick idea of it.

It's not possible for actually _reading_ stuff.

Which reminds me of the Woody Allen quote:

― "I speed-read "War and Peace". It's about Russia, right?".

</comment><comment><USER72> Just a shout out for forcefeed - a javascript bookmarklet that lets you read any web page without moving your eyes. I think it's incredibly helpful.

</comment><comment><USER75> Is there any good speed reading online course?

<comment><USER68> You are still looking for one after reading that article?

</comment></comment><comment><USER76> For a user of a speed reading CD (eye-Q), thank you for this info!

</comment><comment><USER77> Not for me.

</comment><comment><USER78> The text says it's been proven by NASA and several others that you can't remove subvocalization, yet most speed reader comments here go on to say "yes it works i removed subvocalization". It's obvious all these "speed readers" didn't read a single line of this article.

<comment><USER28> depends what you mean by sub vocalisation - some people move their lips when they read - this slows things down. You still read the words in your head - <USER2> you could call that sub vocalisation - but don't move anything physical (throat, mouth, tongue) - that slows you down.

<comment><USER79> From the article:

Even skimmers subvocalize key words. This is detectable, even among speed readers who think they don't do it, by the placement of electromagnetic sensors on the throat which pick up the faint nerve impulses sent to the muscles. Our brains just don't seem to be able to completely divorce reading from speaking. NASA has even built systems to pick up these impulses, using them to browse the web or potentially even control a spacecraft. Chuck Jorgensen, who ran a team at NASA in 2004 developing this system, said:

"Biological signals arise when reading or speaking to oneself with or without actual lip or facial movement. A person using the subvocal system thinks of phrases and talks to himself so quietly, it cannot be heard, but the tongue and vocal chords do receive speech signals from the brain."</comment></comment></comment>


Inkscape 0.91 release - <AUTHOR> https://inkscape.org/en/gallery/item/3854/ <comment><USER3> Inkscape is a great piece of design software. I've been using it for a good 8 years now to design websites, complex application interfaces, prototype many projects and everything in between. The application has been designed with care and it shows. There is a sense of respect towards the user and you can really enjoy using it for long periods of time. It just fades away and lets you get to work. No fuss.

The interface and workflows are simple, yet extremely powerful if you spend some time understanding the tool. I have used Inkscape exclusively to do all my interface design work during my career.

After moving to OSX, I was put off by the lack of native support. So I tried moving to Sketch and Illustrator. I found Illustrator to be overly complicated and plain bloated. I've always had a distaste for Adobe software and Illustrator maintains that negative image for me. Sketch on the other hand was unstable when I tried it. It had some serious bugs that made it unusable.

I went back to Inkscape and am now used to the GTK quirks & the lack of Retina support. The software itself remains my favorite tool. And I'm excited to see this major update to Inkscape.

<comment><USER4> You're in luck! There is a native OSX port in progress, called the 'osxmenu' branch:

[https://code.launchpad.net/~suv- lp/inkscape/osxmenu](https://code.launchpad.net/~suv-lp/inkscape/osxmenu)

There are still some bugs, but it works well for me.

<comment><USER5> Wow! It's works pretty well! I could never get Inkscape working on OS X before. There is still the big startup time but it's definitely better than using xquartz.

<comment><USER4> FWIW - the long startup time is just the first time you launch the application, I think it's doing something with fonts, after that it launches pretty quickly.

</comment></comment></comment></comment><comment><USER6> The notable thing here is that it has a whole new cairo-based renderer. Great job inkscape team! My go-to tool for svg editing once things get complicated.

EDIT: new binaries arent officially posted yet but here's an OSX nightly build from 10 hours ago: [https://www.dropbox.com/sh/2n7aim2wcrn6l3h/AAC62qBMxM6317AZi...](https://www.dropbox.com/sh/2n7aim2wcrn6l3h/AAC62qBMxM6317AZiMnSt2KQa/Inkscape-0.91%2Bdevel-r13881-1-x11-10.7-x86_64.dmg?dl=0)

<comment><USER7> Inkscape is a tool I wish had better OS X support, the way it handles the gui just feels broken for me, compared to Windows or GNU/Linux.

<comment><USER8> Sincerely, it doesn't feel native in Windows as well.

<comment><USER9> It is not the developer's fault. The problem is that there is no up to date builds with up to date dependencies. Maybe msys2 provides an answer. Currently is in pre version.

<comment><USER8> I'm not sure - its really minor stuff like this: [https://dl.dropboxusercontent.com/u/19746944/inkscape%20sele...](https://dl.dropboxusercontent.com/u/19746944/inkscape%20select.png)

</comment></comment></comment></comment></comment><comment><USER10> Inkscape is amazing. One of the only pieces of "big" software that I use without first fiddling around in the settings and changing a bunch of things. It just feels right to use.

<comment><USER11> It has come a long way, I remember when I first tried Inkscape several years ago and it was constantly crashing or freezing on Windows, but now - <USER2> problems at all, the UI is great and it has all the features you need for vector graphics.

<comment><USER12> The official page says latest stable windows version is 0.48.5 or something.

Is it the Windows build which isn't prioritized, or is it versioned somewhat differently?

<comment><USER13> The development version got renumbered from 0.49 to 0.91. [https://inkscape.org/en/news/2013/12/19/inkscape-049-will- no...](https://inkscape.org/en/news/2013/12/19/inkscape-049-will-now-be- inkscape-091/)

</comment></comment></comment></comment><comment><USER14> I am graphic designer, Inkscape made me realize that Free software could be also for designers. Now I work exclusively with F/loss on linux. I use Inkscape every day and I am really happy to see this release.

</comment><comment><USER15> Excellent stuff! Inkscape really is a superb bit of software.

I still recall the first time I tried the included tutorials and realised that the tutorials themselves were just SVG docs. So it had things like, "Let's explore the handles of an ellipse. Select this one", and the shape is right there in the tutorial. Brilliant idea!

</comment><comment><USER16> Just loaded up a 17MB OpenStreetMap svg file (map of Bath, UK) which was unworkable on my Mac under 0.48. 0.91 is fast. Really fast. I'm sold. Well done.

</comment><comment><USER17> I never really could get the hang of InkScape (while I'm usually pretty good with graphics) until I followed the first few parts of this tutorial:

[http://2dgameartforprogrammers.blogspot.nl/2011/10/lets- get-...](http://2dgameartforprogrammers.blogspot.nl/2011/10/lets-get-started- with-circles.html)

Now I love using InkScape. It was a matter of finding the proper workflow.

Just putting it out here, in case it might also help others.

<comment><USER18> These are awesome! Thanks a bunch for this - I'll definitely be trying to follow them.

</comment></comment><comment><USER19> I'm not a designer but I do occasionally whip up my own images if the task is simple enough. One thing I've always wanted in a drawing program is the ability to create shapes by typing in dimensions. e.g. Dragging out a a rectangle to be exactly NxM units is so tedious and it comes up all the time. Does Inkscape or any other drawing program support anything like that?

<comment><USER20> Yes, you can have full control over SVG element dimensions in InkScape through input boxes as well as dragging by mouse. You can also use a snapping grid to define all your elements in relation to the grid, or enable many other types of snapping and automatic aligning.

</comment></comment><comment><USER21> Inkscape has been a project for 11 years, why the hesitance to have a version number above 1.0?

<comment><USER22> As a long term user I'd agree to some extent, the 1.0 version feel has definitely been and gone - probably I'd say this is about a version 4, to my mind.

[http://wiki.inkscape.org/wiki/index.php/InkscapeInvariants](http://wiki.inkscape.org/wiki/index.php/InkscapeInvariants) are the stated aims of the project and AFAICT they've not achieved the SVG spec compliance completely yet. Though I thought I recalled them aiming at the reduced SVG "basic" set (? if that's what it's called) and reaching it.

I've been a user since it forked from SodiPodi (and indeed was a SodiPodi user too).

<comment><USER23> I miss SodiPodi, with it being multiple-document single-toolbar'ed. Iirc this was the sole contention of the fork- Inkscape was born explicitly to have each document have it's own suite of controls.

<comment><USER24> No, it was born because of the structure of SodiPodi. Lauris was effectively the gatekeeper and others did not have commit access. He wasn't accepting patches he didn't want to, so a handful of our founders decided to fork and have a much more open approach. As it stands, if you have two patches accepted with the project (Inkscape) and want it, you can have commit access.

</comment></comment></comment></comment><comment><USER25> I love Inkscape, but not having a native OSX build sucks.

<comment><USER26> Totally agree. I'm a huge fan of Inkscape. When I moved to OSX I started using Sketch as my main design software, but I do often find myself frustrated wanting a feature that Inkscape had. Really pleased to see this update. Hoping for better native OSX support, rather than running it through X11.

</comment></comment><comment><USER27> You have a native mac beta version here:

[https://www.dropbox.com/sh/b7tyrnugif2ywqj/qpMx1ygywo](https://www.dropbox.com/sh/b7tyrnugif2ywqj/qpMx1ygywo)

Much better than needing XQuartz.

<comment><USER28> Is there an official location for this project, with source code etc.? Forgive me if I sound paranoid, but downloading a binary from a random Dropbox is a little weird.

<comment><USER29> Looking in the README, it appears that this OS X branch is part of the main repository. The page for it is at [https://code.launchpad.net/~suv- lp/inkscape/osxmenu](https://code.launchpad.net/~suv-lp/inkscape/osxmenu)

</comment></comment></comment><comment><USER30> I like Inkscape a lot, but there are still cases where it just doesn't work well. The import of postscript or PDF produces some strange results sometimes, especially with text. That is something the commercial alternatives still do quite a bit better.

The speed increase is nice, Inkscape could be painfully slow on complex drawings with lots of paths.

<comment><AUTHOR> For me the PDF import and export already works well enough: it's been years since I printed a PDF form just to fill it, sign it and then scan it to email it back. I just open the PDF in Inkscape, fill it with the text tool, insert à JPG of my hand signature, save it, and send the resulting PDF back. The administrative efficiency I gained with this technique is gigantic, especially because I don't have to wait to have access to a printer _and_ a scanner to do such things anymore.

<comment><USER31> When you want to edit the text a bit (so not just to fill forms, but actually edit a PDF/EPS, extract a figure from a paper and rework some text), in 0.48 imported text looked nice initially, but as soon as you start changing a single character the whole text block gets completely wrong (misaligned, writing new characters over the beginning of the text instead of appending...)

<comment><AUTHOR> Yep, that's true. I will have to try that with the new version (when it will hit Debian testing…).

</comment></comment></comment></comment><comment><USER32> Inkscape is great. I've only recently started using it more heavily as a tool for building a board game with my wife. It gets the job done for me, and I don't have to unlearn anything, as I'm not coming from illustrator.

I'm very pleased to see it's under active development.

</comment><comment><USER33> This version of the release notes is properly formatted and includes the images referred to in the text: [http://wiki.inkscape.org/wiki/index.php/Release_notes/0.91](http://wiki.inkscape.org/wiki/index.php/Release_notes/0.91)

<comment><USER34> Hopefully the mods can update the OP to point to it?

</comment></comment><comment><USER35> Great job. This release took quite a bit. I think 0.48 was released two years ago. They basically rewrote the whole software in OOP.

<comment><USER36> Is there a reason for doing that?

<comment><USER37> Also, a rationale for choosing C++ would be interesting.

<comment><USER38> If you want to go OOP from C, what would you choose?

<comment><USER37> Personally, I'd choose one from many languages.

I'm not convinced C++ is a good choice for user-level applications. Maybe for the performant parts, or for compatibility.

Perhaps other factors like skillsets came into play...

<comment><USER38> We're talking about a port from C. Porting from C to C++ is much easier than porting from C to any other language...

<comment><USER37> I didn't think it was a straight port...

But, yeah, it's going to be easier. It's also an opportunity to consider another language that might improve productivity, reliability etc. in the future. Just wondering. Didn't mean to start a language war :-)

<comment><USER38> No problem, I'm not interested in a language war either - even more so because I haven't used C++ in 5 years :)

Just wanted to point out that if you have a C code base, it is way easier to port to C++, which isn't a bad language at all.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER39> My only feature request is GUI-less builds, to match running it GUI-less. This would significantly cut down on dependencies and also reduce compile time.

I notice there was a discussion about this on inkspace-devel years ago, but it yielded no results from what I can tell.

[http://sourceforge.net/p/inkscape/mailman/message/20403131/](http://sourceforge.net/p/inkscape/mailman/message/20403131/)

</comment><comment><USER40> I think my biggest problem with inkscape is the tearing of the screen when I move the canvas around and it redraws. something about it makes the entire thing _seem_ unstable to me. I dislike Illustrator but I feel like it could handle a big file better than inkscape, if inkscape can't even draw the screen fast enough. How will it handle the memory of a three-hundred thousand node vector image. Somebody tell me what the heck is that tearing happening and why after 20 versions isn't it improving?

As long as I work on Windows, there is Xara thankfully. It's got quirks but has been good to me and my workflow. On Mac now thankfully is Affinity Designer. Not quite fully fleshed out but still excellent to have. Inkscape is a great utility program for me that has a lot of low level tweak settings and it's great it constantly gets better.

</comment><comment><USER41> Inkscape is a vastly underrated app. It makes simple things possible and for complex things, it has a great Python-based plugin system. The API is quite easy to understand. You would be building scripts in no time to automate your art pipeline.

Best of all, it has great single-key keyboard shortcuts for higher productivity :)

</comment><comment><USER42> Great news!

But my heart still yearns for CMYK and (to a lesser extent) spot colour support.

</comment><comment><USER43> Does the "Support for real world document and page size units, e.g. millimeters" mean any mm dimensions are also stored in the file as mm?

For all the SVG-base CNC apps this would be great news.

<comment> jarek-foksa Implementation-wise, the only place where real world units such as "mm", "cm" or "px" make sense are the "width" and "height" properties of the outermost <svg> element.

This is because everything inside SVG document lives in an imaginary infinite world where dimensions and distances are expressed in abstract "user units".

You use "viewBox" attribute on the outermost <svg> element to specify a rectangular fragment of that world for the purpose of rendering. You use "width" and "height" properties to specify the real-world size of that fragment.

Authoring tools might show you dimensions of SVG objects such as rectangles or paths in real-world units computed from "viewBox", "width" and "height" of the outermost SVG element, but under the hood the size of those objects should be stored in user units.

<comment><USER43> The issue is with translating "user units" to real world units. Up until now SVG is tricky as a CNC file format because of this little detail. For Inkscape you had to translate user units/px based on the assumption of 90dpi.

Not a big deal if you only use Inkscape. The real mess starts when going between different authoring apps. Then pretty soon a 100mm line in Inkscape turns into something longer or shorter. This is when you revert back to DXF, the bastard of all file formats.

I don't see how the viewBox's real world units can solve this. I think the geometries need to actually use real world units (which the SVG standard supports).

<comment> jarek-foksa I don't understand how DPI is relevant here, if an authoring tool takes into account DPI when translating user units to viewport units then it's a bug in the authoring tool rather than limitation of the SVG format.

Not sure if this is what you meant, but some tiny rounding errors might occur during conversion if there are many transforms involved between the user space and the viewport space, but this can be avoided if user space values are stored with high enough precision.

In order to convert user units to viewport (physical) units and vice versa you only need the current transformation matrix, viewBox rect and viewport size. I have created a demo which shows how I can determine the line length in physical units: [http://jsfiddle.net/9n5hf2jw/1/](http://jsfiddle.net/9n5hf2jw/1/)

The way how real world units are interpreted inside the SVG document is so messed up that even the SVG spec itself discourages their use:

 _Defining the size of a document in mm and then using mm units for shapes within it is going to give counterintuitive results, since they 'll be converted to user units to resolve against the view box._ ([https://svgwg.org/svg2-draft/coords.html#Units](https://svgwg.org/svg2-draft/coords.html#Units))

<comment><USER43> Thanks for the jsfiddle. I think I understand what you mean. Cross-referencing this with how the new Inkscape saves files actually makes sense. By using width/height and viewBox you can define how user/px units are converted to physical units.

When I setup up Inkscape to use mm it does set with/height in mm and then the viewBox to the same dimensions (without units). This way it is implying the user/px units (e.g. all unitless dimensions in the file) are basically mm.

Previous versions of Inkscape would always safe in user/px units with an implied conversion of 90dpi, meaning a scaling factor of (25.4/90) to go from values in the file to mm. CorelDraw always uses 96dpi, Illustrator always 72dpi. I am not saying this makes sense. It's just how different authoring apps do it. If you want to use the file in a CNC machine you have to make sense of what the app meant when it uses unitless dimensions. When a file was edited with two different apps it very often is not possible to make a smart guess by some basic heuristics.

BTW: the CNC app I am working on is LasaurApp, part of an open source laser cutter called Lasersaur - [http://lasersaur.com](http://lasersaur.com)

</comment></comment></comment></comment></comment><comment><USER44> I so wish they would have picked Qt of GTK back in the beginning. That said: I love the tool, use it all over the place, one of the apps i always install.

</comment><comment><USER45> Has support for embedded drawings in Word improved? I remember it didn't work or there were bugs..

Anyway inkscape is otherwise good- it passes my figure drawing test: draw a ruler with tick marks and numbers. Corel can do it. Vizio can do it. Xfig can do it. Not too many others can (try this with the draw tool built into open office and you'll see).

</comment><comment><USER46> I'm impressed that it isn't even at version 1.0 yet. Really good piece of software.

</comment><comment><USER47> I learned to create vector graphics on CorelDraw 3, Inkscape looks like an old friend for me.

</comment><comment><USER48> I love Inkscape, I still use it, even though the Mac version is abysmal. It's such a shame that it does not have any proper OSX developers as I think it can more than compete with professional vector software.

<comment><USER4> Native osx mac port in progress:

[https://code.launchpad.net/~suv- lp/inkscape/osxmenu](https://code.launchpad.net/~suv-lp/inkscape/osxmenu)

</comment></comment><comment><USER49> Inkscape is very easy to use. We have used it for creating brochures, posters,.. for our Free Software conference. What I like most about Inkscape is, it is easy to use, learn and do.

</comment><comment><USER50> Inkscape is really great but what I really need are Photoshop and After Effects. What are the best Linux equivalents? And don't say GIMP the UI is too different.

<comment><USER51> I've used photoshop on a contracting (professionally) basis since I was 15 using version 4. I've used just about every version since, but kind of stopped since Adobe is moving to more of a service based model with the creative suite cloud crap.

I've also used gimp for approximately 8 years and it has made HUGE strides in the past few years. In fact, I've done a few professional, or semi- professional (ie: not paid) photo restoration jobs recently and I used gimp to do it. Not that surprisingly, people still absolutely loved the work I did restoring pictures of their loved ones or whatnot.

Photoshop still has nothing equivalent to the SIOX background removal tool as the guy who wrote his PHD thesis on it wrote a gimp plugin. If you've not seen it, it is kind of amazing: [http://www.siox.org](http://www.siox.org). See this video for an example using a much much older version of gimp: [http://www.siox.org/videos/siox-in-gimp.mpg](http://www.siox.org/videos/siox- in-gimp.mpg)

<comment><USER50> I'll try the gimp again but the problem isn't capability it's just how weird and different the UI is.

<comment><USER52> Maybe it's because I'm a software developer myself but I never had a problem with GIMPs UI. I never had a problem with Blenders UI either (only when they changed some things and I couldn't find them anymore because they are now somewhere else). In fact back in 2001 when I once tried Photoshop I found GIMP quicker to grasp than Photoshop (maybe because it has less features and thus one can get an overview of all the functions quicker).

</comment></comment></comment></comment><comment><USER53> Finally, they're exporting slanted and italic font styles to PDF!

Seriously, that bug has been biting me since 2011. I'm glad to see it fixed.

</comment><comment><USER54> I tried using Inkscape recently to draw something with text along a path, but the support was too primitive so I gave up. Maybe it's been improved.</comment>


3 years of computing... the palindrome quest - <AUTHOR> http://www.fourmilab.ch/documents/threeyears.txt

<comment><USER2> BTW, in case you missed it, this message is from 1990.

As of 2006 the 300 million digit mark has been reached.

</comment><comment><USER3> Very interesting, heard about it before.

For anyone interested on today's state of knowledge, according to Wikipedia, there is still no known proof, but someone has reached the 13 Million digit mark without finding a palindrome:

"By May 1, 2006, VanLandingham had reached the 300 million digit mark (at a rate of one million digits every 5 to 7 days). A palindrome has yet to be found."

<http://en.wikipedia.org/wiki/Lychrel_number>

<comment><USER4> Maybe I did something wrong, but I've compiled and run the original code and it crunches 1.7 million digits per hour on an not too old Opteron. Did I miss something?

<comment><USER2> It probably takes longer when there are more digits.

</comment></comment></comment><comment><USER5> For fun, I re-ran his million-digit calculation last night. What took three years starting in 1987 took 2:21:09 (2 hours, 21 minutes) on a 2006-vintage PC* and 1:38:55 on a 2010 laptop __.

I got the same termination message (pass 2415836).

* Intel Core 2 Duo, model E6420, 80386 execution model. __Intel Core/i7 Q720, x86-64 execution model.

<comment><USER6> Your numbers are in near-perfect agreement with Moore's Law, if we take it to mean computation time should halve every 1.5 years.

Your 2006 PC is about 20 years newer than the 1987 PC, which means it should calculate it (3 years)/2^(20/1.5) amount of time. That is, based on his computation time, and the amount of time elapsed to the building of your computer, we'd expect your computer take 153 minutes, or 2:32. That's only 11 minutes off of the actual result!

</comment></comment><comment><USER7> Interesting; it's the first code I've seen in a long time that uses BCD (binary coded decimal) representation, and it actually makes sense in this case.

I don't know how widely this is known, but the x86 instruction set actually has native support for BCD(!). AMD removed the instructions in x86_64 to free up some valuable short opcodes.

In any case, it'd be interesting how fast this sort of search would be on a GPU, using OpenCL or so. Vectorising arbitrary-precision BCD arithmetic could be a fun puzzle.

<comment><USER8> I suspect that since every step is dependent on the previous one, it would not parallelize very well.

<comment><USER7> Checking whether the current result is a palindrome will parallelise (split digit groups among processors), and you'd have to experiment with optimising the carry propagation for addition.

My first guess would be to look at the last digits of the previous chunk, and if it's not clear whether they will produce a carry (i.e. if they sum to 9), calculate both possibilities in parallel until they converge. Once the information is available, fix up the indeterminate pieces. Intuitively, it seems like decimal representation actually is better than binary for this as the probability of producing large sequences of 9s is lower than that of large binary 1 sequences, although only by a constant factor of ln(2)/ln(10) ~ 0.3.

It's certainly not trivial and requires a lot of communication between processors. The longer the numbers, the better, though. 300 million digits sounds like a suitable data set. (~150M bytes packed BCD, 4 copies of this will fit nicely into the currently tyical 1GB of graphics memory)

<comment><USER9> Just keep them as BCD and add / xor them in parallel, as show here (under Packed BCD Arithmetic / addition): <http://www.cs.uiowa.edu/~jones/bcd/bcd.html#packed>

Then just keep track if at least one carry was generated instead of checking if the resulting number was a palindrome separately. Should be _very_ fast.

</comment></comment></comment></comment><comment><USER10> For those who like programming challenges, there is a interesting Project Euler problem about Palindromes (Lychrel Number).

[http://projecteuler.net/index.php?section=problems&id=55](http://projecteuler.net/index.php?section=problems&id=55)

</comment><comment><USER9> Isn't the result of this undefined?

while (i--)

        *fp++ = *fp >> 4;

I'm sure he tested it and it does the right thing on his compiler/computer, but for anyone thinking of picking up the challenge...

<comment><USER7> The rule you're alluding to is that you mustn't modify the same value more than once between sequence points. I don't think that rule applies here, as it's modifying fp (a pointer value) and then the memory location at the address of fp's original value: the increment operator has higher precedence than dereferencing (which is of course an arbitrary rule I happen to have memorised, and many have not). The right hand side has no side effects.

It's certainly confusing code, but I'm fairly sure the outcome is well- defined. That doesn't mean it's good code: I'd never write it like that. I find this far easier to understand, and that's how I'd write it in practice:

      *fp >>= 4;
      ++fp;

The postfix while condition isn't one of my favourites either, but not quite as confusing.

<comment><USER9> I had to try it just because I wanted to know. With -Wall GCC says: pquest.c:279: warning: operation on 'fp' may be undefined

Not sure what 'may' means though

EDIT:

So to clarify, my suspicion is that the expression could mean either:

1)

        *fp = *fp >> 4;
        *fp++;

or

2)

        *fp = *(fp+1) >> 4;
        *fp++;

<comment><USER11> It is not the addressed value which is being incremented, but the pointer itself. There is no ambiguity.

<comment><USER9> I never claimed that the addressed value would be incremented, and that is not what is being discussed here, even though that too would have been a problem.

The thing is, at some point the compiler must calculate the address where to store the value. The question is then if there is a sequence point between calculating the data to store and the address which to store to. Otherwise there is ambiguity and the result is undefined.

According to <http://en.wikipedia.org/wiki/Sequence_point> there is no sequence point because of assignment (only initialization which this is not)

Btw was it you that downvoted my comment?

</comment></comment></comment></comment></comment><comment><USER12> off-topic, but his little comment about interstellar travel is wrong. Even with exponential growth in propulsion technology, there is an optimal departure time for arriving earliest.

<http://en.wikipedia.org/wiki/Wait_Calculation>

(that equation was published long after this article was written though)</comment>


It never made sense to learn Java - <AUTHOR> http://sudoscientist.com/it-never-made-sense-to-learn-java

<comment><USER2> The performance advantages of C++ over a recent JVM are pretty minor when the price is _blowing up randomly_. I wasted years on teams trying to make native code not suck, and only once did I witness as much as a single month of uptime achieved after heroic effort. Now I view manual allocation and pointer arithmetic as a form of nerd sniping—just because it's incredibly hard to get 100.0% right doesn't mean you're actually accomplishing much by doing so.

</comment><comment><USER3> The author makes several claims, of which unfortunately, I could only agree with the final one.

Claims:

1\. Projects that shouldn't be written in a scripting language should be written in C++, not Java because it is more efficient. [Author probably hasn't spent enough time debugging other people's C++ which blew up or leaked memory on customers sites]

2\. C++ is a better long-term choice (for people who don't poke themselves in the eye with sharp objects) [Precisely. Just like seat belts are only useful for people who have an occassional accident]

3\. C++ gc library is as good as Java's GC. [No, listen to Cliff Click's talk. A VM defines boundaries between what is a programmers task, a language's task and a runtime's task.]

4\. Java consumes more memory than C++ for equivalent tasks. [The standard class library can be big. Including iostreams in gcc results in 1Mb executable.]

5\. Java runs slower [The purpose of programming is to get to the solution to a problem the fastes - Guy Steele. Java has enough safety features.]

6\. If you know C++ you know Java (because C++ is bigger) [precisely.]

7\. Java is an evolutionary dead-end in language design. [that is only because Java doesn't have Anders Hejlsberg.]

</comment><comment><USER4> Language bigot calls others language bigots. Film at 11.

</comment><comment><USER5> I don't particularly like Java (I'm semi-learning Scala right now, and it's got enough Javaisms in it to make me feel frustrated)... but I like having stack backtraces when my code dies in production, and I very much like not being able to accidentally stomp all over the heap.

</comment><comment><USER6> I see no difference between learning C++ and Java first. They both have equal ability to teach bad habits.

<comment><USER7> I agree. The author is confusing the language with how well it's used. Java still has the advantage of running within a virtual machine while being faster than interpreted languages.

If you don't want to tie yourself to a single platform and require speed, it's still a good choice.

<comment><USER8> How is running within a virtual machine an _advantage_? That was one of the most prominent reasons I decided to give it a pass when it first came out.</comment></comment></comment>


Ask HN: What's on your bookshelf? - <AUTHOR>

I know similar questions have been asked few times on hacker news. But, instead of asking you for books that you recommend but you never read before, I feel like this question is more tangible. Now, look at your bookshelf, what books do you have?<p>The books I have: Core Python Programming, CSS, DHTML & AJAX, Agile Web Development with Rails, The Rails Way, The Ruby Way, SAT 2008(Zzz), Made to Stick... <comment><USER2> I appreciated "The Art of UNIX Programming" (ESR), because it clearly demonstrates the value of the "do one small thing well" approach to software. While it's a bit of a refresher to Unix veterans, it still has lots of interesting examples of well-designed programs that uphold Unix design principles (e.g. flexible, simple, transparent). I've seen plenty of developers over the years who've been "tainted" with the Monolithic Blob approach to software design, people who ought to read this book cover-to- cover.

</comment><comment><USER3> My bookshelf has been all fiction for about 6 years now. Technical books are more or less obsolete, the only ones I can remember buying in all that time is the Samba administrators guide from O'Reilly (useless.) and Stuart Cheshire's Zeroconf book (delightfully written, I could read it for pleasure but no help at all in really getting to grips with Zeroconf from an implementer's point of view.)

I still have some classics which I refer to from time to time. The camel book in particular, since there exists no better reference to Perl's core APIs. However, for anything else the web is a far better reference library.

</comment><comment><USER4> I try to keep all my non-fiction cataloged at LibraryThing. I've been kind of sloppy entering tags, so most books aren't tagged. I suppose I should fix that. <http://www.librarything.com/catalog/Tangurena>

As you can tell from the already tagged books, I'm primarily a .NET developer.

</comment><comment><USER5> Books that are currently nearby: Art of Electronics, The Art and Science of Analog Circuit Design, The Intelligent Investor, Fooled by Randomness, Front Panel, SICP, TPU Microcoding for Beginners, Planar Microwave Engineering, This Is Your Brain on Music, three of the Tufte books, etc.

</comment><comment><USER6> My bookshelf: <http://www.ur-ban.com/library/>

</comment><comment><USER7> Hackers and Painters, Pragmatic Thinking and Learning, Prism of Grammar</comment>


Show HN: A zero effort social image generator for your website - <AUTHOR> https://www.mugshotbot.com <comment><AUTHOR> I made Mugshot Bot because I spend way too long creating the "perfect" social image for my blog posts. And I figured there's got to be a better, more automated way.

You type in your website and Mugshot Bot automatically creates an image to share on Twitter, Facebook, or anywhere on the web. All you have to do is copy the generated HTML into your <head>. You don't even need to download it.

The tool is free to use and randomly creates social images from 80+ backgrounds and 10 colors. It pulls data from your website's <title> tag and other meta tags to generate the copy.

If you have any questions about the site, or feature requests, let me know! I'm looking forward to seeing your new social image.

<comment><USER2> Any plans to use the Open Graph tags and also fetch images?

<comment><AUTHOR> The bot uses the title and description Open Graph rags to render the copy in the image. I'm working on adding a logo that is generated from the favicon and setting the color to match the page!

<comment><USER2> Would be nice to also show any the associated open graph image as well.

</comment></comment></comment></comment><comment><USER3> This looks like a great product! Can I ask you want sets you apart from other services in this market like Vercel's og-image [0] or other more marketing- heavy sites that let you have more control and customization?

Also, I'm really curious what this will cost when you release it as a service? What do you think something like this is worth to people? Is it like a $20/year service or like $1,000/year? Are you going after mostly consumers and indie devs or big corporations?

[0] [https://github.com/vercel/og-image](https://github.com/vercel/og-image)

<comment><AUTHOR> Thank you, I appreciate the feedback!

Mugshot Bot is meant to get out of your way. There's zero configuration, no setup, and very little effort required. Vercel, hosted, requires you visit the site and punch in some information. Or host it yourself.

You can add a Mugshot to your site without evening visiting the landing page. For example, let's say you blog at masilotti.com. Just set your og:image to `[https://www.mugshotbot.com/m?url=https://masilotti.com`](https://www.mugshotbot.com/m?url=https://masilotti.com`). That's literally it. No downloading, no account, no setup.

My goal is to always keep a free plan with the branding in the bottom. I haven't figured out exactly the pricing yet, but I'll be looking at indies and small blogs. So expect something closer to $20 vs. $1000 per year.

</comment></comment><comment> 97-109-107 I like it. Have you heard of Bannerbear?

<comment><AUTHOR> Yeah, it looks really cool. The big difference with Mugshot Bot is there is no API or initial set up. You just pass a URL and you are good to go.</comment></comment>


You don't have to work 80 hours a week to be successful - <AUTHOR> https://twitter.com/tobi/status/1210242184341000192 <comment><USER2> I think it goes without saying that absolutist views on work are going to be wrong. If you structure your organization around a work/life balance, you have to been more strategic about how time is used than an 80hr/week "burn-and- churn" organization. The upside is you'll have less turn-over, happier employees, and (hopefully) happier customers.

I'll just say there's one hidden advantage to less crazy hours: it's a lot easier to spot mediocrity and weak-points in processes and teams. I'm not talking about people skill-building for the first time, but if someone consistently needs to work twice as long to get the same output of their peers, there really shouldn't be a social incentive structure in place to reward them for what is effectively poor performance papered over with extra hours.

</comment><comment><USER3> I'm fairly convinced that there's a bimodal distribution of knowledge work in the world. In software, but not only in software. In any field whereby individual workers can make a significant difference to the bottom line (e.g. it's not commodity work).

People stuck in sick system jobs think that's just how the world is. The managers there are stuck in it too, so it becomes worse. The people who stick around tend to become bitter and think the world is all underpaid long-hours bureaucratic corporate shite.

I figure that the 'middle' path, of jobs that are sort of alright but not actually 'good', doesn't really exist, because there are feedback loops at both ends pushing companies away from the mean.

I have no real evidence for this other than it matching my personal experience and interacting with other people in various circumstances. It's happened more than a few times that I've interviewed somewhere and been offered half the market rate for silly amounts of responsibility by managers who seem surprised that I turn them down.

<comment><USER4> I had to Google "sick system", which led me to this insightful post. Well worth the read.

[https://www.issendai.com/psychology/sick- systems.html](https://www.issendai.com/psychology/sick-systems.html)

</comment></comment><comment><USER5> I made an intentional decision to refuse to work such insane hours about 15 years ago and limit my standard workweek to 40 instead (if there's an unusual situation that calls for extra time, I'll work the extra time of course -- but that's pretty rare) when I'm working for somebody else.

What I've found is that not only has in not harmed my career in any noticeable way, it has improved it in an unexpected way: the companies that really only expect 40 hours per week also tend to be companies that produce higher quality software, have a better working environment, and look better on my CV.

</comment><comment><USER6> Here's the unrolled thread for anyone who find it hard to read long Twitter threads: [https://threader.app/thread/1210242184341000192](https://threader.app/thread/1210242184341000192)

</comment><comment><USER7> I don't understand how to read Twitter threads. It's like instead of someone handing you a book, they tear up all the pages and throw the pieces at your feet.

</comment><comment><USER8> Sounds so different to my experience in tech.</comment>


Ask HN: Is parse down? - <AUTHOR>

<comment><AUTHOR> The dashboard isn't working for me

</comment><comment><USER2> facebook is down - probably the reason

</comment><comment><USER3> Down here too</comment>


Here's How Your Content can Generate 10x More Revenue with BitMonet - <AUTHOR> http://bitmonet.com/blog/generate-10x-revenue-increase-bitcoin-adoption/

<comment><AUTHOR> Also the code is open-source and can be found at [https://github.com/bitmonet/bitmonet](https://github.com/bitmonet/bitmonet)

</comment><comment><AUTHOR> Please check out the demo at [http://bitmonet.com/demo/](http://bitmonet.com/demo/)</comment>


Fh: File history with ed, diff, awk, sed, and sh - <AUTHOR> https://github.com/xorhash/fh <comment><USER2> It's not a bad exercise. In a Unix class I took, we had to implement an RDBMS using only the traditional Unix software tools. A little later, for work, I had to learn to write highly portable and fairly secure shell scripts.

A few reasons to do exercises like this:

* To understand the Unix software tools and Bourne/etc. shell scripting models. There are good lessons, and also examples of what not to do (or the tradeoffs), which I don't think you'll find anywhere else. (For example, the simple Unix streams model is very powerful, and also often used in very kludgey ways in practice, and the Bourne evaluation model is probably much worse and dangerous than a beginner might think.)

* Knowing how to do things with just shell scripts is great for some kinds of bootstrapping, commands in build tools, or other situations in which you can only assume a shell interpreter and possibly certain command-line tools.

* Handy for configuring your interactive shell to do what you want.

* It's one way to familiarize with parts of a Unix-ish system that you might not normally, especially if you're spending all your time learning your way around huge stacks of tools that obscure the lower-level mechanics.

* You'll appreciate Perl and other languages much more, in some ways.

</comment><comment><USER3> Wait, what?

 _" After some thinking, I figured it would be hilarious to actually implement a basic version control system on these primitives. In hindsight, it's probably closer to terrifying than hilarious."_

Ah, ok.

Also, if you want to experiment with diffs and recreating versions:

Patch: [https://en.m.wikipedia.org/wiki/Patch_(Unix)](https://en.m.wikipedia.org/wiki/Patch_\(Unix\))

Xdelta: [https://github.com/jmacd/xdelta](https://github.com/jmacd/xdelta)

</comment><comment><USER4> I once had to edit a file while logged in on console and where I literally had nothing but the Bourne shell to work with. I eventually figured out a while loop which read a line at the time from the file, echoed it, then read a line from the tty, where typing just return meant to keep the line as is, else use the line I typed, and sent the output to a new file. I then used shell redirection to replace the old file. Maybe I had "cat" too.

That was tedious.

It was circa 1995 on an HP/UX machine that was nothing but an X terminal, but its root disk for some reason only had the minimum of files that it needed to mount everything else via NFS, but somehow all the automounts had become misconfigured.

As I recall anyway.

And here's a network calculator I wrote mostly in awk:

[https://gist.github.com/jaysoffian/e41ca479d70e60efe59fded93...](https://gist.github.com/jaysoffian/e41ca479d70e60efe59fded93528ab1b)

<comment><USER3> echo `<somefile`

Uses a shell built in and can substitute for cat.

<comment><USER5> 'cat > somefile' is my first instinct, but the while loop described allows for editing, rather than wholesale replacement.

<comment><USER3> I was thinking of situations like described in the GP, where most external commands would be unavailable. Aside from what was described there, screwing up the shared libc is also common. Where you're left with a functional shell if you were logged in, but no external commands, except for /sbin/ stuff.

The hack with echo mostly works, but will have issues with large files due to limits on arg length.

</comment></comment></comment></comment><comment><USER6> If I remember correctly, implementing a file history system using shell scripts and the basic UNIX tools was one of the more advanced worked examples in _The Unix Programming Environment_ by Kernighan and Pike.

</comment><comment><USER7> [https://github.com/rupa/rvn](https://github.com/rupa/rvn) is a similar exercise, from the author of [https://github.com/rupa/z](https://github.com/rupa/z)

</comment><comment><USER8> For something similar which is meant for actual real-world use, see SRC: [http://www.catb.org/~esr/src/](http://www.catb.org/~esr/src/)

<comment><AUTHOR> It bears noting that SRC is a wrapper around RCS or SCCS; the magic sauce for maintaining integrity and history is offloaded to the backend systems.

(Incidentally, I agree that the SCCS port to be rather funny[1].)

[1] [http://www.catb.org/~esr/src/FAQ.html#SCCS](http://www.catb.org/~esr/src/FAQ.html#SCCS)</comment></comment>


Ask PG: Why Not Host an Arc Conference at YC? - <AUTHOR> Why not host an Arc conference at YC?
Could reinvigorate the community.
You could call it Arc-Con . . . <comment><USER2> Yes, please!</comment>