Hackathons aren't always about just making good software. For me, if you're at a hackathon and not pushing your limits, then you're not really getting into the spirit of the entire affair. I have good memories of one in particular where I submitted the awful, horrendous results of me trying to learn computer graphics in just twelve hours. I could have just sat down and made yet another CRUD app, but instead I learned about Three.js, and now that I got over the initial hurdle of just sitting down and tinkering with it, I've been more inclined to just play with the framework.
It's like the proverbial journey that begins with a single step. Sometimes all you need is that first step to force you to go try something out, immediately.
Isn't there an opt-out mechanism so that your photos won't be darkened? I assume they put this in here because there are professional photographers on the site.
Well, that's nice. But still, having told them I want a service, and having paid for it, I am now required to notify them that I still want to get the service that I already paid them for?
These sites believe that they face an existential crisis due to this proposed legislation. Slightly impacting the service today to save it for the long term is clearly worth the tradeoff, if it's necessary.
Well, I guess a number of people disagree with me. And I can accept that (although I still disagree). But I think I should point out that "worth the tradeoff" is not the issue I'm talking about. For example, suppose I pay for something at a store, but the store refuses to give it to me, because they're protesting something. We can certainly ask whether the store's policy is "worth the tradeoff", but is that really the question we should be asking?
They're not protesting "something". They're protesting a law which they believe has a good chance of passing, and which will likely put them out of business if passed.
Now, should they interfere with your paid service because of that? I don't know. But it's not cut and dried either way. The best would be for the law to go away and for your service to continue without interruption. But it doesn't look like that's possible at the moment. You have to choose one, and neither one is something they "should" do.
But that's not at all like the situation at hand. They're not refusing anything — it's only for one day, and if you don't want to participate, you don't have to. What you are complaining about is a minor inconvenience at worst.
The neat thing though is that "media" is not limited to just mp3s--as you can see in the demo we can also serve images. We've turned off file upload and such for the purposes of the demonstration since none of us felt like dealing with security and such.
I think someone may be Javascript injecting our demo...I will admit that displaying the total number of connected users is not done in the best way possible.
I do like the idea of having it as a capstone. It's what Brian said: "I wish we could teach SICP both to incoming freshmen and seniors before they leave." I definitely understand a lot more of everything the second time through as a TA!
My friends always wonder why I take the time to type in example code by hand. I want to know what the code does, not just peace together things arbitrarily!
I find it boring to just copy the code, so I often tend to introduce small variation: change variable names, change the order of parameters, the order of instructions... that way it's less tedious and I feel I understand better the original code.
The point is that the act of typing it does help understand the code.
I don't know if there's any psychological basis for this, or if anyone else does this, but personally I jot down loads of notes when learning things and playing with ideas. However, I rarely read back over them. Instead, just the act of writing them down is sufficient to stick them in my brain.
I guess the same applies to learning with code samples.
The point is that the act of typing it does help understand the code.
I guess it works for some people, but not me. And I've copied a lot of code. I'm from the generation of kids that would copy hundreds of lines of code from Compute! magazine. I rarely understood the code as I was typing it. Only after when I could look at it holistically and tweak it, could I understand it.
The primary purpose of typing in modern code is just to make you slow down and really, really read it.
Unfortunately, looking back with hindsight, Compute! et al were not good places to learn about code because the programs in the back were optimized so heavily that there was hardly anything to get a grasp on. Especially the programs that were just a long, long series of DATA statements and a small stub to load them somewhere, then jump to them. Tweaking them afterwards was your only hope.
But wouldn't just really-really reading it do the same thing more efficiently.
I've learned tons from using Firebug. In part because I could start with prewritten code and tweak, and read, and tweak, and read. If I had to enter all the code manually into Firebug (no copy and paste), I think I'd have better muscle memory for typing some of the stuff, but I don't think I'd be a better developer for it (not that I'm a web dev, but just sayin).
Most people's brains aren't trained for reading things properly unless it's with the intent of immediately applying what they read. They can try really hard to read carefully, but their brains are simply not in the right mode to absorb the material the same way they would if it were being put to use. It's hard to even become consciously aware of how poorly you're learning, because it feels like you're really concentrating.
I've finally gotten to the point where I can tell when my brain isn't learning like it should, but I still can't just will that mental state away.
"But wouldn't just really-really reading it do the same thing more efficiently."
If it works for you, go nuts. It's a surprisingly rare skill, but I think it exists. Every once in a while I can reach that level (mostly in code reviews; for some reason that makes it easier).
I do this, too, even sometimes writing out code in a notebook. For example, I gained a clearer understanding of recursive algorithms after I "expanded" a few examples by hand.
You type the code in so that you get practice at typing the code in since in order to write code you have to type code in...a lot of it. If you don't then you're only learning 1/2 of writing code.
Another reason is because anyone who's good at coding learned it this way. Anyone who's bad at coding tends to just copy paste. Usually, you should copy what people who are good at something do.
Isn't that always the funny part of life? Whenever I have hack parties with my friends, I always end up learning everything at like 2:00 AM when we finally start in earnest. ;)
It's like the proverbial journey that begins with a single step. Sometimes all you need is that first step to force you to go try something out, immediately.