3% use IE9 and 14% have a disability. Why do we only cater for the former? - <AUTHOR> http://www.fionatg.com/BlogPost/1005/3-of-users-browse-with-ie9-and-14-of-users <comment><USER2> As a side note, designing well for disabilities often translates to better design as well. Those alternate text labels and better layout for screen readers can make your site easier for the googlebot to read. You can find navigation and flow issues. Buttons that are hard to click are harder for everyone to click, even if some can manage. Or those buttons are really hard for everyone on tablets to hit because they are too small.

<comment><USER3> This happens in the real world too, aka the sidewalk effect. The cutouts in the sidewalk for wheelchairs are now used by everyone else too for their: strollers, bikes, shopping carts, and anyone else who doesn't want to raise their foot an extra couple of inches.

<comment><USER4> OTOH I've seen pedestrians almost-hit by an out-of-control car that would have been stopped by a proper kerb but instead hit one of those ramps.

<comment><USER5> I've seen multiple bicyclists almost hit by in-controls cars because they couldn't ride safely on the sidewalks without those ramps.

(Yes, riding on sidewalks is technically illegal. There are many places where it's much much safer and there are no pedestrians to bother.)

<comment><USER6> In most cases you're more likely to be hit by a car if you're riding on the sidewalk. Last numbers I suggest that your risk of being killed by a car is about twice as high when you're on the sidewalk.

The reason is simple: Bikes move quickly, and bikes on the sidewalk are much harder for motorists to see than bikes on the street. That makes it extremely difficult - sometimes impossible - for drivers to see or anticipate when a bike is about to cross a street, alley, or driveway. Meanwhile, cyclists are relatively unaware of their surroundings compared to pedestrians, for the same reason that motorists are: They're moving faster. These two factors can easily combine to create a sudden use-of-space conflict that cyclists never win.

<comment><USER7> That might the case for bikes on the pavement in general, but there are some stretches of road where the road would be more dangerous.

</comment></comment></comment></comment></comment></comment><comment><USER8> I have poor vision.

This website uses a herd-to-read font and disables pinch-to-zoom (an essential feature) on my iPad.

<comment><USER9> This website is even difficult to read on a regular desktop browser (too wide, downvoted comments increasingly impossible to read causing eye strain). I recommend using your own content script with Chrome. This may not help on your iPad but on Android you can use Firefox with your own userscript. It's the only way I can tolerate it.

It would probably take a competent someone a few hours to fix the readability issues of this site but they just never get around to it.

Edit:

Here's a link to what all comments look like for me, even if they're downvoted:

[http://dl.dropboxusercontent.com/s/v5zcn9n4vg4m3cn/2014-06-1...](http://dl.dropboxusercontent.com/s/v5zcn9n4vg4m3cn/2014-06-12%20at%208.30%20AM%202x.png)

I also disabled scores and voting because I dislike that stuff.

This is the home page:

[http://dl.dropboxusercontent.com/s/sicqor50smsl4hx/2014-06-1...](http://dl.dropboxusercontent.com/s/sicqor50smsl4hx/2014-06-12%20at%208.35%20AM%202x.png)

<comment><USER10> joblessjunkie means the original article's site.

Pinch-to-zoom works fine on HackerNews on an iPad, and the HackerNews font is nothing unusual.

Regarding HN being too wide, why don't you narrow your browser window?

Personally, I like the fact the traditional web design in which HN adjusts the line to screen width rather than imposing a width.

<comment><USER11> Hm, I'd be happy with some max-width:50em or so on the actual text. Now if only Firefox had a built-in way to apply custom user stylesheets to websites…

<comment><USER12> It's not built-in but the Stylish extension does that.

<comment><USER13> Claudius is being sarcastic. [http://kb.mozillazine.org/index.php?title=UserContent.css](http://kb.mozillazine.org/index.php?title=UserContent.css)

<comment><USER11> Sarcastic, yes, but mostly relating to Opera 12.x's UserCSS features; I didn't actually know about userContent.css. Thanks for the pointer, although it seems to be impossible to only apply it to certain sites?

<comment><USER13> @-moz-document url-prefix() or @-moz-document domain() ? [https://developer.mozilla.org/en- US/docs/Web/CSS/@document](https://developer.mozilla.org/en- US/docs/Web/CSS/@document) [http://forums.mozillazine.org/viewtopic.php?t=286866](http://forums.mozillazine.org/viewtopic.php?t=286866)

<comment><USER11> Yay, thank you for the handholding, it actually seems to work quite nicely :-)

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> Probably because those 3% are homogeneous, while the 9% decompose into lots and lots of categories, all with specific needs, and all much smaller than 9%.

<comment><USER15> ...although you can do a damn good job addressing most of them with a few simple things:

-Write good, semantic HTML, and use alt tags correctly

-Don't overwrite browser defaults for scrolling, tabbing, etc (even if it's "hot design")

-Don't rely purely on color to convey information

-Use ARIA attributes where you can if you're building an application

Some harder stuff that is really still worth it:

-Send your media out for subtitling/transcription (remarkably inexpensive)

-Actually test your site with some disabled individuals, or at least have a go yourself with the NoCoffee Chrome extension to simulate certain visual difficulties

<comment><USER16> A terrible example of relying on colour includes the braille at some Melbourne train stations[1]. It appears that someone directly translated the phrase "Press green button" rather than using left or right.

[1] [http://wongm.com/2014/06/asking-vision-impaired-to-push- gree...](http://wongm.com/2014/06/asking-vision-impaired-to-push-green- button/)

<comment><USER17> And it's not just blind people who can't differentiate between red and green. A significant percentage of the population has red-green color blindness.

<comment><USER18> Yes, but forgetting that is a less _glaring_ (and therefore less amusing) error than writing "press the green button" in braille...

</comment></comment></comment></comment></comment><comment><USER19> I don't agree that accessibility is a training issue and I certainly don't agree that it would take a month to become familiar with accessibility guidelines.

Rather, download a screen reader (for Windows I like Windows Eyes), learn to use it, shut off your monitor and spend one hour trying to use the web. That will give you all the context that you need. Once you're armed with this experience, make navigating through your site with your screen reader part of your regular QA process.

If you follow these steps you will:

\- craft sites that are significantly easier for people with visual impairments to use.

\- build sites that are easier for search engines to crawl.

\- gain an understanding of WCAG that you can apply to everything you develop.

This method will not prevent usability nightmares like horrible font/icons, but it will get you most of the way to WCAG.

<comment><USER20> So instead of having any sort of standards and accessibility best practices taught and adopted industry-wide, that take into account a much larger spectrum of disabilities, the programmers reading this should just go and spend an unspecified amount of time using a screen reader from now on?

<comment><USER19> Definitely not, but as the OP wrote, you don't start at the HTML5 spec if you want to learn to make web pages. Learning to use a screen reader and actually testing sites with it is not only a very important skill to have, but it will give developers more insight and perspective into accessibility. Standards can fill in the gaps, but I believe you still need a 'wow' moment when you feel completely lost on a website.

<comment><USER20> I misinterpreted your suggestion, and appreciate the clarification.

<comment><USER19> Thanks very much for your question. I didn't realize what a horrible job of writing I did until I read your response!!

</comment></comment></comment></comment></comment><comment><USER21> It's important to remind developers and clients in the United States that some aspects of web accessibility are required by federal law:

[http://www.ada.gov/](http://www.ada.gov/)

Does the ADA apply to the web? Yes. This has been supported in court, when the National Federation of the Blind successfully sued Target over their e-commerce site:

[https://en.wikipedia.org/wiki/National_Federation_of_the_Bli...](https://en.wikipedia.org/wiki/National_Federation_of_the_Blind_v._Target_Corporation)

The ADA is a great example of important legislation that protects the rights of a minority group that is regularly ignored by the market.

</comment><comment><USER22> Speaking as a colour-blind person (protanopia) I welcome this kind of thoughts with open arms. There's actually not much you have to do in order to make a website at least readable if you just have some basic concepts in mind when designing.

The latest fad with soft pink and grey is really bad, almost unreadable for me. Luckily, I can usually just select the text and get blue/white contrast, which makes it more readable, but lately I've seen people override this too, or simply just hijack the ability to select text. I could open it in a screenreader or something similar, but usually I just close the tap and move along. Just keep that in mind if you decide to override how the browser behaves.

A funny side note, which was very clear on this website: When you're using pie charts, also know that it's almost impossible for colour-blind people to read them. The only two I could pick out was Chrome and IE11.

<comment><USER23> As a person without color-blindness, but is interested in making it easier for people with: there are a lot of different varieties of color blindness. Obviously you can (and usually should) do things like "use different brightnesses", but it seems to me that this is more solvable by e.g. an OS- level color filter. Something that allows you to compress colors into the range you can see.

Would that be even remotely useful? Are there major problems that I'm not seeing? Is that why I don't see OSes with features like that?

<comment><USER22> You can change contrast, brightness and such in most modern OSes, but I'd rather have people take it into account and choose colours wisely. The problem for most colour-blind people is contrast, not the colours them self.

I can't speak for all colour-blind people, but generally OSes have been really good at it, the problem is usually inside the browser window. And making everything look like a unicorn had puked rainbows all over your screen, while making it very readable, is not comfortable.

</comment></comment></comment><comment><USER24> I imagine the main reason is that catering to disabilities is much much more expensive when you consider the variety of disabilities that there are and how much they differ in severity and how they will affect different individuals in different ways.

I also guess that people with more severe disabilities are less likely to control large corporate or personal budgets than the general population and those that do are either very good at working around their disability of simply have others to who do it for them.

It's also possible that making a site easier to use for somebody with one disability might have the effect of making it worse for a person with a different disability.

<comment><USER25> I'm sure it is quite expensive but then again, as we a web developer, my job is easily made 50% more difficult (thus VERY expensive) when I have to support IE.

The problem as I see it--and to your point--is that I work on enterprise web apps and my Fortune 500 customers have never said a word about accessibility for some reason. I'm sure they honor their Americans with Disabilities Act obligations and build ramps into their buildings. Do they then not care about employees (or customers and vendors for that matter) once they're at their desks?

</comment></comment><comment><USER26> With this one weird trick, you can make the web better for up to 20% of your visitors! Let me tell you for free!

        Please caption your videos, or make transcripts available.

Did you get that?

        Please caption your videos, or make transcripts available.

Yes: 20% of people over the age of 12 have some degree of hearing loss[1]. That's 6% more (two IE9 marketshares!) than the total of vision and mobility disabilities. And if you caption, it's easy for you to see if you did it right!

[1] Google "percentage of people with hearing loss" to see multiple sources converging on this number

<comment><USER27> Also helps with search, and it will often save time to let people in general skim a transcript instead of watching a video to see if really covers the subject they need to know about.

<comment><USER26> Precisely. What I'm asking for would benefit a lot more people than the 20% I'm calling out.

</comment></comment></comment><comment><USER28> I work at a small startup with a somewhat large user base (1M weekly users or so) and every time I bring up accessibility issues I get shot down. Just the other day I was told "You talk more about accessibility than anyone I've ever met."

Well, yeah, because apparently no one fucking cares. Including you. (I said this not out-loud, to be clear.)

Thing is, making accessible sites is usually not super difficult. It's mostly just about making sure your site follows semantic HTML standards and you're not doing funky javascripty bullshit that a screen reader can't figure out. (e.g., hover-over states on elements that pop up important help information, etc.)

<comment><USER20> It would have been soo awesome if you had said that! :-D

<comment><USER20> Though advocating for fellow human beings who are treated all the time either like they're this giant burden, or like they don't exist, is pretty fucking awesome too. :-)

</comment></comment></comment><comment><USER29> Well to be honest I can test my code in IE9 to see if it works. But I have no idea how a disabled person is experiencing my website, I do put all the "alt" attributes etc...but it's hard to imagine it.

<comment><USER30> Yes, that's a real issue. I've had to add JAWS Screen Reader support to an app, and even after you shell out for the thousand dollar license, it's very difficult for a casual user to use it in the same way that an actual blind user does. Ideally you test with an actual impaired user, but they have real jobs and don't want to spend all their time testing your apps.

<comment><USER31> There's a gap in the market for usability testing. This would mean that things are not just validated against specs but checked in real world use.

There are probably many groups already doing this stuff. Perhaps they just need better organisation or SEO?

</comment></comment></comment><comment><USER32> I write sites for a government, and I most certainly write code to standards, then to aria, and finally pick apart any IE weirdness. This has been quite the fight over the years, but if we want to be considered professionals and called engineers, then we follow standards, and when an employer says "I want you to ignore standards because we don't need it" you have to say no, I'll do this right, or you can find someone else to do it. If we all did this from the start, we wouldn't be in the mess we are now.

<comment><USER20> That's wonderful! Both brave and very professional! :-)

<comment><USER32> Thank you, you made my day. Though in truth, I'm not very brave, I'm single, without wife, girlfriend, or kids, or anyone really depending upon me. And I work for government because I got tired of making rich men richer. I'm an idealist, and an idiot in truth. But thank you.

<comment><USER20> In a better world principled people wouldn't have to feel like idiots. Glad to make your day! :-)

</comment></comment></comment></comment><comment><USER33> If you want to get started with WAI-ARIA and don't want to read hundreds of pages of documentation, these two references are very helpful:

[http://www.w3.org/TR/wai- aria/roles#role_definitions](http://www.w3.org/TR/wai- aria/roles#role_definitions)

[http://www.w3.org/TR/2013/WD-aria-in- html-20131003/#recommen...](http://www.w3.org/TR/2013/WD-aria-in- html-20131003/#recommendations-table)

Then you can test with the screenreader NVDA (if you have access to Windows or a Windows VM):

[http://www.nvaccess.org/](http://www.nvaccess.org/)

I'm no expert, but the process of using ARIA in HTML feels very much like trying to employ "semantic" HTML5 tags, except that ARIA provides a much richer vocabulary. It can be good inline documentation, too: when you come back later and wonder, "What is this div for?", seeing a role="presentation" attribute is a handy thing.

It starts to feel like ARIA takes over the responsibility of semantics and HTML becomes just a scaffold, even moreso than it has been in its relationship with CSS (tags that serve no purpose except as hooks for styling). Which I appreciate, because "semantic HTML" has always felt limited, awkward and a bit pointless, apart from the small part of the effort that has known SEO implications (h1 elements and so forth).

</comment><comment><USER34> I hate the font choice of this article.

<comment><AUTHOR> I think its a love/hate thing with my site theme. I've had a lot of comments that it looks fantastic. I think I'll have to increase the font size at least.

<comment><USER35> I actually like the font... but I'm not surprised that a lot of people don't.

<comment><USER36> For me, my eyes can't easily scan the text in this font, making it much slower to read.

It's a very frustrating experience when I'm interested in the article itself, but it's literally fighting me as I try to get information from it.

</comment></comment></comment></comment><comment><USER37> If you want your site to be accesible, there are a number of things that are a good way to get started:

1\. Contrast. Don't use gray text on gray background [1]

2\. Keyboard accessibility. Avoid adding onclick handlers on elements that are not an <a> / <input> / <button> [2]; use tabindex to make certain page element focusable and CSS's :active, :focus pseudoselectors (adding border, outline, changing background color etc.) to clearly indicate where's the focus for the keyboard users so they can navigate the page easily.

3\. Avoid quickly-disappearing menus and everything that requires precise mouse pointing (elderly people tend to have problems with that) and can't be triggered from keyboard.

There are lots of websites failing at those basic things. When you fix that, you can start going further and making site further accessible for certain minorities.

[1] [http://contrastrebellion.com/](http://contrastrebellion.com/) [2] [http://jakub-g.github.io/accessibility/onclick/](http://jakub-g.github.io/accessibility/onclick/)

</comment><comment><USER38> Where are those numbers from? 3% seems really low. I would guess the IE8 (being the highest version that can run on XP) population is much higher then that, but IE9 was chosen to make the number look better.

<comment><USER39> Our stats show 2.3% IE8 users. We handle sites for major, general-market brands, so it's not skewed as it would be on a tech startup or something.

<comment><USER40> Our Energy/Utility industry news site has: 12% IE8 11% IE9

People should always run their own numbers. It can vary quite a bit from the internet-wide average.

<comment><USER38> Pretty off topic, but why would anyone ever stay on IE9? It means you are on > XP which means you should be able to upgrade to at least 10 I believe, if not 11. Is it just a lack of permissions to upgrade the browser combined with lazy administrators?

<comment><USER40> I don't know. Nearly all the IE9 users are on Win7.

If I had to guess, it's simply because upgrades are such a hassle in heavily regulated industries. (Above and beyond the typical hassles of an upgrade in any large enterprise.) I see similar numbers in Healthcare, for example, but not Education or Construction.

I keep meaning to do a blog post about the tech trends in different industries.

</comment></comment></comment></comment></comment><comment><USER41> For those that are interested in learning more about building accessible sites, I found this tutorial to be quite helpful: [http://alistapart.com/article/accessibility-the-missing- ingr...](http://alistapart.com/article/accessibility-the-missing-ingredient)

I agree with the OP that the reason most developers don't build accessible sites is because they don't use the accessibility tools and hence have no understanding of how they actually work and the experience they provide for their users. Reading the List Apart article I linked to was rather eye-opening to me (no pun intended) because I didn't realize that I could just use a Chrome plugin or my iPhone's voice-over as a screen reader to actually experience it myself. I am now wishing I could go back and change a lot of html structure on sites I've built in the past to make it easier to navigate via screenreaders!

</comment><comment><USER42> Couple of things.

First, these two groups may or may not be mutually exclusive. Catering for the former may take care of some of the latter too.

Second, this question is actually very easy to answer. Catering to disabilities makes almost no money. Catering to IE9 gets the customers that forgot or don't know how to upgrade. That's a wash when it comes to advertising.

Edit: Just to be clear, I'm not playing devil's advocate. I do my best to cater to people with poor vision for anything I write. That includes anything I use colour for. I'm simply answering the question as if I were the CEO of a company, where my goal is to make as much money as possible, and not care about anything else.

<comment><USER20> Too bad companies aren't people and can't have morals... oh except they're run by people, so that just means the CEOs running these companies are greedy unprincipled douchebags.

</comment></comment><comment><USER43> Show me a virtual machine that I can test with, that puts me in the shoes of a user w/ a disability, and I'll develop with accessibility in mind.

But the inability to replicate the experience in full, I think , inhibits catering to that demographic.

<comment><USER44> That's a strawman.

Making a web site or mobile application accessible is about making it parseable to the accessibility application that the user with disability has installed on their machine. A text to speech app needs to be able to access all the content. Put the right tags on fields. Add alt tags on images.

On Android, the Lint tool actually calls these things out. I have no idea what it feels like to use a screen reader, but I spent the time to actually put in those tags to enable it for the users of the app. It doesn't take long.

<comment><USER45> > Show me a virtual machine that I can test with

>> Making a web site or mobile application accessible is about making it parseable to the accessibility application that the user with disability has installed on their machine.

He wants access to a VM (or many VMs) with the accessibility application that the user with disability has installed

That doesn't sound like a straw man at all.

<comment><USER44> "But the inability to replicate the experience in full, I think , inhibits catering to that demographic."

That makes me think of trying to see what it feels like to be inaccessible user, I'm picturing a VM that makes the screen fuzzy or something.

If all you want is a VM with the tools installed - that's pretty simple. I imagine every developer can make a VM with an OS in it, and there are plenty of free accessibility tools available for the OS of your choice: [http://usabilitygeek.com/10-free-screen-reader-blind- visuall...](http://usabilitygeek.com/10-free-screen-reader-blind-visually- impaired-users/)

</comment></comment></comment></comment><comment><USER46> > So why do we think it is perfectly acceptable to spend time ensuring that > our websites work in IE9, but not that you can navigate them with a > keyboard?

Lack of empathy, basically. There's very little financial or technical incentive to supporting disabled users. People just don't give enough of a shit to help people who have a hard time using technology. Sadly it's going to take a strong push from an advocacy group for disabled users to be taken seriously, just like they were necessary to get ramps and rails as required for all businesses.

<comment><USER47> I advised my political party (here in Uruguay) on a bill to mandate accesibility throughout government websites, and we submitted it to Parliament.

Sadly it "died", it wasn't deemed important enough to be voted on and so languishes in a drawer or cabinet somewhere.

</comment></comment><comment><USER48> I'm really glad to see accessibility on hacker news this morning!

There was a talk at WWDC about improving accessibility and usability in web apps if anyone is interested in learning more: [https://developer.apple.com/videos/wwdc/2014/#516](https://developer.apple.com/videos/wwdc/2014/#516)

</comment><comment><USER49> Why wouldn't you use the spec to learn HTML5? Of course I use books and samples, but I also use the spec quite a bit.

</comment><comment><USER50> Because IE9 is the first browser by Microsoft that supports standards sort of reliable like more than 70% of the other browsers out in the wild. So we support it because doesn't take much effort to support it. The choice IE9 or better is because of the quality of that browser, not because we care a lot about the actual marketshare.

Furthermore I always try to optimize the "dry" HTML and use semantic HTML not because of the blind and disabled but because I like my documents be read by non-humans that apparently are blind and deaf and have bad JavaScript support in their browsers to boot.

Don't do it for the disabled. Do it for the blind and deaf unstoppable corporate robots.

<comment><USER51> Accessibility is more than just Perceivability - a characteristic robots would appreciate. Accessibility includes Operability and Usability, these are more human focused, and less robot focused principles.

What's the point of having a perceivable interface without it being usable or operable? See this: [https://news.ycombinator.com/item?id=7885113](https://news.ycombinator.com/item?id=7885113) \-- for accessibility tips that have no relevance to spiders/bots, but is fundamental to accessibility.

That's where this "robots are like blind/deaf people" argument falls down.

Accessibility is about removing barriers for humans, with human related disabilities. That making those changes also makes content more consumable by a spider or crawler is a positive side-effect. A great positive side-effect, but not the primary aim.

</comment></comment><comment><USER52> According to WHO only about 4% have a visual impairment of any kind, and how exactly would one design for a dexterity impairment? Simpler to navigate menus?

And as wfjackson notes below, the browser statistics appear to also be in question.

Finally, I'm sure that someone would contest the claim, but it's far more difficult to design for blindness than browser idiosyncrasies. The entire UX has to be re-thought down to the last detail. When you consider the myriad interactions that could occur and the difficulty of building & testing for a small audience, it's no wonder that it's still the status quo.

</comment><comment><USER53> Great post Fiona! I wrote a similar post ~3 years ago here: [http://mysqltalk.wordpress.com/2011/11/27/challenge- accessib...](http://mysqltalk.wordpress.com/2011/11/27/challenge- accessibility-know-how-needs-to-go-mainstream-with-developers-now/) which turned into GAAD, Global Accessibility Awareness Day, a few months later. [http://globalaccessibilityawarenessday.org/](http://globalaccessibilityawarenessday.org/)

I could never have imagined how huge the movement can grow, and I hope you help us celebrate it next year.

</comment><comment><USER54> For those who are going to I/O next week, there are over a dozen sessions on Accessibility:

[https://www.google.com/events/io/schedule](https://www.google.com/events/io/schedule)

</comment><comment><USER30> I don't know that I agree that looking at this from a market share perspective is useful. If only 1% of your audience uses screen readers, should you use that fact to decide it's not worth supporting them?

<comment><USER55> What other metrics would you propose to use? (genuinely curious)

<comment><USER30> Yes, it's a tough decision what to support. My point is that the percentages of disabled users are often far below what would make financial sense to support, but often there is a need or legal requirement to support them regardless.

<comment><USER51> "My point is that the percentages of disabled users are often far below what would make financial sense to support"

Yet every dollar spent focused on web accessibility further improves the usability of the site for your entire audience too.

I rebuilt the Legal & General's online home insurance purchase flow. That resulted in a doubling of the number of people completing an online purchase.

[http://www.w3.org/WAI/bcase/legal-and-general-case- study](http://www.w3.org/WAI/bcase/legal-and-general-case-study)

There's a before/after graph in my presentation: [http://isolani.co.uk/presentations/wsg/](http://isolani.co.uk/presentations/wsg/)

</comment></comment></comment></comment><comment><USER56> > I'd like to start this post with a disclaimer: I don't know much about > creating accessible websites.

As your font choice and general blog layout seem to indicate, yes.

</comment><comment><USER57> Are there stats on whether having a disability makes you more or less likely to make a purchase in a given product category? E.g. does having a disability correlate with not having a job, which correlates with having less disposable income, which correlates with making fewer purchases?

Or does a disability correlate with going out less which might correlate with spending more time and money online?

<comment><USER20> It shouldn't matter douchebag.

</comment></comment><comment><USER58> I've been wondering about this for a while. For my thesis project in college, my class created a web app for a school for the blind and visually impaired. We were greenhorns when it came to creating a production ready system, but we were able to meet the standards for usability by implementing them while the project was going, not as an after thought.

</comment><comment><USER59> Indeed, the question in the title has long been overdue.

And, yes, bad — no, really __BAD __readability of web sites seems to be quite standard these days (including HN). And, on top of that, the worst offenders block the zooming functionality in mobile browsers. Mankind never had a shortage of torture specialists.

</comment><comment><USER60> It's interesting to see so many developers demanding an easier way to test whether a website is accessible.

> Show me a virtual machine that I can test with, that puts me in the shoes of > a user w/ a disability, and I'll develop with accessibility in mind.

> Well to be honest I can test my code in IE9 to see if it works. But I have > no idea how a disabled person is experiencing my website, I do put all the > "alt" attributes etc...but it's hard to imagine it.

Turn off your monitor. Turn your laptop brightness all the way down. That's what it's like to use your website while blind. Basic screenreaders for the web cost zero dollars and could not be easier to install [0]. A screenreader for Mac OS [1] costs zero dollars and is already installed on your machine.

Stop pretending that these tools are mysterious. You or someone you know might have no choice but to become an expert screenreader user tomorrow. Have a little bit of compassion.

[0] [http://www.chromevox.com/](http://www.chromevox.com/)

[1] [https://www.apple.com/voiceover/info/guide/](https://www.apple.com/voiceover/info/guide/)

</comment><comment><USER61> I am guessing that 14% = color blind + users with cataract + various other visual impairments.

You usually can't have a design that makes all of them happy at once.

For example, high contrast UI themes often leave large white areas on the screen that users with glaucoma find blinding, but other users like a lot.

<comment><USER62> I'd like to see the original survey. 14% sounds awful high.

[http://www.nei.nih.gov/CanWeSee/](http://www.nei.nih.gov/CanWeSee/)

[http://www.webexhibits.org/causesofcolor/2C.html](http://www.webexhibits.org/causesofcolor/2C.html)

</comment></comment><comment><USER63> I prefer just hitting WebAIM's periodic surveys and using those metrics instead. [http://webaim.org/blog/survey-5-results/](http://webaim.org/blog/survey-5-results/)

</comment><comment><USER64> Great all the comments are ignoring the (pretty damn interesting) point made in the article and rather just attacking the aesthetic of the blog. Way to go HN!

</comment><comment><USER65> The fact that her site uses a hard-to-read font has nothing to do with her point. The merits of each should be considered individually.

<comment><USER20> But then how is anyone supposed to feel smug and unthreatened if they can't laugh at and disqualify her argument over some irrelevent bullshit?

</comment></comment><comment><USER66> OK, the topic is great. So could anyone write a decent article about it and post it to HN?

</comment><comment><USER67> I think the question is flawed.

1) We don't cater to IE9, which is at 5.11% according to stat counter. IE9 is a bad choice point for this - it's the first IE that had auto-update. Everyone left. We're catering to IE8+; 8 is currently at 6.5%.

2) You don't count the version; you count the version and all its successors. That is, we're not catering to 8, we're catering to 8+. 8+ is at almost 35% and is still the dominant aggregate browser.

3) Where does 14% come from? This says 6.8%, or roughly half what's claimed, in the same neighborhood as the browsers mentioned: [http://www.practicalecommerce.com/articles/1417-Accessibilit...](http://www.practicalecommerce.com/articles/1417-Accessibilit..).

4) You can't cater to disabled users. They're not one thing. What you do for the colorblind isn't the same as what you do for the blind, which isn't the same as what you do for people who have specialty control systems, which isn't the same as what you do for micro-screens, which isn't the same as what you do for people who have motor control circumstances, et cetera.

5) The web solution for this is WAI-Aria, which began in mid-2012, and became a candidate recommendation three months ago.

6) Microsoft has been requiring WAI-Aria for store apps since late 2012.

7) Most people have never heard of WAI-Aria.

8) As far as I know, no single group of disabled users reaches 1% of the userbase.

9) Supporting old browsers is way, way easier than supporting disabled users. Old browsers mean installing a shim and fighting a couple bugs, and that level of effort leaves people writing angry blog posts for five years. Supporting disabled users means learning how (there's basically no tutorials, but ample angry blog posts with bad statistics) then finding someone who has the equipment to test it on, then learning that you have to re-order everything on the entire site because the reader software can't be told that the source order isn't the reading order, then adding several properties to every single tag on every single page, then having no way to audit.

10) Many of us /do/ cater to the disabled. Your site has no aria markup at all, is peppered with empty iframes (which will wreak havoc on older readers,) and is covered in images that have no reader equivalents. You are actually substantially less disability friendly than the average webpage.

11) Even people with full sight find a font and color scheme like that very difficult to read.

12) In short, because like you, most small web authors are more comfortable writing about the problem than being part of the solution.

<comment><USER51> " 1) We don't cater to IE9, which is at 5.11% according to stat counter. IE9 is a bad choice point for this - it's the first IE that had auto-update. Everyone left. We're catering to IE8+; 8 is currently at 6.5%."

Why bother? in a few months it will be 5.5%. Next year it will be 1%. Why invest any time or attention to a browser whose market share is low and continue downwards into nothingness?

Do nothing. The IE8 problem will work itself out naturally. [https://www.youtube.com/watch?v=Lz9810Y7ZRw](https://www.youtube.com/watch?v=Lz9810Y7ZRw)

"2) You don't count the version; you count the version and all its successors. That is, we're not catering to 8, we're catering to 8+. 8+ is at almost 35% and is still the dominant aggregate browser."

That's just a sleight-of-hand obfuscation. If 9+ is 30%, why quibble over the extra 5% (and only dropping over time) that IE8 will offer. It's a diminishing return adding an older browser to the browser support list.

"5) The web solution for this is WAI-Aria, which began in mid-2012, and became a candidate recommendation three months ago."

No, WAI-ARIA became a Recommendation in March, not a Candidate Recommendation. The distinction between the two is two independent implementations.

"8) As far as I know, no single group of disabled users reaches 1% of the user base."

* Colourblindness (8% of Caucasian Men) * Dyslexia

"9) ... Your site has no aria markup at all"

The non-presence of ARIA does not make a site inaccessible.

"12) In short, because like you, most small web authors are more comfortable writing about the problem than being part of the solution."

Unfortunately, you are presenting the opposite side of the problem. So you have a little more knowledge about accessibility issues than the OP - but not enough to pass a quick scrutiny.

Perhaps, what is needed is for you and I to stop being part of the problem of disseminating half-truths, and spend that time quietly doing our jobs properly, and showing the results of these. Invest the time to teach someone else how to build accessible websites, and encourage them to also share what they know.

In all fairness, the poster of the blogpost has a fighting chance of improving her skills. She is worth teaching, for the scales of dogma have fallen from her eyes, and she is enlightened.

<comment><USER67> > 1) Why bother?

Because the stakes are high enough that 5% validates the engineering effort.

.

> 2) If 9+ is 30%, why quibble over the extra 5%

Same answer.

.

> 5) The distinction between the two is two independent implementations.

I didn't know that. Thank you for the information. :)

.

> 8 #1) Colourblindness (8% of Caucasian Men)

Jesus, really?

Luckily, my sites tend to be monochrome, so I get trapdoored on this.

.

> 8 #2) Dyslexia

I wouldn't even know where to begin making a website be dyslexia-sensitive. I don't know anyone affected and don't even know what's important there. Is there a resource about this?

.

> 9) The non-presence of ARIA does not make a site inaccessible.

In a question about why we invest no effort in accessibility, it is germane to point out the level of effort you have placed into accessibility.

And, respectfully, that markup.

.

> Unfortunately, you are presenting the opposite side of the problem.

I'm just explaining why it isn't gotten right.

.

> So you have a little more knowledge about accessibility issues than the OP - > but not enough to pass a quick scrutiny.

Yeah, that was my point. My belief is that this limitation that you have correctly observed in me is the defacto case for nearly all web developers. I think it's just something most of us don't know.

Like, write a poignant guide or a learn you some consideration or something. Give people something to read, rather than to point out that they haven't read anything, you know what I mean?

.

> Perhaps, what is needed is for you and I to stop being part of the problem > of disseminating half-truths

I don't believe that I have done this. I did make an error in naming the kind of recommendation though.

.

> spend that time quietly doing our jobs properly

I think that I actually do this. The world is full of a lot of hard, unfair choices, many of them outside my hands. I do my best to support as many people as I can within my time and budget constraints.

Perhaps we disagree on the choices, however.

.

> Invest the time to teach someone else how to build accessible websites

Yes, that was my point. Easy to say; too hard, apparently, for either of us to do.

</comment></comment></comment><comment><USER68> related: Great thoughts about "WHAT ACCESSIBILITY HAS TO DO WITH SECURITY" by Anna Shubina:

[https://www.youtube.com/watch?v=6phwEoiqLTM](https://www.youtube.com/watch?v=6phwEoiqLTM)

</comment><comment><USER69> Because our managers use IE9.

</comment><comment><USER70> Because people with disabilities are used to not gettting what they want.

<comment><USER71> So it makes perfect sense to continue not giving them what they want?

<comment><USER70> The question was "Why do only cater to the former?" not whether or not it makes sense to do so. In fact the very question strongly implies that it doesn't make sense.

Non disabled persons using older browsers are used to things "just working" for them, so they have a lot of energy to expend being pissed off when things don't work.

Disabled persons are confronted with lots of things not "just working" for them, so the energy of being pissed off gets more spread out.

In the general case, this causes a positive feedback loop where minor issues for people without major problems get fixed, while more significant issues for people with even worse problems don't get fixed.

</comment></comment></comment><comment><USER72> Because "a disability" is extremely broad, and covers such things as back injuries, diabetic neuropathy, and mental illnesses. I would expect that percentage to come down considerably when factoring specific disabilities that actually impede browsing.

</comment><comment><USER73> xScope provides a great tool for testing common vision impairments. What I'd love is a well written overview for keyboard accessibility within websites.

</comment><comment><USER74> it concerns me that you think you can call yourself a senior web developer without even once reading the w3c specification, because that would be crazy

</comment><comment><USER75> Unpopular Opinion Puffin: I like the font on her site...

</comment><comment><USER76> I find this font ridiculously hard to read. I clicked the back button after the first paragraph.

It's also hard to take the author's opinion on web-design seriously when they make such decisions for their own site.

<comment><USER75> I think we live in a time of pretentious graphic designers (not saying you are, saying its a huge trend) who all think they "have it right", which is way all modern websites are looking very samey.

It's a personal blog, it's not comic sans, so how bad can it be?

</comment></comment><comment><USER77> Do you have to write specific code for Safari users?

</comment><comment><USER78> Wow, that's a terrible font, especially for an article talking about catering to those with disabilities. I found it hard to read, and I have perfect vision.

<comment><USER20> Nothing to say about the article just the fucking font its printed in?

</comment></comment><comment><USER79> That font is giving me a disability

</comment><comment><USER80> IE9 isn't a disability? Colour me shocked

Apologies in advance for the poor (attempt at) humour, I don't mean to trivialise a real issue, only to ridicule IE9 users.

In all seriousness it's due to the complexity of catering for certain disabilities each of which require entirely different technical solutions, and some of which depending upon OS and various devices can be seamlessly provided for.

I would say a better question here is why isn't there more standardisation on the technology and approach to better serve the needs of people with a disability.

It's not a purely technological issue either, I've never seen a tender for website or application development with any provision for it. And I've seen a fair few.

<comment><USER61> IMO we are seeing that form sells more than function. MAC and Win 8 are a prime suspect.

I am seeing UIs that look nice but are difficult to use for a fully able user, let alone a user with some kind of disability.

<comment><USER81> It's Mac, not MAC.

I don't use Windows so I can't comment on that, but OS X has a lot of support for disabled users. First, VoiceOver is a built-in screen reader and there are a variety of other options to adjust the contrast, cursor size, amongst other things. There's support for visual alerts, mono audio, and subtitles. One can also use switches to control the system if you have them connected.

Basically, Apple spends a lot of effort to make their products accessible. I know that iPhones are popular in the blind community as the VoiceOver support makes it easy to use.

I've found that OS X is far more usable now than the 10.1-10.4 years. So, while the form has improved, so has the function.

</comment></comment></comment><comment><USER82> worrying about either is financially dumb until you already have millions of customers and economy of scale calls for it*

*there are exceptions for some industries

</comment><comment><USER83> "3% browse with IE9 and 14% have a disability. Why do we only cater for the former? So why do we think it is perfectly acceptable to spend time ensuring that our websites work in IE9, but not that you can navigate them with a keyboard?"

if she is so concerned about making websites accessible for those with impairments, why in the heck did she choose that font?!?

2nd, you are really twisting things. first you take ALL people with disabilities (term used generously), and use that to justify websites having to comply with an issue that effects less than 1% of the population. the vast majority of disabilities falls under visual impairment, and all websites should strive to make them readable.

Then you do the complete opposite to IE. you disregard all the IE versions and focus on just one. in short, you lumped all disabilities to validate your point about one specific part of it and bifurcated the IE market to make it seem smaller to prove your point.

<comment><USER84> The original Microsoft research paper she pulls the number "14%" from uses questions like "do you have a visual impairment?" to determine disability. So if you wear glasses or contacts, you're disabled apparently.

<comment><USER83> agree, and trying to act like the internet is unusable by 14% of the population (all because they have a disability and those programmers and designers are ignoring their plight) raises red flags. over 1/10 people? really?

she claimed she doesn't know much about the process. which makes me wonder why write an article critiquing it then. but i can attest, making web pages usable/readable/etc to as many people as possible is always a huge part of the process.</comment></comment></comment>


Accounting Software - <AUTHOR> What accounting software do you use and recommend? Xero? Quickbooks? ect. <comment><USER2> In the last 6 months, I've been using Ledger[0] and loving it. It's entirely manual by default, but the principles it uses feels like having a static type system for my finances. The Plain Text Accounting site[1] also has several related resources.

LWN has a running series[2] on different accounting systems that you might find useful as well.

[0] [https://www.ledger-cli.org/](https://www.ledger-cli.org/) [1] [https://plaintextaccounting.org/](https://plaintextaccounting.org/) [2] [https://lwn.net/Articles/729088/](https://lwn.net/Articles/729088/)</comment>


Whale Fall - <AUTHOR> http://granta.com/whale-fall/ <comment><USER2> As a Seattle resident, I had no idea that our beloved Killer Whales were the most toxic animal on the planet.

Doing a little research, I did find an article[1] from 2009 that states this is because of contaminated salmon, who appear to pick up toxins from the Pacific Ocean (as opposed to rivers) off the coast of the US (Canadian fish fair better).

It also notes that " The state of Washington has issued some local fish advisories, including a recommendation that people limit eating Chinook from Puget Sound to one meal per week."

Information for life.

[1] [http://www.environmentalhealthnews.org/ehs/news/contaminated...](http://www.environmentalhealthnews.org/ehs/news/contaminated- killer-whales)

</comment><comment><USER3> We need to do more as humans by using less. That's the greatest hurdle humanity faces. Our over abundance and materialism has some very negative consequences. The sad thing is modern economics and politics still largely overlooks externalities to push short term "job growth" rather than long term sustainability. I hope that changes but it's easy to be overly optimistic.

</comment><comment><USER4> Amazing writing.

<comment><AUTHOR> _" What the whale inspired was wonderment, a dilation of the ordinary. Everyone was talking about it, on the buses and in the delis. There were dogs on the beach held back by their owners, sweeping flat quarter-circles in the sand with their tails."_

</comment></comment><comment><USER5> Lovely writing. But sad: someday we will find a way to kill everything in the sea.

<comment><USER6> It's important to bear witness. It's important to not look away.

</comment></comment><comment><USER7> It's incredible, I go to scroll up one line up to re-read it, and the header completely blocks it.

</comment><comment><USER8> Mods, this needs a (2006) tag.

<comment><AUTHOR> This was published in the November 2015 issue, only the photograph is from 2006.

[http://granta.com/issues/granta-133-done/](http://granta.com/issues/granta-133-done/)

<comment><USER8> There's absolutely nothing that indicates the date on the article. But I appreciate the note.

<comment><AUTHOR> Beside the first paragraph, on the left. BTW, I didn't downvote your comment.

<comment><USER8> On my Android phone, in Google Chrome, there is no date visible in the first paragraph.

Checking my desktop browser, it is visible there.

So poor site design then; on mobile the side panel showing the date and issue isn't visible. And on my desktop, the panel shows on the right, not the left.</comment></comment></comment></comment></comment>


Gun – "Self-hosted Firebase" - <AUTHOR> http://gun.js.org/ <comment><USER3> > _Because gun is not a database (NoDB), it is a persisted distributed cache. > The fatal flaw with databases is that they assume some centralized > authority. While this may be the case initially when you are small, it > always ceases to be true when you become large enough that concurrency is > unavoidable. No amount of leader election and consensus algorithms can patch > this without facing an unjustified amount of complexity. Gun resolves all > this by biting the bullet - it solves the hard problems first, not last. It > gets data synchronization and conflict resolution right from the beginning, > so it never has to rely on vulnerable leader election or consensus locking._

That's some of the most hand-wavy drivel I've ever read.

<comment><USER4> I don't see what's hand-wavy about it. He makes a clear and succinct point: In a distributed database, managing consistency at scale gets complex because most systems are designed to assume a centralized authority [of consistency]. By removing the centralized authority and making conflict resolution the main mode of operation, the design can (according to the author) be made simpler.

I don't disagree with any of that, and it's not a new idea (Lotus Notes and CouchDB come to mind as databases that solve replication through conflict handling), although I'm not seeing a clear description of how this synchronization algorithm actually works. There's a description in the wiki [1], but it's unfinished. (Looking at the code, the entire project looks like quick-and-dirty, unfinished prototype, actually.)

[1] [https://github.com/amark/gun/wiki/Conflict-Resolution- with-G...](https://github.com/amark/gun/wiki/Conflict-Resolution-with-Guns)

<comment><USER3> Consenus, replication and consistency are potential solutions and their own problems to another entire set of really hard problems. If you're going to say you solved them you better say how, and most importantly, what tradeoffs you made to do so.

<comment><USER5> Good point, I'm definitely lacking coverage on my documentation. But we're working on it.

GUN is a AP system, so you do not get Strong (Global) Consistency, instead it is Eventually Consistent and Highly Available. For more information on this, check out the wiki: [https://github.com/amark/gun/wiki/CAP- Theorem](https://github.com/amark/gun/wiki/CAP-Theorem) .

Basically you do NOT get linearizability for free, you have to build that ontop where it is baked explicitly into the data, with a CRDT or DAG or something. In the future, there should be extensions for this so you don't have to worry about it.

</comment></comment></comment></comment><comment><USER6> Seems a _lot_ like CouchDB/PouchDB. Which makes the fact that the words "couch" and "pouch" do not appear anywhere on this page rather concerning to me, because the obvious questions I have are:

1\. How is this better than CouchDB

2\. How does this differ from CouchDB

3\. Why did you not implement this on top of CouchDB

The lack of mention suggests the developers either have no clue what already exists, know that their solution can't compete with existing solutions, _or_ don't really care about being better and are just having fun implementing their own system from scratch. None of those answers make me want to take a deeper look.

<comment><USER5> You are right, it is very similar to Couch/PouchDB. Honestly, I tried Couch back in 2010 and wasn't very impressed and haven't really kept up with it since. Although I regularly hear good things about it and am aware it is one of the rare ones that is offline first. MongoDB wound up winning that market, so I didn't really think to provide a comparison to Couch.

So pardon my out-of-date ignorance:

1\. Depends upon what you want. GUN can do dynamic queries and has realtime push notifications baked right in. What you didn't ask is how GUN is worse. Well, CouchDB is stable and has security - stuff which we're still working on.

2\. GUN is a graph database which allows you to have key-value, relational, and document based data. Couch is a document based database. GUN gets embedded into your application server, while CouchDB has to run its own database server which then requires maintenance.

3\. Mathematically speaking, any matrix (table) or tree (document) can be represented in a graph. But not all graphs can be represented as a matrix or tree. So building GUN ontop of CouchDB would have come with a lot of overhead, especially since CouchDB does not have dynamic queries.

Hope this helps! Let me know if you have any other questions.

</comment></comment><comment><USER7> > It requires zero maintenance and runs on your own infrastructure.

I don't understand how these two claims are not contradictory.

> All conflict resolution happens locally in each peer using a deterministic > algorithm.

How exactly does this happen? Via CRDTs? Consensus? How do you handle conflicts?

I'm very skeptical about this sort of largely content-free copy fronting what should be a pretty complicated distributed system.

<comment><USER5> Good point, haven't heard that one before. Let me clarify. GUN requires no additional maintenance because it gets embedded into your app, compared to most databases which require you to run (and maintain) a database server.

If you do not want to even run your own app servers, I'm more then happy to let you use my free GUN backend so that way you do not even have to worry about that.

Consensus? Absolutely not. I definitely need to add more documentation and resources on this - in fact I'm doing a talk on how my conflict resolution algorithm works out in Berlin in a few weeks. Check the conference out at: [https://2015.distributed-matters.org/ber/](https://2015.distributed- matters.org/ber/) . After that I should have much better materials on this available for people.

Briefly and naively, the way it works is a Vector Clock + Timestamp combo. Timestamps have bad exploits, and Vector Clocks don't work well in ephemeral environments. If you combine the two together they compensate for the vulnerabilities of the other. Every peer acts as a state machine operating inside of an open-closed boundary function (nothing fancy here, this is the same stuff you learned in middle/highschool). This does NOT give you Global Consistency, as different peers might have slightly different boundaries because of clock drift (you can use a separate service to minimize this), but they will all become Eventually Consistent.

This helpful? Any other questions?

<comment><USER7> > If you combine the two together they compensate for the vulnerabilities of > the other.

Do you have a reference for this? I don't mean to keep sounding like a skeptic, but these are pretty big claims. I'm also genuinely curious about this claim and would really like to look into it further.

<comment><USER5> No worries, getting database stuff correct is important and you have a right to know how things work before building anything on top of it. You don't want to build a house on a cracked foundation, I'm the same way and I'm trying my best to engineer these things properly.

Here is a link explaining the algorithm [https://github.com/amark/gun/issues/87#issuecomment-13636276...](https://github.com/amark/gun/issues/87#issuecomment-136362766) pretty briefly, it is also in a terrible location that nobody would know to look for (I need to move it out into the wiki or something).

And to answer your question directly, here is how they compensate each other:

1\. Timestamps' vulnerability is to accidental or malicious clock drift. I can change my machine's local clock to be 2 years in the future. If you use timestamps to decide who "wins" in a conflict, my edits will win for the next 2 years. That sucks and is evil.

2\. Vector clocks were invented to get around some of these problems. You increment a vector on every local change such that it is higher than the highest known vector. So Alice updates a value to "Hello World" at state 1, then to "Hello Mars" at state 2, if she then receives an update from Bob of "Hello Jupiter" at state 5, Alice then has to jump all the way up to and past Bob to change the value - say "Hello Pluto" at state 6. This gets around the timestamp vulnerability, because even if Bob were to say the update is at state 999998 all Alice has to do is increment it again to 999999, she doesn't have to wait 2 years or corrupt her clock.

3\. Vector clocks' vulnerability is that since the clock is relative to the machine, if the machine reboots it loses its clock. Or even if the machine persists it, it has to play "catch up" when it comes back online - but while it is coming back online nothing stops two machines from accidentally incrementing to the same conflicting clock. At this point you are skrewed, unless you implement some other deterministic resolution - and plenty do exist. But the point of this is that vector clocks were designed for fairly permanent machines, but we now live in a emphemeral world where we might spin up a hundred servers to handle some load and then shut them down. If you do this, you lose the machine's vectors.

4\. But timestamps don't have this problem, machines spinning up and down usually do some sort of NTP that gives them a rough estimate of time - <USER2> aside, they don't need to remember anything. So when you combine these two together you get a vector timestamp relative to other vector timestamps. Aka every update includes its local timestamp (which might have drift) but the receiving computer calculates a vector relative to its own local timestamp (which might also have drift). If the sending peer is being malicious, the computed vector will be large which then receiving peer can use to mitigate the timestamp exploit. Equally as much, you can have any number of ephemeral peers coming and going through the network without fear of conflicts occurring or losing vectors.

Does that make sense? I'll be presenting on these subjects at the conference, which Kyle Kingsbury is doing the keynote. So I'll have an opportunity to talk to him and I'm hoping he'll also review the algorithm (the actual algorithm is in the code which you should look at, and I linked to a brief explanation of it at the top of this post) and help me set up Jepsen tests.

Overall, I need a LOT more documentation on this and I'm also wanting to formally verify it with TLA or Coq. We'll also be building a battle testing suite to hammer gun on in real deployed environments to see where problems lie. So please, give it a shot and slam me with any questions or problems you encounter. Have you seen this demo? [https://medium.com/@marknadal/gun-0-2-0-pre-release-auto- rec...](https://medium.com/@marknadal/gun-0-2-0-pre-release-auto-recovery-of- primary-fault-5f4ffbe63301)

Cheers!

</comment></comment></comment></comment><comment><USER8> see also [http://kinto.readthedocs.org/en/latest/](http://kinto.readthedocs.org/en/latest/)

<comment><USER9> I believe deepstream which received good feedback on HN also solves a similar problem.

With such proliferation of self hosted FireBase, can anyone in the know share their experiences with these solutions?

</comment></comment><comment><USER10> Also see [http://hood.ie](http://hood.ie) for what appears to be a similar goal.

</comment><comment><USER5> Just now noticed my project was on HN! Awesome, thanks to whoever submitted it. Will be replying to the comments now.

</comment><comment><USER11> how does this not have more votes? im skeptical about the self hosted firebase claim, for instance, how would you scale this?

<comment><USER12> With a two way dotted arrow, obviously.</comment></comment>


Will using iScroll for desktop webapp will break or improve usability? - <AUTHOR> http://cubiq.org/dropbox/iscroll4/examples/simple/

<comment><AUTHOR> On one hand, it has "dual personality" scrolling, when you use the wheel of the mouse, it acts as "desktop" scroll, when dragging and pushing up and down, it acts as touch screen scroll.

On the other, smartphone and tablets are so common these days, shouldn't people be able to switch quickly?

</comment><comment><AUTHOR> a link to the iScroll project:

<http://cubiq.org/iscroll-4></comment>


Ask HN: How to meet technical mentor? - <AUTHOR> I work at a small startup with 4 other engineers and we all have a similar level of engineering experience. I read a lot to learn, but I often find myself having questions that don't only have one answer. I would love to ask a more experienced engineer but given our team size there are few.<p>What's the best way to meet experienced engineers with whom I could start developing a mentor/mentee relationship? <comment><USER2> The easier but more expensive way is to hire a senior engineer. That might be hard to do at a small startup. The other way is to expand your network.

There is some luck involved but you can increase your chances by putting yourself in the places where a technical mentor would be. Attend meetups, hacker groups, conferences, talks.

Reach out to technical bloggers or other people in the sphere. If they can't help you directly, maybe they can redirect you to someone else.

<comment><AUTHOR> thanks yeah, that's kind of the plan for now.</comment></comment>


The Orphaned Internet – Taking Over 120K Domains via a DNS Vulnerability - <AUTHOR> https://thehackerblog.com/the-orphaned-internet-taking-over-120k-domains-via-a-dns-vulnerability-in-aws-google-cloud-rackspace-and-digital-ocean/index.html <comment><USER2> This is an interesting article, but it keeps using the phrase "taking over domains", which isn't really what's happening.

It's really "squatting on the domain ONLY in the space of a specific provider".

And, this isn't new. For example, you can do this on most shared hosting plans...add a domain, and they don't ask for any kind of verification.

The only thing this seems to accomplish is lock you, the legitimate domain owner, from using a specific service until you open a support ticket and hash it out with them. You still control the domain, so it's fairly easy to prove control/ownership.

That's not good, of course, but it's not the same thing as "taking over a domain". Your WHOIS records still point at your DNS servers, which still return the correct records.

Edit: It could, I suppose, be used to take over a mostly "abandoned" domain, where the WHOIS records still point at a provider with this issue, but the underlying account is gone. Again, an issue, but if the domain is abandoned, it's not the same thing as taking over arbitrary, in-use domains.

<comment><USER3> Imagine _Foo, Inc._ , a hot new startup disrupting $industry. DNS for _foo.com_ (which was paid up for several more years) is hosted on Route 53.

One day, they run out of money and close up shop. Their Amazon AWS accounts get shut down. The domain gets wiped from Route 53.

You come along and add _foo.com_ as a hosted zone in Route 53. You point MX RRs towards a machine you control and begin reading the mail sent to $email@example.com that will continue to arrive for the next several years. Perhaps you even use your new access to all @foo.com addresses to do some password resets on long forgotten accounts.

<comment><USER4> The combination of this being fairly unlikely to be attempted, along with Foo Inc no longer existing, I really don't think this is a significant issue.

<comment><USER3> I manage some mail servers for an ISP. There have been times when I've came across domains that we still have control over but the companies are long gone. Many times I'll "recycle" domains (old ones of mine, "donated" domains, or some of these "forgotten" domains) and use them for spam traps.

Typically, I wait until a domain hasn't been used legitimately for e-mail for at least one year (i.e. I'll set "null" MX records or point them to a non- existent host) before I repurpose them. You might be surprised at the types of e-mails that start flowing right back in after pointing the MX RR back to a real host: lots of it is crap (spam), but I've received travel itineraries, notifications from AmEx, appointment reminders from medical facilities, and all kinds of good stuff.

</comment></comment></comment></comment><comment><USER5> This should be fairly obvious to anyone who has ever moved DNS from one provider to another. Or even from one account to another. Anybody can stand up a server that's "authoritative" for a domain. It doesn't matter until the registrar points the domain's NS there. In fact, how else would you move from your registrar's nameserver to something like route53? Nobody is going to point their NS at an empty zone and populate it after the fact.

<comment><USER6> Indeed, "Taking Over.." is a misleading, click-baity heading. "Resuming Abandoned..." would be a better title.

</comment></comment><comment><USER7> > "Rackspace (~44K Domains Affected, Won't Fix)"

Remember when Rackspace was a premium host that you happily paid more money to because they handled things the right way?

</comment><comment><USER8> So what did Google do</comment>


Six weeks since launch: revenue, customers, successes, and lessons - <AUTHOR> https://certsimple.com/blog/six-weeks-in

<comment><AUTHOR> Hi there! Author & CertSimple founder here. If there's anything else you'd like to know that's not covered give me a shout here and I'll try my best to answer.

Revenue is Mar 16 -> today, as taken from our Stripe account.</comment>


Last Week Tonight with John Oliver (HBO): Net Neutrality - <AUTHOR> https://www.youtube.com/watch?v=fpbOEoRrHyU

<comment><AUTHOR> One of the best, most accessible (and easily funniest) overview of net neutrality I've seen.</comment>


Codecademy Surges To 200,000 Users, 2.1 Million Lessons Completed In 72 Hours - <AUTHOR> http://techcrunch.com/2011/08/22/codecademy-surges-to-200000-users-2-1-million-lessons-completed-in-72-hours/

<comment><USER2> I pointed my younger sister at this the other night. She's 17, and I'd tried to interest her in programming before with no avail. She seems to have caught on to this, though, and it's something I'm extremely happy about. It's not that I think that she'll ever become a hardcode graphics programmer, but I think it's fantastic that she even has a basic understanding now.

The only criticism I've had from her is that she doesn't know what to do with what she's learned. Maybe some suggestions on some basic examples might be good? (say, "Try writing a loop that averages these numbers," or a grade calculator).

Thanks so much for this - I believe that everyone should know how to program in the same way that I believe everyone should know how to read or do arithmetic. It's another form of literacy, and codecademy is definitely a big step towards much better understanding of programming (edit: that is, for the general public), and hopefully less social stigma and the like as a result of that.

<comment> very-pleased Beautiful. There's a bit of poetic justice in this.

Programmers have been callously obsoleting various careers (and thus people) for decades now. In fact, it's likely that programmers are _currently hard at work_ trying to obsolete careers that your little sister may already be considering!

It's wonderful that the programming field is about to get disrupted. __Wonderful! __Programmers about to see their skills become as common as basic reading or writing.

Programmers, fear Codecademy. You're about to taste your own medicine. Expect your irrationally high salaries to drop — that's justice.

Love the site, guys. Keep it up. :)

<comment><USER3> Hah. I won't downvote you...but you're wrong. I remember when people were telling me that web designers wouldn't have a job because everyone could just use Microsoft Frontpage.

Coding takes effort. Really good coding takes smarts + effort. An awesome application takes effort, smarts, a great idea, luck, good design, lots of time, etc. Codecademy should be encouraged because it gets people an entry point to developing, but I suspect you're underestimating the effort required to produce Call of Duty or Google Docs.

<comment><USER4> Ain't that the truth.

As I've learned to program, I found that the language was the easy part. The hard part was learning to think like a programmer, which requires a complete mental shift, for most of us anyway. That's the hard part.

</comment></comment></comment></comment><comment><USER5> > Sims also says that the company is actually a part of the latest Y > Combinator batch (something they hadn't previously disclosed).

I love them for that. Having their product loved (here and elsewhere) based on the product _not_ the connections they have. Awesome.

<comment><AUTHOR> Thanks! We're glad you think the product spoke for itself ;)

</comment></comment><comment><AUTHOR> Thanks to everyone in the Hacker News community for being so supportive and providing feedback on our launch. We really appreciate it! As always, if you have any issues, shoot me an email - contact (at) codecademy (dot) com. -Zach

EDIT: I'll be back on HN in a bit to answer questions but the next few hours are a little busy. Thanks again.

<comment><USER6> There has definitely been requests and offers to create lessons... When are they coming???

<comment><AUTHOR> Soon!

</comment></comment></comment><comment><USER7> I've been around programming pretty much all of my life as an spectator (my brother can code and well I'm a product guy so I'm around coders every day). I never quite got the grasp of it and programming seem like this huge abstract thing. Never got myself to take action in learning because frankly I just dismissed it as being to complicated but deep down I always wanted to be able to code.

I completed code academy in one hour. WOW. Now I'm hooked.

I'm actually so hooked that I looked more resources on learning JavaScript. I'm reading this: <http://eloquentjavascript.net/index.html> (found it via a Google Search in StackOverflow)

I can't wait for more lessons. Thanks so much for this!

Note: there were a couple of lessons were I did need to ask my devs for help because there were some concepts that were missing. Once explained to me, I was able to complete the lessons.

<comment><AUTHOR> Thanks! We're working on more lessons as soon as we can and we're going to hopefully help devs help you with some new features coming out.

</comment></comment><comment><USER8> Not that i don't like this approach, it think it's a good way to give regular people a impression what programming is.

I did the fist Chapter of programming books in over 10 different languages and it always felt good. What comes after that is the problem, the ones where you have to really think and it just doesn't work on the second try.

I know this from college, the first two lessons nobody is complaining and then it starts to really freak out the people who didn't know before what programming really is.

When you find a way to let people deal with this phase, than you really did accomplish something that makes a difference.

</comment><comment><USER9> As a non-programmer, I absolutely love this. I was able to complete two courses within 10 minutes.

More than anything, this makes programming seem like FUN.

Well done and kudos to the Codecademy team!

<comment><AUTHOR> Thanks! Glad you're on your way to becoming a programmer.

</comment></comment><comment><USER10> "it clearly has loads of potential for one key reason: it actually feels fun."

This is an excellent example of Programmed Instruction. Most of us probably learned typing the same way, and maybe even Logo. The reason this approach is good is because, in addition to being fun, it's also compatible with the Keller Plan:

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

Granted you can get only so far with this approach, but it's still terribly underused in the current scheme of things.

<comment><USER11> >Granted you can get only so far with this approach, but it's still terribly underused in the current scheme of things.

In the teaching of concrete skills, I am not sure what the bounds are -- the burden on the instructional designer to administer the skill dependency graph as the skills become more complicated continues to grow, but I don't see that as a limiting function.

<comment><USER10> The problem is that concrete skills are only a small part of learning. This sort of approach is great for teaching kids to pass math tests, but less great at turning kids into mathematicians.

<comment><USER11> Ah, I'm glad you agree. I suppose my reaction is that most people underestimate just how far you can go with this approach, and I am glad to see that you are not one of them; we agree that you can train someone to solve calculus problems, but not the skills of derivation.

Where we seem to disagree is about wether this approach should be used in isolation. Frankly, I think most people (successfully) trained in theory are bored by application so there is a use in multiple educational paths.

While application is a small subset of the available learning to someone interested in a field, it is often a sufficient subset to be a productively contributing member of society.

</comment></comment></comment></comment><comment><USER12> I'm interested in Codecademy's marketing; how did they accumulate so many active users in 72 hours?

<comment><AUTHOR> We'll try to do a postmortem on this as soon as traffic dies down a little. But yes, as a few people have mentioned, it's mostly viral traffic.

<comment><USER12> I hope you include the subtle parts that help make it viral. For example, a media button that posts to friends: <Happy Programmer picture> "The Khan Academy of programming, try it!"

<comment><USER13> I don't think the shape of the share button matters. What made it viral is that once you play with it for 10 seconds, you _just want_ to share it with all your non-geek friends. Because it's fun. Because it finally lets them understand why _you_ are having fun programming.

Make what you do fun, and it will be viral. Obsess over the language of the share button with something boring, and pull your hair for eternity.

<comment><USER12> A startup needs to understand that there's several stages to becoming the next big thing. The first and most important: Raising awareness. How can some users tell anyone if they haven't heard about it yet?

How they not only raised awareness but captured the interest of thousands is important.

</comment></comment></comment></comment></comment><comment><USER14> Great App! I thought the lessons were well commented and laid out. One trick, instead of bulking up with more features, it to lay out more lessons and publish a system for letting us know when they're available. For me it would be more useful if the lessons came in similar large blocks/iterations with a predefined goal of "by taking these lessons you will learn X". Anyhow, great work!

</comment><comment><USER15> When I saw Codecademy I was quite impressed and I truly enjoyed it, even though it was extremely basic for me. It was actually really fun, remembering what it was like when I first started learning I WISH there was a site like this. I am so happy that this site was released and that I was turned on to it.

My question is when will we start to see more lessons/courses? Will they stay at a beginner level or get more advanced? Will there be some sort of discussion/forum section to the site? And lastly, do you feel there will ever be an article/paper section to the site (Such as a section where submitted papers, tutorials, articles, etc are posted when approved by the main staff at Codecademy)?

All in all, great job guys! Love the site.

</comment><comment><USER16> _Sims also says that the company is actually a part of the latest Y Combinator batch (something they hadn't previously disclosed)._

I was hoping they would be picked up by YC... looks like it already happened :~)

</comment><comment><USER17> Is that web site strictly for absolute beginners? I find it a petty that I can't skip the beginner lessons to try to learn something more advanced.

<comment><AUTHOR> At the moment it is. We'll have content for experts as soon as we can make it.

</comment></comment><comment><USER18> The "_why" post led me over to TryRuby.org which looks like it may have been inspiration. The thing I noticed was how much I prferred TryRuby's layout. It seems like the CodeAcademy instructions are overwhelmed by other screen elements and awkwardly placed lower left of the console.

I also think you could let people type more a la Learn * The Hard Way.

But really like where you're going.

</comment><comment><USER19> Alright, loaded question. Can/will this work with other languages? I guess a related question is, does it have to? The only thing the YC note tells me is this wants to be a real business, so the big question is, what's the model?

Edit: By the way, love the site. For JavaScript, this is a huge leap forward. I'd love it to be the same for other languages, I'm just curious if that's possible.

<comment><USER20> _the big question is, what's the model?_

People are asking this a lot about YC companies within a few weeks of birth. It's not a silly question, but it is perhaps not the best time to best asking. Most of them don't know yet. That isn't exactly unprecedented: Google didn't know it was a contextual advertising company when it launched, etc.

Given the amounts spent on employee training in the US, I think that if you had a magic box which said "Put non-programmers in the left end, programmers come out the right end", you would not be in a bad place in life. Heck, people make millions upon millions doing the same thing just for MS Excel.

</comment></comment><comment><USER21> I showed this go my colleagues at work yesterday. They want me to teach them how to program (well, write VBA) but I kind of feared for them since they have very little free time to devote. And it took me a massive investment of time upfront to get into programming, although I didn't have access to a resource like codecademy.

</comment><comment><USER22> I wonder if this service will become more of a business or a non-profit. I feel that this site is providing a great public good, akin to Khan Academy, and it would be great if donations could cover the costs of further developing the site. That way, price is not a deterrent to any users getting started with learning to code.

</comment><comment><USER23> Non-technical people looking for technical cofounders no longer have an excuse not to learn how to code ;)

</comment><comment><USER24> 10 minutes in and I can say this is a great website! I hope it has the depth to match. Great work Zach!

</comment><comment><USER25> At first I only took it as a "me-too" to Khan Academy, but it really isn't. It definitely takes away some great features in KA, but it's defined differently in the sense that the design reflects the web industry rather than how a typical course would teach.

</comment><comment><USER26> What where you guys working on before this and how did this idea start from?

</comment><comment><USER27> I actually started working on an idea like this back in January but never went anywhere with it. These guys have made something very tough look incredibly easy.

Honestly, very well done!

<comment><USER28> Yeah I proposed a similar idea at a startup weekend here on the east coast. It only got five votes, but after seeing this and some other avenues popping up (good places to market it) we started coding what I proposed at startup weekend. Hope to have done within the week; excited!

</comment></comment><comment><USER29> Weird. Several portions I'd completed before displayed "in progress" today. I just went back and re-did them to see if they were new. I don't think the were.

</comment><comment><USER30> I can see this fitting really well with Khan Academy. I wonder if the two have talked at all.

Congrats on the success guys, the site is awesome.

</comment><comment><USER31> Brilliant but weak. Doesn't belong on Hacker News, should be on n00b news.

</comment><comment><USER32> Very nicely done. I enjoyed going through the exercises and it was fun.

</comment><comment><USER33> Congratulations! It's a great site, you deserve the praise.

</comment><comment><USER34> Seriously, WOW!

</comment><comment><USER35> Now that's impressive.</comment>


Everyone really likes D now, How come? - <AUTHOR> https://medium.com/zeduhow/everyone-likes-the-d-everyone-eee3c19c3af9 <comment><USER2> The provided article:

* Does not explain why "everyone really likes D now"

* Provides no evidence that "everyone really likes D now"

* Doesn't have the title of the submission (though, to be fair, the actual title is a vaguely similar rude joke that you can probably infer).

* _Does_ give actionable advice about how to start programming in D, if you wanted to do that.

I guess my big, unanswered question is: what does D have over all the newer and more popular compiled languages out there that seem to occupy overlapping niches, like Go, Swift, Kotlin, and Rust? Or, for that matter, the older standbys of C, C++, Java, and C#? And if that seems like a wide spread, the obvious follow-up is: where in this space does D live? It's object-oriented (like C++, Java, C#, Kotlin, and Swift) and "makes memory access available" (like C, C++, and Rust), but that's all I can tell.

<comment><USER3> > * Provides no evidence...

I'd go further and say it provides the opposite - it shows a low and declining search trend.

The rest of it is a fairly sloppy guide on how to set up Atom for D development.

Seems to have been written just to have an excuse to make that puerile joke.

<comment><USER4> > I'd go further and say it provides the opposite - it shows a low and > declining search trend.

This.

Additionally, the only moment in time when D was a reasonable concept was before C++11, when the development of C++ was stalled and there were a few pain points with C++98 that justified picking up other tools.

Since then C++ started evolving and a majority of those pain points were addressed, thus leaving D without any major selling point or even purpose.

To make matters worse, with the whole industry shift to the web C+ has since seen a decline in market share. Therefore D is placed as a poor replacement for the incumbent of a market share in decline.

<comment><USER2> > Additionally, the only moment in time when D was a reasonable concept was > before C++11, when the development of C++ was stalled and there were a few > pain points with C++98 that justified picking up other tools.

I don't know enough about D to dispute this, but in a backhanded way, this is a pretty damning appraisal of D. It's not just the "industry shift to the web" that has led to the decline of C++. Why do people write server-side applications in Java or Go instead of C++? Why do people write mobile apps in Objective-C, Java, or Swift instead of C++? Even in the remaining domain of desktop applications and systems code, C++ isn't necessarily the go-to choice anymore.

And so, if D doesn't offer anything over C++ that couldn't be addressed by bolting even more features onto C++, why the heck does it exist?

</comment></comment></comment></comment><comment><USER5> Title is misleading and doesn't match the headline. Shame because I thought it meant D was gaining steam, whereas it shows near the opposite.

</comment><comment><USER6> The name of the language and this title sound so wrong... Never ever name something D

Many years ago while being too naïve I created a website d-something and the name was big problem, now I see why

</comment><comment><USER7> 100% genuine question: why would somebody learn D over rust/go/erlang (depending of your specific projects) ?

<comment><USER8> It feels like Java and acts like C. It almost feels like what Objective C should have been.

<comment><USER5> This comment is funny to me as it shows how different programmers tastes are. Some would say that is the worst of both worlds.

<comment><USER9> You can write pure functional code in D, if that floats your boat.

<comment><USER10> D grew pattern matching and guards? (multi-funcs/etc)

<comment><USER9> If you so choose to D can have a relatively clean library implementation. The type inference isn't bidirectional (Or at least it pales in comparison to HM) so it wouldn't be as good as ML-like FP.

Pattern matching is a feature of pure functional code rather than a requirement (As useful as it is, every time I touch haskell for fun I always miss the mathematical approach to coding when I then write in C-land).

Enforced purity is a feature, however. That's what I was referring to. However, ..., there is no pure-IO so it would be like Haskell before Monadic IO was figured out (I assume).

</comment></comment></comment></comment></comment></comment><comment><USER11> Almost nobody "really likes D now". It is a failed language in the sense that it never managed to become mainstream or attract a large following.</comment>


Why Do Most Programmers Prefer Linux Instead of Windows or OS X? - <AUTHOR> http://32info.blogspot.com/2016/11/why-do-most-programmers-prefer-linux.html <comment><USER2> The SSH that comes with git for windows, as well as the bash install are really nice... I haven't come across too many differences that would hinder me... I mean, when I've had to use a proxy for SSH tunneling, that was a real pain, but other than that, I haven't found it to be any more difficult in Windows than in Linux or OSX. I use all three just about daily.

As to Windows performance, I don't find that to be the case for the most part either... If you have at least 8gb of ram and are operating from an SSD, odds are you won't notice a difference.

I prefer the windows UI, but likewise prefer bash and unixy tooling for software dev. In windows, I have a Linux VM that autostarts, and has samba setup, with a share that mounts in windows... this lets me navigate/edit with windows's UI while having a few ssh terminals to the VM open. It works well.

On OSX about everything I want to do runs there fine... though CI/CD will run targeting Linux either way.

I have to do Windows work now and then, so keep the latest VS installed, just in case. For the most part, I'm pretty agnostic in terms of what OS I use, I can be productive in any of them.</comment>


MacBook multitouch touchpad Python bindings - <AUTHOR> http://blog.sendapatch.se/2009/november/macbook-multitouch-in-python.html

<comment><AUTHOR> The demo is great as well, here little video I made of it <http://vimeo.com/17251774>

If you want to get pygame on OS X, here is a good guide [http://superuser.com/questions/43531/installing-pygame-on- sn...](http://superuser.com/questions/43531/installing-pygame-on-snow- leopards-system-python-2-6)

</comment><comment><USER2> Here's my quick'n'dirty port of these bindings to Racket: <https://gist.github.com/718858> (without demo, yet)

</comment><comment><USER3> For those of you who get stuck in it before reading the source code: "EXIT! One finger still, four motioning quickly downward." He should have put support for just 'q' in there too :)</comment>


Pocket God offers case study of how to build a hit iPhone game - <AUTHOR> http://games.venturebeat.com/2009/07/10/pocket-god-is-a-case-study-of-a-hit-iphone-game/ <comment><USER2> Great article w/ real meat in it, thanks for posting.

"We want to build a profit, create a nest egg, and then take more creative risks with our next game," he said. "We aren't under pressure to make the next game into a home run. I have my eye on the future. I want to progress in an intelligent manner, like some of the better independent developers."

<comment><USER3> I wouldn't call it "great"; the writing was rather pedestrian. Another inspiring story, nonetheless! All I really have at this point is, "must be nice".

</comment></comment><comment><USER4> It probably doesn't hurt that they're also getting PR as a "case study of how to build a hit iPhone game" to keep interest up among those of us who, like me, hadn't heard of them before.

</comment><comment><USER5> I would have liked to have read this, but the site is horribly slow, which is probably not helped by the XHTML ads being loaded first. Don't bother.</comment>