Posts17
Comments58
View on HN

This is exactly what the website of BILD, a major German tabloid, is doing. They will not serve you content if they detect an ad blocker.

I regularly hear that if I could install it on my own server argument and wonder if you think you can handle security and administration much better than someone who's paid to do it. I, for one, can't and would not want to waste my time on it.

If you solve an unknown problem (ie. an issue nobody is concerned about) you will have a very hard time to market it and show people how they need it.

There were solutions for this Internet thing 50 years ago, even if it's hardly imaginable today. If the problem you are speaking about is communication we had that 2000 years ago, in form of smoke signals. It sucked and was dog slow but it was not an unknown problem.

The author procures a scenario in which Google is going to collapse rather sooner than later. The last numbers I heard from Google reported an upwards trend in revenue [1] and with their recent additions like Google +1 [2] and Google Connect [3] I don't see them ‘miss the big picture’. Am I missing some serious tech scene scoop (genuine question)?

[1] http://investor.google.com/financial/tables.html

[2] http://www.google.com/+1/button/

[3] https://www.google.com/support/websearch/bin/answer.py?answe...

I guess that caused more trouble for your dad than it did for the shop owner, economically at least. Plus he would probably brag about your dad to other shop owners. (I agree that just doing the job for free is no solution either, but do not have any better retaliation, except for proper contracts and court claims, in mind.)

That search engine is still Google’s most important and profitable product, to my knowledge.

While I agree that its search engine is its most popular product it is not profitable in its own right. Google claims that "advertising revenues made up 97% of our revenues" in its Q3/2010 filings and that means advertising placed through AdSense/AdWords on other sites too:

We derive most of our additional revenues from offering display advertising management services to advertisers, ad agencies, and publishers, as well as licensing our enterprise products, search solutions, and web search technology.

-- http://investor.google.com/documents/20100930_google_10Q.htm...

> I haven't came across anything I need them to do that hasn't been covered in some plugin somewhere.

If you cannot name at least 5 things you dislike about the tools and languages you use you're either in the honeymoon period, or irrational. --Jesse Noller

The ideas brought up on that site are frequently gamed in the pickup scene.

Crash 'n' Burn is the practice of trying impossible sets (ie. girls) with the assumption of being rejected. If you are sure you will blow it big time, you can as well do and learn something from it.

Another tangentially related technique against rejection angst is the Three Seconds Rule which mandates you talk to some stranger before thinking for too long (which is really a different, short-term approach to the Rejection Therapy game).

I believe your claims but is there any evidence to back it up (and is that possible on fuzzy metrics such as palpable sense of disconnect)?

From your other comments I understand you are from the US and I guess its a wholly different matter across the pond, but I for one cannot reproduce these effects here in Germany. Sure, most -- rough estimate: all -- of my contacts do have accounts on various social networks (me included) but we have never critically relied on it. It never gained quite as much traction as I always hear from Facebook.

I think you are overdramatizing Facebook's importance quite a little bit here. It's not like your friends will hate you when you quit and I have seen plenty of people quit online social networks while retaining their life just fine.

I could make up a similar argument the other way around: to me, services like Facebook provide little to no value; I can quit them just fine. I have communication details of a lifetime in Google, I store my documents with them, organize my calendar. (Note: I have heard Google's export features are quite okayish so that argument does not really hold.)

If I understand correctly, Ruby our universe with algo's and math's (Rouwam) tries to bundle all algorithms obtained from Wikipedia as a Ruby package.

I'm unsure about the handiness of that, given that I usually do not struggle do find a working implementation of an algorithm (think Rosettacode http://rosettacode.org/wiki/Main_Page) but rather which algorithm I actually want to use. I appreciate Python's standard library largely hiding the implementation details from me but rather concentrating on use cases.

Edited to clarify: the list of algorithms is fetched from Wikipedia. I think he wants to publish his algorithms in Wikipedia, not sure abut that though.

A property which is exposed by the article's solution too:

   >>> x = (lambda: (yield 1))() # generator with one step
   >>> y = tuple(x)[0]
   >>> y
   1
   >>> list(x) # exhausted
   []

   >>> x = (lambda: (yield 1))()
   >>> y, = x
   >>> y
   1
   >>> list(x) # exhausted, too!
   []
Because that's just what you inevitably need to do to fetch a value from a generator. There is no peeking action or some such.
Robust Programming 16 years ago

Assume that the caller or user is an idiot

I think this is not helpful at all, probably harmful. There might be use cases for my code I did not even think about and third-party programmers should well be able to use it as they wish. And if they feel like modifying internal state (which the author deems fragile in his article) -- oh well! We are all adults here.

NB. I agree that the library he's examining is sub-par quality and is well worth a look.

That's what quite a few programming platforms already do (I know it's the case with Appcelerator and suspect MonoTouch doesn't do it any differently); but these are actively outlawed by the new paragraph 3.3.1: (emphasis added)

Applications must be originally written in Objective-C, C, C++, or JavaScript.

Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited.

As the days go by, more and more people come onto the service, and see an ad-free environment. Introducing that sometime in the future is going to be a bitter pill to swallow for a lot of users.

Throughout his whole essay he keeps asserting that advertising will drive users away but I don't think that's necessarily the case. I'm sure a lot of casual Internet users don't care about an ad here and there. And then there's always ways to filter the ads out (think Adblock).

>> How we'd override "pass" boggles my mind.

> An expression that does nothing. Putting `''` in a function is equivalent to `pass` in that it lets the parser do its stuff. `pass` could be a builtin defined as `None` and the behavior would be the same as today, without a keyword.

The net behaviour would be the same but actually referencing None in the function body increases the refcount of None and immediately decreases it again.

  >>> def foo(): pass # no function body, after all
  ... 
  >>> def bar(): None # reference to None
  ... 
  >>> def frob(): "" # docstring
  ... 
  >>> import dis
  >>> dis.dis(foo)
    1           0 LOAD_CONST               0 (None)
                3 RETURN_VALUE        
  >>> dis.dis(bar) # incref, decref
    1           0 LOAD_CONST               0 (None)
                3 POP_TOP             
                4 LOAD_CONST               0 (None)
                7 RETURN_VALUE        
  >>> dis.dis(frob) # see "1 (None)" instead of "0 (None)"
    1           0 LOAD_CONST               1 (None)
                3 RETURN_VALUE
  >>> foo.__doc__, frob.__doc__
  (None, '')
I admit the difference is merely an academical one but saying pass is not special is not true.

What happens if they reject the patchset? I could imagine an outcry of Microsoft zealots slamming the open source community because they refused to cooperate with Microsoft.

I'd rather utilize a metaclass in this special case. This would retain the notion of Foo being a type much better than transmogrifying a function into a class. (Granted, there's not that big a difference technically but you're tricking other programmers into believing Foo cannot be used for eg. isinstance.)

  class Foo(Struct):
    __endian__ = Struct.LE
    foo = Struct.uint32
    bar = Struct.string(foo)
If you don't like specifying the endianness as a class attribute you could still inherit from Struct.LE/BE rather than Struct itself.

Quick technical howto: make Struct have a __metaclass__ class attribute, populate the __metaclass__ class with a __new__ or __init__ method performing the desired transformations.

See http://www.python.org/download/releases/2.2/descrintro/#meta... for details on metaclasses.