nhamann

Joined 16 years ago

Karma
177
Submissions
31
Member since
Dec 28
https://github.com/nham
View on Hacker News

Recent submissions

Comment · 13 years ago
I'm hesitant to bring this up since you seem much more informed about this topic, but your statement "Thuen admitted copying at least some components from 'Sophia'" seems to contradict Thuen's statement from the TechCrunch article:

"Visdom is not a translation of Sophia from C to the languages in which Visdom is written. We did not have the Sophia code when we created Visdom."

So I'm interested in what you mean by "copy".

Comment · 13 years ago
Sorry if this is obvious, but: read books. A good place to start is here: http://cstheory.stackexchange.com/questions/3253/what-books-...

There was another reading list that I remember seeing, I think it was from Stanford's TCS website, but I no longer can find it.

Self-teaching is fun because you get to choose your own curriculum, but it's often frustrating too because if you get stuck, there is no professor or TA to unstick you. This issue can somewhat mitigated via the internet.

Comment · 13 years ago
Not mentioned in the article is that the Stacks Project is on github https://github.com/stacks

I've always thought that math books should in digraph rather than linear form. What would be interesting is to combine this with a wiki. You could have alternate proofs of the same lemma, or even entirely different presentations (starting from different axioms, for instance)

Comment · 13 years ago
This article has way too many words and not enough math. There is, in fact, nothing scary about big O notation once you dissect it, and it's a shame that so many people seem to think otherwise.

Here's the definition: if f and g are functions (let's say real-valued functions defined on the positive reals), then we say that f is big O of g, written f = O(g), if there exists a real number y and a real number K, K > 0, such that

  f(x) <= K * g(x)
for every x > y.

If that makes sense, then done.

Else:

The first thing to do when meeting any mathematical definition that you don't understand is to throw away parts of the definition until you do understand it, then add them back in one by one. In this case, let's forget about the constant.

New definition: For functions f, g, f is blorb of g, denoted f = blorb(g), if there is a y such that

  f(x) <= g(x)
for every x > y.

"f is blorb of g" actually just means that there comes a point after which g is never smaller than f. This gives us the first ingredient of big O: we are concerned only with asymptotic behavior. f could take on immense values for small x and still be O(g) as long as f eventually becomes always smaller than g.

The reason for caring about asymptotic behavior is that we often don't care about the time complexity of an algorithm for very small problem sizes. Even the traveling salesman problem is solvable on Raspberry Pi for very small problem sizes.

Okay, I hope we understand the above definition. Now we add the constant back into the fold and see if we can make sense of it. From what I can see, the constant is there for computer scientists who want to paint with broader strokes. There can be a huge practical difference between f1(n) = 2n and f2(n) = 2000n (the difference between a computation taking a day and taking 3 years), but they're both O(n) because complexity theorists are more concerned with O(n^2) versus O(2^n) than they are with O(n) versus O(5n). (Also could be because in practice algorithms with wildly varying constant factors out in front are rarely seen?)

For an alternative to big O notation, you should check out Sedgewick and Wayne's Algorithms, 4th ed. They use something they call "tilde notation" which preserves the leading constant factor. (See: http://introcs.cs.princeton.edu/java/41analysis/)

Comment · 13 years ago
Comment · 13 years ago
I tried to switch to Colemak once, but it was too big of a change. I did, however, successfully switch to an alternative of the Carpalx QWKRFY layout: http://mkweb.bcgsc.ca/carpalx/?partial_optimization

Instead of 5 swaps, I only do the first three (K/E, J/O, F/T). According to their scoring function, it gets you most of the way there anyways. (Whatever that's worth).

Their rankings of popular layouts might also be of interest: http://mkweb.bcgsc.ca/carpalx/?popular_alternatives

Comment · 13 years ago
I was able to find some sources. The first is this article: http://www.infoworld.com/d/developer-world/high-performance-....

> Easy-to-use computer systems, as we conventionally understand them, are not what Engelbart had in mind. You might be surprised to learn that he regards today’s one-size-fits-all GUI as a tragic outcome. That paradigm, he said in a talk at Accelerating Change 2004, has crippled our effort to augment human capability. High-performance tasks require high-performance user interfaces specially designed for those tasks. Instead of making every task lie on the Procrustean bed of the standard GUI, we should be inventing new, task-appropriate interfaces. No, they won’t work for everyone. Yes, they’ll require effort to learn. But in every domain there are some experts who will invest that effort in order to achieve greater mastery. We need to do more to empower those people.

The above cites Engelbart's 2004 talk "Large-Scale Collective IQ", so that is probably a good place to look as well.

There's also this page, which presents some interesting related comments by Alan Kay: http://traction.tractionsoftware.com/traction/permalink/Blog...

> Alan Kay: ... If you have ever seen anybody use NLS [Engelbart's 1968 hypertext system for which he invented the mouse and chord key set] it is really marvelous cause you're kindof flying along through the stuff several commands a second and there's a complete different sense of what it means to interact than you have today. I characterize what we have today as a wonderful bike with training wheels on that nobody knows they are on so nobody is trying to take them off. I just feel like we're way way behind where we could have been if it weren't for the way commercialization turned out.

Comment · 13 years ago
> Engelbart hated our present-day systems.

I'm not trying to say "[citation needed]" here, but I would be interested in seeing a source for this. Does anyone know of one?

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton