I've decided to make the source code to Light the World public. https://bitbucket.org/JosephCatrambone/lighttheworld
I've made the source for an old image search engine I wrote publicly available. You can find it graciously hosted by Bitbucket at https://bitbucket.org/JosephCatrambone/imagefield.
A letter sent from Richard Feynman to a student.
I was very happy to hear from you, and that you have such a position in the
Research Laboratories. Unfortunately your letter made me unhappy for you seem
to be truly sad. It seems that the influence of your teacher has been to give
you a false idea of what are worthwhile problems. The worthwhile problems are
the ones you can really solve or help solve, the ones you can really contribute
something to. A problem is grand in science if it lies before us unsolved and
we see some way for us to make some headway into it. I would advise you to take
even simpler, or as you say, humbler, problems until you find some you can
really solve easily, no matter how trivial. You will get the pleasure of
success, and of helping your fellow man, even if it is only to answer a
question in the mind of a colleague less able than you. You must not take away
from yourself these pleasures because you have some erroneous idea of what is
You met me at the peak of my career when I seemed to you to be concerned with
problems close to the gods. But at the same time I had another Ph.D. Student
(Albert Hibbs) was on how it is that the winds build up waves blowing over
water in the sea. I accepted him as a student because he came to me with the
problem he wanted to solve. With you I made a mistake, I gave you the problem
instead of letting you find your own; and left you with a wrong idea of what is
interesting or pleasant or important to work on (namely those problems you see
you may do something about). I am sorry, excuse me. I hope by this letter to
correct it a little.
I have worked on innumerable problems that you would call humble, but which I
enjoyed and felt very good about because I sometimes could partially succeed.
For example, experiments on the coefficient of friction on highly polished
surfaces, to try to learn something about how friction worked (failure). Or,
how elastic properties of crystals depends on the forces between the atoms in
them, or how to make electroplated metal stick to plastic objects (like radio
knobs). Or, how neutrons diffuse out of Uranium. Or, the reflection of
electromagnetic waves from films coating glass. The development of shock waves
in explosions. The design of a neutron counter. Why some elements capture
electrons from the L-orbits, but not the K-orbits. General theory of how to
fold paper to make a certain type of child’s toy (called flexagons). The energy
levels in the light nuclei. The theory of turbulence (I have spent several
years on it without success). Plus all the “grander” problems of quantum
No problem is too small or too trivial if we can really do something about it.
You say you are a nameless man. You are not to your wife and to your child. You
will not long remain so to your immediate colleagues if you can answer their
simple questions when they come into your office. You are not nameless to me.
Do not remain nameless to yourself – it is too sad a way to be. now your place
in the world and evaluate yourself fairly, not in terms of your naïve ideals of
your own youth, nor in terms of what you erroneously imagine your teacher’s
Best of luck and happiness. Sincerely, Richard P. Feynman.
I've had problems in academia as of late. My grades are fine, but the spark that brought me in with the hope of making things work seems to be lost in the turmoil of auxiliary stressors. I have several classes (and a quite full time job) which do a good job of burning through my concentration before I've had enough time to sit and form a thought on a fun project. I've taken to game development maybe because it's artistic in a way that machine learning is not. I don't have to find the derivative of the weight gradient or figure out a mapping from input to feature space. I can just throw pixels on the screen and make things happen. That's among the more relaxing things I can do as a programmer. It's on par with solving Project Euler problems, but doesn't have the guilt associated with not having anything to show at the end of the day. Perhaps some of the relaxation comes from being able to store the entire application in wetware -- being able to cache the entire codebase. I miss having that spark in my academic career and I have concerns that I'll be too burnt out by the end to be of any use in another workspace. (I could stay at my current job, in theory, but that's not something I see myself doing in five years any more, especially not in Philadelphia.) So the question sits: "What is the problem to solve?" I keep opening up BitBucket and GitHub and looking at the dozens (really) of image search engines I've written over the past few years. I like the idea. It is both useful and niche enough that success will guarantee some amount of publicity. I've never launched a search engine though, which seems to indicate something is going wrong. Instead of making progress on them I'm fucking off on HN or making video games or watching YouTube. Is this a shortage of attention? A lack of will? Or is it an indicator that I'm trying to digest a problem of the wrong size? Perhaps it's symptomatic of the state of academic computer science -- anything worth doing is not worth doing again. "Publish state of the art or public novel, but it must be groundbreaking." This mantra and the entire implicit ideal of publishing for acceptance stands in fairly stark contrast to Feynman's words and to a commonly held philosophy in the game jam world: "No game is too small. No scope is too limited. If you're making a game, you're doing it right."
I guess I have to find a tiny problem to chew on. Maybe I'll implement linear regression in an obscure language.