419 karma · joined February 20, 2008
http://the.ruricolist.com
https://github.com/ruricolist
If you are committed to doing everything in JS, then you have two choices:
1. Deliver a degraded experience to modern browsers and a terrible experience to older browsers.
2. Deliver a good experience to modern browsers and no experience at all to older browsers.
Depending on your business model, #1 may be the best choice. But if you're trying to compete with native apps then #2 is the only thing that makes sense.
I don't understand the logic that goes from "Modern browsers with fast JS engines make fancy web apps practical" to "let's make sure our fancy web apps run in old browsers with slow JS engines."
This is an interesting article. It's not a "think piece" about writing "these days". It's a serious attempt to understand just what "public intellectuals" were in the first place, what conditions made them possible, and what part of that, if any, can be revived, or is worth reviving.
He might be completely wrong. But he deserves a little better than TL;DR because he dared to write above the eighth grade level.
http://www.ai.sri.com/~latendre/listCompFinal.pdf
I have a (very loose) implementation of this approach at:
https://github.com/TBRSS/cl-lc
Frankly, though, once you've learned the trick, list comprehensions lose a lot of their appeal.
Although the specific problem of state-with-backtracking would be more idiomatically solved with dynamic binding.
But even if a more compact way of constructing hash tables is called for, why a literal syntax instead of a more compact constructor? E.g. you could write
(dict "name" "andrew" "location" "sf")
with a compiler macro that produces exactly the above code.[...]
The cabin was small, twenty feet by thirty. The control area of the ship measured nothing over a hundred feet. All the rest was a golden bubble of the feinting ship, nothing more than thin and incredibly rigid foam with tiny wires cast across it so as to give the illusion of a hard metal and strong defenses. The ninety million miles of length were right. Nothing else was. The ship was a gigantic dummy, the largest scarecrow ever conceived by the human mind.
(Corwainer Smith, "Golden The Ship Was—Oh! Oh! Oh!")
From the Lisp 1.5 manual (1962):
"In actual practice, LABEL is seldom used. It is usually more convenient to attach the name to the definition in a uniform manner... The fact that most functions are constants defined by the programmer, and not variables that are modified by the program, is not due to any weakness of the system. On the contrary, it indicates a richness of the system which we do not know how to exploit very well."
/^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
So if you're going to use <input type=email>, you might as well use the same check on the server side.Apparently, when I'm reading on screen, somewhere towards the middle of the line, I switch my focus from my left eye to my right. This makes it obvious, because with the color at the end of the line, I switch too soon, and miss the third of the line in the middle.
Possibly this is a consequence of wearing glasses.