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

By "positive response", are you saying that human "from" names yield a higher click-through rate?


That, and feedback that they genuinely enjoyed things that the rest of us hate.

Microsoft heard from hundreds of users who were heartbroken when Clippy was removed from Microsoft Word.


Yes, it does. It is widely thought to be true and certainly matches my experience at statistical significance.


Keep in mind the adage "you get what you measure". If you optimize for CTR, you are not necessarily optimizing for user satisfaction/loyalty.

Case in point: Netflix's auto-play feature used to drive me bonkers, so much that I would try other streaming services first. How could they think this feature was a good idea? The only plausible explanation I've heard is that they were optimizing for user engagement. Users click around more to prevent the video from auto playing.


You are critiquing your own question, which I was answering directly.

What I said also applies to any other metric, including (for example) income generation.


void DocumentScribbler.scribble(String s)


Using String as a ProgType(tm)? That's a paddlin'. We use CharGroup around here, which we are willing to license for a small fee. For a limited time, get 10% off when you license three or more ProgTypes(tm)! Indemnification licensed separately. Contact our enterprise relations desk for details.


And then when you contact them it goes to voicemail, they call you back 9 times 3 days later and sell your email address to everyone under the sun :)

OH and then when theyre about to drop in stock price because they dont know how to deliver valuable products, they use the US government to force other companies to buy their product otherwise the US government will kick that prospective customer out of US markets ^.^


> So, I should never drive?

> The bad thing about it is I usually don't realize that I'm getting sleepy until after I've dozed off once.

I'm not trying to be rude, but this sounds reckless. You absolutely should not be driving while you have this issue. Also, consider that you may have a sleep disorder.


Does the policy disallow Oxford commas?


As far as I understand it, the policy disallows listings in the short description, and the algorithm wrongly categorized the sentence as a listing because of the Oxford comma.


Isn't an Oxford comma, by definition, part of a list of items?


I'd guess our machine overlords didn't like it


I'm hopeful it's a startup that sells only the tops of muffins.


Top of the muffin to you!


"Factor X may contribute to low cognitive function and cannabis use."


I think you can click the compass to switch between these modes.


I know that. The problem was it would switch when the phone switched orientations.


I feel compelled to point out that this extension sends the URLs of all open tabs to algolia.com when you click the extension (at least on Chrome).

I would much prefer if it only looked up the current tab.

A more private design might fetch the top N results from algolia.com and only search through them locally.

That being said, this is cool! Thanks for sharing.


>I feel compelled to point out that this extension sends the URLs of all open tabs to algolia.com when you click the extension (at least on Chrome).

Wait, how's that possible? The extension doesn't even have permission to get urls from tabs that are not the active one...


Your comment made me dig in a little more. I was wrong, it is only fetching the current tab, although it wouldn't need more permissions to see all the tabs.

In popup.js[1]:

    chrome.tabs.query({active:true,currentWindow:true}, function(tabs){ ... })
These `active` and `currentWindow` parameters to query() [2] restrict the results to the current tab. If I remove those parameters and run in DevTools, I seem to get a full tab listing.

[1]: https://github.com/pinoceniccola/what-hn-says-webext/blob/ma...

[2]: https://developer.chrome.com/extensions/tabs#method-query


Even without `active` and `currentWindow` parameters the extension cannot get urls and titles from other tabs because it has only the `activeTab`[1] permission declared in the manifest. You need more powerful permission for that.

I think with the `activeTab` permission you still get the an object for every tab other the active one, but without access to `url`, `title` and `faviconUrl` properties.

Thanks for checking out anyway. I built this tool especially because all of the others already available were a privacy nightmare.

[1]: https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Web...


Maybe a bloom filter would help if we could get a dump of the urls from HN?


The beautiful part is that they may have no idea which IP address corresponds to your email until you click a unique link in the phishing email (or load a tracking pixel?).


The scammer doesn't need to know the IP, they just send them to the root domain which automatically loads the ip of the viewer.


The website even has a utility to generate a URL that, when clicked, will log the victim's peer results while forwarding them to a harmless website:

https://iknowwhatyoudownload.com/en/link/


Does promnesia server run a local HTTP server? How do you prevent a website from slurping up the entire database?


Yep, it's a local HTTP server by default. It's also possible to expose it via reverse proxy, and you can set basic auth password in the extension's settings.

What do you mean by slurping here? Security-wise, a random website shouldn't be able to query a localhost because of CORS policies.


Unfortunately, CORS isn't a magic bullet. Suppose a site named evil.example adds a script tag pointing to http://localhost:1234/promnesia.js and a victim loads evil.example. If your JS updates a DOM element with info from the database, evil.example's JS can read that DOM element and report it back to the server, without violating CORS.


Ah I see, thanks! Good point, and I guess basic auth would protect against such sort of attack. So it seems it makes sense to use a token even if it's running as localhost, I could add an option, so it doesn't require setting up a separate proxy.

Either way, I hope I've been fairly reasonable about security so far, but I've mostly been concentrating on the 'plugging in the data' bit, so it's possible I've overlooked something (also I'm not a security specialist!). There is an open issue in case people have any specific concerns or spot something, happy to receive feedback! https://github.com/karlicoss/promnesia/issues/14


I think it's becoming clear that the whole 'local web server to do system things for a browser extension' approach is probably too fraught and should be abandoned for better IPC mechanism that browsers support. I don't think this is some 'drop everything and rewrite stuff' thing but it's worth reading up on and planning for.


Yeah, possibly. Chrome actually has something called "native messaging" https://developer.chrome.com/apps/nativeMessaging which seems like a potentially more secure (and faster?) alternative, but I haven't had time to play with it yet.


Yep, that's one of the things I had in mind when mumbling about 'better IPC'. Safari already only supports that type of model. I think the day is not far when automated scans/app stores/etc start flagging the local http server thing as high risk/potential malware vector. It's an architectural dead-end.

On the other hand, some of the other stuff may not be fully baked:

https://news.ycombinator.com/item?id=23173724


Awesome! Unguessable auth is the answer. You could even have the server generate a uuid token and have the user paste it into the browser extension.


To follow up: the solution is that the localhost server needs to make sure each API call is authorized (if you aren't already). This means there must be a login/setup step.

An API call can't be considered authorized just because it came from localhost :)



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

Search: