Hacker Newsnew | past | comments | ask | show | jobs | submit | more anc2020's commentslogin

I'd disagree that the meaning of life is to have kids. Instead it seems like its just the best approximate solution to not to dying - pass on your DNA. To me the meaning of life is just to accept that you are alive and enjoy it as much as you can (which may involve trying to live as long as possible). Oh lord I just looked back at the title of this article - that's not what I'm suggesting :)


"I'd disagree that the meaning of life is to have kids."

It might very well be "to get high" ;)

A value in re-asserting a broad, cross-cultural interest in getting high is that it helps demystify it, helps people realize that the drive to get high it is not because of week will or moral turpitude or twisted genes.

It, like the desire to have kids, is simple a common, basic, human desire.


Lots of people are self-taught programmers. But there is a difference between people who taught themselves out of interest and those who taught themselves as a career move.


"Lots of people are self-taught programmers."

Ultimately, everybody is a self-taught programmer. I can't teach you how to program any more than I can teach you how to walk. Programming is one of those things you have to do in order to learn.


That's true to some extent but there are those who really figured it out on their own and there are those who had people holding their hand. I think that is the distinction we're trying to make when referring to somebody as an autodidact.


At some point surely all computers will be quantum, so that would have an effect if that's the case.

Edit: maybe its further away, but still worth thinking about.


I don't mind the downvoting if I'm vastly wrong, but please could you explain why this would be wrong? A few people have upvoted me, so they might be interested in knowing why its wrong too.


Have smoked infrequently and enjoyed it, but can't see it as being useful for programming personally, so I'll vote no. I'd view it simply as a social drug like alcohol.


Upvote if you want the comment to appear higher up in the page of comments; Downvote if you want the comment to appear lower down in the page of comments and be a lighter shade of grey.

With the added warning that your actions will have an effect on the voting and commenting behaviours of other hacker news readers in the long term, but this will mostly align well with the above affects.

Edit: I should add that most people upvote differently on Hacker News than they do on Reddit, because of the second effect whereby they might not necessarily think a comment is rude, but if it doesn't add anything to discussion they will downvote in the hope that the comments in the long run will be more helpful.


Swombat, wtf is your agenda? Yes, the audio is changed because the new one no longer has him saying "I've written a bunch software".

If you're trying to back up a friend, you're being way to obvious. This is definitely not overblown, taking credit for other people's work should be career changing and in the downwards direction.

*Edit: the change was really subtle too, go to 0:20 on the original

http://www.youtube.com/watch?v=6CRI3X0pjaU


I didn't notice the change, my mistake.

And no, I don't have an agenda. I don't know this guy, but I know a lynch mob when I see one, and I don't like siding with the pitchforks.


Erm, no.

Here you go:

> I'd like to believe it's an accident, but it seems like if I demoed Google with the TED logo slapped on it and accidentally forgot to mention that someone else wrote the search engine.


Is this better?

map(partial(reduce, +), partition(7, 7, daily))

Personally I'd be much much more happy to be using this code than the snippet in the article. In fact, I don't program Python regularly and it did take quite a while to figure out what was going on in the code.

weekly = [sum(daily[j:j+7]) for j in range(0, len(daily), 7)]

Now if you look back at the top snippet, its just normal function calls, so you can be happy to know what's going on after reading documentation for the names "partition" and "daily".

If you don't know what "map", "partial", "reduce" and "+" mean, sure you have to look up their documentation too, but they occur frequently enough that you can remember what they do after that.

The Clojure version is much more high level and less likely to introduce bugs.

Edit:

Oh and it should be said that "sum" is equivalent to partial(reduce, +) so I can now say:

map(sum, partition(7, 7, daily))

See? The code is just melting away before your eyes. Also note how I have literally no idea what either of the snippets do but am already happily changing one of them.


Just because you already happen to have a certain function at your disposal doesn't mean your language is suddenly superior.

  def partition(n, step, coll):
    for i in range(0, len(coll), step):
      yield coll[i:i+n]
allows

  weekly = [sum(week) for week in partition(7, 7, daily)]
Using Python's map() function you can even do

  map(sum, partition(7, 7, daily))
making it exactly the same as your example. And no, I probably haven't written more Python than you in my life.


Please consider my comment. Firstly, it was in response to this comment:

> That's pretty unreadable for someone who doesn't know clojure.

The real reason for commenting was to show that it is readable and yes, providing the "readable" Python equivalent.

There are two points - firstly, Clojure is (or is becoming?) a lazy language and the list type is different, so no they are definitely not exactly the same.

This brings us to a broader point in that even if you were to have laziness in Python it still wouldn't matter because I'm not the only coder in the world and there are a lot of Pythonists like the author of the article who do it the Pythonic way, which as already hinted, I think is just braindead.


I will not argue the first point, but as for the second one: how does that one author determine what is 'the Pythonic way'? I think

  [sum(week) for week in partition(7, 7, daily)]
is 'the Pythonic way' and I find that quite a bit easier to comprehend than

  map(sum, partition(7, 7, daily))
The reason for that is as simple as it runs counter to what people usually preach: it is less concise. In the former, it is immediately clear that you are partitioning a list of days into partitions of weeks and summing over those weeks, resulting in a list of weekly sums. The extra word 'week', repeated twice, makes all the difference: all ingredients for comprehension are readily provided. The latter case, on the contrary, requires you to do a few mental operations to expand the expression into something meaningful, mentally adding the concept of a 'week' to understand what the code is doing. You need to do that everytime you read the code, which makes it less easy to understand.


> Just because you already happen to have a certain function at your disposal doesn't mean your language is suddenly superior.

You are certainly correct in that. That's not what makes Lisps superior to all other languages though, "it's the syntax stupid."

Edit: Sorry, I know that comment appears trollish (and it is), what I meant to say is that unlike Python, Lisp(s) have virtually no syntax, and are more powerful because they treat code as data. It would take me a blog post to explain why that's important, but if you give the language a shot you will see why that is (and compare how long it takes you to learn it to how long it took you to learn Python!).


Isn't there more to power than that? For example, in clojure you can't change the binding of a function in a namespace after it has been compiled. In python or ruby you do have the power to do that.


I'm not a Clojure expert, so I can't directly address that, but from the little that I know of Clojure though, I think you can do that by binding a function to a var, and then changing the binding of the var. (Can any Clojure experts exlaborate?)

Regardless, every Lisp that I am able to comment on (newLISP, elisp, Scheme, CL) can do that easily, so I doubt that Clojure would have difficulty with this.


It does have difficulty with this, check the mailing list. Just because something using s-expressions doesn't mean you can override functions in a namespace.

http://groups.google.com/group/clojure/browse_thread/thread/...;


Thanks for that interesting thread! I do know though that newLISP can do this easily with a simple 'set' call.


Unfortunately it looks like Academic Hacker News ran out of steam (no new entries) :(

http://www.cs.toronto.edu:40106/


If I was Google, I would have been really annoyed too:

http://www.flickr.com/photos/rustybrick/3607264237/


Perhaps, but they could've warned him to remove it, or at least told him when he asked for it after the fact.

Playing a guessing game about some decision with a company that nullified a debt to you by said decision is a bit classless.


He was a domain squatter with text directing people to click on the google ads. He's violating the TOS at the time in multiple ways, and clearly isn't providing any value.

Spending time holding the hand of every pissed off squatter/spammer isn't in Google's interest.


It's not that hard to display a message "Your account has been banned because ...". That's all he asked.

As for squatters... AdSense for Domains is probably making Google some good money. I too wished they didn't, but they did.


It's not too hard for people to not flagrantly violate ToS. That's all they asked.

Adsense for Domains is something advertisers can opt out of.


Even people you don't like have rights.


And those rights / obligations are listed in the Terms of Service, where he was explicitly told he didn't have the "right" to an explanation. He may deserve one in our eyes, but he has no legal ground to demand it as a 'right'.


This is the same argument made for sealed, private laws.

Look, closing someone's account and taking their money for unspecified "reasons" is wrong, if not illegal. Banks can't do it. Credit card companies can't do it. Any account where you leave money... can't do it.

Maybe this guy was sketchy, but here's how Google has to handle these things:

* stop showing ads

* close the account for all future ads

* give a window of time for him to disburse the money he

already earned for clicks, and if he withdraws in that time, great, otherwise, too bad for him

* close the account permanently

Thomas Fuchs, who wrote Script.aculo.us, had over $2k stolen by Google in this manner. As you can see, http://script.aculo.us/ is clearly not domain squatting nor does it tell people to click. It's a bonafide OSS project used by hundreds of thousands of people.

So why was his money seized? We'll never know, eh?

Google also closed my Checkout account under similar circumstances. Namely, I did nothing wrong. The only reason I got my money back was because my blog post got such incredible traffic that it started a debate on the internal mailing list.

Why was my account closed? Well gee, after I got 60,000 reads, they claimed it was a "technical glitch" -- but I know this to be a lie because a little birdie inside told me what was going on.

Most other people will not be so lucky.


But every time you tell people what they do wrong they can begin to figure out how the abuse detection works.

What if the threshold is at 25 domains, so instead people start opening multiple accounts that run only 24 domains. By telling people what precisely got them booted they can start varying parameters to see what the triggering mechanism is.


Well, you could be sufficiently vague - "Your account has been terminated for domain squatting on domain http://i-squat-here.com would tell him why his account had been terminated, but wouldn't reveal any sensitive information.

And google's contactability for valid issues does still suck, with some exceptions.


No, the problem is really that information disclosure is very tricky. The very fact that you get the notice "you were domain squatting on X" is actually useful for exploits.

Whats the line where Google considers something domain squatting? Lets say its domain squatting if you have less than 5 pages of content, simply create tons of accounts with varying levels of content. What if the signal is "has tons of domains", then run Adsense on tons of domains and see what the threshold is.

(etc etc etc)


You get only one try...


I have friends and family... (really, all you need are a few collaborators.)


That is like saying that the government should not tell us what is illegal because we may exploit the law. The way government deals with this is by allowing courts to make law.

The alternative would be what google does. Say nothing and leave no way of protecting oneself.


The issue is that he was cheating Google by putting their ads on worthless trash sites.


You say this elsewhere, but what rights of his have been violated?


Namely, he had two other websites that had content and he had ads on that were valid uses of adsense. Whether the $761 was divided 60/40 or 10/90 is hard to say. One website should not void your terms for other (fair-use) sites.


The other websites are not separate matters, though. They're all services provided as part of an agreement that he violated. And it looks like he violated that agreement knowingly and flagrantly.


Google saying that it is against their TOS doesn't make the legality of it valid. Yes, he "may" have been in the wrong for THAT site (although google did introduce a service two days later for his situation), but their conditions for refusal of service are horribly "evil." (Do they even refund the adwords users that had to pay?)


Google saying that it is against their TOS doesn't make the legality of it valid.

It's called freedom of contract, which is a bedrock principle of law in any country with a thriving economy.


Is there really freedom when you sign that contract though? Freedom of contract refers to cases where both parties are able to negotiate.

In this particular case this goes under unfair contractual terms, which is the way the law protects the small guy against the big guy who only has one contract and you either accept it or not. It is like a supermarket saying that we will not refund products of a very low quality. Your option is either to not buy anything in any supermarket, cus sure if it was legal they all would want to have that term in their contract, or buy and have no way of recourse.


I'm pretty sure they do refund the money to the advertisers. See the story here: http://www.webupon.com/Money-Making/Google-Adsense-Not-Worth...

"And the worst part about this all is that it states in the AdSense Terms of Service (TOS) that Google has the right to suspend any account without prior notification or explanation, and refund all of the earnings in that account to the respective advertisers."


They could have, yes. Probably should have.

But they're certainly weren't legally obligated to do so.


So, in other words, there was literally nothing on that page that wasn't a TOS violation.

I've been sympathetic to other complaints about Google cutting off service without explanation. But in this case, in Google's shoes, I'd be struggling to give any response much politer than, "FOAD. If possible, DIAF."


Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: