Google Starts Censoring BitTorrent, RapidShare and More - <AUTHOR> http://torrentfreak.com/google-starts-censoring-bittorrent-rapidshare-and-more-110126/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Torrentfreak+%28Torrentfreak%29&utm_content=Google+Reader <comment><USER3> Wow, 22 paragraphs about the removal of 5 keywords from instant and auto? Jesus, what will folks have to do - type out their entire search term and hit enter? Censorship?

I don't even think this is accurate. Granted, there is something off about how the terms stall out in instant, but for example as soon as I finish typing bittorrent both instant and auto complete kick back in and show as normal: <http://img513.imageshack.us/img513/6820/bittorrentac.png>

In contrast, if you type out a sex term it quits instant and auto complete and never restarts them, you must hit enter: <http://img7.imageshack.us/img7/7349/asexac.png> (mostly safe for work - <USER2> results)

I imagine the real reason google is doing this is ad placement. After all instant is just about having the ads up longer. Google "bittorrent" and a standard search term like "real estate" - notice any differences? Yup, they don't sell ads on the bittorrent serp (just like they wont sell adsense on a torrent tracker)

<comment><USER4> > I don't even think this is accurate. Granted, there is something off about > how the terms stall out in instant

There's no stalling, it's completely disabled and will not suggest anything until you type the entire word.

> In contrast, if you type out a sex term it quits instant and auto complete > and never restarts them

So? How does that have anything to do with justifing blocking BitTorrent terms? If I type "install bitt[orrent]" or "install ut[orrent]", I get no suggestions as it is clearly blocked.

<comment><USER5> I would guess people are searching "bittorrent [copyright material]" and someone has had their lawyers shout at google for it, because it could be seen as prompting users into pirating. Like "torrent li[nkin park]" might have got them in trouble because before the person was _just_ searching "torrent li[nux]" so now a user who wants a legit torrent for linux is being told oh hey you can pirate linkin park albums too!

(I don't agree that this is right, but it seems the sensible explanation to me)

<comment><USER6> Er, sorry, accidental downmod from 4 to 3, intended upmod to 5.

</comment></comment></comment></comment><comment><USER7> If you typed "bingo card creator" into Google, two of the first ten suggestions were "bingo card creator torrent" and "bingo card creator serial". I have a screenshot on my blog somewhere... here we go.

[http://www.kalzumeus.com/2009/09/05/desktop-aps-versus- web-a...](http://www.kalzumeus.com/2009/09/05/desktop-aps-versus-web-apps/)

Direct link: [http://www.bingocardcreator.com/blog-images/piracy-is- dying....](http://www.bingocardcreator.com/blog-images/piracy-is-dying.png)

It is more than mildly annoying to have a modern day Clippy looking over one's users' brand searches and saying "It looks like you're looking for software... have you considered stealing it instead?"

<comment><USER8> It appears to return similar results right now. I've always been frustrated when I would search for software, and the entire first page results, besides the actual first result, were rapidshare and megaupload aggregating blogs.

The query of the title of the Pragmatic Bookshelf book that happens to be open on my desk returns 4 relevant links. The remaining 6 are sites advertising free PDF downloads. Back in the day, one would have to go to a dedicated search engine for these links.

As much as I dislike "Censoring", Google should decide whether it wants to be in the business of providing links to sites that clearly are aggregators for filesharing and fileuploading links to pirated and copyrighted content. The Pirate Bay, et al., can take care of that.

<comment><USER9> While I agree it's distasteful, a good percentage of Google's search users are surely looking for exactly that link to illegal copies though? By providing those links quickly and easily Google is arguably _improving_ the quality of the search results for its end users.

Now, I'm with you that I'd rather that the search results were _worse_ in this specific way, but this sort of thing is surely a direct result of algorithmically optimising search results to present the user with what they're after even if they don't necessarily know exactly how to find it, a general good and a defeating of the sort of SEO techniques we usually complain about here.

In general though - Google already has a 'SafeSearch' function for images, which seems to work tolerably well without complaint. Perhaps a similar system could be introduced both for results and suggestions so that these to illegal content and sites they consider likely to harm my computer could be filtered out by default and only returned if I specifically set the preference or search terms to look for them?

</comment></comment></comment><comment><USER10> It should be noted that despite the headline - Google is not censoring any search terms. They're just not allowing certain words in the search auto- complete. A controversial move to be sure, but something they've done with other words since the introduction of search auto complete

<comment><USER11> Aren't there plenty of sexual terms that are already "censored" in the instant suggestions database? That hasn't affected anything so I doubt this will have any large scale impact on file sharing.

<comment><USER12> It's one thing for them to refrain from auto-completing the users' first few letters with suggestions including the filthiest words in the language. That's quite understandable to me. After all, it seems unlikely that those results are what users ordinarily want and there is a very high attentional cost to offering them wrongly (from the UI perspective).

But in this case, they're filtering out perfectly ordinary words for perfectly legitimate network protocols and actual products. If I type "utorren" there's no reason Google should withhold the "t" other that pure evil search-term engineering.

It's incomprehensible to me that a company that refused to filter "democracy" in China will agree to demote "utorrent" in America.

<comment><USER12> Just out of curiosity, can someone explain what it was about what I said that it deserves to be modded into negative numbers?

Did I break a rule, is this site overrun with fanboyism, or something else entirely?

<comment><USER13> <http://ycombinator.com/newsguidelines.html>

"Resist complaining about being downmodded. It never does any good, and it makes boring reading."

<comment><USER12> Yeah I knew that which is why I wasn't complaining. Agreed, this is boring.

</comment></comment></comment></comment></comment></comment><comment><USER14> Think we can all hear DuckDuckGo's next advertising campaign coming round the corner...

<comment><USER15> DuckDuckGo doesn't have an instant search at all so even less-than-perfect Google's solution is better than DuckDuckGo's non-existent solution. I don't see what DuckDuckGo could advertise here.

<comment><USER14> Doesn't matter that they don't offer the exact same search, just needs general principle points to be made.

"We don't believe in censoring the web, so here's our promise to you: our entire service will always work 100% to give you what you're looking for."

"When you search with DuckDuckGo, you know that, no matter what you're looking for, you're receiving our very best."

"We know it's not our place to make it harder to search for certain topics, so we'll keep providing you with the best tools for the job, and leave you to chose how to use them."

etc.

</comment></comment></comment><comment><USER16> Torrentfreak should protest this by stopping showing Google ads on their site.

<comment><USER17> One person neglecting to call out of work does not make a boycott.

</comment></comment><comment><USER18> Seems reasonable to me. Google is generating these autocomplete suggestions so they are ultimately responsible for them. I think there's quite a big difference between pushing search suggestions at people versus delivering the results of a precise query. It's a bit too soon to start crying censorship. That being said it would not surprise me at all if they end up eliminating the results entirely someday. Various courts around the world have cracked down on torrent/NZB sites, which are basically just search engines, if they can't get away with this it seems hard to believe Google can either.

</comment><comment><USER19> Searching for rapidshare or torrents on Google usually just leads you to garbage spam sites anyway.

</comment><comment><USER20> I wonder if they're doing this to avoid having someone making a claim that they're inducing people to commit copyright infringement?

That's the only sense I can make out of this.

</comment><comment><USER21> I just typed "utor" into google, waited a bit, and "uTorrent" appeared in the dropdown just fine.

<comment><USER22> doesnt work for me, until i enter that last t of utorrent nothing appears, sad.

<comment><USER23> Works fine for me.

</comment></comment></comment><comment><USER24> Luckily instant search is still in beta, has some quirks, and may never be fully implemented. I think Google knows this and is playing both sides of the fence. I don't use instant search because a) I am a competent and swift typist b) any heavy user knows instant search limits results. It's a toy.

</comment><comment><USER25> Perhaps Google, with its obviously inconsistent censorship policy, is trying to rile up the users being affected as well as the companies of their services to finally take action again the entertainment industry's censorship. Perhaps Google is the Green Hornet here, posing to be the bad guy?

Then again, I think that I'm just wishfully thinking, not wanting to accept the fact that Google has finally lost its independent mindset and vision of connecting the internets.

The last sentence on the blog sums it up best.

"Google may have been proud to leave China because of its political censorship, but it should be ashamed of promoting commercial censorship worldwide."

I wonder how Google can justify those contradicting actions.

</comment><comment><USER26> I'm kinda off-put about their decision to censor the software program titles, rather then say copyrighted illegal content. Obviously the former is the "easy" fix, while they should have approached the latter solution instead. And while this is only a censor on the autocomplete and instant search (neither of which I actively use) it does pave the way for eventual search result censoring.

Then again this could be a good thing for competitors. I can see a market open for a "censor free" search engine. Tagline "You're an adult, search like one". Hey... any entrepreneurs feel up for a new startup? _wink wink nudge nudge_

<comment><USER27> I misread your comment the first time through, but the misreading gave me a profound idea... "Why doesn't Google black-list the names of the copyrighted works?"

Food for thought.

<comment><USER28> _Why doesn't Google black-list the names of the copyrighted works?_

Because they are probably available legitimately somewhere. Or the user might be looking for information _about_ the work, not the work itself.

<comment><USER27> Yes, of course. But it's mostly a rhetorical question. You see, the new auto- complete filters are banning the terms of legitimate services (albeit theses services can be misused) in conjunction with terms of copyrighted works (e.g. <photoshop rapidshare> or <rapidshare photoshop>).

It's the combination of terms, so if one should be banned to please copyright holders, it almost makes sense to ban the terms of copyrighted works. After all, it's the copyright holders pushing for this kind of filtering.

</comment></comment></comment></comment><comment><USER29> I think the word "censorship" is being abused here.

</comment><comment><USER12> I am really disgusted with Google for this.

uTorrent is a great piece of software and completely legitimate application. I have used it to transfer open source and other content all the darn time. Peer-to-peer is a perfectly legitimate network application architecture and it's simply ridiculous that anyone should question it.

Those of you saying "this is effectively meaningless and not censorship" ... well why are they bothering to do it if it doesn't mean anything?

All of you l33t web startup founders had better realize that it may be your network architecture keyword search term that they come after next. After all, these people are fundamentally against the transfer of raw data, whatever its form.

<comment><USER30> Oh how I wish this was intended as a joke.

<comment><USER31> Either state your counter-argument or stfu, this above the fray snark is insulting and useless.

<comment><USER31> OK, I'll burn more karma because I'm feeling feisty today.

marshray is concerned about Google's move, just like a lot of other people. boredguy8 is obviously not concerned and thinks marshray's concerns are so dumb that they would be better as a joke. But he doesn't say why he thinks those concerns are a joke, he's just condescendingly pointing and laughing and calling marshray stupid. How is that acceptable debate? Like I said it is insulting and useless. If you are going to downvote me please explain what's wrong with what I'm saying.

<comment><USER12> Thanks for that explanation. It's really odd how the quality of logic (and balance of moderation) on this site sometimes seems to dip below what would be expected on Slashdot.

</comment></comment></comment></comment></comment><comment><USER32> And yet, they still have this:

[http://www.google.com/custom?hl=en&safe=off&client=g...](http://www.google.com/custom?hl=en&safe=off&client=google- coop&cof=FORID:13;AH:left;CX:Torrent%2520Search;L:http://www.google.com/intl/en/images/logos/custom_search_logo_sm.gif;LH:30;LP:1;VLC:%23551a8b;DIV:%23cccccc;&adkw=AELymgWxJcaNa- prJyUwY_M91Qmzs6-B1XzPgzKYs9ErsutE3YBVOs- bGwidEU9qNGmFvTO5tGmkyw1ZGBit1gEnAGhcZZPhUosChXO77W2k_tb19uGwL_0&boostcse=0&q=&btnG=Search&cx=003849996876419856805:erhhdbygrma)

</comment><comment><USER33> Given that I don't particularly like "instant" and that these results still appear on the full search, I would consider this a feature, not a fault...

</comment><comment><USER34> "There's no reason for Google to throttle search results for our trademarks, including BitTorrent, µTorrent and torrent. Indeed, they do still enable autocomplete for many third-party clients that use the BitTorrent protocol, including BitComet, BitLord, and even sites like The Pirate Bay and Isohunt."

so you'll be more successful in terms of search traffic if your client doesn't contain the word torrent!

</comment><comment><USER35> I read the article and it is not censoring. It's just not including these sites in the instant results. They do turn up in the search results though. It's like the library putting the Playboys behind the counter and you have to ask for them.

</comment><comment><USER36> It's not censorship, it's just a feature that they decide not to apply to one branch of queries because 'suggesting' such a search might get them in hot water with entities with very deep pockets.

</comment><comment><USER37> I don't think choosing what you're going to republish is censorship.

</comment><comment><USER38> Another reason to use DuckDuckGo. Slowly but surely Google is losing the patronage of nerds everywhere. Censorship like this will help to ensure an even more rapid abandonment.

</comment><comment><USER39> I think this is very hypocritical of Google.

Just a few months ago they pulled out of China because of censorship, and now they're censoring stuff themselves. Sure it's not _Exactly_ the same, but everything starts with a small precedent. Now that Google is powerful, it first starts off with censoring torrents, then what next? If Google starts to censor and control the outflow of data, it just kills the current perception I have for Google.

This is nothing innovative.

</comment><comment><USER40> This is evil. They should rather tweak their algorithm instead of blacklisting phrases?

<comment><USER36> Nonsense. They are perfectly within their rights to _not_ suggest that people behave in ways that are against the law.

You may not like that it is against the law in many places but (1) legally aggressive companies don't like other companies suggesting their stuff gets pirated and google is a much juicier target than John Doe, (2) it would not help google if Jane Doe brought up google suggesting she download a torrent when she was doing a search to buy the album if Justin Bieber and pirated it instead.

This is just a sound business decision by google, _not_ evil.

<comment><USER41> I don't agree. A simple keyword match does not determine if a keyword result is suggesting that I break the law in any given region. "Ubuntu torrent" being a prime example of this.

<comment><USER36> As soon as you've completed the word 'torrent' a whole slew of suggestions pops up.

<comment><USER41> That is correct but the original point still stands.

</comment></comment></comment></comment></comment><comment><USER41> 2010 - the year the free Internet died.

</comment><comment><USER42> Sorry guys, I am having trouble believing this...

typing in "bittorrent" will yield bittorrent.com and 4th result as utorrent. Nothing is filtered.

<comment><USER43> Re-read the article. It's not claiming that anything is filtered.

The author of the article is up in arms because Google has removed "bittorrent" and other terms _from auto-complete._ In other words, if you type "bittorr" in the search box and pause, it will not suggest "bittorrent" as a completion.

Here's a teacup. Good luck finding the tempest.</comment></comment>


Recruit away our team. I dare you. Heck, I encourage you. - <AUTHOR> http://betashop.com/post/11868389926/recruit-away-our-team-i-dare-you-heck-i-encourage

<comment><USER2> When someone who was really awesome leaves, takes five great people with them right when you've hit a rough patch, you will regret the hubris in writing something like this.

Every company gets contacted by recruiters to the point where you finding it novel to write about makes you look like an amateur.

<comment><AUTHOR> I disagree with you 100%. For our company to succeed we need people who want to be with us, no matter what shiny new offer comes their way. That's the point.

<comment><USER2> Retaining great people is something you earn. You don't earn it by daring you hope others attempt to poach your employees to test their devotion. You're a startup, not a religion.

<comment><AUTHOR> Again, I disagree. I hope recruiters do try to recruit our people. Life is short and where you work is a choice.

And, a startup is more than a job, it's a lifestyle.

<comment><USER2> Ah, there is something I can get behind.

Other firms attempting to recruit your people is a sign you've hired good people. Also, a sense that employees have a choice of where to work, and you'll do the best you can to make your company a great place to work is also good.

I think tone matters in blogs like these, and I think the HN community appreciates the positive portrayal of things over bravado. Maybe your original post flowed naturally to you. If so that is ok, but I think you would have had more success with the post had it been more observational instead of confrontational. To each his own.

Best of luck with fab, it is a great company/site.

<comment><AUTHOR> Thanks. I totally get what you're saying re: tone too. Thx.</comment></comment></comment></comment></comment></comment>


Tell HN: I grew Visa List to $5k per month in a year - <AUTHOR> Visa List started out as a simple list of visa requirements for all countries with detailed visa process and documents for 50 countries so that travellers can go anywhere they want easily. This was a solution to visa issues I faced when I wanted to travel. Since then it's grown to 100+ countries and now features visa exemptions, dual passport requirements and many data points like flight prices, weather, distance, economy status and travel advice. I'm adding new countries every day so that you can use Visa List for all your visa requirements. Visa List makes money mostly from ads and affiliates. Most of the site is freely usable but to use some filters, community chat and visa advice, you need to pay. Users pay monthly, annual or once for a lifetime membership. Revenue ranges from $5,000/m to $6,000/m. It became profitable after 2 months of launch.
But it didn't start making $5000 immediately, it started with $500 per month and grew slowly over the span of a year.
Initially I placed ads on visa list and was getting around 100K pageviews around a month. But the ads revenue was not that great at all. I tried to apply for skyscanner partnership because I knew that there would be good need after getting visa, but unfortunately I got rejected. I think the main reason was it was I was not getting a lot of traffic.
With a heavy heart I tried different ad networks like video ads, content ads but none of them improved the revenue. All this while, i never lost sight of my goal to increase the SEO and along the way get more users to Visa List.
Suddenly after a month I got an email from skyscanner from saying that they are interested in partnering with, this was another team. I was so happy and realised that things come around eventually. In a month I integrated skyscanner and it started a good stream of revenue from visa list.
After 5 month around june, people from iVisa contacted me. They provide visa service and visa assistance across the world which was perfect. I was very happy to partner with them as well and thus opened 3rd revenue stream.
Along the way I also learning AdOps so i could monetize the traffic I was getting and finally after 6 months things started working out. So my first channel also started contributing a good chunk to overall revenue.
After around 8 month i started an experiment with Visa List membership which i have been sitting on it for a long time. I was not really sure what was the most valuable information that travelers really need so they won't mind paying. Looking at Nomad list and starter story, i finally put in a set of features that i thought can be useful for Pro members. I'm happy that the experiment paid off adding to the 4th revenue stream.
So looking back, it was not a single thing but a lot of small things done right over a year.
https://visalist.io <comment><USER2> I'll grant that the site is well designed, but I can't see myself relying on this site or any of numerous "visa info" sites on the web. Visa requirements change all the time. How can I be sure that the info is accurate?

Personally I like Wikipedia as a first pass. Search Wikipedia for "visa requirements for Australians"[1] or "visa requirements for Indians"[2] or whatever your nationality to see _very_ comprehensive info without any ads or animations or fluff. Then before I book travel, I'll go to the actual consulate or embassy website.

Wikipedia is trustworthy, organized, and detailed. However, the consulate or embassy website is the only authoritative source. Every other "visa info" site on the web leaves me nervous.

[1] [https://en.wikipedia.org/wiki/Visa_requirements_for_Australi...](https://en.wikipedia.org/wiki/Visa_requirements_for_Australian_citizens)

[2] [https://en.wikipedia.org/wiki/Visa_requirements_for_Indian_c...](https://en.wikipedia.org/wiki/Visa_requirements_for_Indian_citizens)

<comment><AUTHOR> You points are valid but thats where visa list is different. It actually takes the basic information form Wikipedia and detailed information from government/embassy websites. On top of it, you can also see all the government where this information was gathered and verify it yourself. It saves a lot of time researching and interpreting the visa requirements. Also it has users tips for visa aswell.

<comment><USER3> No, it's not very different, I think @computator is right.

I tried a first basic check: Ukrainian passport and any Schengen country, I tried Romania. VisaList says "Ukrainian citizens don't need visa for travelling to Romania as tourist." and "Standard travel documents like passport / national ID card will generally be sufficient". It's not true, since you need a _biometric_ passport to travel to Romania visa-free. Usual (non-biometric) foreign passport and especially national ID card is definitely not sufficient for visa-free travel.

Wikipedia knows this: "From June 11, 2017 Ukrainians with biometric passports can travel to Schengen Area countries visa-free for up to 90 days.", IATA database ([https://www.iatatravelcentre.com](https://www.iatatravelcentre.com)) knows this as well. But visalist.io doesn't :( So it's definitely "trust but verify" in this case...

</comment></comment></comment><comment><USER4> > So looking back, it was not a single thing but a lot of small things done > right over a year.

That was almost exactly the same case for me and what I posted a few hours before this as well: [https://news.ycombinator.com/item?id=21795979](https://news.ycombinator.com/item?id=21795979)

It seems like the scenario where one specific hack works unbelievably well is much less common (though more desirable) than just doing everything 1%-5% better.

</comment><comment><USER5> Great job. The website is well designed, nice UI and everything is just super clear and accessible. I wonder is it a React app...

This is exactly the kind of project I would have thought of and then never bothered, thinking its already been done, its on wikipedia etc...Although you were fortunate with your partnerships, thats a bit of a jackpot, but in fairness you made the effort so well deserved. Good luck with version 2.

<comment><AUTHOR> Thanks, it's a Vue app built using NuxtJS.

See i thought that too until I faced a visa related problem when I was trying to visit Philippine. Long story short I ended up cancelling my tickers as I didn't get the visa in time which I thought i didn't needed in the first place. So I decided to solve the information inconsistency, contradicting and confusing information out there.

<comment><USER5> The classic, building something to solve your own problem, fantastic!

</comment></comment></comment><comment><USER6> I... would like to sign up but I can't because I don't want to use Facebook, Google or Twitter. Can I just give you my email and you send the login token per email instead of through a third party?

<comment><USER7> I'm sure it's crappy for the 1% of normal users that don't want to login through one of these services but really who wants to manage a first party user system, the fake accounts, the security breach risks, and updating that system just for 1% more users on a 60k/y project. Bigger fish to fry.

<comment><USER6> Please change my mind: I don't see the difference between keeping access tokens and keeping a password (in technical terms).

You also mention fake accounts: I don't know what this site does (I wanted to filter on a field and it told me I needed to login for that, not sure how a fake account would help me defraud the owner using that) but I would hope that random website owners can't tell Google/Twitter/Facebook about how naughty I've been and get me banned from Google/Twitter/Facebook. Therefore, the site owner will still have to ban spammers that created a Google account, same as they have to ban spammers that created an email address.

Every time I've tried to implement a third party login, it has been quite a pain. "First party user system" is a fancy word for what is actually the simplest option. At least to me, as a developer, so I don't see the advantage from that perspective either.

<comment><USER7> The 3rd parties have went out of their way (via incentive) to make this the easiest possible option. Access tokens "just happen" from a process perspective. There is no need to create a password reset system, a "forgot username" system, a 2 factor auth, password policy, or enforcing password resets in certain scenarios. Tokens shift all of that work to the 3rd party the user already does this with and allows your app to simply integrate and be done, to never have to think about these things again. If the user wants to use TOTP, SMS, a second email, or interdimensional VR dance greeting in 10 years you don't need to worry about it, the 3rd party does.

"Therefore, the site owner will still have to ban spammers that created a Google account, same as they have to ban spammers that created an email address."

Sure, but instead of trying to be better than Facebook/Twitter/Google at making it hard to create spam/fraud accounts you simply have to block the ones that get through the already best systems in the world. You don't need to track IPs, fingerprint patterns, phone numbers, emails, etc to try to filter out automated systems the 3rd party does it for you and is always getting better with 0 effort on your part.

It's also frees you from ever needing to ask for more information than needed. Don't need their phone number? Great, you'll never leak it because you don't need to request it from the 3rd party or user or account when requesting the token. Just have a token instead of a password? Great, if the user practiced poor password security Google/Facebook/Twitter are more likely to block suspicious logins than you ever were AND you don't have to reset their password and send them an email, the 3rd party will. Also tokens auto expire/renew as part of the app logic, down to minutes if you want, all without bothering the user.

If you've tried to implement 3rd party logins as additional steps to your already first party system you don't really gain any of these benefits . If it's all you implement it can save quite a bit of work.

In the end though nobody should be changing your mind, it's you that should explain why the developers should support a 1st party only system and turn away those that don't want to create yet another web account or why they should support both and the associated burden for the 1% that won't login via 3rd party.

<comment><USER8> Really? Last I checked it wasn't as simple as running your own password/session system unless you have a pretty complex app set up. Oauth is kind of insane honestly.

<comment><USER9> There are plenty of libraries that manage OAuth for you.

</comment></comment></comment></comment></comment></comment><comment><USER10> I'm actually traveling next week and one of the things I had trouble finding was the customs rules, what I could and couldn't bring into the country. You don't seem to surface that info either.

I also noticed that when I click on a country there's no info about my country's embassies and consulates which is something as a traveler is very important to know.

Additionally, I didn't see anything about membership

<comment><USER11> Are customs rules ever complicated for a typical person?

Usually it just seems to be common sense rules that you can bring something like $10k cash or large quantities of alcohol or tobacco, which aren't practical concerns for almost any traveller.

Have you found rules that may trip people up that we should know about?

<comment><USER12> Define large?

Norway, for example, allows only 2L of spirits or 200 cigarettes IIRC. If you're a heavy smoker that's less than a week. I believe Switzerland is similar.

I don't smoke or drink, but I'd imagine that would be fairly easy to get tripped up by if you were travelling around Europe.

<comment><USER11> Litres of spirits and hundreds of cigarettes is not a normal thing to pack on a trip.

<comment><USER12> It might not be normal for you, or a huge percentage of trips, but it's certainly normal for people I know to bring food and drink on holiday.

Certainly if you're driving around in a camper.

<comment><USER11> I meant more that it's not hard to avoid getting into any trouble by just never taking these things across borders, rather than trying to learn the rules. Nobody _needs_ to move alcohol or tobacco - it's always going to be available at your destination unless it's banned in which case you still couldn't import.

<comment><USER12> YMMV, like I said. When I go on road trips I don't really think about what I'm taking; you "pack" for a flight or train journey from your home.

It just happens to be the case that I don't drink or smoke. There are other restrictions like meat, plants, blah blah, the list goes on.

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> I set my passport country to Sweden and clicked on Germany, and it said I don't need a visa for a 90-day tourist stay. But within the EU and EEA, no visa is needed even for a longer stay, under the freedom of movement laws.

<comment><USER14> The freedom of movement agreement gives you exactly three months stay, same as Schengen, exempt from border control. It can be extended to six months max, and over that you need a work / residence visa.

[https://ec.europa.eu/info/policies/justice-and- fundamental-r...](https://ec.europa.eu/info/policies/justice-and-fundamental- rights/eu-citizenship/movement-and-residence_en)

<comment><USER13> "Agreement"? I am referring to the citizens' rights directive. Even if de jure you might need a visa for a very long visit, they don't stamp your passport when you come in and out, and they can't deport you. And no visa is required to work or study for unlimited periods.

<comment><USER15> At least in Germany, the answer is nuanced:

[https://www.bmi.bund.de/EN/topics/migration/law-on- foreigner...](https://www.bmi.bund.de/EN/topics/migration/law-on- foreigners/freedom-of-movement/freedom-of-movement-node.html)

you are apparently not allowed to just move there if you aren't self- sufficient:

> EU citizens have the right of residence for longer than three months if they

\- are workers or self-employed persons in the host Member State or are seeking employment (for a certain length of time);

\- are not in employment or are students or trainees and have sufficient resources and comprehensive health insurance cover;

\- have the right of permanent residence (following legal residence of five years).

\- Family members, regardless of their citizenship, accompanying or joining an EU citizen who satisfies these conditions also have the right of residence for more than three months.

> So the underlying idea is that in order to reside for more than three months > in another Member State, EU citizens must have sufficient resources for > themselves and their family members not to become a burden on the social > assistance system of the host Member State.

</comment></comment></comment></comment><comment><USER16> @1hakr Your website design is good. What is your design process. As being developer I struggle with designing.

May I know your design process and how you improved the website design. What was your approach and any resources etc.

Thanks

<comment><AUTHOR> I follow material design, it is very detailed and covers basic concepts very well. Secondly I use other famous website like nomadlist.com for inspiration.

<comment><USER16> Could you provide further details about where to start for material design?

Sorry for bothering you. But I lost my inspiration at the design step. My many projects struggle and lost motivation at design phase.

<comment><AUTHOR> I used this library which also has predefined templates [https://vuetifyjs.com/en/](https://vuetifyjs.com/en/)

</comment></comment></comment></comment><comment><USER17> @1hakr: Your no-javascript shame-screen is very funny and well-made, thumbs up. Too bad I can't see anything else on that site.

<comment><AUTHOR> Ya my whole website is built on NuxtJS framework

</comment></comment><comment><USER18> In the very first page I immediately wanted to input the country where I wanted to go, not the one of which I hold the passport. Yeah, I know that you wrote the instruction bellow but I just didn't see them. Moreover the "Let's Go" button did not help.

<comment><AUTHOR> Aah I see. Any suggestions how I can improve the experience?

<comment><USER18> Not sure, maybe change the button?

Something like "Discover easy to visit countries" ? But maybe it is too long?

Maybe re-iterate the message on top or bottom, "Tell us where you from to discover easy to visit countries".

<comment><AUTHOR> Good suggestion

</comment></comment></comment></comment><comment><USER19> Just a heads up, the info about visa free travel to Belarus is not correct. You can enter Belarus as an EU citizen visa free in 3 specific ways, and this only lasts for up to 5 days depending on how you entered. Otherwise you will need a visa to travel to Belarus.

<comment><AUTHOR> Thanks will correct it

</comment></comment><comment><USER20> I can't tell content from ads. Glad you have monetized, but the UX has suffered as a result.

<comment><AUTHOR> This has been a dilemma for a long time. I personally don't like ads at all but had to do it to sustain. That's why I'm building alternative streams of revenue so when they become big, I can remove ads altogether.

<comment><USER21> I would set a goal on where/when you decide to remove ads... It's really easy to keep that extra revenue as it will tend to grow with your site. Beyond this, having the paid subscribers get an ad-free UX when logged in?

<comment><AUTHOR> Yes with pro membership, you get ad free experience and many other features.

</comment></comment></comment></comment><comment><USER22> Please stop displaying the Product Hunt nag if I already clicked on the "vote" button.

<comment><AUTHOR> Got it, will fix it soon. Thanks.

</comment></comment><comment><USER23> Great work on this. There are a lot of hackers here who only do some limited coding and a project like this can be a wonderful inspiration.

There has never been a better time to be an indie maker.

<comment><AUTHOR> the dawn of indie hackers!

</comment></comment><comment><USER24> Cool site, this would have come in handy a few years ago when I traveled a lot more.

You might want to add a few exceptions to the "best countries to visit" list. It shows "North Korea" as one of the best countries to visit with a Japanese passport. I think most people would not agree... (North Korea has a history of kidnapping Japanese citizens) Also it looks like "Visa refused/Travel Banned" countries are still shown in the list.

<comment><AUTHOR> Thanks for the suggestion. I will make the changes.

</comment></comment><comment><USER25> I always find these kinds of posts motivational. Thanks for sharing!

How long did it take you to build and launch your initial version? How many hours per-week do you spend working on it now?

<comment><AUTHOR> I believe in sharing with community which has been crucial in my overall journey. For the first version it took me 4 weeks to learn VueJS and make a fully working MVP. I have been a full time Indie maker for 3 years now.

</comment></comment><comment><USER15> Great story! Seems like you should convert this to a writeup on a blog about your experience (so you can include charts, for example). Congrats!

<comment><AUTHOR> Thanks. Good suggestion.

</comment></comment><comment><USER26> Dunno if this is relevant to you. But some thoughts on the frontpage ux, nothing major of course. I checked with a mobile.

Remove the emoji. Not really visible anyway, detracts attn from the text Shorten the copy after the "hero", maybe using some A/B testing so no blunders are introduced. Switch the illustration footer and the logos, they are more important. For first time users the Pro popup is completely irrelevant, particularly on the start page where I still know nothing about the standard service Add a copyright footer so I know I can stop trying to scroll down, put your Hakr signature there as well and dont "float" it. The hero and the site header overlap when scrolling, obstructing the text of both.

</comment><comment><USER27> The United Kingdom is now undoubtedly going ahead with Brexit, and based on recent history of now-powerful politicians, and the announcements earlier this year on billboards everywhere, it looks likely that new visas will be required to travel between the UK and EU from 31st Jan 2020, and new conditions will come into force.

Those new visas and conditions are likely to be different for different classes of people as well. E.g. EU citizens, non-EU partners of EU citizens, EU partners of UK citizens, non-EU partners of UK citizens who entered via EU treaty rights, non-EU partners of UK citizens in well paid jobs who entered not-via-the-EU (different rules and status apply to them), the same but in non-well-paid jobs, EU citizens in well paid jobs, EU citizens in poorly paid jobs, children of EU citizens, students, recently graduated students, etc. And it seems that quite a lot of people don't know, yet, what class they are in, or whether they will be allowed to stay in the UK, either in the short term, or the long term.

A huge number of people regularly travel between UK and EU for work, holidays and family visits. Travelling between EU countries is almost like travelling between states in the USA - a lot of people do it fairly casually, and some do it almost as a commute.

Because of the changes, a fair number of people are interested in rules around dual citizenship, changes of citizenship (either people whose home is in the UK but they didn't need citizenship before, or people from the UK settled elsewhere in the EU who are now deciding whether to apply for change of citizenship to continue where they are), what rights they may have based on ancestry or other family connections which they previously did not need to investigate, the rights of their children, how much they need to earn to obtain different rights, how long applications take and how much they cost, etc.

On top of that, travelling across the border can jeopardise a person's applications, because it creates discontinuities of residence and the institutions judge such things arbitrarily, some of the time.

So information on visa requirements, conditions, and how different rules apply to different people may be something people will really need starting fairly soon.

Just saying, as I think the information could prove useful to many if it's made presentable and accessible (and isn't misleading), and for your site there might be a lot of visitors if it's the place to find out.

<comment><USER13> > it looks likely that new visas will be required to travel between the UK and > EU from 31st Jan 2020

This is not true. Johnson's victory in the election makes it almost certain the EU withdrawal agreement will come into force, so there will be no new requirements until at least the end of 2020, due to the transition period.

</comment></comment><comment><USER28> TIL that my home, Hong Kong, has been demoted to "developing"

<comment><USER29> This seems....odd. HK is now a city within PRC. So is Shenzen a "developed" area? What exactly is the distinction between Shenzen and HK now that they aren't exactly proven to be a city-state?

<comment><USER28> There is a border and passport control between HK and Shenzhen.

</comment></comment></comment><comment><USER30> It would be great if you could include alternative spellings and shorthands in the country dropdown at the start. For example, I searched for "USA" and it didn't bring up a result. Had to type "United" to find United States of America.

It would be a minor but noticeable improvement to UX, in my opinion.

<comment><AUTHOR> Thanks, it currently supports to digit search. Usually works for all countries but apparently not for US.

</comment></comment><comment><USER31> Looks like a useful site, I like the design and everything seems really snappy.

One issue I noticed is it seems like line wrapping is messed up on mobile. The line breaks sometimes happen in the middle of words.

For example:

"

o Japan as tourist. The maximum duration of sta

y is 90 days. You can also find usful tips from fe

llow travellers.

"

This is in Firefox iOS.

I think there's a CSS attribute to fix this if I recall.

<comment><AUTHOR> Oh thanks, I will look into it.

</comment></comment><comment><USER32> Hello 1hakr and congratulations!

I was looking at your open startups page (love the initiative) and if you show the pageviews for the last year, you can see everything flat and then it pretty much explodes in December. What is the reason for this? Was this the ProductHunt feature?

<comment><AUTHOR> Thanks. Yes including hacker news and reddit.

</comment></comment><comment><USER33> Nice job! What vendors for video/display ads did you try? Do you think your eventual success with those was more from learning the basics of supply side ad ops or from finding the right vendor/demand source?

I see google ads, are you using anything else? Adsense or dfp?

</comment><comment><USER34> Your website is very nice and I came across it when I was looking for a place to go travel.

However I still don't understand one can make so much money with a website like this.

I would personally never pay for any services like this when everything is free on the internet...

<comment><AUTHOR> If you think about it, almost all the data is free. Visa list saves time for you, that's all.

<comment><USER34> Exactly, and why / what for paying ?? Especially sincd since you typically need this website like twice a year at most.

Its not a critic or w.e. I just cant understand from which need your 5k per month can come.

Contrats anyway.

<comment><USER35> People pay for convenience, it's as simple as that.

</comment></comment></comment></comment><comment><USER36> Congrats on launching, but according to your own webpage, it's had only one $5K month, and that was 2 months ago. It might be a bit early to claim "$5k per month".

<comment><AUTHOR> Yes but I saw the trend, as of now I have already crossed $3k for this month.

</comment></comment><comment><USER37> Congrats! I just glanced at the site for a few minutes but it looks nice and I really enjoy hearing about people finding success from hobby projects. Best of luck!

</comment><comment><USER38> Where did you source your data for this? Now that you're monetizing off subscriptions primarily, have you considered trying ads? Or not worth it?

</comment><comment><USER39> I'm a massive fan of this site, and it has brought a massive amount of value to me personally. Glad to see that it's doing ok.

<comment><AUTHOR> Makes me so happy to hear that.

</comment></comment><comment><USER40> @1hakr How did you get your initial set of users?

<comment><AUTHOR> So last year I launched it on Product hunt and reddit and hacker news and it went viral everywhere with 150k users in a month but then it made a free fall to 20k and it took me 5 months to slowly grow it to 100k monthly users using just seo.

<comment><USER41> Where to get started with SEO?

<comment><AUTHOR> I used this in the beginning [https://www.clickminded.com/](https://www.clickminded.com/)

</comment></comment></comment></comment><comment><USER42> So how exactly did you find apps/sites to partner with? I've never heard of either of those.

<comment><AUTHOR> I didn't, they found me

</comment></comment><comment><USER43> Massive congrats! Visalist is the best for travellers info and this is such an inspiration!

<comment><AUTHOR> Thanks man

</comment></comment><comment><USER44> The website doesn't work without external dependencies, uMatrix blocks Cloudflare for me.

<comment><AUTHOR> I see. I had to use CDN to serve 300k users every month. Any suggestions how I can make it available for everyone?

</comment></comment><comment><USER45> Congratulations. Solve a real problem for people and make a nice income stream.

<comment><AUTHOR> Thanks. I'm hopeful more and more people will find it useful.

</comment></comment><comment><USER46> Congrats, this surely will inspire more than one fellow HNer to start his side project.

Also great thing that you answer such specific questions like how to get started on design/seo. Keep it up!

</comment><comment><USER47> Thanks for sharing your inspiring story!

How did you start the marketing of this site? I mean what where your first steps to tell the world that this site now exists?

</comment><comment><USER48> Really great site.

How did you get the first 100 to 1000 users/visits?

<comment><AUTHOR> I did a public launch on product hunt and then it become viral and got me 150k users in a week.

</comment></comment><comment><USER49> How/did you market it initially to be ranked?

</comment><comment><USER50> Great story, good job!

</comment><comment><USER51> The link just takes me to a webpage that hangs.

No story about growth, or anything else I can see.

Android Chrome fwiw, old device

<comment><AUTHOR> Actually the link is the stats of Visa list, it actually loading page views and users from data studio charts. It also has revenue of visa list.

<comment><USER52> It's horrifically slow. After 90s, more than 30 MB downloaded and still no content showing I gave up too. (and this is on desktop)

<comment><AUTHOR> Damn you datastudio, I should find alternative to show stats. You can browse the website which should be fast [https://visalist.io](https://visalist.io)

</comment></comment></comment></comment><comment><AUTHOR> Visa List started out as a simple list of visa requirements for all countries with detailed visa process and documents for 50 countries so that travellers can go anywhere they want easily. This was a solution to visa issues I faced when I wanted to travel. Since then it's grown to 100+ countries and now features visa exemptions, dual passport requirements and many data points like flight prices, weather, distance, economy status and travel advice. I'm adding new countries every day so that you can use Visa List for all your visa requirements.

Visa List makes money mostly from ads and affiliates. Most of the site is freely usable but to use some filters, community chat and visa advice, you need to pay. Users pay monthly, annual or once for a lifetime membership. Revenue ranges from $5,000/m to $6,000/m. It became profitable after 2 months of launch.

But it didn't start making $5000 immediately, it started with $500 per month and grew slowly over the span of a year.

Initially I placed ads on visa list and was getting around 100K pageviews around a month. But the ads revenue was not that great at all. I tried to apply for skyscanner partnership because I knew that there would be good need after getting visa, but unfortunately I got rejected. I think the main reason was it was I was not getting a lot of traffic.

With a heavy heart I tried different ad networks like video ads, content ads but none of them improved the revenue. All this while, i never lost sight of my goal to increase the SEO and along the way get more users to Visa List.

Suddenly after a month I got an email from skyscanner from saying that they are interested in partnering with, this was another team. I was so happy and realised that things come around eventually. In a month I integrated skyscanner and it started a good stream of revenue from visa list.

After 5 month around june, people from iVisa contacted me. They provide visa service and visa assistance across the world which was perfect. I was very happy to partner with them as well and thus opened 3rd revenue stream.

Along the way I also learning AdOps so i could monetize the traffic I was getting and finally after 6 months things started working out. So my first channel also started contributing a good chunk to overall revenue.

After around 8 month i started an experiment with Visa List membership which i have been sitting on it for a long time. I was not really sure what was the most valuable information that travelers really need so they won't mind paying. Looking at Nomad list and starter story, i finally put in a set of features that i thought can be useful for Pro members. I'm happy that the experiment paid off adding to the 4th revenue stream.

So looking back, it was not a single thing but a lot of small things done right over a year.

[https://visalist.io](https://visalist.io)

<comment><USER14> I think you should tag your submission with Show HN, see rules here: [https://news.ycombinator.com/showhn.html](https://news.ycombinator.com/showhn.html)

<comment><USER52> Given that this is a submission with stats _about_ visalist, Show HN doesn't seem appropriate.

There was a Show HN a year ago: [https://news.ycombinator.com/item?id=18640880](https://news.ycombinator.com/item?id=18640880)</comment></comment></comment>


The CodeSprint Post-Mortem: Statistics and Lessons Learned - <AUTHOR> http://blog.interviewstreet.com/2011/10/codesprint-post-mortem-statistics-and-lessons-learned/

<comment><USER2> Useful as it is, I hope the high valued problems will become a bit more diverse, involving topics other than graph theory.

Despite that, and some late-game changes, I think this first codesprint event went off really well. I think the interviewstreet guys have done a good job of identifying the more pressing issues in their writeup, and this gives me confidence that they understand and can improve on those issues next time around. Good job, and good luck!</comment>


Bugs You'll Probably Only Have in Rust - <AUTHOR> https://gankro.github.io/blah/only-in-rust/ <comment><USER2> One of the most important tools when writing unsafe rust is compiletest [1]. It's a tool extracted from the compiler project that lets you write tests that are supposed to fail compilation. Since safe abstractions rely on the type system to make unsafe code safe, it's critical to make sure the compiler is properly rejecting code. I wrote a post about this years ago when I got hit by one of the bugs Gankro wrote about [2].

[1]: [https://github.com/laumann/compiletest- rs](https://github.com/laumann/compiletest-rs)

[2]: [http://erickt.github.io/blog/2015/09/22/if-you-use- unsafe/](http://erickt.github.io/blog/2015/09/22/if-you-use-unsafe/)

</comment><comment><USER3> > Making unsafe a big scary "all bets are off" button is only compelling if > most of our users don't need to use that button. Rust is trying to be a > language for writing concurrent applications, so sharing your type between > threads requiring unsafe would be really bad.

It would be neat if we could decompose unsafe like so "unsafe[this_feature,that_feature] {}". The unqualified "unsafe" could still refer to a global "free reign", but you could opt-in to "only let me violate these specific rules." It would be a hint to maintainers and might help make the std lib and other core libraries be/remain defect-free.

Another interesting "oh shoot" w/unsafe that I'm curious about: when I intentionally/unintentionally alias two variables in my unsafe block, this will invalidate assumptions made elsewhere in safe code. This is my unsafe block's bug, but it seems like something that could take a good while debugging to attribute back to my unsafe block. I don't think there's a good resolution to this one other than perhaps documentation/best practices.

<comment><AUTHOR> Re: parameterized unsafe -- I think it's been discussed and rejected, I don't remember where. I think it was mostly a matter of "yes this would be more powerful, but the complexity isn't worth it".

Note that we sort of made a "new" kind of unsafe with the UnwindSafe trait: [https://doc.rust-lang.org/std/panic/trait.UnwindSafe.html](https://doc.rust- lang.org/std/panic/trait.UnwindSafe.html)

That's probably how we intend to solve these kinds of problem in the future.

Re: aliasing -- if it's a serious enough problem, one of two things will happen:

* Someone will develop a version of asan/ubsan for Rust.

* The Rust devs will be forced to reduce the extent to which they apply alias analysis by default (possibly with a flag to opt into it). At least temporarily.

The rust devs have backed off optimizations in the past when they break stuff in the ecosystem (struct layout optimization). But they also work with the affected devs to fix those bugs so they can turn the optimization on.

<comment><USER3> > Someone will develop a version of asan/ubsan for Rust.

This already happened (japaric [1]). But ASan won't save you from a bug due to optimization-because-I-assumed-these-locations-dont-alias (maybe TSan might?).

[1] [https://users.rust-lang.org/t/howto-sanitize-your-rust- code/...](https://users.rust-lang.org/t/howto-sanitize-your-rust-code/9378)

<comment><USER4> As you say, none of the existing sanitisers catch Rust-specific problems, which is, I assume, what the parent meant by "for Rust". That said, they will likely catch many of the consequences of such violations, just not pinpoint the cause as precisely.

<comment><USER5> A Rust-specific sanitizer has been proposed, though. See my other reply (which I was in the middle of writing when this thread popped up, so I didn't see it):

[https://news.ycombinator.com/item?id=14553679](https://news.ycombinator.com/item?id=14553679)

<comment><USER4> That isn't yet an _existing_ sanitizer. :)

It is definitely an important missing piece to bridge the gap to ASan/TSan, but it's still just a proposal/work in progress, not least because, AIUI, the precise rules it needs to enforce aren't yet entirely clear.

</comment></comment></comment></comment></comment></comment><comment><USER6> So happy that Gankro is back writing things about Rust, and especially delighted to hear that the Rustonomicon is going to be fleshed out more. :)

</comment><comment><USER7> If you—like me—were interested in Diesel ORM's zero sized types thing, here's a pretty decent explanation: [https://np.reddit.com/r/rust/comments/3ur9co/announcing_dies...](https://np.reddit.com/r/rust/comments/3ur9co/announcing_diesel_a_safe_extensible_orm_and_query/cxi143z/)

edit: Go also has zero-sized types (struct{}), so I wonder if this is also possible? Probably not, I don't think, since the compiler doesn't see through interfaces.

<comment><USER8> > Go also has zero-sized types (struct{}), so I wonder if this is also > possible?

No. It specifically uses Rust's generics system, and the fact that generics are monomorphized at compile time, whereas Go interfaces are not.

C++ templates can be used in similar ways.

<comment><USER9> Yes, but differently; C/C++ explicitly prohibit zero-sized types due to object identity.

<comment><AUTHOR> To clarify: C says it's UB, C++ rounds up to 1.

</comment></comment></comment></comment><comment><USER10> I have to say, these RCA's of the various bugs are great for getting a better understanding of the internals of the language.

In a lot of ways it makes me trust Rust even more, because there is a deeper understanding of exactly how these guarantees are made.

</comment><comment><USER11> Question for the rust folks - are there any features that wouldn't have been possible without "unsafe"? That is, if rust never had unsafe, would it have been fundamentally limited in any way? Or is it required for e.g. interoperability with C?

<comment><USER12> I'll give you the shortest example: in order to build an operating system in Rust for x86, you need to do this:

      let p = 0xb8000 as *mut u8;

VGA drivers use the memory mapped at 0xb8000 to drive the device. This creates a pointer, p, at that address.

In order to demonstrate this is safe (okay so unsafe isn't in this example, creating p is safe, but writing to/reading from it is not), a language would have to know:

1\. That your code is running in kernel mode, that is the entire concept of ring 0 vs ring 3.

2\. That the VGA spec specifies that location in memory.

Yeah, in _theory_, you could have a language that does this, but that'd tie your language so, so, so deeply to each platform, that it's not feasible.

This can be extrapolated to all kinds of other low-level things.

<comment><USER13> > That your code is running in kernel mode, that is the entire concept of ring > 0 vs ring 3.

That need not be the case though. You could have a kernel side allocator that sets up the MMU to map that memory to a pointer that you return which lives in the space of the process. The MMU would take care of the required arithmetic to access the memory at its actual location using an offset.

That way you can map resources from real addresses into arbitrary addresses on the user side.

I think the correct term for this mechanism is 'system address translation'.

<comment><USER12> The language would still have to understand all of that in order to write that kernel side allocator in safe code.

<comment><USER13> I don't see how that follows. The language can't possibly understand the intricacies of what the MMU is capable of (besides, every MMU is different), and as far as the language is concerned what is returned is simply a valid offset and a length to go with it to indicate where the allocated segment ends.

<comment><USER12> I think you're strongly agreeing with me. It's not feasible to have in the language.

</comment></comment></comment></comment></comment></comment><comment><USER14> " _The bug was a missing annotation, and the result was that users of Rust 's stdlib could compile some incorrect programs that violated memory safety._"

IIUC, technically, the bug was a missing _implementation_ of a trait and the result was a data race (which I (weirdly, maybe) don't think of as memory safety).

In other words, TL;DR: magic is neat, except that sometimes it really sucks.

I may have misunderstood Ralf's bug. Is it really the case that MutexGuard<T> was seen as Sync if T was _Send_ , rather that Sync? Wouldn't that be a bigger problem than just the case of MutexGuard?

<comment><USER15> > I may have misunderstood Ralf's bug. Is it really the case that > MutexGuard<T> was seen as Sync if T was Send, rather that Sync? Wouldn't > that be a bigger problem than just the case of MutexGuard?

So T: Sync if &T: Send. MutexGuard internally contains a &Mutex<T> (and Poison, but that's irrelevant here). T was Cell<i32>. If you follow the rabbit hole, you'll net out that T was Send, and therefore MutexGuard was Sync.

<comment><USER16> My confusion (and I suspect others) is about what it means for &T to be Sync. Cell<T> isn't safe to be shared across threads (so isn't Sync) but it is Send if T:Send. But that means &Cell<T> is Sync? You can share a reference to something across threads but not the thing itself? What does that even mean?

You could imagine an alternate world where MutexGuard is Send, to allow transfer of ownership of a lock to a different thread while keeping the mutex locked. But that would mean &MutexGuard is Sync, WTF?

<comment><USER4> The syntax was a bit confusing: T: Sync means (&T): Send and also (&T): Sync. T being Send or not doesn't affect the threadsafety of &T (Send is about transferring ownership which cannot happen with a &T).

You are correct to be confused about (&Cell<i32>) possibly being Sync, because the assumptions that were implied were wrong: when Sync talks about sharing a T, that can be entirely thought of as transferring a &T to another thread (aka Sending the &T). In this sense, sharing a &T between threads (as in, (&T): Sync) is the same as transferring a &&T to another thread, but the inner &T can be copied out so the original &T was also transferred (not just shared) between threads; that is to say, (&T): Sync is 100% equivalent to T: Sync.

Anyway, back to the example here, Cell<i32> is not Sync, so neither is &Cell<i32>, but M = Mutex<Cell<i32>> is Sync (this is a major reason Mutex exists in that form: allowing threadsafe _shared_ mutation/manipulation of types that do not automatically support it), and thus &M is Sync too. Since MutexGuard<Cell<i32>> contains &M, it was thus automatically, incorrectly Sync.

For your second confusion, it is okay for &MutexGuard to be Sync, if MutexGuard itself is. The problem here was MutexGuard was Sync incorrectly in some cases. (MutexGuard is semantically just a fancy wrapper around a &mut T, and so should behave the same as that for traits like Send and Sync.)

</comment></comment></comment></comment><comment><USER14> Wait just a minute. Ralf Jung writes,

" _This means that the compiler considers a type like MutexGuard <T> to be Sync if all its fields are Sync._"

Is that true in general? Is a type thread safe if all its fields are thread safe individually?

<comment><USER4> Send and Sync are about data races, which lead to memory unsafety, not other forms of thread safety (like dead lock freedom, or maintaining non-unsafe relationships between fields). If there's no unsafe code, then there's no way to have a data race when the individual components are also data race free.

<comment><USER15> Somewhat tangential, but what ensures memory visibility in Rust? Say I allocate a struct (heap or stack), and then pass an immutable reference to a function that takes T: Sync. Assume the struct itself is Sync (e.g. bunch of integer fields). What ensures that the other thread sees all writes to this struct prior to the handoff?

<comment><USER4> It is the responsibility of cross-thread communication abstractions to use the right fencing (if it is touting itself as safe), probably with the various things in std::sync (especially ...::atomics) if it is pure Rust. For instance, spawning a thread, using a channel (std::sync::mpsc) or a mutex all do such things.

Just calling a function taking T: Sync doesn't need to do any of this, since that call happens all on a single thread. The function might do it internally if it needs to, but that is its own explicit implementation decision.

<comment><USER15> Ok, that's what I figured - thanks.

That does bring up the question, though, whether it's correct to say that a Sync type doesn't permit data races. In the example I gave above, publishing a Sync struct incorrectly can exhibit data race like symptoms on the receiving thread. So even though the type itself is Sync, that's not enough of a guarantee in the face of "unsafe" publication.

<comment><USER17> It is a guarantee---or else it's a bug (which is the same as every other safe foundation). A type T gets to be `Sync` in one of two ways:

      1. It is "auto derived" when all of its constituent types are Sync.

      2. It is explicitly implemented using `unsafe impl Sync for T {}`. Note the use of the `unsafe` keyword.

<comment><USER15> Right, but my question isn't about T itself, but rather how it's published to another thread. The example I gave is of a plain struct with no atomics or any other synchronization types internally. A &T is auto-derived to be Sync. But, if a publisher incorrectly publishes this reference, the other thread may see a partially initialized value.

<comment><USER18> There are three ways of sharing data across threads.

One is by sharing the data with the thread when it is spawned via a closure. Spawning will fence. No problem there.

The second is to use a good 'ol Sender/Receiver channel pair. These are effectively a shared ring buffer that you can push to and pop from. They also have a fence somewhere.

Finally, you can stick your data into a mutex shared between threads (and let the other thread wait and read it). This will IIRC fence, or do something equivalent.

You can of course build your own ways to do this, but they will need unsafe code to be built (the three APIs above are also built with unsafe code). It is up to you to ensure you handle the fences right when doing this.

The responsibility here is on the publishing mechanism. Most folks use one of the three ways above using primitives from the stdlib depending on the use case.

<comment><USER15> Yeah, I understand and what I expected to be the answer. My point is that when people talk about Sync not allowing data races, there's the asterisk attached to that statement. That footnote is that publishing code, which is completely separate from the type itself, needs to uphold its responsibility. Unsafe code is usually discussed in light of raw pointers and more generally raw memory ops, but I rarely see this aspect mentioned.

<comment><USER17> My point above was subtle but important: the asterisk you're mentioning here is _not specific_ to Sync. This is true of _all_ safety guarantees in Rust. unsafe code must uphold the invariants that safe code will rely on, otherwise it's buggy. For example, if the implementation of `Vec<T>` accidentally got its internal `length` out-of-sync with the data on the heap, then nothing bad in and of itself necessarily happens immediately. The bad thing only happens the next time you try to do something with the `Vec<T>`, which will be in safe code.

The safety of things in Rust is built on abstraction. If abstraction gets something wrong in its `unsafe` details, then there is a bug there. In other words, the asterisk you're mentioning is "You can trust that safe Rust is free of memory safety, _unless there are bugs_." I feel like that's discussed and acknowledged quite a bit.

> Unsafe code is usually discussed in light of raw pointers and more generally > raw memory ops, but I rarely see this aspect mentioned.

I guess I don't see a difference. The safeness of Rust code depends on the correct use of `unsafe`, and this applies to everything, not just Sync.

This idea of `unsafe` being "trusted code" is one of the first things that the Rustonomicon covers: [https://doc.rust-lang.org/nomicon/safe-unsafe- meaning.html](https://doc.rust-lang.org/nomicon/safe-unsafe-meaning.html)

<comment><USER15> > I guess I don't see the difference

At a high and general level, yeah, it's all "unsafe". But, most conversations about unsafe don't talk about this aspect. So while what you say is true, I'm merely pointing out that this concurrency aspect doesn't seem to be mentioned much. And while it's implied at a high level, I think it's worth mentioning.

Basically, there's no issue - I just think this should be called out more when concurrency is discussed.

<comment><USER18> You need raw pointer ops (or, well, dealing with UnsafeCell, which does raw pointer stuff), or syscalls for these too.

Concurrency is not special here. There are all kinds of invariants unsafe code might be required to uphold. So yeah, we could mention concurrency, but then we could also mention UTF8, noalias, initialization, the vector length invariant, the HashMap robin hood invariant, various BTreeMap invariants, etc etc. "Make sure you have fences" is just another semi-specific invariant.

I disagree that "most conversations about unsafe don't talk about this aspect", compartmentalizing unsafe invariants is a major part of these discussions (it's like the first chapter of the nomicon, even)

<comment><USER15> > Concurrency is not special here I beg to differ. Concurrency comes with its > own bag of hazards, as I mentioned in my reply to burntsushi. Comparing its > invariants with Vec's length invariant/HashMap's RH invariant, and any other > single threaded/internal invariants misses the point.

Unsafe discussions that I've seen rarely talk about fences - they tend to focus on raw pointer ops, ffi, transmutes, unbound lifetimes, and in general, are single thread focused.

<comment><USER18> Right, but I can make the same point about other invariants. Each comes with its own bag of hazards. You can write pages about the robin hood invariants.

Concurrency is particularly complex, perhaps. I think one of the reasons you don't see that much discussion of this is that in general folks in Rust don't write that many internally-unsafe concurrent abstractions. There are a bunch of great safe building blocks out there (stdlib ones, rayon, crossbeam) which folks use for concurrency; it's very rare to build your own. So that might be it.

At least with the stuff I work on like 50% of the unsafe Rust discussions have been around thread safety and ordering and fences, but we're in that relatively rare situation where we need to build those abstractions, so perhaps it's just me who sees these discussions happening.

\-----

It's also probably just that discussions introducing unsafe will deal with problems people are used to -- and memory safety is a far more "normal" problem than thread safety.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER19> And this is why I stick with ASM - I don't have to rely upon everyone else not screwing the pooch when it comes to them developing a language - I just talk straight to the computer, nothing gets lost in translation, my programs are 200x smaller and 400x faster than anything written in Rust.

2D Second Life clone, with full programming capability with built-in database - 2 megabytes. Solid ASM. Rust can't even come close, and never will.

<comment><USER20> > [..] my programs are 200x smaller and 400x faster than anything written in > Rust.

And take 100x longer to develop :)

<comment><USER19> Nope. Once I start typing the code simply flies.</comment></comment></comment>


25 women in robotics you need to know about 2016 - <AUTHOR> http://robohub.org/25-women-in-robotics-you-need-to-know-about-2016/ <comment><USER2> Visibility is critical - there are women in tech (not enough) but they are less visible than men and are offered lower profile positions.

</comment><comment><USER3> I'm honored to be included on the list!</comment>


Ask HN: Link for the new Text Replacement Technology posted the other day? - <AUTHOR>

I can not find it anywhere.  If you guys could help me find the link, it would be greatly appreciated.
It was a post about a new text replacement technology that will allow users to place any kind of font on his/her website. It is supposed to launch this summer.
Thanks, Ryan <comment><USER2> <http://news.ycombinator.com/item?id=630314> ?</comment>


Asymco estimates how many iPhones will be upgraded in next year.  - <AUTHOR> http://www.asymco.com/2011/10/11/how-many-iphones-will-be-upgraded-next-year/

<comment><USER2> I have a non-contract iPhone 3G and the only force pushing me to upgrade it is that it's been abandoned as far as OS security and bug fixes go (I gather its SSL is now insecure: <https://issl.recurity.com/> ).

Despite what the blogosphere seems to emanate, the existence of faster devices doesn't render the older ones unusable.

<comment><USER3> I have an iPhone 3G, and the upgrade to iOS 4 did render it unusuable. I hear they've fixed it in later OS updates but it's just an Angry Birds player for my kid now.

But I agree with your main point. I switched to an Android device that had even less processing power than the 3G and I don't really see much need to buy a new phone until this one falls apart.

<comment><USER2> The iOS 4 release with improved performance for the 3G has been out for a long time now.

I think "until it falls apart" is a healthy approach to ownership. I plan to do the same with my MBP. Part of the reason for buying quality items of all types is that they happily last.</comment></comment></comment>


Buffett Will Steer Investors to Airbnb to Avoid Price-Gouging by Omaha Hotels - <AUTHOR> http://blogs.wsj.com/moneybeat/2014/04/08/buffett-will-steer-investors-to-airbnb-to-avoid-price-gouging-by-omaha-hotels/?mod=yahoo_hs for BRK's annual shareholder meeting <comment><USER2> It seems odd that Buffett and the WSJ would call this price gouging. There are high prices brought about by low supply and high demand. Sounds like Econ 101 to me. Am I missing something?

<comment><USER3> An Econ 101 model of the world breaks down in many ways - this is one of them. If the supply is not in doubt, but the hotels all raise the prices collectively knowing that the investor meeting is being held, it could be interpreted casually as price gouging.

The situation is like a prisoners dilemma for hotels. If they all raise prices and none of them break rank in price, then they all make more money. BTW, just by pointing out the option of Airbnb, Buffet makes it more likely for a given hotel to break rank in a collective price bump.

Another way for Buffet to break gouging might be to publicly announce the price spikes as something driving consideration of future alternates for his meeting. But his past behavior makes that unlikely given that he would likely have to shift to areas with larger travel markets so as not to be a large percentage of the existing travel capacity of the locale.

<comment><USER4> "If the supply is not in doubt, but the hotels all raise the prices collectively knowing that the investor meeting is being held, it could be interpreted casually as price gouging."

No, that would be collusion. They would be running a cartel and that would be illegal.

Worse, your speculation that Buffet is doing this to get hotels 'to break rank' is absurd. Metropolitan Omaha has ~10,000 hotel rooms (source - [http://www.visitomaha.com/meetings/faqs/#.U0R2_61dUnI](http://www.visitomaha.com/meetings/faqs/#.U0R2_61dUnI)) compared to the 30,000 people who plan to visit _just_ for the shareholder's meeting. There is far more demand than there is supply of rooms, this is simply a rational response to that.

<comment><USER5> From what I recall, it's illegal for companies to get together and agree not to raise prices, but there's no law preventing them from noticing that their competitors are putting their prices up and raising their own in unison and this is actually quite common.

<comment><USER6> Terms to be aware of: Tacit Collusion [1], Price Leadership and Price Signaling.

[1] [http://en.wikipedia.org/wiki/Tacit_collusion](http://en.wikipedia.org/wiki/Tacit_collusion)

</comment></comment></comment></comment></comment><comment><USER7> I wonder if Buffett would invest in a business which didn't increase their prices when they knew demand was going to spike.

<comment><USER8> Warren Buffett has said Amazon.com founder Jeff Bezos is a great businessman[0]. It is worth reiterating what Jeff Bezos thinks about price gouging: "There are two kinds of companies: those that try to charge more and those that work to charge less. We will be the second."

Perhaps you will argue that increasing the storage cost for fulfillment by Amazon[1] is an example of price gouging. I will let smarter people answer why it is OK for Amazon.com to charge more during the holiday shopping season. I'd imagine the simple reason is greater volume of transactions. However, with the way Amazon.com does storage, a 33% hike looks strange.

[0] "He's a great businessman and a good guy, too." [http://blogs.marketwatch.com/thetell/2013/09/20/offering- tip...](http://blogs.marketwatch.com/thetell/2013/09/20/offering-tips-at- georgetown-buffett-tips-cap-to-amazons-bezos/)

[1] Currently $0.48 per cubic foot per month Jan-Oct and $0.64 for Nov-Dec. [http://services.amazon.com/fulfillment-by- amazon/pricing.htm](http://services.amazon.com/fulfillment-by- amazon/pricing.htm)

<comment><USER9> could this be linked to the fact that amazon needs a lot more storage for its own uses in november and december to hold all the extra product they will shift in the run up to xmas, hence the price increases because this is more in line with what they would be paying elsewhere.

</comment></comment></comment><comment><USER10> This gives me an idea.

Contact house/apartment landlords in Omaha about a month before the meeting, and offer to set up an airbnb in their empty units. The vacancy rate of rental housing in Omaha is about 9%, so Landlords would be interested.

<comment><USER11> Seems like once you rent and move enough beds, linens, tables, chairs, etc you'd have cut into your profit margin significantly.

<comment><USER10> High end hotels will buy new furnishings every 18-24 months. The used furnishings are bought by Hotel Furniture Liquidators (HFL) who sell the furniture to mid-tier hotels. Working with the resellers to rent a dozen rooms of furniture should keep costs down.

</comment></comment></comment><comment><USER12> It's depressing but not hugely surprising to find that the comment thread is mostly people defending price-gouging.

I've just spent a while trying to come up with an argument against, but really it comes down to whether your personal values prioritize cash flow over being decent to people, and that's not something I can talk anyone out of in a web post.

<comment><USER13> > it comes down to whether your personal values prioritize cash flow over > being decent to people

This is absolutely false. My personal values prioritize decency and integrity, but also logic, and my analysis of the facts leads to the inescapable conclusion that shocks to demand/supply _should_ lead to shocks in the price, and suppressing those shocks just leads to more negative distortions and less value for everyone.

It is _counterintuitive_ that, say, when a region is hit by a hard storm and supplies are hard to come by, that those holding the supplies (i.e. gas, water, food, etc.) should experience a windfall, but _the windfall is only the consequence of making sure that those precious supplies are only consumed by those that absolutely need it_. Are inequalities exacerbated in this scenario? Of course. But there is no good way to get around this fact _through the price system_ (there are other, better ways of addressing inequalities here and elsewhere).

<comment><USER12> Wow. I like how you vaulted straight over the defensible middle-ground "hotels charging more during big events isn't actually the same thing as price- gouging" argument and went straight to defending incontrovertible, life- threatening, criminal-in-34-states price-gouging.

> _the windfall is only the consequence of making sure that those precious > supplies are only consumed by those that absolutely need it._

No. It's it's making sure they're only consumed by those with _the most money._

<comment><USER13> > I like how you vaulted straight over the defensible middle-ground "hotels > charging more during big events isn't actually the same thing as price- > gouging" argument and went straight to defending incontrovertible, life- > threatening, criminal-in-34-states price-gouging.

I did that because it clearly _raises the bar_ for my argument. I have more to prove in the harder cases. And yes, I do think the logic holds despite what our emotions tell us, and I think that for the most part the laws are wrong.

> No. It's it's making sure they're only consumed by those with the most > money.

Again, I'm granting that emergencies and other demand/supply shocks heighten the problems caused by inequality, and again, I'm granting that that's _not ok_ and should be tackled appropriately by policy. I'm arguing that the price system is not the best way to tackle this and leads to other problems. This will seem a bit off-topic, but Chile tackled a similar problem in their water system by transferring cash to poor populations while letting their prices for water rise [1]. (This is only meant to illustrate how you can use more than one policy mechanism to tackle separate problems: prices for allocation, transfers for inequality).

You're right, people with the most money _can_ purchase more, but you also have to think about how you allocate scarce resources in the absence of a rise in price: is it first-come-first-serve? Does everyone get the same amount? You have to have some other mechanism to allocate the scarce resources and they each have their problems.

Also, you _must_ think about the supply side. People will find a way to supply areas with high prices. People are creative. In fact, the high prices in the Omaha rental market spurring people to turn to Airbnb is a _perfect example_ of why we should let prices rise.

[1] [http://elibrary.worldbank.org/doi/book/10.1596/1813-9450-244...](http://elibrary.worldbank.org/doi/book/10.1596/1813-9450-2445)

<comment><USER12> It's true that first-come-first-served isn't optimal, but at least it's not as brazenly monstrous as turning away people whose need is just as great because they can't afford to line your pockets as thoroughly. Limiting the amount per customer has a lot of potential, though.

You're also assuming that profit-gouged emergency supplies are necessarily limited. If the local water supply has failed after a hurricane, and you've got enough bottled water to comfortably supply your community, you've still got a captive audience; you can maximize your profits by forcing them to empty their wallets to survive, if you're an asshole.

<comment><USER13> > You're also assuming that profit-gouged emergency supplies are necessarily > limited.

You're right, I'm making this assumption. I _have_ to make this assumption assuming there are at least a few possible suppliers (i.e. a few gas stations or convenience stores) because otherwise there would be no supply shock and concomitant price increase.

> and you've got enough bottled water to comfortably supply your community

Here I would say you're begging an important question, which is in regards to who has this and other important information? How would a convenience store owner know that the overall bottled water supply in the area is enough or not - and how could they possible make those calculations in time to properly allocate the water? Prices are a _great_ way to spread information _and_ incentivize people to get creative in finding a solution. If bottled water prices go up 10x, I guarantee you people will find a way to get more bottled water there.

</comment></comment></comment></comment></comment></comment><comment><USER14> I wonder how long it will take for some of these investors to buy cheap apartments in downtown Omaha and charge $350 a night during the meeting.

<comment><USER15> 3 nights X 350 = 1050$, it will take 100+ years to recover the cost

<comment><USER16> Because they couldn't rent it out or AirBnB it the other 362 days of the year?

<comment><USER15> How many people are going to Omaha for vacation?

</comment></comment></comment></comment><comment><USER17> Interesting the supply/demand in the extreme is considered Price-Gouging. What should we call Gillette's pricing on razors?

<comment><USER18> >What should we call Gillette's pricing on razors?

Razor blade pricing? This is what I grew up with it being called slangly. As in, give away something up front and then gauge huge on the backend. Another example would be that He-man toy that had crazy-expensive slime refills. _shrug_

<comment><USER19> Just FYI, that's called a loss leader. Printer ink is the classic example.

[http://en.wikipedia.org/wiki/Loss_leader](http://en.wikipedia.org/wiki/Loss_leader)

</comment></comment></comment><comment><USER20> Mr. Buffett should just move his shareholder's meeting to a city with many more hotel rooms such as Las Vegas, Chicago or Orlando which has a far greater supply of hotel rooms than Omaha and also has far more accessible flights.

</comment><comment><USER21> I imagine Airbnb units will raise prices as well, as happened when I tried to book Airbnb in New Orleans without realizing it was Mardi Gras.

</comment><comment><USER22> Regardless, this seems like a huge PR win for Airbnb given the recent news about crackdowns in SF/NYC.

Kudos to them and best of luck!</comment>


Patently Absurd: Proposing a Change to Litigation - <AUTHOR> http://continuations.com/post/171330180/patently-absurd-proposing-a-change-to-litigation <comment><USER2> Tilting patent suits towards the defendant and against patent trolls is highly advantageous for the market and consumers. Plenty of evidence that patents actually suppress technical advances in the field of the patent.</comment>


How I wrote a programming language, and how you can too - <AUTHOR> https://medium.com/@william01110111/the-programming-language-pipeline-91d3f449c919 <comment><USER2> Compiler author here. Overall cool post. I have nitpicks and opinions. Don't let me stop you, but consider what I have to say.

"There are two major types of languages, compiled and interpreted."

Well, no. There are two types of language runtimes, compilers and interpreters. (And a technique which can turn interpreters into compilers. [0]) This matters quite a bit if you want your language to not be permanently married to a single compiler; your language design should somewhat accommodate both compiled and interpreted modes as possibilities. This seems obvious in hindsight, but even today, popular languages like Go do not have compilation models which make REPLs easy or even possible.

"I chose C++ because of its performance and large feature set. Also, I actually do enjoy working in C++. If you are writing an interpreted language, it makes a lot of sense to write it in a compiled one (like C, C++ or Swift) because the performance lost in the language of your interpreter and the interpreter that is interpreting your interpreter will compound. If you plan to compile, a slower language (like Python or JavaScript) is more acceptable. Compile time may be bad, but in my opinion that isn't nearly as big a deal as bad run time."

Okay. This is totally up to the author. It sounds painful, though. JVM legend Cliff Click has said during talks that choosing C/C++ for a VM implementation language is one of the worst decisions that a VM author can make in the modern ecosystem. Memory-unsafety notwithstanding, the amount of effort required to write good C++ is pretty high, and compiler algorithms are complex, so writing a compiler in C++ is very hard.

"In the end, I didn't see significant benefits of using Flex, at least not enough to justify adding a dependency and complicating the build process. My lexer is only a few hundred lines long, and rarely gives me any trouble. Rolling my own lexer also gives me more flexibility, such as the ability to add an operator to the language without editing multiple files."

On one hand, once your code is correctly factored, an operator _will_ be smeared over several files, presuming that your lexer, parser, and AST class are in at least three distinct modules. On the other hand, hand-written lexers _are_ better at error messages. So it's a tough call and it largely comes down to whether you prefer the pain of writing lex/flex/etc. or writing C++. (This is why a better interpreter language can make all the difference!)

Mr. Bright on parsers, via the author: "Somewhat more controversial, I wouldn't bother wasting time with lexer or parser generators and other so- called "compiler compilers." They're a waste of time. Writing a lexer and parser is a tiny percentage of the job of writing a compiler. Using a generator will take up about as much time as writing one by hand, and it will marry you to the generator (which matters when porting the compiler to a new platform). And generators also have the unfortunate reputation of emitting lousy error messages."

I want parser generators to be good enough. But they largely aren't. These points are all absolutely correct.

"Put simply, the action tree is the AST with context."

These are normally called _annotated_ ASTs. Each node carries an annotation. This can be used for type-checking, two-level syntax, specialization, side- effect-tracking, etc. It's a great technique that really should be publicized in compiler literature. Unfortunately, every interpreter language has different ways to do it. Haskellers will want to use a comonad. Hash-table- rich languages will probably use a hash of AST nodes to annotations.

"It is, but compiling is harder than interpreting."

Efficient compilation is as hard as efficient interpretation. Ignoring the theory of _partial evaluation_ [0], an interpreter usually has to make the same optimizations that a compiler does in order to be speedy. Python and friends, and many other Smalltalk relatives, for example, compile to bytecode. If the bytecode compiler is any good, then the bytecode interpreter will be good too.

[0] [http://www.itu.dk/~sestoft/pebook/pebook.html](http://www.itu.dk/~sestoft/pebook/pebook.html)</comment>


Facebook Is Expected to Introduce Its Phone - <AUTHOR> http://www.nytimes.com/2013/04/04/technology/facebook-is-expected-to-introduce-its-phone.html?partner=rss&emc=rss&_r=0 <comment><USER2> It's not so much about the phone and new, amazing technology, it's more about making an international push, to get more people to use their phones (and of course facebook, that will jump out of your phone :) ). The more people they will get to use it on their phones, the more ads they can deliver ;)

</comment><comment><USER3> What sort of demand are they expecting for this? The only people I can imagine that would want a facebook phone are primarily teenage girls. A lucrative demographic, I suppose. It just seems like a mismatch for the company.</comment>


How to lose $8k worth of Bitcoin in 15 minutes with Verizon and Coinbase.com - <AUTHOR> https://medium.com/@CodyBrown/how-to-lose-8k-worth-of-bitcoin-in-15-minutes-with-verizon-and-coinbase-com-ba75fb8d0bac <comment><USER2> The two common BTC loss stories:

1\. I left in the hands of other people 2\. I failed to keep it accessible to myself

It's easy to lean too far in one or the other direction by leaving stuff on a commercial service or forgotten on a single device without backups. For most folks, paper wallet and safebox is the appropriate mix since it follows traditional physical security patterns and ensures some protection from theft or damage. A strong secondary option is to be online but obscure and not advertise where your valuable data rests - perhaps your keys exist on a backup service, but they're tucked away such that an attacker has to think to look for them, and to do some forensics to track down their location. This buys time to hear the alarm bells of "your password was reset" and rotate anything valuable out of the compromised accounts.

Under no circumstances would I keep the money within any of these dedicated services: even though I use Coinbase and exchanges, it's too easy to employ social engineering and privilege escalation to get in and take everything, so any value stored in them has be considered "hot", and I only keep the amounts I want to trade on them(which at this moment is $0).

<comment><USER3> > safebox

Also don't tell anyone online/offline that you have coins. You might get intruders.

</comment></comment><comment><USER4> A subtitle from the article that irked me: 'I'm not giving up on crypto.'

Why would you? You were never using it in the first place. Exchanges aren't bitcoin.

<comment><USER5> Lol! Truth.

</comment></comment><comment><USER6> The thing is, Verizon's not _killing_ anybody by this disaster. Upper management there probably still sees cryptocurrencies as a fad toy. I'm being pragmatic.

Here is an open idea that I have long wondered about. If you think this would work, you are welcome to have it and turn it into a startup (it could work as a free service, it could work on a subscription).

Make a duress system that allows people to open a fast-loading webpage or app, scroll down to Gmail, and hit " _Fight!_ ". Then they'd scroll to Coinbase and click/tap the button there too.

This service would then immediately log into your account repeatedly and change your password, along with your recovery email address and other information that, if changed, would make logging in a hassle (such as your security recovery questions). It does this as many times a second as possible, for I'm not sure how long.

My thinking is that "wat, 42 password resets in 18 seconds" is probably going to freak most well-designed services out, which will then hopefully lock your account... possibly saving it.

Better yet (I just realized), the app could lock your account, if the service allows it, after resetting your password.

\--

The way I envisage the site/app working is that, you input your account details (your actual password) into a locked tome with a passphrase. When disaster strikes you unlock the tome, perhaps with your fingerprint. The reason for this is that service APIs might not universally provide enough access to "do good", if you will, and there's also the consideration that the site might be up but the API might be down (a bit like Verizon being closed!).

Also, about changing the email, gmail allows you to do things like firstname.lastname@example.com, so the app could simply change the email to things like email@example.com, or variants that won't freak gmail out if they have alarms on that sort of behavior.

<comment><USER7> I like your fight idea. But you couldn't use Gmail aliases as new address because they are only aliases. E.g. firstname.lastname@example.com equals firstname.lastname@example.com equals firstname.lastname@example.com.

<comment><USER6> DOH.

I was going based on the thinking that the full email string would need to be known in order for it to be changed. My brain's a bit foggy right now so I can't properly think it through.

Ouch, that makes things a bit harder... but thanks for letting me know.

</comment></comment></comment><comment><USER8> How did the guy get past the first factor authentication?

(e.g. How did he get past the normal password?)

<comment><USER9> Likewise; can't understand how they got access to his Gmail account. Yeah, it was a costly learning on the importance of 2FA, but seems OP also needs a basic password manager.

<comment><USER10> Because you can reset your GMail password by sending an SMS to your cell phone?

Most services assume that your phone is a trusted device, and that SMS is a trusted delivery service. Neither of which is true if you can get someone to activate a new phone on your account, or you can hijack SMS.

</comment></comment></comment><comment><USER11> Found this depressingly insightful recommendation in the comments:

 _" And consider switching to a non-traditional phone company like Google Project Fi.. can't socially engineer them because you can't even contact them (and it's same auth as your gmail)"_

</comment><comment><USER11> > Call your cellphone company and tell them you are likely to be targeted for > social engineering. Request more scrutiny for making requests.

Didn't this have the exact opposite effect when someone else tried? (can't find the store anymore)

</comment><comment><USER12> Verizon really dropped the ball here....it's totally negligent to send a text with a number nobody will answer. I would sue Verizon.

</comment><comment><USER13> Same exact thing happened to my friend who was using T Mobile.

</comment><comment><USER14> Might I humbly recommend my own exchange? [http://bitcoinsexchange.itmustbetrue.com](http://bitcoinsexchange.itmustbetrue.com)

<comment><USER15> That is an unfortunate URL...

<comment><USER16> and what a trustworthy homepage! :D

<comment><USER14> Low fees!</comment></comment></comment></comment>


Motorola's new budget phone leaks with 64MP camera and 5,000mAh battery - <AUTHOR> https://www.theverge.com/2020/9/7/21425804/motorola-moto-g9-plus-news-features-64-megapixel-quad-camera-5000-mah-battery-play <comment><USER2> Why does a 'budget' phone need 4 cameras?</comment>