Postgres full text search is good enough - <AUTHOR> http://blog.lostpropertyhq.com/postgres-full-text-search-is-good-enough/#1 <comment><USER2> Well the article is right in one sense: Postgres full text search is probably better than you think it would be and is very usable at non-massive scale

However, I still wouldn't recommend using it. The queries and indexes are all unintuitive, complex, not very readable and require learning a bunch of new syntax anyways (as you can see in the examples in the blog post). So just take the effort you would spend doing that and instead learn something with more features that will continue running no matter how large your scale.

While the blog mentions elasticsearch/solr (which are awesome and powerful), it doesn't mention sphinx ([http://sphinxsearch.com/](http://sphinxsearch.com/)). If I were trying to make a simple search engine for my postgres/mysql powered site, I'd use sphinx. The indexer can be fed directly with a postgres/mysql query, and it includes simple APIs for all languages to interface with the searcher daemon. And of course it is super fast, has way more features and can scale larger than you'd ever need (sphinx powers craiglist's search).

<comment><USER3> One interesting thing we learn from build an online store: People uses search alot less that you would think.

We started to notice that customers will use the menu and filtering options, rather than searching for an item. Need something from the "electronics" category, click the electronics menu tab, and pick the subcategory. From there customers browse or filter until they find what they're looking for.

Of cause so do use the search, and most people would have better results if they did search directly.

My point is: Maybe we could have just used Postgresqls full text search in this case. The queries will be rather simply anyway. The new syntax won't matter much, you need to learn something new anyway if you use Solr or ElasticSearch. Search is fare less important than people think, it just needs to be there and be "good enough".

Yes, Sphinx is awesome, if you're doing plain searches, filtering can get complicated pretty quickly.

<comment><AUTHOR> The menu & filtering option can benefit a lot from Facets (or aggregations in ElasticSearch for more advanced options).

<comment><USER3> That's actually what we use. I should have been more clear, it's the fulltext search that doesn't matter to much.

</comment></comment></comment></comment><comment><USER4> As the author, it's maybe worthwhile that I explain the goals of this post.

The first goal is about using your current architecture to solve small/medium search needs and help your project to introduce search without requiring to add components to your current architecture. It's not a solution on the long run if your application revolve around search. I'm hoping that with the introduction of JSONB in 9.4, the idea of using Postgres as document store raise more attention on the search which can to be improved. But for an out- of-the-box feature, I think that the Postgres community did an amazing job. You can imagine that you get something working with Postgres in matter of hours if you are already using it (and you are comfortable with PG), but if you have never used SOLR/ElasticSearch it will take you much longer to introduce it in your project and get started (Ops, document sync, getting familiar with query, ...).

The second goal, is about introducing full-text search concepts. The post try to guide the user to build a search from nothing to a quite decent full text search in English / French (I cannot give feedbacks on other languages)

The third which is probably the less clear is that people are still using MySQL search sometimes which is IMHO an horrible search solution. I think this happen because some web framework like django provide easy access to match in the ORM. In this context, the post is aimed also to provide MySQL user some insights about what can be done with Postgres and being more aware about its features.

If you are interested by the topic then I suggest you to have a look to the amazings posts from Tim van der Linden who did an amazing job of going into more details about the subject.

[http://shisaa.jp/postset/postgresql-full-text-search- part-1....](http://shisaa.jp/postset/postgresql-full-text-search-part-1.html) [http://shisaa.jp/postset/postgresql-full-text-search- part-2....](http://shisaa.jp/postset/postgresql-full-text-search-part-2.html) [http://shisaa.jp/postset/postgresql-full-text-search- part-3....](http://shisaa.jp/postset/postgresql-full-text-search-part-3.html)

Postgres full-text search is not the silver bullet of search but matter of your needs, it's maybe good enough ;)

<comment><USER5> Hey, thanks for the article. I'm still going through it now. Would it work for my scenario? I'm full text indexing large legal documents - 50 to even 300 pages. What I've been doing is just throwing the entire document (OCR) into a big mysql (Mariadb 10) LONGTEXT columns. Then I'm using a JDBC river to shoot those over to elasticsearch.

I don't fully understand elasticsearch, because like you said it's insane. The query that I build to perform a simple search (think a google-like search box with a go button) is about 100 lines.

Should I try out postgres full text search for my purposes? I guess I could change to indexing page by page, and then I could group on the document hash to stamp out duplicates. That would also get me a list of page numbers where the results were. I'm not sure if I could get the snippets though. (What I call a snippet is the word surrounding the match - I'm returning that to datatables so that the user can search within their search to further refine the search.)

Here's what my search (and results) looks like now: [http://imgur.com/Fjckva6](http://imgur.com/Fjckva6) As you can tell, I'm not too familiar with elasticsearch (A shameful offset input!) and I'm more comfortable in a RDBMS.

<comment><USER4> Which languages? English only? Anykind of fuzzy search required?

I don't have experience with big data set but you may to read about GIST/GIN to pick the right index in your case (probably GIST) But from what I saw when I prepared this post, some people are getting some decent performance with full-text search on dataset like the size wikipedia.

[https://wiki.postgresql.org/images/2/25/Full- text_search_in_...](https://wiki.postgresql.org/images/2/25/Full- text_search_in_PostgreSQL_in_milliseconds-extended-version.pdf)

I think that doesn't take long to try Postgres FTS if you are already using it but it may require more investment if you need to move from MySQL to PG.

<comment><USER5> Thanks for the reply. English only. The only fuzzyness I've told my users about is "phrase here"~20 which would search for the given phrase within 20 words of each other. That helps for the imperfect OCR'd documents. A lot of the stuff we're indexing is best-guess OCR so it's nowhere near perfect. They are boring agreement documents that people have scribbled all over (setting up the redactions) so fuzzy is somewhat interesting to have. But it's not fuzzy in the sense of a typo, it's fuzzy in the sense that it's OCR'd garbage.

</comment></comment></comment></comment><comment><USER6> While it's certainly good enough for english bodies, its half-assed support for compounds is a problem for bodies in languages that use compounds (German for example).

There is sorta-support for compounds, but only really for ispell dictionaries and the ispell format isn't very good at dealing with compounds (you have to declare all permutations and manually flag them as compoundable) plus the world overall has moved over to hunspell, so even just getting an ispell dictionary is tricky.

As a reminder: This is about finding the "wurst" in "weisswürste" for example.

Furthermore, another problem is that the decision whether the output of a dictionary module should be chained into the next module specified or not is up to the C code of the module itself, not part of the FTS config.

This bit me for example when I wanted to have a thesaurus match for common misspellings and colloquial terms which I then further wanted to feed into the dictionary, again for compound matching.

Unfortunately, the thesaurus module is configured as a non-chainable one, so once there's a thesaurus match, that's what's ending up in the index. No chance to ever also looking it up in the dictionary.

Changing this requires changing the C code and subsequently deploying your custom module, all of which is certainly doable but also additional work you might not want to have to do.

And finally: If you use a dictionary, keep in mind that it's by default not shared between connections. That means that you have to pay the price of loading that dictionary whenever you use the text search engine the first time over a connection.

For smaller dictionaries, this isn't significant, but due to the compound handling in ispell, you'll have huge-ass(tm) dictionaries. Case in point is ours which is about 25 Megs in size and costs 0.5 seconds of load time on an 8 drive 15K RAID10 array.

In practice (i.e. whenever you want to respond to a search in less than 0.5 secs, which is, I would argue, always), this forces you to either use some kind of connection pooling (which can have other side-effects for your application), or you use the shared_ispell extension ([http://pgxn.org/dist/shared_ispell](http://pgxn.org/dist/shared_ispell)), though I've seen crashes in production when using that which led me to go back to pgbouncer.

Aside of these limitations (neither of which will apply to you if you have an english body, because searching these works without a dictionary to begin with), yes, it works great.

(edited: Added a note about chaining dictionary modules)

<comment><USER7> I've got a project that needed multilingual support over very, very small documents, and ended up just rolling that myself -- neither ElasticSearch nor Postgres cope very well when you start mixing multiple languages in the same document.

<comment><USER6> If it's indeed the same document, you're screwed. Yes. But in Postgres, I could at least have different column (or join tables with different language codes) for different languages and then query them with either dictionary.

ElasticSearch doesn't support that: All fields in a document are assumed to be of the same language which leads to a huge duplication of documents in cases where most fields of a document are language-independent.

<comment><USER8> > All fields in a document are assumed to be of the same language

That is not true. You can configure analyzers on a field basis, both for search and index.

<comment><USER6> Oh. Cool. Thanks. When I was looking into this, it wasn't yet possible. That's very interesting for me.

ElasticSearch has MUCH better support for language analysis to the point where it might be worth it to move from Postgres tsearch to ElasticSearch, but this limitation was a huge hurdle for me not being able to move.

<comment><USER8> I am surprised, that's possible since any version I've been working with (0.12x and up).

What you cannot do is control that via client (e.g. "this index request uses the chinese analyzer for that field only"), because the analyzer setting in the index request overwrites all other configs. Mappings supported that for a long time.

One of the arts of search optimization on Elasticsearch is finding fields that you want to index multiple times with different analyzers and combine in a clever fashion.

</comment></comment></comment></comment></comment></comment><comment><USER9> For full text search, the only global frequency information Postgres uses is the stop-word list. It does not do TF-IDF ranking. [1]

For example, if you search for "Bob Peterson", Postgres will rank these two documents the same:

"I saw Bob."

"I saw Peterson."

In contrast, an IDF-aware search would notice that "Peterson" occurs in fewer documents than "Bob" and score "I saw Peterson" higher for that reason.

[1] [http://en.wikipedia.org/wiki/Tf%E2%80%93idf](http://en.wikipedia.org/wiki/Tf%E2%80%93idf)

[2] [http://stackoverflow.com/questions/18296444/does- postgresql-...](http://stackoverflow.com/questions/18296444/does-postgresql- use-tf-idf)

<comment><USER10> TF–IDF ranking doesn't seem to be too complex a thing to implement. Maybe this is an opportunity for someone here to contribute to the open source project.

<comment><USER11> The concurrency aspects of this seem a bit tricky. How do we ensure that a bloated index does not screw our results too much?

</comment></comment></comment><comment><USER12> I'm surprised that there is no mention of the recent big improvements in the GIN infrastructure that Postgres full text search uses. The 9.4 release notes list:

* Reduce GIN index size (Alexander Korotkov, Heikki Linnakangas)

* Improve speed of multi-key GIN lookups (Alexander Korotkov, Heikki Linnakangas)

</comment><comment><USER8> The most important sentence: "Probably not if your core business needs revolve around search."

Postgres full text search is very good, but once you get into the realms were Elasticsearch and SOLR really shine (complex scoring based on combinations of fields, temporal conditions or in multiple passes, all that with additional faceting etc.), trying to rebuild all that on top of Postgres will be a pain.

While that doesn't break the article, it runs into a nasty problem: `unaccent` doesn't handle denormalized accents.

        # SELECT unaccent(U&'\0065\0301');
         unaccent
        </comment><comment>----
         é
        (1 row)

(That problem is also present in Elasticsearch if you forget to configure the analyzer to normalize properly before unaccenting)

<comment><USER4> Thanks for you comment, I was not aware of the unaccent limitation. This blog post only present a solution for small/medium search needs without adding extra dependency ... the postgres full text search is far of being a silver bullet

<comment><USER8> Yep, that's how I understood it and I like the rest a lot, too. I just wanted to make make the sentence stand out, as it is so far below. BTW, the problem seems to be that postgres doesn't actually handle decomposed UTF-8 and is non- compliant in that regard:

[http://www.postgresql.org/message- id/53E1AB15.8050702@2ndqua...](http://www.postgresql.org/message- firstname.lastname@example.com)

So, probably making sure everything is in composed form before writing to the DB seems to be the best way to go.

</comment></comment></comment><comment><USER13> Shouldn't this query:

SELECT to_tsvector(post.title) || to_tsvector(post.content) || to_tsvector(author.name) || to_tsvector(coalesce((string_agg(tag.name, ' ')), '')) as document FROM post JOIN author ON author.id = post.author_id JOIN posts_tags ON posts_tags.post_id = posts_tags.tag_id JOIN tag ON tag.id = posts_tags.tag_id GROUP BY post.id, author.id;

be rewritten as:

SELECT to_tsvector(post.title) || to_tsvector(post.content) || to_tsvector(author.name) || to_tsvector(coalesce((string_agg(tag.name, ' ')), '')) as document FROM post JOIN author ON author.id = post.author_id JOIN posts_tags ON posts_tags.post_id = post.id JOIN tag ON tag.id = posts_tags.tag_id GROUP BY post.id, author.id;

</comment><comment><USER14> If your working with a Ruby/Rails app, check out the pg_search gem [https://github.com/Casecommons/pg_search](https://github.com/Casecommons/pg_search)

It allows you to do the things in this article with ActiveRecord models.

<comment><USER15> Nice! In fact, this came up first when I searched "postgress full text search rails 4". I'll check it out. I was actually going to make a gem for my own needs. Hopefully you've done all the legwork for me! I'll also follow the repo and try to help out once I understand it. Thanks.

</comment></comment><comment><USER16> One use case where Postgres FTS fails spectacularly is when your search has to return results ordered by some field (e.g., timestamp). This is critical for applications that have to return close-to-realtime results due to the queried content being time-sensitive.

Neither GIN nor GiST indices support such document ordering. For a top-N query of the most recent results, the entire result set has to be processed. With common domain-specific words, this can be more than 50% of the entire document set. As you can imagine, this is insanely expensive. When you are in this situation, it helps to set gin_fuzzy_search_limit to a conservative number (20000 works for me, less if you expect heavy traffic) in postgresql.conf, so that pathological queries eventually finish without processing every result. Result quality will take a hit, because many documents are skipped over.

If you need any type of ordered search on more than a hundred thousand documents, do yourself a favor and use something else than Postgres.

I'm not sure what search back-end Wikipedia is using, but it seems like they are not quite immune to this problem either: [https://en.wikipedia.org/w/index.php?search=a+the](https://en.wikipedia.org/w/index.php?search=a+the)

</comment><comment><USER17> I really wish I had some benchmarks here. Postgres can be crazy fast, but can it compete with Elasticsearch? How long would a typical query across 1,000,000 documents?

<comment><USER18> I haven't made benchmarks specifically against other products, but we use PostgreSQL across a database of 7.7m blog-post length documents and have found the search to be extremely fast.

The only times in which search slows down is when you search for common words that are not stop words and are also performing ordering (such as ranking) across that body of results before returning your window. That is to say, the search is still fast but sorting a large resultset can be slow.

The only gotchas I would call out to anyone thinking of using PostgreSQL full text search are:

1) Beware of row-level queries like ts_highlight() for extracting a fragment of the matched text, be sure that you are only doing this for the n lines that you are returning for a LIMIT and not the entire resultset (most of which you will discard).

2) Beware of accuracy and think about the text you are indexing. If you are receiving raw markdown and transforming to HTML, then you shouldn't index either (raw markdown may contain XSS attacks that can survive ts_highlight(), and the transformed HTML will contain markup that will be indexed). You should figure out a way to build a block of raw text that is safe to index _and_ to show fragments for (ts_highlight()) which likely means running a striptags() over the HTML and also putting hyperlinks into the text (if you want those to be searchable) and indexing that.

We had no issues with performance, control over search ordering, or anything else. The only gotchas we encountered related to sorting and displaying results, and we resolved both easily enough, though too few of the high-level docs like the linked article pointed out the potential issues there.

</comment></comment><comment><USER19> Postgres, elasticsearch and SOLR all seem pretty heavyweight to me.

What's the lightweight approach to create an inverted index nowadays with some basic stemming?

<comment><USER20> You can always just roll your own with lucene or lucene.NET, which is what ES/SOLR use underneath.

<comment><USER21> I never use Lucene, but I got the impression fro others that it was difficult to use, and that Elasticsearch gives it a relatively usable layer on top.

<comment><USER22> It isn't that hard to use in my opinion, but it is only a library. So you need to implement many things to turn it into a server which Solr and Elasticsearch have already done.

</comment></comment></comment></comment><comment><USER23> Text search is ok in postgres. Better than mysql. Not as good as solr, but you don't have to sync with solr if you use it.

My main complaint is that 'united states' @@ 'united states of america' is false, ie no token overlap similarity.

You can overcome this w the smlar extension. Have requested smlar integration in 9.5

<comment><USER24> Has the team been responsive with regard to integration requests?

<comment><USER23> Craig K seemed to think it was a good idea. We'll see...

</comment></comment></comment><comment><USER25> We're using it on our IRC logging service, [https://botbot.me/](https://botbot.me/) and agree with the author's sentiments. It's not perfect, but it keeps our infrastructure simple and is very fast over 20M+ rows.

</comment><comment><USER26> I love this article especially when I'm thinking about the premature optimization. Having a good full text-search with adding zero components to the platform is great. When postgres search will be not enought, happy to add elasticsearch, sorl, and so on.

</comment><comment><USER27> It's awesome what you can do with Postgres, undeniably, but it seems to me that if you're building a Rails app, for instance, it's an absolute no-brainer to use the brilliant Sunspot gem with Solr. Yes, you have the moderate unpleasantness of setting up Solr and fiddling about with Java and XML files, but it's all pretty painless after that.

I don't know if similarly nice things exist for other web frameworks.

As others have said, what's described in the OP may well be "good enough" for many purposes but it seems like quite a lot of effort to get there.

<comment><USER28> Django has haystack[0], which I've used with an elasticsearch backend on a few projects and is generally pretty easy to set up and get good results with. I haven't had to do anything more advanced than autocomplete/boost/spelling suggestions, but from what I've read it seems pretty powerful.

[0]: [http://haystacksearch.org/](http://haystacksearch.org/)

</comment></comment><comment><USER29> Full text search is good when you have big passages of text to search, but it isn't good for typos on short fields. The tolerances just aren't configurable enough.

I was using it to search across user profiles, and while the fuzzy search was great for a slab of text in, say, an about me section, it wasn't good at all for short bits of text like name. Its just too fuzzy for short blobs.

</comment><comment><USER30> At least for our use case Postgres full text search wasn't good enough. Indexing and searching 1M records was troublesome, and its advanced queries weren't as flexible as we'd like, so after a while we started using Solr, and while it was better it still had its share of problems, so we are currently using ElasticSearch.

<comment><USER31> Hmm, was it "troublesome" in terms of performance building the index or doing the search or was there some other issue?

<comment><USER30> Part of the problem was due to the Django package we used to interface with the Postgres search, it wasn't designed to handle large tables. I don't recall how long the index took to build (hours? a day?), but the queries themselves were slow due to their complexity and ranking using ts_rank.

<comment><USER31> Interesting, thanks for the info. What did you switch to? Were the queries significantly faster?

</comment></comment></comment></comment><comment><USER10> Here's a nice PDF on some of the great performance you can get out of it [https://wiki.postgresql.org/images/2/25/Full- text_search_in_...](https://wiki.postgresql.org/images/2/25/Full- text_search_in_PostgreSQL_in_milliseconds-extended-version.pdf)

</comment><comment><AUTHOR> If you've used both FTS in postgres and either ElasticSearch or Solr recently:

Objectively, what are some data points when you need to switch over? E.g. more than 'x' values to index, index update time, or perhaps features like prefix/substring/phrase search, lack of facets, etc.

</comment><comment><USER32> For knocking up a site quickly with a search button I wonder how this compares with using Google custom search? I guess with Postgres you can cover stuff that Google has not indexed?

</comment><comment><USER33> For the record: MySQL has fulltext search already for MYISAM tables and _will_ have fulltext for InnoDB in 5.6.

<comment><USER34> did you read the article? He explained why MySQL's fulltext is not acceptable.

</comment></comment><comment><USER35> Faceting, spell correction, sloppy search, etc. are tricky to implement in Postgres.

</comment><comment><USER36> Swish-e is good enough.

</comment><comment><USER37> I wrote a half-assed full text search in Redis once. Want to go back and work on it some more just for kicks.

</comment><comment><USER38> If you're going to do something, do it right. Or leave search out of your product if you aren't willing to invest the effort and energy required to implement a proper solution.

Those SQL queries are hideous. Most people have learned that, because of many developers like this, to avoid search because it's next to useless. Please do us a favor and leave it out of your product if you aren't willing to invest in a proper solution. Not one that is "good enough".

<comment><USER31> Honestly, what is wrong with the queries? They use pretty straightforward SQL functions, datatype conversions, operators, and relational querying capabilities. Is it just aesthetics or are there performance or other actual problems with them?</comment></comment>


Ask HN: What are the 5 most important techniques you use at job? - <AUTHOR> During our professional career, we learn many things. We forget a lot of them. But there are few techniques which we use every day, they help us excel our job. <comment><USER2> 1\. Keyboard shortcuts. From Win-plus-number-keys to Autohotkey-defined macros. Makes the time between "think of task" and "accomplish task" instantaneous.

2\. Notes. From "what was the answer to this bug last time" to "how do you toString an Enumeration?" Increases your memory far beyond human proportions.

3\. Abstractifying problems. Don't just google error message, google "Tomcat having trouble compiling JSPs." Don't just be annoyed by scrolling, google "DBVisualizer select database shortcut".

4\. Documentation. When you write down "[This class] provides X" and "[This function] accomplishes X" you start to make classes that actually make sense and have a single purpose. When you understand something once and write that down, you don't have to reconstruct your understanding again.

5\. Probably taking some time to make your coworkers feel validated and help them out with their own goals.

<comment><USER3> Are your (not sensitive) AutoHotkey scripts available on Github or something? Maybe others could learn some neat tricks.

</comment></comment><comment><USER4> Do the shit work, and do it well.

I learned this working at a discount store growing up, not in my professional career but it carries forward. No teenage kid wants to mop the floor, but when you do it and do it well you get leeway on other stuff.

Monotonous code changes spanning over 100 files to transition an application off an older platform? Gotta be done. This is where macros and shortcuts and plowing through work comes in. Be a professional, not a prima donna.

You can't just write greenfield new applications using the best tools all the time. It would be like an auto mechanic only wanting to work on engine rebuilds for classic cars and not wanting to do oil changes all week. (I imagine this is the cool thing for auto mechanics, I'm not one though so I could be wrong.)

</comment><comment><USER5> Don't be a dick. When you are tempted to lash out, pause and do something else, even walk away if need be.

</comment><comment><USER6> For software developers:

1\. If you have trouble getting started on a project, just do something really small like add comments to your code. After that, you'll find it easier to do more difficult tasks.

2\. git checkout and git diff are two of the best ways to identify difficult bugs. Find the most recent version where the code where the software worked. Find the oldest version with the bug. Diff the two git SHAs.

3\. People skills get more important the later you are in your career. At a minimum, try to maintain positive body language and a positive attitude everyday so your coworkers enjoy working with you.

4\. Do some parts of your boss's job for him/her. That's a great way for your boss and your boss's boss to realize you're ready for a promotion.

5\. Go to industry conferences so you can learn your industry. Not just the technical conferences, but also the business ones. The better you know the business side, the better decisions you can make. The better decisions you make, the more likely you are to be well compensated.

</comment><comment><USER7> 1\. Know and understand the problem you're trying to solve.

2\. Communicate with your team. Whether it's an annoying problem with the standard library or debugging the impossible, you'll likely to spark new ideas or reconsider things previously overlooked just by talking to someone about it.

3\. Document everything and anytime you can. Even if it's just unorganized notes. The longer you wait, the more likely the knowledge will fade. You can always clean it up later.

4\. Earn your "Debugging Wizard" title by investing time in learning tools like gdb, strace, tcpdump, perf. Don't be afraid of getting your hands dirty. The more time you spend learning the stack, the more you can get out of it. Also frame this[1]

5\. Know when to leave work at work.

[1]: [http://www.brendangregg.com/Perf/linux_perf_tools_full.png](http://www.brendangregg.com/Perf/linux_perf_tools_full.png)

</comment><comment><USER8> 1\. Underpromise and overdeliver.

<comment><USER9> Correctly promise and correctly deliver.

<comment><USER8> What you said is _Correctly predict_

<comment><USER3> Which is probably way more expensive than almost correctly predicting, and making up for the inaccuracy by underpromising and overdelivering :)

</comment></comment></comment></comment><comment><USER10> Emotional detachment. During the low moments, remember that it's just a job and, as long as I'm being paid, I shouldn't care too much about all the bad shit that's going on around me.

</comment><comment><USER11> \- Duck ([https://blog.codinghorror.com/new-programming- jargon/](https://blog.codinghorror.com/new-programming-jargon/))

\- Divide et impera

\- Convention over configuration

\- Rubber Duck Debugging ([https://en.wikipedia.org/wiki/Rubber_duck_debugging](https://en.wikipedia.org/wiki/Rubber_duck_debugging))

\- Thinking about a problem while walking or playing some stupid repetitive game like candy crush or powermanga

</comment><comment><USER12> Being able to draw flowcharts to explain complex things to non-tech people.

<comment><USER13> If you're also able to make good drawings, this serves as a quick e-mail reminder of the stuff you've talked about ;-)

A good capture app (like camscanner or onenote) is great to complement this superpower.

</comment></comment><comment><USER14> Keep track of people you've enjoyed working with. They are hard to find.

<comment><USER15> This is good advice. It will pay off in the long run. I've learned this throughout my career. It's hard to find people who are on your wavelength, so when you work with them, keep in touch, you may be able to help collaborate again in the future.

</comment></comment><comment><USER16> 1) Judgement

2) Prioritization

3) If non-urgent then take the time to make good decisions

4) Discussion in person is best, phone is second best, email is worst

5) Don't underestimate the work other people do, or their attitude to it

</comment><comment><USER17> recognizing and testing assumptions

</comment><comment><USER18> Debugging and being able to communicate clearly with others.

</comment><comment><USER19> Listening to other points of view and figuring out how to fit them into what you want to do.

</comment><comment><USER20> How about you?</comment>


Ask HN: How would the world be 20 years from now with absolute free market? - <AUTHOR>

How would the world be like 20 years from now if from today and on absolutely free movement of people, goods and services was established? <comment><USER2> Don't get me wrong, as a general statement I support free markets. However, Keynes' thesis (which is misinterpreted 96% of the time I hear someone talking about it) was simply that sometimes there is an economic argument for government regulation. Keynes' simply pointed out that sometimes it takes a while for some markets to readjust back to equilibrium (i.e. the invisible hand is slow) -- sometimes the market price is sticky. In these cases, the government can implement policies that incentivize the actors to do more of something (by issuing a subsidy) or do less of something (issuing a tax) in order to push the market back to equilibrium. That's the economic argument of Keynes.

The other component here is the idea of a public good. A public good is something the private sector doesn't have an incentive to do on their own (b/c they can't make money off of it), but it is something that society would benefit from. The role of government is generally to provide these public goods, such as national defense and parks.

So, the world will never have completely free markets. Besides providing national defense, the government also provides services designed specifically to protect consumers from unfair business practices, like collusion, price fixing and other monopolistic behavior (although, I just want to point out that is NOT illegal to have a monopoly in the US -- it is however illegal to monopolize -- big difference).

</comment><comment><USER3> Phased in or decreed universally tomorrow? Free movement of people implemented immediately would mean chaos as millions of people from developing countries rush to developed nations, overwhelming infrastructure and collapsing the unskilled labor market and overburdening social welfare/entitlement programs.

Ignoring the people movement, income inequality would skyrocket, and boom-bust cycles in finance, agriculture and manufacturing would become faster and more severe.

<comment><USER4> I'd imagine there would be massive social unrest at the idea of abolishing certain public services.

Power would concentrate in a handful of corporations; price fixing and monopolies would become the norm.

</comment></comment><comment><USER5> Since no country has tried it, no one knows, but I'm sure that won't stop a bunch of sarcastic replies.

I'm going to treat this as some kind of fun thought experiment and ignore a lot of the details. I've always thought some form an ultra free market oriented society _could_ work. But...

1: The first problems I wonder about is that the system is relying on individuals to be making actively intelligent decisions. How convinced are you of intelligence of the medium person? For power not to concentrate into too few hands, a large percentage of the population has to actively react to shifts in wealth, morality and power. I'm hesitate to declare this would work.

2: Can a free market naturally produce a safety net? Maybe. It is likely in order for society to function in a healthy manner one would need something to help the down and out. Shit happens, life isn't fair, bad decisions need help being corrected. I think it is more likely a government would have to provide some of this net. I've always thought creating a 'human right' to a basic income (say you get $5000 a year no matter what) paired with an ultra free market society would be interesting. Would it be the best? Idk. But it would certainly be interesting to _try_. (I think Hayek said something vaguely similar)

3: Tragedy of the commons. We aren't trapped as a species to forever repeat destroying the commons. But it sure as hell happens a lot. Pollution much like crime needs a government force to reign it in. There is no market solution to it. Something like a park system is likely similar.

But overall, as a planetary body of people, I think we're due to trying something new soon. We've spent the last 100 years or so converting most places to mixed-economy democracy. We should probably start to try other interesting systems. Kind of like what Denmark is doing. They are going in the other direction completely, but it is interesting. [http://en.wikipedia.org/wiki/Economy_of_Denmark](http://en.wikipedia.org/wiki/Economy_of_Denmark)

<comment><USER6> "Can a free market naturally produce a safety net?" When Margaret Thatcher was asked before she succumbed to dementia if she would do anything differently, she replied that she had believed, that making people rich would mean that they would help the poor, but now she realised that they don't.

</comment></comment><comment><USER7> * cost of goods and services drop significantly (trade 'agreements' only serve to make things more expensive for the end consumer to benefit a small number of producers) * cost of transport of goods and people drop significantly (think self-driving vehicles) * fiat currencies (USD, EUR, GBP, JPY etc etc) disappear to be replaced by market-chosen alternatives (gold, silver, bitcoin??) * average standard of living across the planet increases - this is a corollary of the previous three points.

</comment><comment><USER8> What on earth does that mean?

* An absolutely unregulated market?

* No International standards guaranteed or enforced? Then screws bought in one country wont keep panels in another held together.

* As in kidnap, murder and extortion not enforced? This is my pet reply for "too much red tape". _everything_ is a trade related regulation.

* As in no tariffs between countries. That's not a bad idea, but a flat tariff to ensure fair salaries of border staff would help.

* As in suddenly those countries that are not democracies also fix all the internal problems that are not technical tariffs but act like them Well, let me rephrase that "What if every country became democracy tomorrow?"

* As in you can work in any country you like? 70% of all western jobs are office based, and so 70% of all jobs are probably doable from any point on the globe with a IP connection. And that needs no regulatory changes except in countries where democracy does not apply.

Since the first round of WTO agreements in '48/49 World trade levels have leapt through the roof. Lets just keep going on the WTO rounds as they are.

<comment><USER9> In this hypothetical situation, why is democracy a necessary precondition for a free market?</comment></comment>


More details about the justin.tv eviction from YScraper - <AUTHOR> http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2007/04/28/JUSTIN.TMP&feed=rss.news <comment><USER2> _At least three tenants complained about the large number of people coming and going at all hours and the filming of tenants and common areas without permission, according to documents Bornstein sent to Justin.tv._

I'd be miffed if the nature of the block I rented in changed to match the above description. The odd party, fine, OK. But the larger foot-fall can be disruptive, especially if you're trying to work at home.

The landlord can probably easily re-fill the apartments with low-hassle tenants, just like the justin.tv crowd used to be, so he'd be daft not to. Ignoring complaints from other tenants wouldn't be a good thing for the landlord to do either.

Whilst awkward for those being evicted, it isn't too surprising, and may be best for justin.tv in the long run, e.g. forcing them to find a more interesting location.

</comment><comment><USER3> This is just really all very ugly. Justin should get one of the 'business' more suave guys on his team to talk to the landlord about it and point out all the great publicity the building's getting from the Y teams...if indeed they still want to stay there. The landlord's a business guy. In the tech industry, hackers rule but in the 'real' world, it's all business.

Also, while it's very sweet that his loyal fans have put up a site to not evict Justin, I have a feeling Justin and the gang is about to get slapped with a defamation court order if the landlord finds out about it. Ah, the things you can sue people over

<comment><USER2> Would the landlord want such publicity? If he is only interested in attracting tenants who are technology start-ups, then perhaps so. Or maybe he prefers quiet tenants who keep their heads down and don't disturb other tenants? The latter are easy enough to come by and pay the same amount of rent.

</comment></comment><comment><USER4> I can see how being in your boxers doing your laundry when some guy comes in with a video camera strapped to his head, broadcasting to the world, would be a bit disconcerting.

</comment><comment><USER5> Relevant reading:

" Many more startups, including ours, were initially run out of apartments. If the laws against such things were actually enforced, most startups wouldn't happen.

That could be a problem in fussier countries. If Hewlett and Packard tried running an electronics company out of their garage in Switzerland, the old lady next door would report them to the municipal authorities."

from "Why startups condense in America" PG.

</comment><comment><USER6> I was actually looking at one of Trinity's buildings for a place to stay for the summer. On second thought...

<comment><USER7> I stayed in Trinity Towers at Polk/O'Farrell between 1991 and 1995. The building has 2 towers about 12 stories high each. On the 4th floor there is a city viewing deck with pool, jacuzzi, sauna, and a health club all with views of the city. There is a drive in garage with elevators right to your apt. My apt had a great floor plan on the 9th floor with large modern bay windows and city views - it was the ultimate bachelor pad. The management was very professional and responsive, and it is one of the best apts I've ever had.

</comment></comment><comment><USER8> This is outright jealously and conspiracy. This is just ridiculous as to how people cant digest the fact that companies getting out of YC are going places. All the reasons given in here like noisy parties and things are funny. But one thing is that YC/PG combo has ruffled few feathers :).</comment>


Gittip: Open Source Financing - <AUTHOR> http://lucumr.pocoo.org/2012/8/27/open-source-financing/

<comment><USER2> There are a few interesting things at work here.

Gittip seems highly popular amongst Python contributors at the moment. The top four, other than the Gittip founder himself, are all primarily Python devs[1] and will make $2,400 per year (~$50 per week) from Gittip if it remains steady.

I wonder if Gittip is more popular within the Python community currently or if this is just a skew in the numbers. I do know that Armin has been encouraging people through Twitter to use Gittip if they feel his work is useful. I'd be interested to see if/when Gittip becomes more popular in other programming circles and what impact that has on payments.

The other thing is that >$2,000 is actually a significant amount of money. It moves past "beer money" to "helps with rent" money and I expect this figure to continue to rise over time, especially for star OSS contributors. On top of that, it's also a form of social validation, especially when it is received when one gives their time freely with no expectation of a return.

Over time I think we'll find Gittip will encourage encourage and enrich the existing open source software model, not destabilise it as some people fear. Imagine if successful start-ups decided to give a few dollars to the creators of the software they use to make money. When your company is pulling in $10k per month, giving $50 per month (~$10 per week) to the creator of [core library] seems obvious and beneficial to both parties.

[1]: jnoller (Python/CPython), kennethreitz (Python Requests/Python for Humans), mitsuhiko (Flask/Jinja2), alex (Django,PyPy,CPython),

<comment><USER3> I think Gittip is starting out amongst the Python community because it is built in Python. One of the signs Gittip is maturing will be its prominent use by another dev community.

I appreciate the work prominent OS contributors have made, and I hope that Gittip takes off.

<comment><USER4> I think it's network effects from it's founder as well. It is written in Python, Chad is active with python stuff. I think that the Python community is generous, but I doubt any more so than most other OSS communities. (Please prove me right!).

<comment><USER5> Speaking for direct personal experience: the Python community is _amazingly_ generous. In some ways, more generous and giving and understandable than any other community I've been part of.

Of course, I'm grossly biased[1], and have been very lucky[2]

[1] [http://jessenoller.com/2011/07/28/thank-you-the- impossibilit...](http://jessenoller.com/2011/07/28/thank-you-the- impossibility-of-its-going-to-be-ok/) [2] [https://www.youtube.com/watch?feature=player_detailpage&...](https://www.youtube.com/watch?feature=player_detailpage&v=yflKOoAohEk#t=253s)

</comment></comment></comment></comment><comment><USER6> I back four people on Gittip, and I plan to increase that. Both in the amounts, and the number. I don't expect this money to go to anything specific. I don't even expect it to go to something related to the things you all do that give me reason to tip every week in the first place.

I do this because I want to. because I feel a need to give something to people who every day make my life a little easier (the OSS projects I use), or now and then do big and huge things (PyCon) that make my life better.

So, I want to do the same. I want your lives to be "a little bit better". Maybe that means you can take one gig less and spend more time on your free software projects. Maybe it means more time with the family, or friends, or alone. Maybe it means an extra video game in the budget this month. Whatever it is, that is your decision. It goes to something, I assume, that makes your life a little better, a little happier, a little easier.

I'm selfish, you see. The less stress you have, the more energy you have to put to the things that help me. It doesn't have to be direct. Go out and take up a new hobby with the money, spend it completely unrelated to the open source work you do. Because, when you come back home, you're going to feel a bit refreshed, with a clearer head, and you're going to do something great.

<comment><USER7> Love it. Thank you.

</comment></comment><comment><USER8> Having individuals tip is great but I think Gittip needs to support corporate sponsors. That's where it could turn from $50/week for someone to something quite a bit more substantial. I can see companies supporting projects on which their company depends.

Case in point is VMWare supporting Redis. It's an extreme (they hired @antirez) but I think a developer could make a living off a handful of companies all pitching in a couple thousand dollars a year.

<comment><USER9> Can't a GitHub account be a corporation? AFAIK it can.

So where's the holdup?

<comment><USER10> The big issue here is that they still have the same limit on the max they can donate, $24 a week. Which, while fantastic! Isn't enough to move the need in the way the parent poster was discussing.

<comment><USER11> The way the site reads to me, the reason they have the limit is specifically to throttle the influence from a single contributor. If that is where they are coming from, I'd expect they would be reluctant to give more such power to companies than to individuals.

<comment><USER7> Here's the strong statement of the idea:

"enable companies to sponsor people"

<https://github.com/whit537/www.gittip.com/issues/106>

At some point the question becomes, why not just take a job at a company with a strong "open-source time" clause in your contract?

</comment></comment></comment></comment></comment><comment><USER9> I'm on gittip. Saw it here on HN, started tipping a few of my heroes immediately.

I didn't think of it as OSS financing, but rather as a way of making Armin's Friday beers-with-friends free for him. We'll see how it works out in the long run, but if that is all that it ever accomplishes – I'll still be backing it, because it's a _nice_ thing to do.

<comment><USER10> Honestly, the numbers for several of us (myself included) have well surpassed funding our beers with friends. Which is amazing, a little bit scary, and incredible. Unfortunately that leaves me in this awkward position where it's not enough to replace my day job, but it's a large enough sum of money that I want to do _something_ with it, specifically something related to my open source work. If people are willing to try to fund my work, they should get their money's worth, even if it's not my full time job. For now what I'm considering doing is trying to use those funds to travel to various conferences I wouldn't ordinarily make it to.

But I'm interested in hearing what people "tipping" think. What do you guys want me (us) to do with this money until it's a full time salary?

<comment><USER5> For me, personally, seeing gittip's come in is both a form of validation, and also at a certain point it can "free" me from the choice some of us who are full time employees, and then over-full time OSS/Community workers from having to decide between:

1> Do community/OSS work - the former being, well, highly political, painful, slow and yeah.

2> Drop the community work and just pick up paid contracts on the side to help my family.

I'll always be part of OSS, no matter what - but there's a point at which the time/benefit ratio (depending on what you're working on) becomes on of "how much time can I rationalize working on this when I have other things to deal with".

In my case, albeit a fairly unique set of circumstances, it's a choice between time with my girls, medical bills, etc, etc and the choice to dedicate a lot of time working on things a lot less sexy than code.

Sure, as others point out, I get paid a salary, I have a full time job. But as I also point out in <https://www.gittip.com/jnoller/> \- I've got a lot of other "full time jobs" not _including_ family time.

Just some thoughts - for you, using the funds to go to conferences, teach and do things your current funds would not cover or allow you to (say, taking unpaid leave to do a workshop someplace) would be a _fantastic_ use of it.

</comment></comment></comment><comment><USER12> Most of us use some amount of open source software. I think it is in our benefit to support those who make the effort to create and maintain the software we use every day.

</comment><comment><USER13> I'm not sure who this is aimed at, open source software developers seem to fall into two major categories:

\- employees at a company working on or using specific open-source software

\- passionate individuals (sometimes small groups, usually after an original author gets a following)

The former are already paid, and the latter aren't in it for the money. The psychology of money is such that when you introduce money into the equation it becomes a "job", and people treat it as such. e.g. Would you help a friend move house for free? Yes. What if they paid you $3? No...?

Who is this product for, and how will it avoid this paradox of getting more out of people for "free" ?

<comment><USER5> Like Alex, I replied elsewhere (<http://news.ycombinator.com/item?id=4439026>) - I fall into both of your categories. However in the latter case (passionate individuals) there's a lot of work out there that doesn't fall into "cool new sexy code with lots of followers) and rather falls into the "sweeping the floors, working out outreach and fighting stop energy in various things) that are a lot less emotionally and tangibly rewarding (in fact, they're more draining than coding) than shipping awesome code.

</comment></comment><comment><USER14> I can't stress enough btw that I am more than happy with what I get out through gittip :-)

</comment><comment><USER15> If you find this topic interesting, there was a presentation at GUADEC from Adam Dingle of Yorba (<http://www.yorba.org/>) about "New funding models for open source software"

<https://lwn.net/Articles/511260/>

<comment><USER7> Cool! Thanks for the link. :-)

</comment></comment><comment><USER16> "Now if you look at the numbers it's not doing super amazing currently but I believe that's because not enough people back it at the moment and for a while that was mostly because getting money out of there was not yet easy enough."

The issue of getting money out seems to be solved: [http://blog.gittip.com/post/30116848405/with-payouts- gittip-...](http://blog.gittip.com/post/30116848405/with-payouts-gittip-is- minimally-viable) (Posted previously: <http://news.ycombinator.com/item?id=4429225>)

<comment><USER7> Automatic payouts landed last week (which was week 12 of Gittip). Reminds me to check whether the deposit cleared ...

<comment><USER7> It did! Woo-hoo! Thank you people! :D

Here's the page to connect a bank account if you have money to withdraw from Gittip:

<https://www.gittip.com/bank-account.html>

If you're not in the US then you should add a +1 here:

<https://github.com/balanced/balanced-api/issues/23>

</comment></comment></comment><comment><USER17> This website is important. Even in it's current stage, this is one of the long-term solutions to the main problems of FOSS.

Kudos to the owner for dogfooding it.

</comment><comment><USER18> At what point is Gittip going to be issuing 1099s for all of the individuals it donates to?

<comment><USER19> IANAL. The IRS allows gifts (bona fide no-strings-attached gifts) from individuals to individuals up to $13,000 per year with no tax required†. After $13,000 it is the responsibility of the giver to pay taxes on the gift, not the recipient. To be clear, the person receiving gifts can receive up to $13,000‡ _per giver_ tax-free. There is no limit on how much a recipient may receive as a gift without paying tax. gittip does not even approach these limits, and if it did then the _giver_ would file Form 709, and there would be no 1099.

† [http://www.irs.gov/businesses/small/article/0,,id=108139,00....](http://www.irs.gov/businesses/small/article/0,,id=108139,00.html)

‡ married couples may collectively give up to $26,000 per recipient per year

<comment><USER7> Here's the ticket tracking the tax implications of Gittip:

<https://github.com/whit537/www.gittip.com/issues/96>

TL;DR: It's too early to tell. We've started contacting tax professionals and don't have good answers at this point.

</comment></comment></comment><comment><USER20> What's with selling OSS? Let's say you provide the sources, but you sell the software using the app stores of the plattform. It's basicly the business model Red Hat uses.

I am askin' myself why software developers don't try this.

</comment><comment><USER21> You don't need to insert money in order to be able to get money from the flattr system.</comment>


COZ: Finding Code That Counts with Causal Profiling [pdf] - <AUTHOR> http://www.sigops.org/sosp/sosp15/current/2015-Monterey/printable/090-curtsinger.pdf <comment><USER2> It is worth noting that the profiler is fully open-source: [https://github.com/plasma-umass/coz](https://github.com/plasma-umass/coz). There is even a package for Arch Linux!

</comment><comment><USER3> Man, I love the idea, even though a lot of the code I want to test is tied to hardware that can't be just slowed down.

They show several examples where speeding up a line is predicted to slow down execution, but ~actually optimizing it had the opposite effect, so kudos to them for including bizarre results too. I hope they take this farther; seems promising.

</comment><comment><USER4> Very interesting work. Would love to see something like this for the jvm.</comment>


HomeAway sues SF over "Airbnb law" - <AUTHOR> http://blog.sfgate.com/techchron/2014/11/03/homeaway-sues-sf-over-airbnb-law/

<comment><USER2> And now that AirBnB has regulatory protection for their business model, they will be on the same side as the traditional vacation rental and hospitality industry in fighting this.

Welcome to the new disruptive innovation, same as the old disruptive innovation.</comment>


Physicists found a new quantum paradox that casts doubt on a pillar of reality - <AUTHOR> https://www.sciencealert.com/a-new-quantum-paradox-throws-the-foundations-of-observed-reality-into-question <comment><USER2> The original Wigner's friend paradox: [https://en.wikipedia.org/wiki/Wigner%27s_friend](https://en.wikipedia.org/wiki/Wigner%27s_friend)

The paradox seems to rest on magical thinking about consciousness, and if one simply accepts that a conscious observer can be in a superposition like any other piece of matter, the paradox is resolved.

And, from the article:

 _For Wigner, this was an absurd conclusion. Instead, he believed that once the consciousness of an observer becomes involved, the entanglement would "collapse" to make the friend's observation definite.

But what if Wigner was wrong?_

Well, obviously Wigner is wrong, sorry for being flippant.

In this paper (preprint here: [https://arxiv.org/pdf/1907.05607.pdf](https://arxiv.org/pdf/1907.05607.pdf)), the magical thinking about consciousness seems to be transmuted into _" "Absoluteness of Observed Events" (i.e. that every observed event exists absolutely, not relatively)"_. The authors (it appears to me) mean by this that if an observer performs an experiment, while this observer is himself in a superposition, we have to regard the outcome of the experiment as absolute (i.e. not in a superposition) because it was made by a (conscious) observer.

In my opinion, both " _Absoluteness of Observed Events_ ", and the equivalent from the layman's article, " _When someone observes an event happening, it really happened_ ", is a disingenuous and confusing way of talking about observers who are in a superposition. We have crossed over from "quantum mechanics is weird" to "these superficially intuitive but clearly false assumptions about quantum mechanics are weird".

(by the way, I read the article here: [https://theconversation.com/a-new- quantum-paradox-throws-the...](https://theconversation.com/a-new-quantum- paradox-throws-the-foundations-of-observed-reality-into-question-144426) because that site doesn't think I'm a robot and then redirects me to the homepage after filling out the captcha)

<comment><USER3> > if one simply accepts that a conscious observer can be in a superposition > like any other piece of matter, the paradox is resolved.

It's not so simple. Suppose you're in a box and observe a quantum experiment, and then I open the box and observe you. Then before I open the box you're in a superposed state |x> \+ |y>, corresponding to the two possible outcomes x and y. Fine, no problem so far. But what is your own subjective experience? You, subjectively, inside the box, will only ever observe yourself to be in |x> or |y>, never |x> \+ |y>. Even if from the outside your brain can be said to be in a superposed state, your experience of the world is not superposed.

<comment><USER4> Many-worlds interpretation takes care of this. Anyway, how do you know your experience of the world cannot be superposed? Have you ever been in superposition? We make up stories to maintain consistent histories all the time.

<comment><USER3> > how do you know your experience of the world cannot be superposed?

For your experience of the world to be superposed it would mean that you carry out a quantum experiment with two mutually exclusive outcomes |x> and |y> and you actually experience the superposed result |x>+|y>. This would be like opening the box in the Schroedinger's cat experiment and actually observing the cat to be |alive>+|dead>, instead of either alive or dead. Maybe it's possible, but such an experience has never been reported.

<comment><USER5> It's "possible", but not really possible. The larger the object is, the harder it is to maintain superposition. Even the slightest nudge will tend to push it all into one state or other. Seeing the superposition directly would be like standing twenty octillion strands of spaghetti on end.

So it's "possible" but would never happen in a trillion lifetimes of the universe. You can tell the difference between that and "impossible" by watching the quantum mechanics work for a few isolated particles, and observing what it means for them to fall out of superposition equilibrium. But in practical terms, it's equivalent to impossible.

</comment></comment></comment></comment></comment><comment><USER6> Whenever I hear about weird shit from the realm of quantum physics (this theory, double-slit, etc..) I can't help but think:

Why would I hardcode values for imperceptible objects, that would take an enormous about of ram and cpu time to constantly update values in the off chance it's needed.

Much more efficient to optimize for what the _player_ can see at their perspective. Oh and I should probably code in some error handling in the fluke event one of these particles is detected, I'll just calculate their position retroactively, the user will never be able to tell and we can host way more players due to the reduced memory.

It would seem to me that god is a junior dev and no one reviewed his pull requests.

<comment><USER7> One problem with this view is that "unobserved" particles still take up a large (possibly larger?) amount of computation. Rather than being in one position, it acts like a wave, being a little bit in every possible allowable position. These probability waves also interact with each other (which is what the double slit experiment demonstrates).

That being said if it was demonstrated that un collapsed wave functions are somehow more efficient to calculate that would definitely give credence to the simulation hypothesis.

<comment><USER6> > That being said if it was demonstrated that un collapsed wave functions are > somehow more efficient to calculate that would definitely give credence to > the simulation hypothesis.

Well said. I can certainly imagine a few functions that may prove to be more efficient at generating waves than fixed known positions + velocity for every subatomic particle in the universe.

Here's the part that really takes us off the rails, if we assume for a minute that we are in a simulation and that the parent world has godlike resources compared to our own and they likely have similar hardware concepts (ram, cpu, gpus, maybe even ASICS) then what functions are more efficient would depend on which hardware they have less of.

If ram is plentiful why not have fixed known values for every particle? Store it in memory and let the gpu detect collisions.

If gpus are plentiful (my guess) and we're bound by ram limitations, best to only store positions of things that are visible and clear the rest out of ram for more important calculations.

Imagine how inefficient it would be to render and simulate black holes colliding on the other side of the universe if the players will never even notice. Just queue up the function and run it on off-peak hours. Save the extra server resources for other simulations running in parallel.

If I'm right - a big if - we're likely an anomaly or early prototype among the simulations, one in which the dev team never imagined a race would evolve and progress enough to measure the bounds of their container. If I'm right again on this last point, we're likely being monitored closely to decide if subsequent patches require more resources to simulate completely and avoid player's realizing they're in a simulation or accept it as a remote possibility and move on.

<comment><USER8> if we're a simulation i somewhat doubt whoever made our simulation is really worried about "resources" and "efficiency". Whatever real universe that may exist may not even follow our laws of physics. Maybe energy is actually unlimited and free in the "real world". Maybe matter can be made from nothing effortlessly.

<comment><USER9> Why would someone build a simulation of a world utterly unlike their own?

When we build simulations for ourselves, they're always attempting to approximate reality as closely as possible. The goal is to learn useful things about our own world or society and to try out many forking paths, in a simplified representation of reality.

If we're in a simulation it stands to reason that whoever is running it is somewhat human-like, and exists in a world that has basically the same physical laws ... or at least, similar enough that sociological and technological development would be the same. For instance, the speed of light barrier is pretty damn inconvenient for us but would be great at blocking an arbitrarily large population and state space explosion. And why are these magic physical constants so arbitrary anyway?

If we _are_ in a simulation, and our simulators _did_ want to limit their resource consumption, adding in a few physical laws that are never really a problem in daily life and which block us from colonising the galaxy would be a nice way to do it.

<comment><USER8> Conversely, I would wonder why anyone would simulate something so similar to their own reality. We've already seen with humans that history repeats itself endlessly. Humans haven't really fundamentally changed in thousands of years. And humans do studies of the sociology of other species all the time. I think it'd be much more entertaining to simulate a world the laws are near opposite of our own. I would want to see what a species is capable of when restraints are lifted. To limit them to a single planet seems boring.

As an aside, I think one of my personal arguments that we're in a simulation is that we live in such an interesting time. We're beyond a world with 95% farmers. Technology is advancing faster than ever before. It's such a critical time in human history and the 20th century is personally where I'd choose to start a human simulation. It's convenient that this is our shared spot in time.

</comment></comment></comment></comment></comment></comment><comment><USER10> The article lists three assumptions that one might intuitively think hold. The problematic assumption is this one:

> When someone observes an event happening, it _really_ happened.

Given the experiment from the paper, I would rephrase this assumption as "it's not possible to rewind things". But obviously inside a computer simulation made up of operations that are all individually reversible, it's trivial to rewind things.

The experiment sets up a situation where certain information is reversibly recorded, and then the records are unmade by temporarily rewinding. The rewinding is obfuscated by hiding it inside of a measurement that is incompatible with the presence or absence of the record. I guess the authors might disagree about the measurement implying rewinding, but as a bit of evidence I'll note that Scott Aaronson and Yosi Atia have shown that performing the measurement in question over a simulated agent is at least as expensive as rewinding the simulated agent [1]. Whatever is being done, it is doing some _seriously expensive_ screwing around with the agent's state. It's like the experiment has a step where you feed the human through a giant meat processing plant, and for some reason everyone is pretending that's not somehow important.

Basically, the authors are appealing to the intuition that humans are big complicated in-practice-irreversible things, so clearly a record is permanent if it has affected the state of a human. But then they imagine instantiating the human's state inside a ridiculously powerful computer capable of reversibly simulating time advancing and of performing operations that have been engineered specifically to mess with the presence or absence of the record's effects on the human's state. Surprise surprise, the record gets messed with. Then for the actual experiment the big complicated ball of dependent spaghetti that is a human is replaced by a nice simple photon going along one path or another path.

1: [https://www.scottaaronson.com/blog/?p=4786](https://www.scottaaronson.com/blog/?p=4786)

</comment><comment><USER11> Based on my very limited understanding it seems that anything that interacts with a system can be treated as an "observer", and thus a chain of observations can occur as one particle interacts with the next, enlarging the system that is in superposition for the next observer.

Do physicists axiomatically treat a "conscious observer" as an atomic unit? It seems the case based on neurological and psychological research that the mind is actually not a single unit but many units working together, and the sense of a singular self is an illusion, which would correlate with the fact that we are made up of a conglomeration of atoms and systems made of these atoms.

When we say that a person is observing a quantum system, could this actually be a cascade of observations of various parts of the mind rather than a singular event, since the mind is not monolithic?

On a side note (and perhaps unrelated), if different parts of the brain/mind could be in different quantum states, could this be a factor in how the mind operates?

</comment><comment><USER12> I don't know to what degree the metaphor is accurate but as a non-physicist I find thinking about quantum mechanical experiments easier if I think of them as running code on a vast decentralized computing infrastructure.

The concept of "measurement" is just executing code on one node that populates local registers- "creating" not "measuring". Yes- by running code you are pulling on a reality fabric that we still know almost nothing about. But I find it easier to visualize than relying on my colloquial/non-QM intuition in words like "measuring"\- which implies something like a single centralized reality database, not a creative decentralized infrastructure. QM experiments seem to create things, not measure them.

Would love to learn metaphors of folks in the space.

<comment><USER13> I'm just now teaching myself QM (20 years after school). I can tell you that in QM, seemingly innocuous phrases like "locality" have highly unintuitive, nonstandard meanings. I'm just now getting a glimpse at how amazingly fucking _awful_ pop-sci QM articles are.

If you're interested in QM, read "The Theoretical Minimum"; the second book gets into QM. There are video lectures of the same material that complement the series, we'll.

<comment><USER12> Appreciate the reference, cheers.

<comment><USER14> There are lectures by Susskind at Stanford on YouTube that go with them by the way.

</comment></comment></comment></comment><comment><USER15> The part that seems the most dubious to me is the "choice":

> 2\. It is possible to make free choices, or at least, statistically random > choices.

I don't see what would be really compelling in that.

If it's false it would just mean that our actions are all kind of mechanistically decided by other events, and that does not shock me.

Other point:

> 1\. When someone observes an event happening, it really happened.

What if it really happened in the reality of the observer (and maybe not in other realities)? What is meant by "reality"? Some insight is to be gained by precising what we call the reality, in relation to the corpus of all the observations in what we believe is our universe.

<comment><USER16> The main problem of quantum interpretation is the supposed, artificial, distinction between observer and observed system. In a quantum world this distinction is not possible, every event capable of "observing" a system is itself part of the system, modifying it. That's why such interpretations (postulating this separation) give all kinds of strange paradoxes that are impossible to solve. In the quantum world, there is no such thing as an observer, it is just all part of the system.

Consider for example the system composed of a pool table. In classical physics we can assume we can always measure the position and momentum of all balls in the table. But what would happen if measurement was not possible without big changes in position and velocity? Suddenly the whole notion of "observation" would lose its meaning, and the only way to describe the pool table is as a probabilistic mesh of balls moving around in uncertain directions.

<comment><USER15> Yes, I think you put your finger on it. As the observer is part of the system, his "reality" is as much superposed, entangled, etc., as the quantum events that compose it (himself and his observation too).

That would give credit to the multiverse interpretation of quantum mechanics then.

Maybe the observation process of a quantum phenomenon by a human observer is akin to the orthogonalization of a matrix:

as the observer becomes entangled with the observed particle, each possible observer-eigenstate (i.e. any observer in "his reality") ends up observing an eigenstate of the observed quantum phenomenon, instead of a dirty superposition.

To call it "orthogonalization of the observer-observed system" would be more descriptive than "wave-collapse", but the main difference is that the orthogonalization treats in parallel all possible outcomes, each linked to a different state (outcome) of the observer too, whereas the "collapse" view insists on the fact that the observed eigenstate is unique. And moreover, at least in mathematics, there are conditions for the orthogonalization to be possible at all, so that should be interesting.

</comment></comment></comment><comment><USER17> Actual paper: [https://arxiv.org/abs/1907.05607](https://arxiv.org/abs/1907.05607)

<comment><USER18> Rendered for web:

[https://www.arxiv-vanity.com/papers/1907.05607/](https://www.arxiv- vanity.com/papers/1907.05607/)

</comment></comment><comment><USER19> Veritasium has a great video that explains the concept of parallel worlds vs wave collapse in a single world [https://youtu.be/kTXTPe3wahc](https://youtu.be/kTXTPe3wahc)

<comment><USER20> Nice video. Now I wonder if God uses structurally shared data structures in his implementation of the world. I also wonder if there can be a kind of continuous description of branching that is more amenable to calculus than the discrete tree-like branching.

<comment><USER21> I think MWI actually predicts continuous branching. The prescription for MWI is just to run the Schrodinger equation forwards in time. So the branching would look like one blob of probability gradually becoming bimodal, and then splitting into two components with less and less overlap. (There might also be 3-or-more-way branches, not just binary splits.)

<comment><USER22> Tell me about the 'superworld' that hosts the many worlds.

<comment><USER21> I mean, physicists don't usually go around talking about superworlds, but maybe this corresponds to the concept you want?: [https://en.wikipedia.org/wiki/Hilbert_space](https://en.wikipedia.org/wiki/Hilbert_space)

</comment></comment></comment></comment></comment><comment><USER23> > if the "friend" is a human-level artificial intelligence running in a > massive quantum computer.

Well, there's your problem right there. No AI can run on a quantum computer. Intelligence is inherently a classical phenomenon because it requires copying information, and quantum states cannot be copied, only classical states can be copied.

The classical world "emerges" from the quantum world when you take a quantum system and choose to consider only a subset of its degrees of freedom. When you do that, what results is a "mixed state" which behaves classically. This is not a reflection of any (meta)physical reality, it's just a consequence of your point of view. But here's the thing: you yourself are a subset of a quantum system, and so you yourself have no choice but to take this point of view. You cannot ever take the "god's-eye view" and "see" the whole system. That is fundamentally impossible because "seeing" requires copying information, quantum states can't be copied yada yada yada. Even God cannot "see" the god's eye view!

<comment><USER24> > quantum states cannot be copied

Wouldn't quantum entanglement enable a comparable ability?

<comment><USER25> Entanglement means that there are systems with highly (more-than-classically) correlated state - that the combined state is something that can't be represented by considering the systems independently - not that the states are the same. The no-cloning theorem prohibits a _process_ that takes the state of a system and replicates it on another system. It's certainly possible to have or to generate entangled sets of systems that have identical separable state, but not to copy an arbitrary state.

</comment></comment></comment><comment><USER26> I'm pretty sure "many-worlds is false" is _not_ , in fact, a "pillar of reality".

</comment><comment> 08-15 > Take a look at these three statements [...] they cannot all be true

Okay, so we have to kill one. The easiest one to kill is

> It is possible to make free choices.

In other words, quantum mechanics is incompatible with free will. This is clearly shocking to any physicist who believes in Free Will (as defined by philosophers thousands of years ago). But hasn't Free Will been recognized as nonsense for at least two centuries by now?

<comment><USER27> > But hasn't Free Will been recognized as nonsense for at least two centuries > by now?

Among some, sure and it's not just physicists [1].

Acknowledging that the concept we've called free will is not likely to be real has some troubling implications regarding how we've structured our society which is likely one of the reasons it's not talked about very often.

[1]: [https://www.youtube.com/watch?v=ihhVe8dKNSA](https://www.youtube.com/watch?v=ihhVe8dKNSA)

<comment><USER22> The members of a system can 'experience' free will from their perspective, but it's a still a deterministic line of causation; their free will is part of the determinism.

</comment></comment></comment><comment><USER28> Have it ever happened o you that you read "a pillar of reality" and it turned out to be more than a clickbait?

Me neither.

(To make it clear: the content is interesting, even if clearly for popular science audience (some statements about physics are false, e.g. "These are all intuitive ideas, and widely believed even by physicists." The title is worth a tabloid.)

<comment><USER29> I'm still trying to figure out what exactly the discovery is, if there's any.

</comment></comment><comment><USER30> this is not convincing at all. we pretend that we can have perfectly isolated quantum systems (a particle, a few particles) and we can reason about and extrapolate the findings. we cannot have isolated particles - they can be regarded as isolated for experimental purposes but the reality is that probably the whole universe is a massive wave function that encompasses everything and we can approximate in some really special cases (ie system above).

we also pretend that consciousness is something special and altering the state a somewhat complicated wetware had consequences on "reality". it doesn't.

the measurement problem is an extremely good example of how we think. a measurement does not make sense to a cow. it's abstract. we made it up. we have conventions that help make it useful, but those conventions break down when our senses (or things we use to amplify out senses) cannot measure what we want to measure.

</comment><comment><USER31> One this I always notice to be missing from discussions of quantum physics is the effect of scale. Does differences scale have relativistic effects, in a similar manner to differences in internal frames, and if at what do events in one scale frame of reference become simultaneous of an observer in another?

Note: IANAP

</comment><comment><USER32> So, Schrödinger's cat has been alive the whole time and it's rest of us in a state of superposition because the cat is conscious but can't observe anything outside the box? Or because we are conscious and the cat conscious, we all retain our states regardless if we are in or out of the box?

</comment><comment><USER33> Think of it as LOD generation in a game. As something observes or is near enough to observe, atomic matter is generated on demand. The Matrix; our simulation.

</comment><comment><USER34> How is this a new paradox? Isn't this paradox the whole reason for different interpretations of Quantum Mechanics?

</comment><comment><USER35> Maybe our dream state is how we resolve and wipe quantum paradoxes from our days experience.</comment>


Ask HN: Should a solo developer use AWS for his public side project? - <AUTHOR> I am working on a side project that I intend to launch soon and I am starting to thinking about the "sys" part of the project.
I need pretty basic setup (a db server, a redis one, one for the rails app and a CDN). I am not a sys ops expert but with some work I can set these servers up.
I don't want to use highly managed solutions like heroku, they are too expensive and knowing that I can set up on myself, I want to avoid this high expense.
On the other hand, something in the middle, like AWS has my attention. It would give more flexibility for sure, and I would like to learn it, but their opaque pricing it scares me a bit.
I would like to receive advice for people who can understand my position as a solo developer (with a basic European wage) and who can't afford to spend 100/more euros/month for a project until it pays for itself alone. <comment><USER2> Spin up a 2gb+ DigitalOcean server and toss Dokku on it. Feels like Heroku, very reliable, very simple to understand by just reading the Dokku source.

AWS is a great great thing, but has opaque pricing and a lot of nuance to getting everything running smoothly. 99% of projects can survive on a single beefy server for a long time before scaling becomes a concern, at which point that is a good problem to have. Don't make it a bad problem now by making things too complex.

</comment><comment><USER3> I have done the AWS path in the past (and I'm pretty good with AWS mind you). In hindsight I would absolutely go with a $5 DigitalOcean droplet in the beginning. Focus on the product.

<comment><USER4> +1 to the DO droplet. You can start with one of their pre-built images in no time and don't have to deal with things you don't care about for this project like IAM, VPC, regions, etc. You can run Redis and your db locally on the box for a small app.

</comment></comment><comment><USER5> I was in the same position as you a couple of months ago and I went for Linode - the $5 plan. You're probably conscious not to spend a lot of money from the start as - let's face it - you don't know if your project will be as popular as you hope it will be (mine wasn't!). On Linode you can easily upgrade by adding ram/disk etc and the pricing is straight forward.

If your project lifts off and Linode doesn't cover you, you can look at AWS then.

</comment><comment><USER6> > I need pretty basic setup (a db server, a redis one, one for the rails app > and a CDN). I am not a sys ops expert but with some work I can set these > servers up.

> I would like to receive advice for people who can understand my position as > a solo developer (with a basic European wage) and who can't afford to spend > 100/more euros/month for a project until it pays for itself alone.

Heroku is $7 a month (not counting 1000 hours free) for a dyno, $9 a month for a 10M rows Postgresql database and Cloudflare is free so it's very affordable to start with in my opinion. How much is your time worth? You can make it a bit cheaper with AWS probably but you'll pay for it with your own time and it'll probably be less robust unless you know what you're doing (e.g. coping with server failure, backups, rollbacks, security, deployment process, scaling, logging).

I like Heroku because it's simple. You can mostly just focus on your code, leaving server and infrastructure configuration to the defaults and know it's going to be robust and secure. AWS and even Digital Ocean have a lot of customisation and complexity which just means more things can go wrong which will eat up your time when you could be coding.

<comment><USER7> Heroku doesn't maintain database state. Your dyne can essentially be erased and restarted with an empty database. That's not usable for production systems.

<comment><USER6> > Heroku doesn't maintain database state. Your dyne can essentially be erased > and restarted with an empty database. That's not usable for production > systems.

Almost, dynos don't persist filesystem changes but for databases you're suppose to host the data elsewhere (e.g. Heroku Postgresq, AWS RDS, AWS S3) and that data will be persisted. This is by design and a very good strategy for production systems as you can then easily scale by adding more stateless dynos later. All configuration for your dynos is stored and versioned in Git and all your important data is stored somewhere robust with proper backups and rollbacks.

If you've advocating storing your state on the server itself by e.g. using AWS EC2 or Digital Ocean, you're going to need your own strategy to make sure you don't lose any data or configuration settings (e.g. packages, config files) when your server box fails and storing state on the server means you can't easily horizontally scale.

When Heroku doesn't let you SSH into active servers, only lets you deploy via Git and doesn't let you store state on servers, it's done intentionally to force you into making good choices that scale.

<comment><USER7> Heroku is super easy to use and setup for a newb like me, but never explains this up front. So I was shocked when I figured it out months into using my first dyno. Everything you write makes sense, and hosting my data elsewhere turned out to be easy. But it's definitely an important point to understand, because it adds a layer of cost to hobby projects you want to run full time sites with.

</comment></comment></comment></comment><comment><USER8> I think AWS is good for side projects. I am also a solo developer and have deployed side projects on AWS so far my experience is very good. As you have mentioned that you can't afford to spend >100 euros/month I think you can go with AWS free tier where it is possible

1- For DB server you can you RDS free tier I would say it would be enough for a side project

2- For Redis Instance you can use EC2 free tier to run single Redis Instance or you can try Amazon elastic Cache as well

3- For Rails app depending upon your need again you can either use free tier server or whatever suits you check different AWS EC2 instance types [https://aws.amazon.com/ec2/instance- types/](https://aws.amazon.com/ec2/instance-types/)

4- For CDN you have to use Amazon S3 first and that would cost you and cost depends upon usage + storage, since its a side project bill won't be too much

Happy Deployment ;)

</comment><comment><USER9> Why not start with a VPS like Digital Ocean? If/when you outgrow it, consider something else...

</comment><comment><USER10> I can really follow your question as it is a really tough one and it all depends on what is your interest, because:

\- You can use AWS but you will no doubt spend a lot of time figuring out stuff, BUT if you think it is fun and if you can use it to further your career then it makes total sense!

\- If your focus is on the development and not a side project you should really go with something hosted like Heroku because you will be able to spend much more time on development instead of configuration and be spending time worrying if you have done it correctly. Heroku is pretty cheap for what you get in terms of hours saved but you are giving up some flexibility, no doubt!

</comment><comment> charlie-r Use a simpler hosting provider if you're not already familiar with AWS. Power brings complexity, and your product likely won't benefit from solving infrastructure problems you don't have (yet).

That said, once your product outgrows simpler infrastructure I'd wholeheartedly recommend AWS. For the past few years I've been using AWS for my day job and side projects. Prices are competitive, and once you're past the learning curve, you'll have a great deal of flexibility.

</comment><comment><USER11> Companies like Digital Ocean, Linode, Vultr, Scaleway cater to small developers. The costs are much lower, although the flexibility and features aren't the same as AWS. If you need the features of AWS then definitely take a look at their main competitors too (Google and Microsoft), they all have slightly different feature sets and optimizations.

Personally I've never found a reason to use AWS/Azure/GCS for small projects, they're just too costly.

</comment><comment><USER12> I converted a Linode setup to an AWS setup at my smallish-but-not-tiny startup ($100k MMR or so). It was pretty easy.

I'd go with the cheapest solution, like a digital ocean droplet before going to a more expensive (but more fully featured) solution. You can always switch later.

I took us to AWS to take advantage of things like Redshift, Aurora, etc. Prior to AWS, we just had our rdbms, redis, app servers on relatively inexpensive Linode boxes.

</comment><comment><USER13> If you consider using Azure check out the Microsoft Bizspark programme [https://bizspark.microsoft.com/](https://bizspark.microsoft.com/) (€130 per month of free Azure cloud services).

</comment><comment><USER14> Go with VPS like Linode, Vultr or Digital Ocean. AWS is to expensive and complicated. If you choose DO you use promo code coderdigital which will give you $10 for free (2 months of cheapest server)

</comment><comment><USER15> Personally would use the Google cloud instead. Faster, cheaper and love working in containers.

</comment><comment><USER16> AWS is way too expensive for a side project. Use DO till you outgrow it.

</comment><comment><USER17> Personally, I like DigitalOcean better than AWS.

</comment><comment><USER18> diitalocean, linode, vultr, scaleway, hetzner might just do the job better and cost a fraction of what AWS costs

</comment><comment><USER19> If you use Docker, try Hyper.sh

</comment><comment><USER20> lowendbox.com is great for VPS deal hunting too.</comment>


Ask HN: What are your less known AWS tricks? - <AUTHOR> Examples:
1. Using load balancer proxy instead of api gateway if requests > 5 million per month
2. Use life cycle policies to do s3 object transitions. <comment><USER2> Use DynamoDB TTL, streams and AWS Lambda as a dynamic task scheduling mechanism</comment>


Wtickle – test a web server for exceptions - <AUTHOR> https://github.com/jgrahamc/wtickle <comment><USER2> Could be posted as a "Show HN".</comment>


Program Synthesis Explained for Computer Architecture Professors - <AUTHOR> https://homes.cs.washington.edu/~bornholt/post/synthesis-for-architects.html?

<comment><USER2> > This formulation disallows loops, so the programs we generate will always be > loop-free.

Heh -- that's just a little bit of a restriction, isn't it?

Very glad to see work like this going on, but it's pretty clear we're still a good distance from general program synthesis. Like nuclear fusion, it's been the technology of the future for 30 years.</comment>


Germany considers amendment which makes it illegal to run a Tor node or website - <AUTHOR> https://www.privateinternetaccess.com/blog/2019/03/germany-considers-amendment-to-law-which-makes-it-illegal-to-run-a-tor-node-or-website/ <comment><USER2> As far as I know, it requires intent to do something illegal, i.e. running an illegal platform for drug & gun sales with the intent of providing that service.

Just running a tor node wouldn't be touched imho, but yeah, it's a terrible idea in general.

<comment><USER3> That involves the fun prospect of having to convince a judge on what your intent was, and being jailed if you fail.

<comment><USER4> Shouldn't it be the opposite? The prosecutor must prove your intent to do something illegal?

Germany is not common law so I'm legitimately unsure.

<comment><USER3> Ah, sorry, I didn't mean to imply guilty-till-proven-innocent (I don't _think_ that's how German law works). Merely that a prosecutor is going to present some evidence to try and imply your intent was illegal ("67% of Tor traffic is illegal therefore the accused is guilty!"), and you better hope your arguments will be more convincing.

Basically it makes Tor nodes too much of a legal gray area to safely operate.

<comment><USER2> I talked to a lawyer friend of mine and he confirms that the law is pretty broad, but not that bad. A person using TOR won't be targeted on this, they already have laws to get buyer & seller.</comment></comment></comment></comment></comment>


Ask HN: Recommendations for legal counsel experienced with HIPAA? - <AUTHOR>

I'm working on a cloud-based healthcare analytics startup, but that involves dotting a lot of legal i's and crossing a lot of legal t's.<p>Anyone know of any quality attorney's who can help out with that process? <comment><USER2> Stefano Quintini of Fenwick & West (via RockHealth)

Link: <http://www.fenwick.com/pages/default.aspx></comment>


Lego Scorpion - Mortal Kombat - <AUTHOR> https://sketchfab.com/show/nJTiufC9A4kVhrzz9f7Ot7ADOhC

<comment><USER2> very nice! maybe with an additional skull head would be more realistic: ready for the fatality!</comment>


The History of the Zeebo, Brazil's First Videogame Console [video] - <AUTHOR> https://www.youtube.com/watch?v=jfXoAqYZlys <comment><USER2> I mean, Brazil's first locally developed video game console.

Because TecToy manufactured the Sega Master System, Genesis and Dreamcast (not sure about the Saturn) locally (and they were the first to manufacture a video game console locally). Also some other company called Gradiente manufactured the Nintendo 64 locally too.

<comment><USER3> Not even considering older generations..

Between 80s and 90s, Brazil was a very closed market and it was almost impossible for companies such as Atari to sell consoles there.

So some local companies started to develop their own non-authorized-clones, like Milmar producing the Dactar console, which was a blatan copy of the Atari 2600 with some "improvements" like the joy stick with extra buttons..

<comment><USER4> While the idea that the 1977-1992 reserved market policy for computers had an impact on the videogame market in Brazil is a popular one, that was not the case. The policy was not about imports as all imports (cars, chocolate, etc) were restricted at the time due to the external debt crises. The policy prohibited joint ventures with foreign companies or local manufacturing and sales by foreign companies (like what happened in cars and other industries).

Polyvox/Gradiente had an official joint venture with Atari while Philips made and sold its consoles locally. None of this would have been possible if the reserved market had included videogames. Note that it was common for the policy to extend its reach to areas where it shouldn't apply, but that didn't happen in this case.</comment></comment></comment>