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

I contacted Google about this issue in November of 2008 - I only received an automated response. (Matthijs mentioned that was why he posted the previous post[1] on the topic prematurely)

Perhaps with the increasing awareness of this issue, Google will be forced to act.

[1] http://blog.cyberwar.nl/2011/05/google-profiles-exposes-mill...


Why act, they make great effort to explain that the data is public. You can even chose if you want to be indexable (search visibility).


You do indeed. For me that page says: "Sorry, you need 20 karma to create a poll."


I think that message is out of date. I have exactly 20 karma but it shows me the same message.


Amusingly it works now. Not sure if something was fixed or if there is an off-by-one error (my previous comment was upvoted to give me 21 karma).


I develop iOS apps on a hackintosh. It's of equivalent spec of a recent Mac Pro, apart from it's an i7 instead of a Xeon.


As do I. It is my main work computer. It cost me $1200 for parts, and an equivalent Mac would be ~ $4000


Could you share some more info on the hackintoah. The amount of info I have read about hardware compatibility fickleness and dsmos security code has terrified me.


I recently put together a Hackintosh, and it went much more smoothly than anticipated. Just get any Intel processor, and make sure your motherboard and graphics card, or a closely related model, are on one of the recent OSx86 hardware compatibility lists[1]. Then, just follow TonyMacx86's install guide[2]. Post-install, you'll probably want to install a few additional kexts (for example, the sleep-enabler kext). If one of the kexts causes your box to kernel panic on boot, then just boot off of the install DVD again, and use the Terminal (under the "Utilities" menu) to remove the kext(s) in question. If you get stuck, use your google-fu–there's a pretty healthy hackintosh community, so chances are somebody else has encountered the same problem as you.

[1] http://wiki.osx86project.org/wiki/index.php/Main_Page [2] http://tonymacx86.blogspot.com/2010/04/iboot-multibeast-inst...


x^2 is quadratic, 2^x (for example) is exponential.

Have a look at http://en.wikipedia.org/wiki/Time_complexity , it's pretty comprehensive.


I use Fireworks. I find it so much easier for doing web design/photo editing/anything than Photoshop.


I started using Fireworks since CS4. At first I didn't understand how it was different than say Photoshop or Illustrator for web design. Then as soon as I started mocking and designing UIs for actual web applications, or applications, Fireworks showed it's strength. (Heck I sometimes use it to make logos, http://www.ptizo.com/media/preview/brand/ptizo-logo-alpha.pn...)

The number one reason I prefer Fireworks it's that the file itself can be viewed as normal PNG (and still retain editable features). The second is the mix of vector/pixel objects (all you want from vectors but as pixels).

If you have to design for the web I would recommend you to use Fireworks over Photoshop as your design tool (please stop with the shadows and gradient madness, they make the page rendering slow and scrolling crappy).


Firework's preference for objects over layers is what is key here. It drastically increases my productivity and allows graphics to be much more mutable than Photoshop.


Fireworks continues to be underrated...


To their detriment.


I'd be interested in a further explanation of "Google absolutely takes action on sites that violate our quality guidelines [...]".

Does that mean that Google manually decrease rankings of spammy sites that their algorithms haven't caught? Does this entail decreasing the rank of the entire domain, the IP? Does blacklisting ever happen?

I ask since Google have previously[1] said they don't wish to manually interfere with search results.

[1] "The second reason we have a principle against manually adjusting our results is that often a broken query is just a symptom of a potential improvement to be made to our ranking algorithm" - http://googleblog.blogspot.com/2008/07/introduction-to-googl...


"Does that mean that Google manually decrease rankings of spammy sites that their algorithms haven't caught?"

Although our first instinct is to look for an algorithmic solution, yes, we can. In the blog post you mentioned, it says

"I should add, however, that there are clear written policies for websites recommended by Google, and we do take action on sites that are in violation of our policies or for a small number of other reasons (e.g. legal requirements, child porn, viruses/malware, etc)."

As the quote mentions, we do reserve the right to take action on sites that violate our quality guidelines. The guidelines are here, by the way: http://www.google.com/support/webmasters/bin/answer.py?hl=en...


They seem like good questions. As an addendum to the final question in second link, it might also be worthwhile checking the interviewee's understanding of "this" in other contexts too.


That won't quite work, as you're still just copying the value of i when that function is executed, which will be 4.

You could make the function take a parameter, then return a function which uses that parameter, or use currying.

Edit: I've posted a working version in my comment further down, http://news.ycombinator.com/item?id=2124559


It won't alert quite what you want - when you click on each element in the list, it will alert "4".

This is because the function assigned to the click event of each li is bound to the "i" variable used in the loop by a closure. Variable i is incremented to 4 before the loop ends, so that is what each will print.

You could use make the function used in the click handler take a parameter, then use partial function application (or currying) to fix the value of the parameter.


The function in the click handler does take a parameter 'e' (...or whatever you call it) which is an Event object. But I think you're on to something by using currying.


Well yes, the function is called with a MouseEvent as one of the arguments, so you could use the "arguments" object to access it.

What I was thinking of, was something along the lines of:

  // From http://ejohn.org/blog/partial-functions-in-javascript/
  Function.prototype.curry = function() {
    var fn = this, args = Array.prototype.slice.call(arguments);
    return function() {
      return fn.apply(this, args.concat(
        Array.prototype.slice.call(arguments)));
    };
  };

  els = document.getElementsByTagName('li');
  for(i=0; i < els.length; i++){
    els[i].addEventListener('click', function(x){
        alert(x);
    }.curry(i), false);
  }


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

Search: