It does indicate a concept of future. What it doesn't do is use a different tense—the key verb is the same as when talking about the present. It's a subtle distinction, but he is arguing that this lack of differentiation in verbs has an impact on internalizing future events.
And while you very well could make the translation from whatever the original was to "It will rain tomorrow," it might not be a literal one that preserves the original tenses, which would obscure exactly what he was trying to point out.
Moreover, pressing alt while in insert mode causes the next key to run as if pressed in normal mode. I usually use this instead of escape for those times when I don't want to go into command mode.
One caveat, however. I recently switch to OS X and have yet to figure out how to get alt/option to behave this way. Really my only major gripe about OS X vs. linux.
That is completely missing the Bayesian worldview, which says you should assign a distribution to the probabilities. A uniform distribution of probabilities, 0-100%, is not perfect, captures the uncertainty better than a point distribution at 50%.
I am holding a pencil right now. Is the eraser at a higher altidude than the tip? Maybe, maybe not. Is that 50/50? Would you be willing to make a bet from me at 1:1 odds, that the the answer is yes?
It's "Ctrl-Shift-R twice". Hit it, wait a few moments for the page to start reloading, then hit it again.
Otherwise it doesn't reload everything. Verify this by watching the Developer Console's Network section. I can only assume this is intentional; my coworkers told me this trick last year and it still seems to be the case.
From watching the developer tools network tab it looked like Chrome respects Ctrl+F5, but I've also had the nagging feeling that two refreshes are sometimes necessary, and I've made that a habit when testing changes. I thought I was just being silly though. Would a browser really ignore Ctrl+F5 in the name of speed? That doesn't seem logical to me.
Even then I find Chrome still caches. I've gotten in the habit of doing cmnd-shift-delete, which takes you straight to the clear cache settings. Sadly the equivalent command in Windows (Ctrl-shift-delete) does not work.
I still feel Chrome is the best browser, but that's more to do with the lousy competition than Chrome's own quality as of late.
Try the new safari. I've been a Chrome user for quite some time, since the retine MBP I'm forced to use safari (for retina support). Since ML it has actually become quite pleasant I have to say. I don't see any clear advantages of chrome anymore in terms of functionality (I still like its interface better though).
The new Safari does look nice at initial glance. What worries me about it is WebGL is not enabled by default, and its JS engine is much slower than Chrome's. I mostly do WebGL game dev for my personal projects, and so I don't support Safari (since I can't expect people to have turned WebGL on).
It isn't? That's strange. Why would they do that, security reasons?
About JS performance: Might be important to you as a gamedev, but for the overwhelming majority of today's web apps this shouldn't be an issue anymore.
That being said, I will probably still switch back to chrome when they get retina support. The interface is just cleaner and it has more intuitive developer tools IMO (safari's are more powerful, but chrome's do have everything I need and are easier to navigate).
TCO refers to tail call optimization, which is a useful optimization for languages such as Scheme which encourage heavy use of recursion. TCO allows the interpreter to reuse the current stack frame when a tail-recursive[1] function calls itself instead of creating a new stack frame for each recursive call.
Because javascript lacks this and many other features of Scheme/Lisp, I wouldn't really recommend using it for SICP.
[1] Tail recursive functions are recursive functions which merely return the result of their recursive call to the caller instead of further processing those results before returning. In pseudocode:
// non-tail
expt(b, x):
if x == 0: 1
else: x * expt(b, x-1)
// tail-recursive
tail-expt(b, x, ans):
if x == 0: ans
else: tail-expt(b, x-1, x*ans)
TCO is an optimization, it doesn't affect correctness. So you can ignore not having it, until you run out of stack.
There is a much bigger reason to stick with Scheme for SICP: all the meta-circular evaluator stuff where you learn to implement Scheme in Scheme. I supposed you could implement Scheme in Javascript, but then you'd still need to learn Scheme. And you certainly won't want to implement Javascript in Javascript.
>TCO is an optimization, it doesn't affect correctness. So you can ignore not having it, until you run out of stack.
Correct. Though CPU performance is an issue that tail recursion optimisation addresses too. For simple functions building up the stack frames and deallocating them afterwards can be more work than the function itself. For deep recursion stack space is the problem you usually hit first, but for code with tight performance requirements no always.
>And you certainly won't want to implement Javascript in Javascript.
Oh I don't know, it could be an interesting project if only for an exercise in intellectual onanism!
In fact I've heard of it being done a few times. The first ones that pop up in Google are http://sns.cs.princeton.edu/2012/04/javascript-in-javascript... which is aimed at sand-boxing (and looks like an interesting if not efficient idea) and https://github.com/mozilla/narcissus/ which has the stated goal of being used for experimentation with the language itself (so the fact it is implemented in javascript is probably less relevant).
> Because javascript lacks this and many other features of Scheme/Lisp, I wouldn't really recommend using it for SICP.
A language without TCO won't affect what you get out of SICP. Just assume JS is tail recursive. The first 3 chapters can be done(with some translation) in JS.
Glad I could help. Scheme is great for introducing oneself to many concepts not commonly present or used in more common imperative languages. That, and the SICP is just a ton of fun.
Those social promotions are clearly screwed up, especially as old as eighth grade. As a counterpoint anecdote, however, my mother is a kindergarten teacher who holds back (on average) two students a year for failure to understand the material or social immaturity that would prevent them from learning anything in first grade. And this is in a state (Indiana) in which kindergarten is voluntary.
I definitely agree there. Just the other day, one of my mother's kindergarten students was drawing pictures of her and her teaching assistant and decided to caption the assistant's with "she helps us with our work" and my mother's with "she tests us."
Similarly, at least in much of the US, teaching special needs teachers requires extra certification on top of a normal teacher's license. Without all kinds of extra classes on the various psychological and physical disorders that they deal with in their classrooms, the extra classes seem pretty justified.
Of course you need extra certification for teaching special needs. That's not the point. My question is, do you need a college degree for it?
I used this example because it relates to my mother, who recently got a master in this field. First of all, I'm proud of how my mother pulled that off at that age, while still working at her old job!
That said, the courses were largely theoretical mixed with a minuscule amount of practical studies. How many of the graduates will be able to pursue an academic career in this field after this degree? Maybe 1% (Note, this number is pure guesswork). The rest will actually end up assisting kindergarten teachers with their "disorderly" children.
In many cases, they should function as a buffer, protecting the child from overzealous kindergarten teachers who want to get rid of the troublemakers asap. This is important because a lot of developmental "deficiencies" are not there forever or can be mitigated. I digress. From my point of view, the actual theoretical work was frankly substandard. I don't think it has to do with me applying the standards of "hard science" to a "soft field". No, simply put, those professors didn't know that much to begin with and neither did many of the students.
The purpose of a University Degree (even a post graduate one) has never been to allow an academic career. It has always been the case that these degrees are necessary but not sufficient for an academic career but in the vast majority of cases Masters and Ph.D's go off and do other things instead - like practice in their field. In terms of educational psychology there is a very active and inquisitive community of research developing a number of strands of theory. I don't know very much about it at all, but some of what I have seen with respect to cognition, learning and development is impressive. Some is less so - but all of the people who I have met who are working on this agreed and wanted to change that, which I view as healthy.
As an aside if you were to (honestly) think about almost all fields of inquiry (maths may get a pass, possibly) then I think that you would have to agree with the statement "those professors didn't know that much to begin with and neither did many of the students". We are pretty ignorant about more or less everything when you look closely.
I think you misunderstand me. I didn't use this phrase in a philosophical way. I'm talking about professors teaching statistics and not knowing the difference between the median and the mean. I'm talking about that level of incompetence.
Imagine a course on compiler design where the professor doesn't know what top-down parsing and lexical analysis is. I'm certain that you would call that class a failure, or not?
Of course that class would be worthless. Not all (and in my experience, almost no) classes, however, are like that when one selects a college which has a quality program for the degree of interest. Furthermore, I would go so far as to lay much of the blame for a poor education on the student who fails to select a good school for their degree.
And while you very well could make the translation from whatever the original was to "It will rain tomorrow," it might not be a literal one that preserves the original tenses, which would obscure exactly what he was trying to point out.