A software engineer's website
clarkduvall.com
clarkduvall.com
$ curl http://clarkduvall.com
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 631 100 631 0 0 6981 0 --:--:-- --:--:-- --:--:-- 10516
<!doctype html>
<html>
<head>
<title>Clark DuVall</title>
<link rel="shortcut icon" href="/images/favicon.ico">
<meta name="description" content="Clark DuVall's website o' fun!">
<meta property="og:image" content="http://clarkduvall.com/images/image.png">
<link type="text/css" rel="stylesheet" href="/css/style.css">
</head>
<body>
<script type="text/javascript" src="/commands/com1.js"></script>
<script type="text/javascript" src="/config/config.js"></script>
<script type="text/javascript" src="/js/jsterm.js"></script>
<script type="text/javascript" src="/js/analytics.js"></script>
</body>
</html>
So $ w3m http://clarkduvall.com
$
Just sayin'.Not that I have any beef with javascript only stuff or this site, the web is big enough for everything - please don't read my comment as complaining in any shape or form, really. I just want to say that successfully targeting an audience is nice, but people finding stuff at your site(s) you couldn't possibly have imagined they'd be looking for is also nice, and if you go the javascript only route, you might never find out. Just as a general point that doesn't really have anything to do with the site at hand.
Google, the only SE that matters, handles Javascript only websites just fine (actually uses a full browser as the google crawler bot). I'd make a bet that Bing does too.
And most accessibility software works with Javascript sites too, as they use the full DOM and can even handle events. It needs a little care to show changes to content and such, but they definitely don't need static fallback to read a site.
The rest is old wives tales.
For me, it's more about accessibility for users with screen readers or Braille, or non-English-speaking users who want to translate it.
Don't fall into the common trap: you can like/appreciate something and still be critical of (all or parts of) it. I think the site is absolutely gorgeous and creative, but still a little irked that its presentation matters more than making it available to anyone but sighted English-speakers/readers with JavaScript enabled.
And yes, the irony was irresistible.
I'm not meaning to have a go at you here, npsimons -- what you choose to do with your browser is your business, and you've not actually complained about the site -- rather I'm seeking to curb the idea that seems to crop up on HN from time to time that browsing without scripts enabled should provide a roughly equivalent experience to browsing with scripts enabled. It's not reasonable to expect developers to cater to a tiny fraction [0] of their audience when that audience wants the developer to essentially give up all client-side interaction other than POSTs.
[0] It's around < 2%: http://developer.yahoo.com/blogs/ydn/many-users-javascript-d...
P.S. Your link is nearly four years out of date, and I bet the percent is higher for software engineers, i.e. the target audience of this page. Hell, for just Firefox users who use extensions, a quick estimate suggests 12%. (Number of users for https://addons.mozilla.org/en-US/firefox/addon/noscript/ divided by number of users of the most popular addon, AdBlockPlus https://addons.mozilla.org/en-US/firefox/addon/adblock-plus/)
I'm fine with enabling JS for some things - online shopping, web apps, etc. I'm not fine with enabling JS for things that don't require it - blog posts, photo galleries, etc. This page, I closed immediately, again, because I couldn't tell what it did. I'm not about to start randomly enabling JS just to see what will happen.
As for curbing, I'm going to have to strongly disagree with you there. I think more people should be browsing with scripts and flash off by default; how many unpaid tech support calls could have been prevented by a default install of NoScript and FlashBlock? I'd like to curb the idea that people will just run random code off the web. Give us a reason, a justification, and if JS is disabled, tell the user why you need it.
You simply shouldn't allow a script to run on your device without some amount of trust in the site that gave it to you or a thorough code inspection by multiple experts. Even then, it still might have a hidden exploit.
Because of this, there ought to at least be a landing page for script-blockers with a bit of explanation as to why they can't make use of the site without allowing scripts.
I am firmly of the opinion that scripts should strictly be an optional addition solely for the purpose of improving the user experience of visitors. HTTP 1.1 is good enough that about the only thing you do actually need scripts for is persistent and/or two-way communication channels. Almost everything else can be accomplished on the server side with a stripped-down user interface (as one might use with screen readers, text browsers, or even SMS or WAP on feature phones).
http://webaim.org/projects/screenreadersurvey4/#javascript
People that use screen readers use ordinary browsers, like IE, Firefox and Chrome. They don't use special browsers, screen readers read the whole screen.
I use Firefox and JAWS.
It is incredibly difficult for me to navigate sites that use JS to render content.
And as a developer, it's outrageous to me that people who consider themselves web developers to think it's OK to render static content (news articles, blog postings, etc) using client-side JS.
Angular, Ember, etc are all amazing tools for building applications. They are not amazing tools for web pages.
Now, I don't know if you specifically also use a screen reader, but if you do, I'd love to know what you use.
But for those of you that don't, I'd appreciate you not trivializing the issue. Accessibility of a site and how it works with screenreaders is up to the individual developer.
Did you know that Flash was accessible to screen readers? Too bad developers never paid attention to how to do that.
Imagine the person who essentially has to look at the world through a drinking straw, and try not to be a dick to him by adding clutter. Copying your content into pages with simple navigation--without frames or scripts, possibly with tree-hierarchy outlines and prev-next links--is not required, but is definitely a nice gesture.
Case in point - on that page ^W, ^PgUp and ^PgDn do not actually close the tab or move to the previous/next tab. And not only that, ^W doesn't even erase one word backwards. Why would you go to all the trouble of capturing all keyboard events if you're not even going to support basic commandline editing. This is not a neat use of javascript, this is an annoying use of javascript.
I totally agree with that, but I think it's a tangential point to the one I was making. I certainly think that developers should only use javascript where it's actually more convenient to do so than to use CSS, HTML and server-side code.
I personally find it extremely irritating navigating to sites which use javascript for something which naturally lends itself to another technique (like sites which request all text using javascript, as 'bphogan' pointed out above). When I visit sites such as these, it makes me feel like creating a parody site which draws the entire DOM in javascript just to illustrate the point that javascript is but one of the tools in the developer's toolbox.
The reason I get somewhat annoyed at noscript proselytizers (which I fully admit doesn't apply to any of the commenters in this thread), is that I've seen what happens when developers are forced to attempt to produce a stateful, interactive experience for the user without using (too much) javascript, and that thing is ASP.NET WebForms. As the line shrinks between desktop apps and web apps, we'll have to find ways to make overcome the web's shortfalls in interactive application development, namely state management and responsiveness. If the use of noscript increases, then this becomes harder to do, and makes it a lot less possible to make interactive web applications look like anything more than a poor mockery of interactive desktop applications. I truly want to see a time within the next few years where I can barely tell the difference between a desktop app and a web app, and unfortunately for noscript users, such an experience will probably require javascript.
That's fine; believe it or not, most NoScript users are enabling a good chunk of JS (usually for your exact example of web app). What's annoying is when one opens up a link that gives the user no clues whatsoever as to it's purpose, and all that happens is a blank page pops up. No indication, like on some sites, that hey, this site is interactive and requires JS. Just a blank page. It makes one wonder why the URL was even shared.
Seems like a sensible option might be to have some sort of button (address bar / extension button) that opens up a pane with the javascript as read-only so its easier to do a quick visual check for "funny business".
One is based on bootstrap and one on skeleton. I just made some links that are icons (github, twitter, etc) visible in elinks by adding img tags with src="" alt="some text" style="display:none". Seems like an OK hack.
If everyone just used lisp or RPN this kind of operator precedence bugs would be gone long ago ;)
Another one: http://saurik.com
I worked with Clark on Google Chrome, where he was a contractor while in school. He wrote our documentation server for Chrome extensions, which was a fairly gigantic project involving compiling IDL-like files and extracting documentation from the types and comments therein.
+1, would work together again.
On the other hand, my comment was going to be "where's the tab completion?" so I guess my own comment counts as content-free.
Might as well add; nice job!
$ls pro[tab]
==
$ls projects/
Google Chrome on Windows 7
Unfortunately, it seems to capture all keys, including browser navigation keys, such as to switch tabs or open a new tab.
Also, one oddity: page up and page down work, but also insert ! and " characters at the prompt, respectively.
Perhaps it could default to a regular site, and this could be an option "Are you a hacker? Yes/no"
That said, I support your decision to keep this as the default in the spirit of hacking.
I doubt it but it's possible.
http://clarkduvall.com/js/jsterm.js
Edit - Looks pretty extensible as well! - http://clarkduvall.com/commands/com1.js
Edit edit - Looks like it is on Github. Should've read the output before hitting view source -_- https://github.com/clarkduvall/jsterm
I'm really happy to see my vision in action invented and implemented by someone else, even though had to wait a bit over 15 years for it!
Pretty cool idea though.
'sudo' is there, but without any notion of a correct password.
[applauds]