848 karma · joined August 6, 2009
http://plsadventures.blogspot.com/
The sad part is that he proposed an amendment to remove the disconnection provision, and it was voted down by Labour and National. What happened to having an opposition?
The reason to do it under urgency is that it's so incredibly flawed and unpopular, it probably wouldn't stand up to a normal democratic process. So by sidestepping the democratic process, it makes it much easier to get things done.
http://www.plsadventures.com/2011/04/i-dont-usually-post-non...
Also, it's a nitpick, but the frequently repeated phrase "HTML language" belongs in the same box as "ATM machine" or "RAS syndrome".
> _why's influence isn't only in code, but in thinking. And if you look around, for example on github, you will see a lot of people hacking away for fun, trying out new stuff and just doing something they love to do. Did _why start this trend? He didn't, but he was a big advocate of it.
Yes, that's right, this person appears to be seriously suggesting that _why could have been responsible for people hacking for fun (in the "I'm not saying that...", right after saying it kinda way).
> I'd argue his unique way of thinking has also pushed the boundaries of programming as a science in the way that calculus changed people's ways of thinking about math and physics.
As influential on programming as calculus was on maths and physics? Really? _why is on equal footing with Newton and Leibniz now?
> As for his strange charisma, I would say _why is to programming as Ramanujan was to mathematics.
This one suggests that _why is to programming as a Fellow of the Royal Society was to mathematics! Awesome!
> I always thought he was one of the most creative people currently working in any medium,
Yep. That one pretty much speaks for itself.
I mean, the _title_ of the article is "A Tale Of A Post-Modern Genius".
Need I go on? I believe my use of the word "sycophantic" was justified and I stand by it. Genuine praise for someone's achievements is completely justified and should be given freely. This is not genuine praise. It appears to be a pissing contest between different people trying to find the most absurd hyperbole with which to describe the effect that _why had on them, the Ruby community, the programming world and the entire universe and all matter contained within it.
Accordingly, programming is not _currently_ a science. However, I think that is a much better position to aspire to than self-aggrandizement and glorifying a skill that is really no different than any other skill that any suitably motivated 12 year can acquire with a couple library books and an internet connection.
With a science of programming, we can aspire to a position where programmers can at least claim to be engineers, and at least have good odds of most programming projects resulting in software of reasonable quality. Face it, there's good art and bad art, and it's subjective which is which. Programs have objective measures we can apply, depending on what the code is used for - developer time, performance, correctness... and a million others. We can argue about which measures are the right ones to use, but at least these measures exist. We can (with current technology) empirically evaluate a piece of code in many different ways. Actually starting to apply this kind of empirical evaluation is the first step towards programming being a science.
[Edit: OK, so the parent to this was heavily edited after I posted this, but I can't be bothered rewriting this accordingly, so please excuse any incongruence between this reply and the post it is replying to]
Fundamentally I think my objection is to elevating a slightly odd-ball programmer to messianic status based on a mildly creepy fandom that manifests primarily as people vastly over-stating the contributions of this one guy in HN comments.
All too often, this is because the programming language designers/implementors don't know what the semantics are.
I think we're likely to see more continuation of the trend of quasi-functional features leaking into imperative languages.
I also think that we'll see more of a shift towards features (such as type systems) that provide stronger correctness and safety guarantees.
And finally, I think the victor in any future programming language fight will be something that enables greater degrees of parallelism and concurrency (especially of a distributed nature) without significant additional effort.
So I think that will be what the masses want. As for me, none of the current crop of functional languages coming through particularly excite me. There don't appear to be any particularly "disruptive" technologies emerging into the PL mainstream, and even at the fringes there are only a few notable examples that I think could hold promise for more than the next 3 or 4 years.
I'm also not sure about answering this at all, because I think it's pretty far off topic for HN.
Basically, we discovered that it doesn't do a very good job.
For example, I had a track that was 1:57 long with a very slow tempo and a minimal arrangement, however there was a slide guitar towards the end. This gave it a really high affinity with a bunch of US chart-topping country & western hits, and so it had a score of something like 8, which is just absurd.
So while I like the general principle, we discovered very quickly that its "similarity" metric is probably just too simple. There seemed to be a very weak correlation between songs that we thought sounded like hits, and the score they got on HSS.
Seriously, if I see one more article which features "duct tape" in the title, I'm going to start extolling the virtues of the wood-glue programmer. I have no idea what this characteristics of this programmer would be, but you can bet that the label would be repeated frequently!
Long story short: a nasty race condition meant that it was over-ordering duplicate products from the suppliers to the tune of tens of thousands of dollars per day.
On the general theme, my most frightening software experience was when I met a guy who was the star programmer for a company doing controllers for elevators. I got talking to him, and he showed me some code. It took me about 15 seconds to identify an edge case that would engage the motor while the elevator was at the top floor (thereby attempting to pull the elevator into the roof?). It took me a further hour to explain what the edge case was. The bug wasn't that scary, as I'm sure there are hardware failsafes, but the general dimness of the guy writing software to control lifts was scary.
I started taking the stairs after that.
Conversely, if you know that you know nothing about parts of what I do, then why do you feel it's necessary to have input into it?
I think knowing your own strengths and weaknesses and allowing others to employ their own strengths is just as valuable a skill as actually learning a bunch of technical stuff.
Programmers end up knowing a heck of a lot about the business just by virtue of needing to know how it operates in order to turn it into software. Use this knowledge. Include programmers in high-level discussions occasionally to get "buy-in" at an early stage of development (before anything like "requirements gathering" happens). This reduces the possibility for mismatch in expectations between "business people" and "programmers", which is a ready source of unhappiness for programmers and business people alike.
I've always been happiest and most productive in situations where the business people above me shield me from the other business people and let me get on with my job. So many others have observed how detrimental interruptions and rapidly shifting requirements (i.e. more rapid than 1 iteration) can be. Insulate programmers from the kinds of problems which are really no concern of theirs. Be the point of contact for other people who need programming things to happen (either as external or internal stakeholders). That's not to say that a programmer shouldn't be interacting with all areas of a business, rather, they should be able to do it in a structured way, not as a never ending stream of interruptions and fires to extinguish on an ad hoc basis.
There's no point being in the crappiest department of the "best" university.
The parsing should be simple. Lex and/or Yacc should handle very large files. If not, you can always write something by hand, once again sticking to the store-nothing principle.
I would think about it as a fold operation (http://en.wikipedia.org/wiki/Fold_%28higher-order_function%2...) over the lines in the file, where the parser state and any aggregate calculated values are stored in the accumulator, and each new line is considered in conjunction with the current state and the previous calculated values.