HNHacker News
TopNewBestAskShowJobs

east2west

339 karma · joined April 2, 2012

submissionscomments
east2west··on Torvalds' quote about good programmers
I won't have time to read big books in foreseeable future, especially if they are not related to my core research areas. But I will try this and see what I can get out of it.
east2west··on Torvalds' quote about good programmers
All good advice. Right now I only write out major tasks and outlines of procedures to achieve them. Maybe I first should abstract out core data structures and operations on them. I will try that.
east2west··on Torvalds' quote about good programmers
This brings up a burning question that I have been pondering for a while. I still don't get how to properly design good APIs. I have been programming but as a scientific research not as a professional developer, and I have found I cannot remember how to use my code a day after writing that code.

Take my current project as an example. I have some samples, each of which are observations along a sequence of non-overlapping segments. My objective is to extract observations over arbitrary intervals for all samples. So I have a segment defined as a pair of start and end position plus its observation, a sample as a vector of segments, and all samples as a dictionary of samples. There are various utility functions to make segments, collect samples, and scan individual samples. The problem is I have to remember all three levels of data structures to use this code. I wonder whether it is better to define an interface for those data structures as well so I just need to remember the interface. My objections to formal definition of interfaces is that everything is so simple and obvious and formal interfaces smack of overengineering.

I got to this point because in my previous projects I put every identifiable thing as a class and found too much coupling in classes and convoluted interfaces.

east2west··on Performing Linear Regression Using Ruby
DO NOT EVER use Penrose pseudoinverse in numerical computation. It is guaranteed to diverge.
east2west··on Performing Linear Regression Using Ruby
Someone once said that all models are wrong, but some are more useful than others (paraphrasing).
east2west··on Genomics: ENCODE explained
I am an indirect member of modENCODE project -- I am paid by the project but work on computational and data analysis and therefore not wed to it. I feel I should clear up a few things.

First, that 80% figure is a guesstimate, far from definitive.

Second, those "new" discoveries are "associated" by statistical tests. All popular reporting has sidestepped the issue by not explaining the quote around word associated. Basically it means they occur together above a certain statistical threshold. For vast majority of noncoding regions we know nothing about their functions, and this situation will remain for the foreseeable future. I don't have to tell people here that correlation is not causation. Recall all the reported health benefits of wine drinking; it is same degree of certainty.

Third, new technologies inevitably have teething problems, which have not been fully worked out. This means all reported conclusions comply with accepted notions within respective scientific communities. The data are not accurate and reliable enough to overturn any received wisdom.

Forth, yes, this means the main reported scientific results are not new nor that surprising to people in the field. But this is the way popular science and specialists interact.

By and large these papers represents a lot of hard work, but in terms of amount of data and research topics they are already being overtaken, as they should be.

east2west··on Genomics: ENCODE explained
If you knew how they found the elements together, you would be far less sanguine about the significance. They started with random sampling of close proximity of genomic positions, plus some basic structural info on how chromatins (coiled DNA molecular) are organized. Then it is a nonlinear optimization with 1e-2 convergence criteria.

Several things lay people are never told: 1. Even for fixed data, the results are variable, i.e., you will get a different answer every time you run the nonlinear programming code. 2. There are different ways of getting to 3D positions of genomes and none is ever verified. 3. Tuning parameters greatly impact results. Yet one set of tuning parameters are just as valid as another.

I had the misfortune of helping someone to extend the code for this stuff that made into a Science paper, and I can tell you right now it is the worst C++ program I have ever seen.

east2west··on Genomics: ENCODE explained
This is the reality of biomedical research today. With NIH funding level flatlining in recent years and congress leery of more spending in anything other than military, medical utility is the mantra now within NIH. The irony is that most of ENCODE people are not medical researchers and are less qualified and less experienced than human genetics researchers. This is all about money. Scientists need to eat too. And reputation, and power. It is a very high-stakes game.
east2west··on Why I’m taking full responsibility for my education
>I couldn't disagree more. As an example, linear algebra is something >that has been bothering me for years, long after my college math >courses. One of its central topics is eigenvectors and eigenvalues. >Every textbook I can remember would demonstrate these with >pictures of a sheared rectangle (or a sheared box in 3d). That's fine, >but it isn't fun and its not motivating, so no surprise that the concept >never clicked.

>Then very recently, while browsing wikipedia I came across an >excellent demonstration of the concept: "eigenfaces" used in facial >recognition software. Its fun, useful, and it clicked.

I couldn't disagree more with your disagreement. Eigenvectors and eigenvalues are abstraction of things observed in many places and studied in one place so you can apply it to everywhere. Eigenface is simply an instance of linear space dimension reduction, whose implementation, by the way, is based on eigenvectors' connection to SVD and covariance matrix. Eigenface won't help with Taylor series definition of matrix exponential, nor solution of linear ODEs, nor Jordan canonical forms. Can anyone say those are not important topics of eigenvalues and eigenvectors?

If you truly want to understand something, there is no shortcut. You have to dig deep, look at and learn related topics, think hard about how and why scientists developed the subject this way. It takes time and concentration, a lot of them. Then you will gain something, and you need to keep at it to master it. No one said knowledge is easy, especially deep knowledge.

>You could draw a picture of a circle, emphasizing the line of the circle >as the boundary of the set. The invertible matrices are the interior of >the circle, and they complement the singular (non-invertible) matrices >which are represented by the boundary of the circle.

This demonstrates the pitfall of facile visualization, because the suggestion is wrong. There are dense sets with no boundary. The simplest example I can think of is rational numbers on the real line. It is dense on the real line, yet between every two rational numbers there is an irrational number, and between every two irrational numbers there is a rational number.

>But more importantly, the teacher should first explain why this might >be useful to know in the most concrete way possible, whether its >theory behind an applied technique in engineering or a lemma used >for an important abstract theorem (no handwaving - tell what's >important or significant about the abstract theorem).

This is easier said than done. At best, it is impractical; at worst, fantasy. Who is going to spend a week of lectures to explain one application in a possibly obscure engineering field. What about the fact no everyone is from an engineering department.

Sometimes theorems are useful for proving other theorems and then for proving other theorems. Gershgorin circle theorem is mainly useful for proving bounds about eigenvalues. That is it. I couldn't motivate more than that. It has application in numerical linear algebra, but it amounts to another proof and you need to go pretty deep in matrix analysis to appreciate it.

>Students (American or otherwise) who are willing to just put their >heads down and drill rote symbol manipulation are doing themselves a >disservice - it generally does not lead to much insight or >understanding of what they are doing (though it may in the >exceptional cases of very smart students), especially as the math gets >more advanced. Moreover, being adept at calculating is not useful in >the age of computers. You only need to do a calculation once (as an >algorithm in a computer program).

This I strenuously disagree. Math, like every human endeavor, requires practice and lots of it. If you cannot recall a pertinent theorem at will, then you will not be able to use it to prove it. You don't have to remember every theorem for all time, but when you need it you better. And practice does develop insights and understandings, which I can personally attest to. Advanced math especially requires a familiarity with basics, for no computer will prove for you a countra-positive.

I am opposed to rote learning. Who isn't? Specifically, I am opposed to Chinese teachers' mind-numbing deluge-of-exercises approach. All the proofs are nothing more than bags of tricks and they seem to take special delight to confuse students by not explaining things fully. I so detest that mindset. The U.S teachers are much better. There are good teachers and bad teachers, of course, and I suspect college professors can be a lot better if they actually put the necessary time in. American textbooks are leagues ahead. But one thing I have learned since is that in the end you have to remember the theorems and tricks because: THEY ARE MATH.

>More important is to gain insight and understanding into the nature >and limitations of the subject matter. Then the student is more likely >to recognize the cases where it can be applied after they're done with >the plug-and-chug problem sets at the end of the chapter (which >plague even advanced math textbooks in the form of boilerplate >theorem proofs). Of course, simply showing how to plug-and-chug is >easier for teachers so they praise obedient students who are easily >motivates and ask easy questions.

This I agree in general. It is after you gain insights and understanding can you innovate and advance. It is remarkable how many Ph.D.'s never master their fields. But it is hard and time consuming. My ideal of math textbook is Richard Courant's "Introduction to calculus and analysis." It is a perfect blend of mathematical rigor and insightful intuition. It is sad that I didn't have it as my introductory calculus textbook. It used to be the standard intro textbook in the West.

I suspect, and I could be wrong, the reason you blame teachers so much is that they didn't teach deep enough and you are smart enough to realize there is more. They had to be "easy" because it is already hard enough for some students. And this may be the ultimate problem with public education: it needs to teach the everybody but it can only do so by dumbing down the curriculum. That and it is expensive to teach but we want to do it on the cheap.

east2west··on Why nations fail
I don't understand. This kind of sentences is routine in New York Times. If anything, I find the conversational tone inappropriate for such a weighty subject. I do agree that the author tried too hard to write to a broader audience on a complicated subject. The result is too much ink for too little info.
← PreviousPage 5 of 5