1,997 karma · joined July 18, 2008
Me: http://njclarke.com
My code: http://github.com/norman
My blatherings: http://twitter.com/compay
[ my public key: https://keybase.io/compay; my proof: https://keybase.io/compay/sigs/5ghM6xDeYY3U9odHk-2BOd7DxA9AIP5-QcWBkrTOgSQ ]
I think there's a lot to be said for practicing your skills on your own so that you have a reasonable level of practice before trying to contribute to other projects.
My first open source project was a PHP script called "DBMailer" that I wrote when I had been programming for only a few weeks. I'm sometimes embarrassed that it's still floating around the internet with my name on it, but I learned a lot from the feedback I got from it at the time.
I wrote a blog post a while back with some do's and don't's for both contributors and maintainers, maybe you'll find it interesting:
http://njclarke.com/posts/how-to-do-open-source.html
Good luck, and stay enthusiastic!
http://github.com/wincent/Command-T
It also uses a small C extension to Ruby for speed, because for this particular scenario Ruby is a bit too slow to be comfortable.
Since Lua is so lightweight and fast, I think it should be an alternative worth considering in situations like this one, since it offers a reasonable compromise between the speed of C and the comfort of a high-level language like Ruby or Python.
He worked for years on code and writings with free licenses - so for the most part he didn't really "delete" his work, but rather just stopped distributing it. He must have been aware of this fact when he took his sites/accounts down.
At this point I would certainly not consider myself a great expert on testing, but I think I've acquired a bit more intuition on what and how to test things. I don't usually work in a strictly "test first" manner because often times it's easier for me to "sketch" out a few classes and go through a couple attempts at organizing things before I find an approach that works for me. In these cases, testing first is a pain in the butt.
Other times, for example if I'm implementing some kind of tricky data filter, writing the tests first helps me think about the possible problems I might have to deal with in my implementation.
In general though, my projects usually end up with close to 100% code coverage, even if some of the tests are not very granular. Throughout the lifecycle of the code I maintain, I add tests when fixing bugs to avoid regressions. The tests that I write obviously don't catch every bug, but they do usually stop me from making embarrassing, silly mistakes which I think covers a pretty significant percentage of bugs in general. I don't usually have to worry about breaking things when refactoring or adding new features, which is a great feeling that I pretty much never felt in either my "no testing" or "way too much testing" phases.
So basically I have a very pragmatic attitude towards testing which I think would be non-threatening to a skeptic like yourself. :-) Part of the problem is that you might be letting yourself get turned off to valuable and useful techniques, not because of the techniques themselves, but the way in which they are being presented to you.
But at the end of the day, you have to find whatever works best for you to make the best code you can, and don't worry about what other people think.
I'm not a fan of Oracle but the title given here on HN is kinda deceptive.
For the sake of argument, let's just assume the British are "less emotional" than the Argentines (though attending a football match in each country may disabuse you of that idea). This may affect the way people use language, but it does not affect language. Language is a tool that people use to convey their thoughts. The tool not affected by the thoughts it is used to convey.
Second: sure, English may have lots of one-syllable words for things that are two syllables in Spanish (though the "lol" example you gave above is spurious because in my experience people just write "jaja."). But English requires more use of pronouns, articles and prepositions than Spanish does:
* "No sé" vs. "I don't know"
* "No lo vi" vs. "I didn't see it"
* "vamos" vs. "let's go"
* "saco la mano" "I take out my hand"
What's more "efficient?" It's subjective, and at the end of the day an utterly meaningless thing to analyze because trying to extrapolate cultural behaviors from the way a language uses propositions and articles is about as good science as phrenology or astrology.
Third: let's assume when people say "efficient" they mean "simpler grammar." People often claim that "Latin is more complex than English" because it has nominal declensions. But because of its declensions, word order in Latin is almost irrelevant. In place of declensions, English uses strict word order to distinguish subjects from objects. Which one is simpler? It's subjective, because your answer will depend on whether you're a native speaker of a language more like Latin or more like English.
But if you're writing a program to parse natural language syntax, Latin's "complex" nouns make it a lot easier to parse programmatically than English. What does this say about Roman culture? Nothing. Again, it's the wrong way to look at language - there's no valid reason to draw a connection between grammar and cultural behavior.
An example: in Colombia, when demonstrating the height of a child, you hold your hand vertically, while when talking about the height of an animal, you hold your hand horizontally. If you do the wrong thing, people may assume you're a foreigner and don't know, or they may assume you're just rude. The fact that I learned to hold my hand a certain way when speaking Spanish with Colombians doesn't mean my personality has changed, it means I've absorbed a cultural lesson and if I do it, I do it because I am trying to fit in.
The same things goes for the way in which you express yourself with speech. The way you greet people, how long you make small talk before "getting down to business", how to flirt in a bar; all of these things vary a LOT from country to country and if you want to fit in, then you need to pay attention and learn some things. But again, doing that does not mean that your personality has changed; you're just behaving differently.
One more thing - as somebody who studied theoretical linguistics and speaks the two languages fluently, any time people start making ridiculously subjective claims about a language like "English, a more unemotional and efficient language than Spanish" - keep in mind you're reading complete bullshit.
That's like saying the firewire cable that you use to transfer movies from your video camera is more "artistic" than the USB cable you use to attach your hard drive to your computer. It's confusing the signal with the carrier, and making some pretty subjective claims about the signal too.
And even if it doesn't, the increased happiness is a virtue unto itself. The point is, find the tools that make you happy and use them. They don't have to be the same ones other people are using.
The fact that sometimes you're right just reinforces this behavior, but when you get it wrong it tends to blow up in your face.
I find it crazy how many people leap to either attack or defend Apple without having ever used one of the things.
If you are in a situation where you can simply forget about what your site looks like in IE, then I envy you. Most web designers are not.