Time-travel queries in CockroachDB - <AUTHOR> https://www.cockroachlabs.com/blog/time-travel-queries-select-witty_subtitle-the_future/ <comment><USER3> Very cool. For a long time I've wanted databases to support this so I could run query 1:

`SELECT ( _, $querytime) FROM table1 WHERE ...;`

Then based on some code in my application run a second query:

`SELECT _ FROM table2 WHERE ... AT $querytime;`

So much frontend code makes assumptions that databases aren't modified between consecutive queries (like graphql-js). With an API like this it would be trivial to make those queries correct. (And we wouldn't need to abort, and we can cross database instance boundaries in interesting ways). The timestamp is also super useful for doing isomorphic rendering of live-bound data - <USER2> server can send the timestamp of the data queries it used to render the page. When the client JS loads it can reconnect to the server and pass the rendered timestamp back to check for deltas between the rendered version and the current database view. This in turn lets you to safely cache server renders, as well as a bunch of other fun things.

Hats off to the CockroachDB team! Fingers crossed some of these features start making their way into other databases I love. (Looking at you, Rethinkdb!)

<comment><USER4> _Very cool. For a long time I 've wanted databases to support this so I could run query_

This has been in Oracle for a few years now [https://docs.oracle.com/cd/B28359_01/appdev.111/b28424/adfns...](https://docs.oracle.com/cd/B28359_01/appdev.111/b28424/adfns_flashback.htm#i1008579)

<comment><USER5> Yup, but it's one of those things where you need the most expensive license, IIRC.

<comment><USER4> I'm a little bemused by _I'm not aware of any database that has implemented it_

You would need to be hiding under a rock, like a cockroach I suppose, not to know that Oracle and SQL Server 2016 have this :-)

<comment><USER5> I think we've reached a point where a lot of OSS folks never actually touched a commercial database in their life. OSS alternatives are so good that less and less people feel the need to go out and pay for something better.

In a way it's similar to some folks going crazy because you can do this or that in the browser when desktop OSes have been able to do it for ages... generational shifts.

<comment><USER4> Certainly modern open source DBs are very capable... It is just a little frustrating to see the wheel being reinvented rather than genuine progress being made. And the big commercial DBs aren't standing still either.

<comment><USER6> I think CockroachDB is making genuine progress in the distributed, consistent space. We now have to add many of the existing features on top of that.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> Impressive that it works correctly across schema changes.

I assume the indexes are laid out like (col, timestamp)? Can you handle an access pattern where keys are continuously inserted with the same value, and then deleted shortly after? Will queries for the value work efficiently, or have to scan all rows inserted with that value for the last 24 hours? Is there a way to tweak GC to run more aggressively on a particular table (knowing that you wouldn't be able to query back in time)?

We have an access pattern like that in our database. Rows are inserted into the table with x=null, then later x is set to some unique value, but we need to query where x is null in order to set the actual value. At one point we had a long running transaction that prevented the database from cleaning up old records, so the query for X is null grew slower and slower to the point where it almost browned us out.

<comment><USER8> [engineer at cockroach]

Basically, yes, all keys the KV, including the index entries, include a timestamp suffix.

Repeated edits to the same value will accumulate MVCC revisions until they are GCed, and those will be iterated over during access, so, as you point out, a use-case like yours would likely benefit from shorter a GC cutoff and GC _is_ configurable in cockroach.

</comment></comment><comment><USER9> This is an old idea. It was in the original version of Postgres from Berkeley in the 1980s. They ended up taking it out in 1998 because systems kept running out of disk space:

[https://www.postgresql.org/docs/6.3/static/c0503.htm](https://www.postgresql.org/docs/6.3/static/c0503.htm)

It's actually very easy to implement if you use the "append" version of MVCC (which Postgres does). All you need to do is just disable garbage collection (e.g., the vacuum).

<comment><USER10> >> "They ended up taking it out in 1998 because systems kept running out of disk space."

Reminds me of Microsoft SQL Server removing support for natural language data queries, only to add it back years later.

It would be interesting to see a list of features from major database management systems that have been removed over the years.

<comment><USER9> > It would be interesting to see a list of features from major database > management systems that have been removed over the years.

The only other thing I can think of right now are in-memory optimized indexes (e.g., T-Trees) from the 1980s. These were later removed and replaced with B+trees (or skip lists if you're MemSQL) because CPU caches (SRAM) got much faster than memory (DRAM).

</comment></comment></comment><comment><USER6> Blog post OP here.

I originally wrote that I wasn't aware of any other DB that had this. I should have specified any other SQL DB, since I was aware of Datomic.

While working on this feature I searched on Google for the syntax specified ("AS OF SYSTEM TIME"), but didn't find it referenced except about a third- party Postgres extension. It is unfortunate that Oracle and MSSQL didn't come up in my searching, since they support this feature.

I've edited the blog post to be more accurate in listing some of the previous work.

<comment><USER11> i'm still surprised that not a single link to [https://en.wikipedia.org/wiki/Temporal_database](https://en.wikipedia.org/wiki/Temporal_database) is present anywhere either here or in your post. on that page there's a link to a very in-depth treatment of the problem: [http://www.cs.arizona.edu/people/rts/tdbbook.pdf](http://www.cs.arizona.edu/people/rts/tdbbook.pdf).

<comment><USER6> That's the first link under the link to the SQL:2011 section about this, so it's not too difficult to get to there.

</comment></comment></comment><comment><USER12> It looks like SQL Server 2016 has it as well. They call them Temporal Tables.

[https://msdn.microsoft.com/en- us/library/dn935015.aspx](https://msdn.microsoft.com/en- us/library/dn935015.aspx)

<comment><USER13> A feature that made it to standard edition too, unlike CDC and related which were Enterprise only, which is nice.

Similar support can be found in quite a few places. It is in the SQL:2011 standard: [https://en.wikipedia.org/wiki/SQL:2011](https://en.wikipedia.org/wiki/SQL:2011)

</comment></comment><comment><USER14> Amazing.

I always hated with passion keeping timestamps and messing the database design so I can have some sort of time awareness, I always thought that this is supposed to be handled by the database itself, I'm just a user.

I know there's Datomic[1] but its _stack_ is way different than what people are used to (around here) and I'm yet to find an application that would justify using it (yeah, I'm not proud of that).

If anyone from Cockroach happens to read this, I have some questions:

* Are you guys the first database _vendor_ to provide this as first class feature?

* How is the time travel performance-wise? What if I have a product that rely on this heavily?

* How the database would handle some deleted columns on the schema reappearing after some time? It would consider the same as before? What if the type is different?

Kudos for the feature, I barely know CockroachDB but now I have a good reason to try it.

[1]: [http://www.datomic.com/](http://www.datomic.com/)

<comment><USER6> Blog post OP here.

No, we are not the first SQL vendor to provide this. And many other non-SQL databases also have this feature.

Performance is faster than other reads, in general, because of less risk of transaction retries.

Columns can come and go, and change types, and that is all handled correctly. If a column reappears as a different type, it will work correctly. This is because we also version the table schemas each time they change, so we can always fetch the correct schema when doing a time-travel query.

</comment></comment><comment><USER15> This is really cool but slightly frustrating because both Datomic and GUN (where I work) have talked about this for years. Several others mention Snowflake, SQL Server, and Oracle are designed for this as well.

So while cool, it seems like CockroachDB's marketing/content team is what is winning here. I don't know how they do it, but it is impressive.

<comment><USER6> Nah, was just me (the engineer) not being aware of Oracle and MSSQL. I should have written than I'm not aware of any other _SQL_ DB. I was aware of Datomic, but it's not SQL. Just an error.

</comment></comment><comment><USER16> Snowflake has had the same functionality with similar syntax for some time now, and for a longer default time period.

see: [https://docs.snowflake.net/manuals/user-guide/data-time- trav...](https://docs.snowflake.net/manuals/user-guide/data-time-travel.html)

disclaimer - I work there.

<comment><USER17> That sounds like comparing apples and oranges, though. For instance, according to the documentation, every transaction in Snowflake locks the entire table, so it doesn't seem like it would be usable for the kind of OLTP workloads that Cockroach is designed for.

(Although I admit that I haven't tested this assumption, since Snowflake appears to be proprietary.)

</comment></comment><comment><USER18> There are two different kind of temporal queries. One is about getting the state of the db at a given time. The other is to get the state about a given time.

Example: I got paid yesterday and the operation will be recorded only tomorrow.

The first kind of query AS OF today will never show the payment. The second one will do (assuming that behavior is appropriate for the application, better examples are possible.)

CockroachDB, SQLServer and Oracle implemented the first one. That's why they are writing about backups.

Edit: see this PostgreSQL extension for the second kind of queries [http://pgxn.org/dist/temporal_tables/](http://pgxn.org/dist/temporal_tables/)

<comment><USER19> Unfortunately the Postgres temporal_tables extension is about the first kind not the second kind: "What did the database look like on April 1st?" not "What did this customer look like on April 1st?". From your link:

> Currently, Temporal Tables Extension supports the system-period temporal > tables only.

Also here is the same extension on github: [https://github.com/arkhipov/temporal_tables](https://github.com/arkhipov/temporal_tables)

</comment></comment><comment><USER20> Off topic a bit, but is anyone using CockroachDB here and can share their experience?

<comment><USER21> The name itself is going to be a huge problem when you're proposing to use this at your company.

<comment><USER22> Actually, its been easier for me in a large org. Maybe we should ask mongo if it was an issue?

</comment></comment></comment><comment><USER4> This says it is implemented in the GC - how does the history survive a restart? Oracle does it because this history is kept in the translogs on disk.

<comment><USER23> This is the same IIUC. They are talking about the disk gc.

</comment></comment><comment><USER24> Cool feature, how far back can I go? Looks like it depends on the setting of the garbage collection interval with a default of 24 hours, how high can I reasonably set that? Is there any overhead besides disk space? Would be nice to have at least a week, so if I delete something on Friday evening, I can still recover it the following week

<comment><USER8> [engineer at cockroach]

How high you can set it depends on your access patterns -- there is some overhead to iterating though MVCC revisions during reads, in addition to the on-disk space you mention.

If your workload involves frequent writes to the same rows, GCing some of those revisions sooner would have a greater impact, whereas if you have a write-light workload, or if your writes are spread over rows such that a given row doesn't doesn't see frequent repeated updates, then you could probably use much a higher GC threshold with minimal overhead.

</comment></comment><comment><USER25> Awesome to see this!

The only other DB I know of which has this is Oracle, where it's called "Flashback". Are there any others?

<comment><USER26> I don't know exactly how to do it in Datomic, but since it's append-only, it must be possible to do something like "state of DB at this point in time".

<comment><USER27> It is (without any time restriction re: GC etc.) The exact term would be 'accumulate-only' (technically, 'append-only' is more of a storage implementation detail). Interestingly, you can also make 'WHAT IF' queries i.e obtained a view _as if_ some writes were made (but without transacting them).

</comment></comment></comment><comment><USER28> Reminds me of the "Freeze Frame Filesystem" that the CS dept @ Cornell is working on:

[http://www.cs.cornell.edu/projects/quicksilver/public_pdfs/f...](http://www.cs.cornell.edu/projects/quicksilver/public_pdfs/fffs.pdf)

They want to power the backend of hundreds of millions of energy sensors for a smart power grid.

</comment><comment><USER29> With features like this you remove 1/2 of the raison d'etre for the blockchain.

Away from applications that really need to solve the byzantine general problem, I see no reason to use the blockchain.

In fact, I wonder if there are fintech start ups using language like blockchain in their pitch docs, but in actually plan to use versioning databases like this feature here of CockroachDB or Datomic.

</comment><comment><USER30> This feature would actually be REALLY helpful for my [http://imadefood.com](http://imadefood.com) project. Where I'm keeping revision history for recipe changes. Basically do a time travel select, versus a revision number select. Which I think works better in peoples minds.

</comment><comment><USER31> Could the same be accomplish using Postgres with Kafka's Event Sourcing [http://martinfowler.com/eaaDev/EventSourcing.html](http://martinfowler.com/eaaDev/EventSourcing.html) ?

</comment><comment><USER32> Hats off to Cockroach Labs

</comment><comment><USER11> great to see some traction for temporal databases around here. my experience tells me that pretty much every half-serious database would like to be at least system time temporal or application time temporal and preferably both at some point in time. the fact that this hasn't been more popular is kind of baffling to me. i guess it's one of very hard and totally not cool problems.</comment>


Lessons from Four Months in the PIE Startup Incubator - <AUTHOR> http://ryanwaggoner.com/2012/01/6-lessons-from-four-months-in-the-pie-startup-incubator/ <comment><USER2> Thank you so much for your insights, your guidance, and your candor. It was great working with you as a founder. I can't wait to have you involved in PIE as a mentor.

</comment><comment><USER3> We were accepted to Startup Chile and there are two benefits to being in that incubator as I see it. First, the money is a significant one. It adds 6 months to our runway before we need to take outside money, possibly allowing us to never need outside money. Secondly, it gives us some social proof since it is a competitive admission. Hopefully this will help us find advisors (which is what we need right now more than investors.)

I look forward to your follow up post on not taking money. I think for some businesses it is possibly the right path. Or, as an alternative, taking small amounts of money on the order of $100k-$1M investment total rather than the $5M-$20M that seems to be the goal of many startups.</comment>


Password security without a password manager - <AUTHOR> http://blog.sucuri.net/2009/10/password-security-without-password.html

<comment><USER2> if "unknown" + "known" | md5sum is your password recipe, then a single site with a poor lockout policy allows me to launch a brute force attack to determine "unknown", at which point you lose access to _

<comment><USER3> Well, you have to consider that there's no way to determine the recipe.

If your recipe is known + url, then that's easily discoverable if you know one password. With hashing, it's (sufficiently) impossible to guess what the recipe was. This sounds like security through obscurity, but it really isn't... at least no more so than a password is. It's just that instead of a password or passphrase, you have a passrecipe. It's still a secret key that only you know.

The problem I see in this is that you have to generate your password all the time. That means it shows up in plain text on your screen all the time. May as well just write it down somewhere.

<comment><USER4> except we now know that authors recipe.

if your attacking an individual you look for things like this as clues to help you.

<comment><USER3> Well that's a good point. I guess the author didn't realize his recipe was his secret key.

<comment><AUTHOR> Not really... the security is on the strong password I choose, not on the recipe. That's the benefit of using a one way hash.

Now, I can choose one long, crazy pass (or pass phrase) and remember only that instead of dozens of passwords for different sites.</comment></comment></comment></comment></comment>


1x Forth (1999) - <AUTHOR> http://www.ultratechnology.com/1xforth.htm <comment><USER2> Forth is awesome. Simple as that. But it's important for people (especially those just being exposed to it) to completely understand why, and what it's done for everyone.

The indirect threading model was absolutely brilliant. Almost every bytecode VM in existence today owes Forth (and Moore) a giant "thank you." If you never write a lick of Forth code ever, you'll be a better programmer just by researching how its put together.

Forth also pushed for simplicity before it was fashionable. Most "modern" languages pride themselves on their landing-page code samples:

sum = fold (+) 0

But, again, this is old hat for Forth programmers. Languages today use a lot of great, new ideas to accomplish this: FP, pattern matching, closures, etc. But Forth was pushing - back in 1970 - for all functions to "do one thing" succinctly. If it can't be done in one line, you needed to factor the code some more. And, it's not just that the result is one line, it's that _anyone_ can look at it and know what it does instantly. Remember, this was back when BASIC and FORTRAN ruled with GOTO.

Finally, I feel that Forth programmers learn - early on - something I don't see many (very good) programmers learning today: instead of constantly abstracting and obfuscating to try and "simplify" a solution, take a step back and try and simplify the _problem_ so the solution is obvious. For example, this is what I feel the Rust team has done with memory management. Instead of just throwing more brain cells and cycles at trying to improve old-hat solutions, turn the problem upside-down and - in essence - remove it entirely.

<comment><USER3> >Almost every bytecode VM in existence today owes Forth (and Moore) a giant "thank you."

Funny, I see bytecode VM as one of the things that's fundamentally wrong with computing. It's one more layer of unnecessary crap that doesn't even remotely resemble the underlying hardware.

<comment><USER4> > _that doesn 't even remotely resemble the underlying hardware._

And that is what makes the code portable and re-usable. See also Rob Pike's Eulogy on Dennis Ritchie[0], where he explains the true strengths of C and Unix:

> In the late 1970s, Dennis joined with Steve Johnson to port Unix to the > Interdata. From this remove it's hard to see how radical the idea of a > portable operating system was; back then OSes were mostly written in > assembly language and were tightly coupled, both technically and by > marketing, to specific computer brands. Unix, in the unusual (although not > unique) position of being written in a "high-level language", could be made > to run on a machine other than the PDP-11. Dennis and Steve seized the > opportunity, and by the early 1980s, Unix had been ported by the not-yet-so- > called open source community to essentially every mini-computer out there. > That meant that if I wrote my program in C, it could run on almost every > mini-computer out there. All of a sudden, the coupling between hardware and > operating system was broken. Unix was the great equalizer, the driving force > of the Nerd Spring that liberated programming from the grip of hardware > manufacturers.

> The hardware didn't matter any more, since it all ran Unix. And since it > didn't matter, hardware fought with other hardware for dominance; the > software was a given.

[0] [https://plus.google.com/u/0/+RobPikeTheHuman/posts/33mmANQZD...](https://plus.google.com/u/0/+RobPikeTheHuman/posts/33mmANQZDtY)

<comment><USER3> The true strength of C is being a good fit to the underlying hardware.

And hardware still very much matters, even if it's running Unix, because of binary compatibility.

I still don't get the VM thing. I mean, I get it from a portability standpoint, but in practice it's been a pretty horrible thing because a stack machine of all things is often picked as the virtual target. Why not a generic register based machine, like most hardware actually is these days? My feeling is the people doing the implementing are infected with the Forth virus, and a stack based VM is one of the few ways they can force their crazy ideas on the rest of us.

<comment><USER4> You do understand that hardware development has been shaped by C being the defacto standard low-level language? That is, if new hardware isn't easy to code for with C it has little chance of it catching on, unless it's so incredibly low-level and minimal that ASM is the most complicated language you need.

And while I'm no compiler writer, I suspect stack machines are a great choice for modelling an _intermediate_ language because converting it to optimal register use is fairly simple, yet at the same time is completely agnostic about how many registers an underlying machine has.

<comment><USER3> >You do understand that hardware development has been shaped by C being the defacto standard low-level language?

No, I don't understand that, and honestly have no clue what you're talking about. C is about as simple as things come, and it doesn't necessarily make strange demands on the hardware. It may seem that I'm contradicting my previous statement, but C working well with hardware doesn't necessarily mean it is a force for shaping modern hardware.

Three operand register-based load / store machines make too much sense from a variety of angles for many (any?) other configurations to touch them, that's why they're everywhere.

Stack machines are inherently less efficient, and you only see a bunch of designs (mostly as amateur soft cores) to this day because they are almost trivial to for enthusiasts to implement, not because they kick ass.

<comment><USER4> > No, I don't understand that, and honestly have no clue what you're talking > about.

Clearly.

[https://en.wikipedia.org/wiki/Lisp_machine#End_of_the_Lisp_m...](https://en.wikipedia.org/wiki/Lisp_machine#End_of_the_Lisp_machines)

<comment><USER3> But we don't do this anymore, we don't build processors to cater to the particular needs of a particular high level language because we know now this approach to speeding things up is fundamentally misguided. Hardware is designed based on the types of calculations it is intended to do (DSP, GP, FP, GPU) and that's it. To do otherwise would be inefficient.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> I tried Forth for the first time three years ago, and it's been a kind of guilty pleasure ever since. Even though I can write a program about 3x as quickly in a mainstream language, I sometimes reach for Forth because I think it's so much _fun_. People don't often mention this aspect of it. There's something satisfying -- in the same way that proving a theorem or solving a riddle is satisfying -- about finding a minimal way to coordinate the data flow on the stack. And, no matter how well you do, it seems you can always stare at it the next day and find a tiny improvement.

When I read Moore's material, I feel like he fell into that positive feedback loop in some kind of pathological way... He keeps rebuilding and rebuilding basically the same CAD hardware/sw system, recreating it simpler and more elegant in his eyes every time. For years and years.

Building a forth system from scratch really is an eye-opener... Many have written about how strange and beautiful it is to take your base language and then _add_ the ability to make comments and perform if-then control flow from _inside_ the language. You build it up from nothing but it's a functioning language/interpreter the whole time. Very cool.

</comment><comment><USER6> I could listen to Chuck Moore all day long.

Here's my favorite - demonstrating his CPU CAD software back in the early 90s, written in Forth and running on a PC. Quite impressive for back then.

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

Part 2 (the meat of the presentation): [https://www.youtube.com/watch?v=Dbd7Xu0ibJM](https://www.youtube.com/watch?v=Dbd7Xu0ibJM)

</comment><comment><AUTHOR> [https://www.youtube.com/watch?v=NK0NwqF8F0k](https://www.youtube.com/watch?v=NK0NwqF8F0k)

"Chuck Moore, the inventor of Forth and ColorForth programming languages, gives a presentation on writing "1x software," or how to avoid common sources of bloat in software. Topics covered include: what it means to be Forth (as distinct from other languages), how ColorForth is simpler still than Forth, how common system services such as files, windows, and even local variables, complexify (complect) the software, the impact of bloat, maintenance on that bloat, etc. And, as is usual for Chuck, deeply philosophical thoughts as well."

<comment> white-flame Basically, you can build a cathedral per project. It will be elegant, all parts will be purely sufficient and focused on getting the pieces of that particular project working.

But when the project changes in certain ways, that bespoke foundation no longer suffices. Time to take the wrecking ball to it and start building a new cathedral.

It is technically true that you can reduce the sheer amount of code involved with a running program, but I for one would not wish to. I would rather inherit the problem-solving, optimization insights, and compatibility tackling of others inherent in OS modules and libraries (along with their "bloat" and complexity), than carry all the weight of non-project-specific development from bare metal. This is a statement of scope and time as well of that of surface of opportunity for bugs and weaknesses.

<comment><USER7> I think the point is more that you don't build a cathedral at all.

Another article, more interesting in my view than this one, about the apparent mindset: [http://yosefk.com/blog/my-history-with-forth-stack- machines....](http://yosefk.com/blog/my-history-with-forth-stack- machines.html)

<comment> white-flame I would still point out that that article focuses on bringing everything into the small. Redefine problems so you're not tackling large monstrosities, but simplified versions. Make it so that it neatly fits in little bits of code that directly computes simple things.

That's all well and good, but some people are building web browsers, or distributed AI databases, or even large chip development suites that do things that certainly wouldn't fit in 500 lines of Forth. Forth is a great expression evaluator, and has actual compile-time metaprogramming features, which is nice. But it doesn't solve actual large problems for you. It asks you if you can solve a non-large problem, and if you can, you're happy with Forth.

It's sort of like retro programming. You can work in a small (architecturally conceptual) scope that handles a few things elegantly, and implement some cool project within those constraints and building blocks. But it's still building a little cathedral per project.

<comment><USER8> For "large" projects you do as every other language does: you link/FFI to the C library that does the heavy lifting for you. It's kind of unfair to say "forth can't do browsers" when all browsers are implemented in C/C++ at the core.

<comment> white-flame You link to C when you need speed, and that's not even usually necessary anymore in languages like JavaScript or Lisp. Linking to C doesn't let your code somehow abstract higher, to deal with larger projects and larger architectural scopes.

<comment><USER9> It may allow you to take advantage of existing libraries, however.

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> Forth's simplicity is very beautiful. But that simplicity is also why it's a dead end. Simplicity is not a worthwhile goal in and of itself. People use computers to get things done. Ultimately the goal is to empower people. All those complicated bits are part of what empowers people. We need things like filesystems, network stacks, operating systems and standards to tie it all together. Foregoing all of that in the modern age effectively leaves you with a computer that might as well be a cog. Which may be fine for some classes of embedded systems but that is increasingly not enough.

<comment><USER11> I think I would disagree. I don't know that I had the same read on the article as you, but it didn't seem Moore was advocating simplicity for simplicity's sake, but as a means to and end (where the end is robust, maintainable software).

 _> > If it were a lot simpler I would have a lot more confidence that the technology would endure into the indefinite future._

I think he is (correctly) speaking to the byzantine systems which have been propped up (successfully!) to engineer the kinds of applications we are accustomed to (terminal emulators spanning hundreds of thousands of lines of code, web browsers spanning tens of millions etc.). It seems (from what I've read from and about Moore) his idea of empowering people is simplifying the surface area of a problem, rather than simplifying an interface to the problem (for lack of a better phrase).

People can't really use the solutions he presents or advocates to solve the kinds of problems they face with computers _as they are being used_ but the argument might be made that they're solving the wrong problem. I think that we'll eventually come around to some diluted, almost unrecognizable conclusion along these lines - see the number of people advocating a "burn it all down and start over" approach after just half a century of computing. See also the amount of work spent on maintaining compatibility with relatively ancient systems in spite of these arguments.

<comment><USER12> I take this approach personally. I make it a rule to run as little software as possible. Sadly, every business seems to want an "app" for everything: I know this from being in the applications business. Even if I wanted to, I couldn't get away from the web browser, and it has to be Chromium.

I dream of a future where my bank (for example) publishes API documentation which can be used to successfully implement a working first-class client. That client can then be an actually-good piece of software.

The web is an awful platform for applications, and the only reason for its success in this space was ubiquitous and consistent deployment.

</comment></comment></comment><comment><USER13> I have a hard time imagining how some tasks could be managed while using the disciplines that make Forth useful.

What are some examples of highly complex tasks that have had Forth programs written for?

Something like Starcraft in Forth. Or perhaps the most complicated Paint Program written in Forth.

<comment><USER14> Philae, the probe that landed on a comet, used Forth.

[https://en.wikipedia.org/wiki/RTX2010](https://en.wikipedia.org/wiki/RTX2010)

ChipWits was a programming game written in MacFORTH.

[https://en.wikipedia.org/wiki/ChipWits](https://en.wikipedia.org/wiki/ChipWits)

</comment></comment><comment><USER3> Is there some level of art in CS and processor design? Yes, because there is no one clearly "right" answer to larger problems. CM speaks eloquently, and presses a lot of my buttons (i.e. I agree with him) regarding what is "wrong" with how the industry approaches computing. But he then goes on to so strongly advocate for his own stuff that he makes it sound like a panacea for all computing ills. He comes across as an underdog with the solution to everything that the world is unjustly ignoring, which is a little weird IMO. He would make a great counter-culture guru.

I wanted to love Forth, but it's a cumbersome tiny language tied to a couple of stacks that you have to micro manage. DUP, DROP, SWAP, etc. are inefficient, much like copying a value from one register to another, which is why most modern processors are 3 operand (to include the copy/move in the operation). And running a stack-based language like Forth on a register-based processor is a poor fit and inefficient, but that isn't necessarily a reason to build custom hardware that fits the language (we don't really do that anymore). This Emperor has no clothes.

Cue the true believers.

</comment><comment><USER3> Forth is maybe one step up from an assembly language for a stack machine. Is Forth difficult to master? Yes, partly because the target hardware is alien, but mostly because you're doing things in glorified assembly posing as a higher level language than it really is. And the syntax is screwy.

No wonder it's a massive struggle to do anything more than trivial projects in Forth, writing assembly is always a huge pain in the ass.

We need to get past Forth's exoticism and see it for what it really is: assembly + a huge dose of obfuscating downtrodden underdog philosophy.</comment>


Contagion in Mass Killings and School Shootings (2015) - <AUTHOR> https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0117259 <comment><USER2> _While our analysis was initially inspired by the hypothesis that mass media attention given to sensational violent events may promote ideation in vulnerable individuals, in practice what our analysis tests is whether or not temporal patterns in the data indicate evidence for contagion, by whatever means.

In truth, and especially because so many perpetrators of these acts commit suicide, we likely may never know on a case-by-case basis who was inspired by similar prior acts, particularly since the ideation may have been subconscious._

But they do tend to leave behind a manifesto or social media history that can point to their thinking and influencing factors.

</comment><comment><USER3> This is a sad effect of national media attention (Click bait and headline bait). I watch the news sometimes and wonder if we'd all be better off if it didn't exist...

Obligatory mention that There were more murders in Chicago this week and it gets no media headlines.

<comment><USER4> Ultimately it's all because of ads. If we all had to pay for our news, then we'd be more cautious and reluctant about clickbait headlines. And media would not be in a race to the bottom, affecting news quality.

<comment><USER5> I doubt this. Reason clickbait works is because it's more attention grabbing. It's more attention grabbing because it appeals to human innate fears.

And even if clickbait is banned and subscription mandatory, media would be in a race to the bottom. Just a slightly different one.

<comment><USER6> Reason clickbait works is because it is needed to drive page views. In a subscription model, media sites would have an incentive to put out stories that are _interesting_ beyond the first page view.

<comment><USER5> Ok. But if you can't view more than a paragraph, why not just judge the article by the headline.

</comment></comment></comment></comment></comment><comment><USER7> "Several past studies have found that media reports of suicides and homicides appear to subsequently increase the incidence of similar events in the community, apparently due to the coverage planting the seeds of ideation in at-risk individuals to commit similar acts"

I've suggested before on HN that active shooter drills- which are apparently widespread now in US schools- might be themselves a source of contagion. Because they provide exactly those "seeds of ideation", both by simulating the events and by implicitly suggesting that these kind of occurrences are in the realm of possibilities and somehow expected.

<comment><USER8> This is a fine line to tread, without a doubt. It's the same "if we don't give them the idea, maybe some of them won't think of it otherwise" thinking that has been a theme throughout the history of education. Similar thought process to sex education, leaving out certain anti-government parts of history, etc. (and those are just examples in the US, let alone stricter education systems).

<comment><USER9> You're making it seem like it's a super risky and tenuous approach, but it's long been understood that discussing "why suicide is a bad idea" with certain populations increases the odds of suicide in the group.

<comment><USER10> Right, but it still needs to be discussed.

Framing suicide as a bad solution to a problem reaffirms that it is still a solution, and gives room for the individual to justify away the taboo aspects (my situation is different because...). I don't know the right, ethical approach and I'd prefer to leave that discussion to psychologists, but we absolutely need to address it so people know what to look for in loved ones who may be at risk.

Personally, I think some people who may consider suicide are terrified of death in other situations. For some reason, suicide is different than dying in some other manner. Maybe it's about control, maybe it's a cognitive disconnect, IDK. What I _do_ know is that it's a problem that we need to address through eduction, I'm just not sure on the best way to do it. Ignoring the problem seems to just push it online where the information can't really be controlled, so I think parents need to learn how to broach the subject.

</comment></comment></comment></comment><comment><USER11> AFAICT the model seems fitted to historical data, and fit well. I'd be curious to see if they or anyone else kept tracing events using the model to check its predictive ability.

</comment><comment><USER12> > on average, mass killings involving firearms occur approximately every two > weeks in the US

This seems significantly higher than what I'd think. Do most mass killings not make the news? How is this defined?

<comment><USER13> You could check a popular reference source to become familiar with the factual background. [https://en.wikipedia.org/wiki/List_of_mass_shootings_in_the_...](https://en.wikipedia.org/wiki/List_of_mass_shootings_in_the_United_States_in_2019)

<comment><USER12> Right, so the majority of these incidents are gang-related activity.

Not saying it's not a "mass shooting", but the thesis in the OP article needs to be understood in such a context.

Gang violence/vengeance isn't going to be influenced by media or copycat effects one iota.

<comment><USER13> _Right, so_

I'm not endorsing you, I'm suggesting you consult available reference material before you start asking rhetorical questions. A Socratic/tendentious style of argument where you solicit participation from your interlocutors doesn't play well here. If you have a point it's better to just make it and back it up with reference material as many participants have busy lives of their own.

</comment></comment></comment></comment><comment><USER14> Is this only happening in the United States?

How frequently is this happening in other countries?

<comment><USER15> The US isn't even in the top 100 when it comes to homicides. I haven't been able to find statistics on "mass murders" which include firearm, arson, bombs, knife, etc attacks. All the media and sensationalist headlines have drowned out any hope I had of quickly researching this issue.

Here's what I've found so far:

[https://www.pri.org/stories/2016-06-27/map-here-are- countrie...](https://www.pri.org/stories/2016-06-27/map-here-are-countries- worlds-highest-murder-rates)

<comment><USER16> Right.

So, indeed, compare USA's violence score with: * those of the countries where the USA have put their own violent influence to steer benefits back to them (Central & South America). * or those where another white supremacist ideology has been prevalent and is being actively fought against (South Africa).

But, surely, don't compare with countries that would be good reference to compare against (aka, friends with which you ought to have shared some common history, like, Europe).

<comment><USER17> This is a false equivalence; The foreign policy of the state has nothing to do with the levels of violence between its citizens.

<comment><USER16> The point was not comparing foreign policy, but in-society violence. Foreign policy here is what triggered instability and in-society violence.

</comment></comment></comment></comment></comment><comment><USER18> Things that we can do about this:

1) Firearm control - complicated political issue, with reasonable people on both sides of the issue. And even if there were federal (executive, legislative, and judicial) political unanimity on action (there is not and can't be for decades), it remains a larger practical problem than in any country that has so far banned guns. State and city-level action has not proven very effective.

2) Political control and censorship - only a fraction of these killers seem to be radicalized, and they generally seem to be lone-wolves. It seems a course ripe for abuse.

3) Drug enforcement - it has been pointed out that almost all of these killers have addiction problems of some kind. Anti-depressants may also play a role. But drug use seems too tenuous a connection, and these substances are used by such a broad swath of the population without this effect, that it would be hard to fix this with drug enforcement alone.

4) Psychological intervention - could the right sort of intervention at the right time avert these killings? It's hard to believe not, but since we can't predict the killings, we can't do much here. But if we had better knowledge, it's possible to imagine something as simple as voluntary social media guidelines (for 24-hour news, Google, Twitter, Facebook, etc.), that might alleviate the problem. Or something far more heavy handed and open to abuse or misuse, including high school psychological testing and reporting, mandatory social services checkups, etc.

If I were an engineer tasked with solving this problem, I would try the full- court press solution on all of these, rather than fixating on any one component.

Solution "4" is the most interesting to me, because it seems the least explored, and the place where increased knowledge and new techniques could possibly have the greatest effect. I think that we should be especially interested in how exactly people become killers, whether there are multiple types (there certainly are), and what are the necessary stages in the process. Studies like this are especially vital and interesting to me, and we need to spend far more effort on this type of research.

The biggest danger that I can see is that political and emotional energy on the impossible solutions prevent useful action anywhere.

EDIT: More on this study. The nice data fit on their contagion equation is very interesting because it begs to be expanded. The "contagion" is mediated by the media somehow. Is it as simple as reading stories about other shootings leading to more? Or is there a media climate effect? What other types of media can lead to shootings, etc. It would be tremendously helpful to learn enough to be psychologically precise about all of this.

<comment><USER19> 5) Media policy.

Terrorism and lone wolf massacres feed trough 24/7 catastropheporn in the news.

Let's face it. Our society is entertained by news reporting. Discussing it with others is fun. May be a taboo to say it aloud.

<comment><USER18> That was actually point 4, if you were to read the post.

<comment><USER19> You frame it as psychological intervention to stop killers.

But media and audience live in symbiotic relationship with killers. Everyone gets value from the killings.

How do you break the profitable and addictive value chain?

<comment><USER18> There really isn't that much profit involved in this coverage. It seems much more likely that it's being driven by accident rather than by any nefariousness on the part of our evil media overlords.

<comment><USER19> I did not assume neferiousness, but profit and value is there. TV-networks get more voewers and money.

</comment></comment></comment></comment></comment></comment><comment><USER20> It is very telling that supporters of the 2nd think it should be upheld without ANY limits or backstops.

Freedom of speech is not absolute, why in the world should owning a device intended to kill be unlimited?

<comment><USER21> > It is very telling that supporters of the 2nd think it should be upheld > without ANY limits or backstops.

Any additional limits. There are already plenty of laws on the books around gun control, it's disingenuous to pretend as though none exist.

<comment><USER22> This is the main consideration I give to gun ownership.

When there is a tyrannical government in power who is violently oppressing the people, would any new laws eventually prevent me from walking up to an agent of the tyrannical state and shoot them in the head? i.e., would it be possible to have localized insurrections against government? Make no mistake, it is this fear that prevents most governments from overreaching.

If the answer is no, then the rule is not allowed. Licensing would be a slippery slope into complete gun control and consolidating power over the people.

If you want further proof, look at what is happening in the socialist countries in South America. The government is murdering their own people who are defenseless.

If you want further proof that an armed populace is a good check against (real or perceived) tyranny, look at Afghanistan, Iraq, and of course USA (hello UK!)

<comment><USER23> The right wing people seem to be ok with a dictatorship if it gets them what they want. Left wingers are less likely to open guns so this point is moot. Also what chance do these guns have against the army's artillery.

<comment><USER20> 'You are bringing a musket to a drone fight' - Jim Jeffries

<comment><USER22> He's a brilliant comedian, but he doesn't understand that people have successfully fought off the might of the US army in recent decades. That's why China colonizes economically.</comment></comment></comment></comment></comment></comment>


Motivating posters for your startup - <AUTHOR> http://startupvitamins.com <comment><USER2> Don't mean to rain on your parade, OP. Just having a little fun...

      +</comment><comment></comment><comment>-+  +</comment><comment></comment><comment>-+  +</comment><comment></comment><comment>-+
      |             |  |             |  |             |
      |   No room   |  |  Tear down  |  |   Posters   |
      |     for     |  | this poster |  |  & Posers   |
      |   posters   |  | and put up  |  |  differ by  |
      |   in your   |  |   another   |  |  only one   |
      |     MVP     |  | white board |  |   letter.   |
      |             |  |             |  |             |
      +</comment><comment></comment><comment>-+  +</comment><comment></comment><comment>-+  +</comment><comment></comment><comment>-+
       18x24"-$26.00    18x24"-$26.00    18x24"-$26.00

      +</comment><comment></comment><comment>-+  +</comment><comment></comment><comment>-+  +</comment><comment></comment><comment>-+
      |             |  |    If you   |  |   Objects   |
      | MOTIVATING. |  |  need to be |  | on posters  |
      |             |  |  motivated, |  |  are less   |
      |  POSTERS.   |  | you should  |  |  oriented   |
      |             |  | be working  |  |    than     |
      |   DON'T.    |  |  somewhere  |  |    they     |
      |             |  |    else.    |  |   appear.   |
      +</comment><comment></comment><comment>-+  +</comment><comment></comment><comment>-+  +</comment><comment></comment><comment>-+
       18x24"-$26.00    18x24"-$26.00    18x24"-$26.00

      +</comment><comment></comment><comment>-+  +</comment><comment></comment><comment>-+  +</comment><comment></comment><comment>-+
      |   00110010  |  |    Stop     |  |  The less   |
      |   11001011  |  |   reading   |  |  you read   |
      |   10010110  |  |   this &    |  | Hacker News |
      |   10001001  |  |    get      |  |  the more   |
      |   10010011  |  |    back     |  | likely you  |
      |   01011001  |  |     to      |  | will be on  |
      |   01011001  |  |    work.    |  | Hacker News |
      +</comment><comment></comment><comment>-+  +</comment><comment></comment><comment>-+  +</comment><comment></comment><comment>-+
       18x24"-$26.00    18x24"-$26.00    18x24"-$26.00

<comment><USER3>
      > +</comment></comment><comment></comment><comment>-+
      > |   00110010  |
      > |   11001011  |
      > |   10010110  |
      > |   10001001  |
      > |   10010011  |
      > |   01011001  |
      > |   01011001  |
      > +</comment><comment></comment><comment>-+

Hex: 32 cb 96 89 93 59 59

Decimal: 50 203 150 137 147 89 89

ASCII: 2 Ë [not defined]x3 Y Y

What am I missing?

<comment><USER4> Vertical isn't ASCII either:

      3c  23  40  57  2b  10  74  2f

      <   #   @   W   +   DLE t   /

I think it's nothing, pointing out we shouldn't be wasting our time figuring out useless poster puzzles that have little value to our work?

</comment></comment><comment><USER5> When I see those, I always remember the quote from Peopleware - DeMarco / Lister :

"These motivational accessories, as they are called (including slogan coffee mugs, plaques, pins, key chains, and awards), are a triumph of form over substance. They seem to extol the importance of Quality, Leadership, Creativity, Teamwork, Loyalty, and a host of other organizational virtues. But they do so in such simplistic terms as to send an entirely different message: Management here believes that these virtues can be improved with posters rather than by hard work and managerial talent. Everyone quickly understands that the presence of the posters is a sure sign of the absence of hard work and talent."

<comment><USER6> My first thought was of the more cynical <http://www.despair.com/motivation.html>

Motivation: If a pretty poster and a cute saying are all it takes to motivate you, you probably have a very easy job. The kind robots will be doing soon.

<comment><USER7> I clicked in to this thread purely to post a despair.com link. You beat me to it, and you also posted the most appropriate link!

</comment></comment></comment><comment><USER8> I think the comments thus far have been a little harsher than is necessary. Sure, some of them are a bit cliched but that's fine. None of them seem as tacky as the traditional corporate motivational posters. Perhaps if I worked anywhere near the valley I might be more critical but given that I work in a city that is as far removed from start up culture as possible, I'm probably not as jaded (for lack of a better word) as most HN users.

I purchased one of these posters because the quote addresses one of my biggest repeated failings and the author, Jason Fried, is someone I have a lot of respect for. I wouldn't mind an attractive reminder to avoid my perfectionist, obsessive nature hanging over my desk.

Kudos on the site design and the idea. Best of luck to you. My only quibble is that the site name could be a bit more subdued on some of those posters.

<comment><USER9> Agreed. These are more like a koan or kata. They help focus the mind in moments of distraction. Maybe like a haiku - simple words to stimulate a beautiful response in the mind.

</comment></comment><comment><USER10> To be perfectly honest I'd be pretty offended if a place where I was working put these on the walls.. The Holstee Manifesto ([http://shop.holstee.com/?campaignid=446&mbsy=7pD](http://shop.holstee.com/?campaignid=446&mbsy=7pD)) I understand, because it's great. But these are just trite and tacky, form over function kind of stuff.

I reckon I'd be far more inspired by, you know, pictures of the team. Or lolcats.

<comment><USER11> Or some Dilbert giant comics poster.

</comment></comment><comment><USER12> I think your company should form its own culture, not try to synthesise one by propping up posters of vacuous bullshit that basically tries to tell you how to do your job.

<comment><USER13> I think I agree.. but your own culture can be useful in this form. I dig the "Go fast and break things" posters hanging around the facebook office (dunno if they're still there). It makes sense to me that if your team finds some core values it might be good to commit them to paper and toss them up and a way to remind everyone, especially new folks that it's a hard-won tenant the team believes in.

But I think the idea of importing those values in the form of posters picked off of a website somewhere makes it easy to skip the important part of doing the hard work to figure out what your team collectively believes in.

</comment></comment><comment><USER14> I can picture the scene:

CEO seated at fusty mahogany desk says "Eagles, jet fighters, and crew shells aren't selling to these 'millenials.' Hire some hipster models and get some 'edgy' copy!"

</comment><comment><USER15> Do not buy. These are from the evil LeadLander guys: <http://news.ycombinator.com/item?id=4891637>

<comment><USER16> Ok... is there any evidence of that, or are we just going with bald assertion?

edit: Nevermind. Their website says they're part of Draugiem Group, which does seem to own Relead.

</comment></comment><comment><USER17> CONSUME

MARRY AND REPRODUCE

OBEY

<comment><USER18> <http://maggotfilms.com/2010/12/08/they-live/>

<http://en.wikipedia.org/wiki/They_Live>

</comment></comment><comment><USER19> Anyone but me read "Experiment. Fail. Learn. Repeat." as "... Repeat failed experiment, even while knowing better?"

</comment><comment><USER20> So I'm going to buy a "Don't compromise" and put it right in front of a "Done is better than perfect".

<comment><USER21> Yeah, that's why motivational posters are usually a dumb idea. The words are almost always true, but very context dependent. Stuck on a wall like that they lose context and start to seem absurd, things start to feel like a Dilbert cartoon.

</comment></comment><comment><USER22> I suppose it's possible that these posters can motivate a team, but only if everyone on the team knows and understands, on a deep level, what the slogans stand for. Unfortunately, it's very tempting to skip the part where you have a set of long, hard, emotionally draining conversations with the team, where the team puts measurements in place that help them see when they're not holding to their stated goals, where they get frustrated but keep trying to improve things anyway. Why go through all of that when you can just put up a poster!

(edit: My point is that these posters seem like they should be earned, not just purchased.)

</comment><comment><USER23> I think what's getting people upset is that they are called 'motivating' posters. I would hang these up in my office for two reason:

1) They look nice and nothing wrong with having a nice looking off space. 2) They serve as reminders. Sure we all 'know' these sayings and try to apply them in everything that we do, but that doesn't mean we forget sometimes and stray off the beaten path. Just like saying we could all have someone tell us "do unto others..." every once in a while.

</comment><comment><USER24> I just had a torn out page from a magazine with Audi RS4 on it framed and hung on the wall at the eye level. As dumb as it was, it did miracles during the crunch times.

</comment><comment><USER25> This sort of stuff makes me cringe

</comment><comment><USER9> [http://dd.dynamicdiagrams.com/2009/03/visualization-a-la- dil...](http://dd.dynamicdiagrams.com/2009/03/visualization-a-la-dilbert/)

</comment><comment><USER26> Can you make one that says "Is this good for the company?"

<comment><USER27> try the Office Space kit by thinkgeek: <http://www.thinkgeek.com/product/8e6c/>

</comment></comment><comment><USER28> Houston, we've jumped the shark.

</comment><comment><USER13> I like some of these, but for some reason they all remind me of the Portal 2 propaganda and I hear them in my head read in the Cave Johnson voice.

</comment><comment><USER18> All you need are the regular motivational posters with an additional caption: Do you want to work somewhere management thinks this is a good idea?

</comment><comment><USER29> Oh wow! New product idea! Print these 'motivational' posters on toilet paper! Now all I need is a technical co-founder...

</comment><comment><USER7> There are 14 posters here, but the five I can see above the "fold" on my 1440-pixel high monitor are definitely the worst five. The last five posters are awesome because they say something that it's possible to disagree with, and is therefore worth saying. The top five are trite and cheesy.

</comment><comment><USER30> Except it's wrong. It should be... Experiment. Learn. Repeat.

There's too much emphasis on failure. If you keep focusing on failure, you keep thinking about failure. I prefer to think of learning experiences. Learn. Learn. Learn. Eventually you find a combination that works!

</comment><comment><USER31> They all are but the different formulations of ARBEIT MACHT FREI.

</comment><comment><USER32> As nice as they are these posters won't motivate anybody.

I best advice I got years ago (from HN): burn the boats, put pressure on yourself and you don't need motivational poster anymore.

</comment><comment><USER33> I love the designs, and I think it's a great way to make money. Wish I'd thought of it first :) I can see companies paying a bit more to motivate their employees.

</comment><comment><USER34> If I ever found a company, the only posters on the office walls will have a white background and black letters, for example the word "OBEY".

The dresscode will be sunglasses.

<comment><USER35> You could probably have Shepard Fairey do that. heh. Of course, you'd have to be ok with Andre staring you in the face all day.

</comment></comment><comment><USER36> 26$ + 50$ + 20$ (or something like that) shipping, 96$, isn't it too much for a framed print? I would like to buy one but it looks expensive to me.

</comment><comment><USER37> I think they missed a good one by Samuet Beckett: Ever Tried. Ever Failed. No Matter. Try Again. Fail Again. Fail Better.

</comment><comment><USER38> But... that's Visual Studio's logo right there.

<comment><USER24> ... which in itself represents an infinite VS crash-restart cycle that ensues if you ever to mess with a project resource file by hand :)

</comment></comment><comment><USER39> Just ordered some. Let's hope that international delivery doesn't take weeks.

<comment><USER40> I bet it would take at least 2 weeks so find alternative ways to stay motivated.

</comment></comment><comment><USER41> I liked this idea better when it was called Busy Building Things.

</comment><comment><USER42> these are kinda pricey for what they are. fab.com has awesome prints likes these on sale every now and then for half the price and now free shipping. just saying.

</comment><comment><USER43> Every one of those made me feel depressed.

</comment><comment><USER44> sweet idea, i hope it catches on</comment>


Why the Rails founder automatically rejects 80% of Software Engineer applicants - <AUTHOR> https://medium.com/@christophelimpalair/why-the-founder-of-rails-automatically-rejects-80-of-software-engineer-applicants-4e2a4d255f58#.be8x4jnqh <comment><USER2> I keep lots of commented out code in my projects, usually with a dated explanation of why it was commented out. You don't want someone coming by later and trying the same thing that worked most of the time but was foiled by an inobvious edge case

<comment><USER3> That's not really the same, is it?

// The following approach (some psuedocode follows) will not work because of xyz.

Though I'd still prefer not to have that. With a VCS + bugtracker that contains info on how the fixes were arrived at, or very verbose commit messages, you don't even need this.

<comment><AUTHOR> Agreed. It's definitely better than just commenting out code and leaving it there, but it could get super messy.

</comment></comment></comment><comment><USER4> Rather hire somebody who can resolve bugs and focus on the specific objectives and values, within given time-frames of a particular project than somebody who never writes code that might be "poorly indented, poorly named, and poorly scoped.", or containing commented out code also.</comment>


Ask HN: If I leave now does my co-founder own my code? - <AUTHOR> My co-founder (a good friend of mine) came to me back in February with an idea for a platform. He came to me mainly because I'm a coder, and he's not, so he wanted someone to help him implement this idea. I loved the idea that he presented me with, so we joined forces and decided to be co founders of this venture together.
After a few months of working (me on the code, him on... well, nothing really, just asking his friends for advice on business plans and marketing, but he hasn't actually outputted anything yet), I have now come to realize that the two of us really don't see eye to eye on what the platform is about, and I've decided that I no longer want to continue on this venture with him.
We did write up a Founders Agreement (although we never actually printed it up and signed it), and in this agreement, it states that once a corporation is formed then all assets are transferred to the corporation, however, we haven't formed a corporation yet. The agreement also states that if one of us wants to leave before, we should have a mutual separation of assets.
When we originally spoke about if one of us wanted to leave, what would happen, he told me that he believed the person staying should own everything that was created, without any regard to compensation for the person leaving the venture.
So far, I've put in four months of coding work, along with some of my own money in various services (hosting, proxies, buying a domain, etc). If I leave now, I personally think that in this separation of assets, he should pay me back the money that I've spent on this venture, and that he should only get my code if he compensates me in some way (money for four months of work, or a percentage of the company).
I'd like to hear thoughts from everyone here, to see what I should do.
Thanks HN! <comment><USER2> I had a similar situation once. A friend who was a minor celebrity was supposed to secure some participants for an app idea. We were friends so we didn't make any arrangements upfront (huge mistake).

Come 6 months later, I'd written most of the platform, and he had put in zero effort. He then sent me a contract offering me a generous 10% of the business which also stated I agreed to work without compensation on the idea for 5 years.

I ran. As should you. Your idea is over. Take your code and go home. This individual does not have the ability to implement the idea, so it is dead without you in any event.

The world is full of these vampires. People who don't value the work we do. People who think merely having an idea is more important than being able to bring it to fruition. Has this individual offered to pay you? What was he supposed to contribute? And for god's sake why would you agree to any of this?

<comment><AUTHOR> In theory, he's going to be doing all of our business development, applying to accelerators and investors, market research, marketing, SEO/SEM, etc.

The problem is that he didn't want to do any of this until we have a platform up and running already, and so far all he's been doing is just meeting with his friends who know a lot about marketing and business development and learning from them about these topics.

Meanwhile, I've been coding the platform the whole time. Theoretically, if we had been aligned the entire time, I would be fine with this, because once I've finished a beta version of the platform I can sit back and relax and let him do all the BizDev/Marketing work. Unfortunately, we lost our alignment on what each of us wants to do with the platform, so I'm leaving now.

<comment><USER3> Your friend has no clue what they are doing.

SEO, SEM, and reputation marketing has to start, well yesterday.

If he isn't putting up blog posts and developing your venture as one populated by experts it isn't going to get very far.

</comment></comment></comment><comment><USER4> It depends. IANAL YMMV etc.

If you don't want to do anything with the code you do, you've got two options: 1\. sell it to him 2\. burn everything.

If you want to do something with the code, and go your own way ... HIRE A LAWYER.

Seriously, your friend could lawyer up and things could get nasty.

In fact if you're considering the first two options, hire a lawyer as well. You might get accused of destroying 'his' intellectual property.

Seriously, HIRE A LAWYER.

You might lose a friend, but you'll at least be doing the right thing by the both of you.

</comment><comment><USER5> IANAL but, I believe you own the copyright on the code unless, somewhere, you transferred the copyright. This would be true if you were in a corporation or not. Of course, this is why the corporation usually gives you a contract that says that you transfer the copyright of your code to them.

If there is a corporation, you might transfer the copyright to them, but you would ask for compensation.

Speak to a lawyer.

</comment><comment><USER6> > he told me that he believed the person staying should own everything that > was created

That speaks volumes. He had absolutely no skin in the game, and didn't have any actual work to do to make the platform a reality. Why would HE ever leave?

It is pretty much a guarantee that if you got tired of doing the project, he would still own the rights to everything.

IANAL, but I watch a crap ton of Judge Judy... You are, right now, through this post, admitting that you had this discussion and that was the outcome and your continuation of work was "in agreement to his terms". The dumbest thing you could do in a situation like this is document that you guys had agreed to something like that.

You NEED a lawyer, and this post might have done some damage.

<comment><AUTHOR> Thanks for the advice!

I want to clear up something here that I might have not made clear in the original post...

Neither of us actually agreed to that condition, it was something he brought up when we were going over the founders agreement section about one founder leaving before a company is formed.

I was explaining to him what mutual separation of assets meant, and he told me that he thought the person leaving should give the person staying rights to everything. We ended up disagreeing on this, and we left it in the founders agreement as "mutual separation of assets".

So to be clear, I never agreed to work under those terms, and he never brought it up again, because we both saw a lot of issues with that.

I just wanted to bring it up because I wanted to know what others thought.

<comment><USER7> So did you guys ever say the person leaving couldn't also use the code? If not then both of you could use your own copies. If he's not a dev, what's he really going to do with it?

With all due respect, I'd be willing to bet that the codebase has close to little value. But your know how and knowledge of the problem/domai does. Worst case, now that you know how to do what you already did, could t you do it over better and faster?

</comment></comment></comment><comment><USER8> Don't leave ... take control since you're the copyright holder:

1) add a standard source code header with your name, date and location 2) take control of the site 3) send a registered letter that he's in breach of your verbal agreement as a marketing business partnet and explain that you're good friends, but now you're the President, and since he's been ineffective as a business partner, that if he wants to be involved, to show some tangible results within 90 days.

This is a very common situation. Sadly most people cannot articulate Step #3 above, and the partnership breaks up from lack of firm communication.

</comment><comment><USER9> Cut your losses . I've had this exact scenario happen to me before, a few times actually. I now have a folder of "startup graveyard" on my ext drive. It really sucks from our POV, but at the same time, don't waste anymore of your time with it. Actually the one guy wanted to code, literally sent me an email asking for it. I dont em to take a walk.

</comment><comment><USER10> If you did not sign anything, form a corporation or have anything written down, then it's an easy one: You can leave with all the code. I don't see how he could win in a court of law without legal documents.

A promise/intent is not enforceable without proper signed documents. However any kind of litigation might cost you.

</comment><comment><USER11> IANAL: but with nothing signed, it's you're code I believe, since it's your original work.

I suggest looking into copyright law. (This is why contractors must/usually sign "work for hire" clauses, proclaiming that the work is made for the company they're contracting with)

</comment><comment><USER12> Talk to him about it, tell him what you have told us and that you will pursue the idea without him if he won't contribute or help in any way. The way I understand it is that you made and own everything anyways.</comment>


Show HN: Swiping Card Prototype with Face Gesture Using Firebase's MLKit in iOS - <AUTHOR> https://github.com/anupamchugh/BlinkPoseAndSwipeiOSMLKit <comment><AUTHOR> So, I was playing around with Firebase's MLKit on iOS, looking at the different use cases of it. While going through its Face Detection API, I thought of using its Blink Detection and Head Pose results on a swiping card interface as we have it dating apps-Tinder, Bumble and more. The idea was to trigger swipe gestures on a stack of cards based on an eye wink or head turn. I made a prototype that lets the user switch the front camera and just do the face gestures to do a left swipe or a right swipe!</comment>


Why I'm moving from Wordpress to Hugo - <AUTHOR> http://austinrepp.com/wordpresstohugo/ <comment><USER2> I definitely think static websites are the future of blogs. Fast, light, minimalistic, browser-friendly and moreover totally under your control. You be the boss!

Don't want Google Analytics prying on everyone? Just have some 3rd party script for counting views, or just remove it altogether. So much customizations and moderation privileges, I think it is the only place to truly express yourself, not some FB, IG, Twitter etc.

</comment><comment><USER3> Good move. I made the switch two years ago. Updating and theming my blog is super easy now, and I can put it all in Git. This kind of move definitely favors developers though.

<comment><AUTHOR> Yea that's something I might not have mentioned clearly enough in the article- being a developer already is why this is so easy.</comment></comment>


Kevin Rose on why Google needs Buzz - <AUTHOR> http://kevinrose.com/post/385156078/why-google-needs-buzz

<comment><USER2> Please Kev, next time you reach this point of inspiration just take a few minutes to write your thoughts out. Your delivery adds too little to your thesis too make up for the bother of listening to you deliver it.

</comment><comment><USER3> yep, that's exactly what i think too. Google needs real time search and the best way to do that is to have the data on their lightning machines.

If it's not on their lightning machines, then the content owner (twitter, facebook, etc) is the king and google has to wait until that content owner makes the data available to google's bots.

I imagine google talked to facebook and twitter, but google is getting a lot of push back from content owners because content owners don't want to let google put servers in their data centers or have quicker access to the data than can be gotten through polling for updates.

And why would they? They all work on advertising meaning they are all competitors. It's the same thing with newspapers, except in this case, the content owners actually have some power to say no to Google, because twitter and facebook users don't go through google first to get there. Google is a gateway for the newspapers, but twitter and facebook are _themselves_ gateways.

Google wants everyone in the world to start their browsers on a page controlled _by_ google.

<comment><AUTHOR> If we're going to have real-time search, I'd rather it's from Buzz than Twitter if only for the fact that it's not limited to 140 characters and doesn't have to use URL shorteners, you can include pics/maps/videos/etc, and it's easy to see comments made about a post.

Twitter's 140 char limit was cute at first, and it sounds great in concept ("deep thoughts in few words!"), but in practice it's starting to get on my nerves.

<comment><USER3> OT: Is there a literary term for the situation where something's greatest strength is also that thing's greatest weakness? Like an Achilles heel, except the Achilles heel isn't also a strength.

It applies here, because the 140 char limit is what helped twitter take off, but it could also be twitter's greatest weakness.

<comment><AUTHOR> > OT: Is there a literary term for the situation where something's greatest > strength is also that thing's greatest weakness?

A couple of Google searches (ha!) didn't return anything, but it _feels_ like there should be (I'm expecting an ancient greek word).

I'd definitely also like to know.

<comment><USER4> "Double-edged sword" is typically used for these scenarios. But the meaning is more metaphysical than practical, suggesting that two blades facing opposite directions can do an equal amount of harm as good ("cuts both ways").

Oddly, the "Midas touch" fits the definition almost perfectly, but the phrase is almost always used to positively describe someone's uncanny success, ignoring the devastating effects it might have on the person's life.

</comment></comment></comment></comment></comment><comment><AUTHOR> He's basically saying that Google needs the real time info that sites like Twitter produce, but that they don't want to rely on a third party like Twitter (which they probably would have bought if they could).

He notes how Google gives Twitter a prominent space in its search results, and how that it not something they've done often in the past, and probably want to change in the future.

</comment><comment><USER5> As I was watching this I also thought that Google could be using Buzz to devalue Twitter. If Buzz can get a mass audience Google may be able to acquire Twitter more cheaply. Twitter has way too much of a head start for Buzz to actually rival it.

<comment><USER6> Twitter's hit mainstream, and even turned into a verb. Google can't really compete on that, as their name is already a verb in a different area :-)

</comment></comment><comment><USER7> not text; didn't read</comment>


Ask HN: Mother driving me crazy over getting a job. What to do? - <AUTHOR>

I've been working fulltime for 10 years and last year I quit my job to try freelancing so that I can create cool things of my own and for the clients.  I am struggling to get clients and most of my saved money is gone but I do get enough clients to keep going at a bare minimum lifestyle.<p>My mother is telling me to stop this madness and get a job. She thinks I waste my life by being a freelancer. She is driving me to the brink of depression.
As an entrepreneur have you face similar problems with your family members? <comment><USER2> If you've blown through 10 years of savings in 1 year that should be a warning sign. If, after a year of freelancing, you're not completely self-sustaining, I'd say it's time to re-evaluate your plan. You do have a PLAN right? You didn't just decide to try freelancing right? Please note that "looking for clients" is not a plan, it's a complete lack of a plan. If you can't explain to your mom why you're going to be a successful freelancer then I'd suggest you either take her advice or do something to prove you won't be moving back into her basement, if you're not there already.

</comment><comment><USER3> Steady as she goes. I remember seeing somewhere that it takes eighteen months to reach your prior salary. It took me longer but I blame the timing, I started on my own right when the economy tanked. If you want someone to talk to ring me on a Sunday afternoon and I'll tell you what I know.</comment>


How YC startups shorten sales cycles by 20% with Slack - <AUTHOR> https://blog.acrossapp.com/how-yc-startups-shorten-sales-cycles-with-slack/ <comment><USER2> Great article! Bookmarked!</comment>


Wait Wait... Don't Tell Me - <AUTHOR> http://www.eeweb.com/rtz/wait-wait-dont-tell-me

<comment><AUTHOR> When you spent a lot of time in the lab working on new hardware designs, you quickly begin to tell the difference between a blown capacitor versus say a burnt resistor.

As you follow our comic RTZ, you'll notice that Bert the lab technician tends to think of everything in terms of food!</comment>


Ask HN: What is C++ for you? - <AUTHOR>

Hello guys
I will soon give a talk about C++ and C++11 particularly, and I would like to focus on what most people/geeks/developers think of C++11, whatever it is true or not. I am not looking for long arguments about proving who has the truth. I want you personal feeling about C++. Dont mix up your though too much to look trustworthy, just tell it as it is, if you would be so kind. If you dont know enough about C++ to have an opinion, just state it (that is valuable for me).
What the word "C++" brings into you mind ? Do you think it is hard to learn ? Do you think it is good for avanced users and too hard for others ? Do you think it is too low level and should be avoided in a modern code base ? Do you think it is a choice language for modern software ? Do you think it have nothing to do with the internet world and is or will be overwhelmed by "web" languages ? Do you think it is a crippled C extension ? Do you think it is old and should only be used for its initial purposes ? Do you think it is boring to be a C++ developer ? Do you think it is inelegant compared to "beautiful" and strongly expressive languages ? Do you think learning C++ is valuable for a software developer ? Do you think it has a poor community ?
Those questions are oriented and I do not expect anybody to answer each of them. I just wrote them down to help you figure out your opinion.
Thank you very much for any feedback. <comment><USER2> I hear it's hard to learn but very powerful when mastered. It looks like its used extensively in embedded systems and high performance computing domains such as in the financial markets. I would learn it but it seems like java is the more marketable standard language.

</comment><comment><USER3> A maze of twisty features, all different. It doesn't seem designed so much as thrown together based on what seemed a good idea at the time (a criticism that is certainly not unique to C++).

</comment><comment><USER4> War of attrition in a quagmire. So far C++ wins.</comment>


Comedy Written for the Machines - <AUTHOR> https://www.nytimes.com/2020/01/29/magazine/tiktok-viral-angelmamii7.html <comment><USER2> Reminds me of the body of work by David Firth. His work also was driven by stark contrast between internal consistency and utter and sometimes unsettling external nonsensicalness.</comment>


Hong Kong's security law is going to devastate its economy - <AUTHOR> https://asia.nikkei.com/Opinion/Hong-Kong-security-law-is-going-to-devastate-its-economy <comment><USER2> Related: [https://www.wsj.com/articles/u-s-officially-declares-that- ho...](https://www.wsj.com/articles/u-s-officially-declares-that-hong-kong-is- no-longer-autonomous-11590596133?mod=hp_lead_pos2)

"U.S. Officially Declares That Hong Kong Is No Longer Autonomous

WASHINGTON—The State Department has officially determined that Hong Kong is no longer autonomous from China, Secretary of State Mike Pompeo said in a statement Wednesday that holds implications for the future of economic ties and could lead to sanctions against China.

The State Department is required by the Hong Kong Policy Act to assess the autonomy of the territory from China. It certified to Congress on Thursday that Hong Kong is no longer autonomous."

<comment><USER3> Not that I disagree with the act, but I love how politicians are trying to frame destroying Hong Kong's economy as supporting "Human Rights and Democracy."

<comment><USER4> In the post-nuclear world economic pressure is the only tool we have to deal with bad actors. It's why we sanction North Korea, Iran, and Russia.

<comment><USER5> It's a very bad tool for that particular job, as we discovered in Iraq -- it hurts the most vulnerable members of the society, and does very little to the elites making the policies we don't like.

<comment><USER6> True.

But it's not the point; The intention is reduce the capabilities of the country as a global influence and generate internal state turmoil.

<comment><USER7> After decades of sanctioning Libya the united states finally got what it wanted by decapitating the state with violence; one wonders (global political dynamics aside) if for the unfortunate citizens of Libya, it would have just have been better to have gotten it over with earlier.

</comment></comment></comment></comment></comment></comment><comment><USER8> This is better understood in the context of Hong Kong's trade relating to China.

HK import volume 2018: USD $627 billion [1]

HK export volume 2018: USD $568 billion [2]

The top 2 imports are: (see [3])

1\. Electrical machinery, equipment: US$307.7 billion (53.2% of total imports)

2\. Machinery including computers: US$66.4 billion (11.5%)

HK has only 7 million people. There's no way it can consume that much import nor produce that much export, especially not consuming $307 billion worth of machine equipment. Hong Kong is China's 2nd top trading partner [4]; China is basically using Hong Kong as a trading proxy to evade sanction. Most of the imports are purchased by China because it cannot buy them legally and has to use HK's "autonomous" status to import. Most of the exports are routed by China to take advantage of its tax free zone status.

Not to mention 70% of the foreign money going into China every year is via Hong Kong. Killing Hong Kong's "autonomous" status is the stupidest move done by China in the recent years. It allows the outside world to plug the last gateway into China.

[1] [https://www.tid.gov.hk/english/aboutus/publications/tradesta...](https://www.tid.gov.hk/english/aboutus/publications/tradestat/wmtimp.html)

[2] [https://www.tid.gov.hk/english/aboutus/publications/tradesta...](https://www.tid.gov.hk/english/aboutus/publications/tradestat/wmtexp.html)

[3] [http://www.worldstopexports.com/hong-kongs- top-10-imports/](http://www.worldstopexports.com/hong-kongs-top-10-imports/)

[4] [http://www.worldstopexports.com/chinas-top-import- partners/](http://www.worldstopexports.com/chinas-top-import-partners/)

<comment><USER9> I don't believe China is currently under any trading sanctions - did you mean they are evading _tariffs?_

<comment><USER8> Not sure it's sanctions or tariffs, just there're $307 billion worth of machine equipment per year they cannot buy directly.

<comment><USER9> Did you account for value addition? It may be HK is in the middle of electronics value chains that start and end outside of its borders - I imagine Singapore has a similar import/export numbers it makes a lot of hard disks (export) but doesn't make a lot of chips (import). This doesn't imply Singapore is a front for another country

<comment><USER8> There isn't much of electronic industry in Hong Kong since the 80's. [https://en.wikipedia.org/wiki/Manufacturing_in_Hong_Kong](https://en.wikipedia.org/wiki/Manufacturing_in_Hong_Kong)

</comment></comment></comment></comment></comment><comment> m-p-3 And the real losers in this fight here are Hongkongese citizens, who fought for their freedom and ultimately are losing it, on top of facing an economic crisis.

<comment><USER10> As I genuinely asked in my comment separately in the thread, what practical freedoms are being lost by the everyday person in Hong Kong that would not be considered crimes in the US (or Hong Kong prior to this), for example?

<comment><USER11> The obvious answer is criticism of the Chinese government, which is I believe a Chinese constitutional right that is ignored in practice. Although, practically speaking, this has already been lost in Hong Kong ever since the abduction of the bookseller.

<comment><USER12> Also with government officials starting to describe every protest as "riots" and "terrorism", it's feared that they are paving the way to grant Chinese authorities power to legally "arrest" anyone anywhere. It's not yet confirmed that the execution will be carried out by Chinese officials, but the law grants them power to do so.

Also search warrants were originally needed for the police force to break into private properties (not that the Hong Kong police respect any of the current laws now though), after passing the law, they are no longer need.

The scariest part, however, is how vague the law is. One can never truly define what is criminalized. For example, what is "foreign interference"? The HK government has been criticizing the protests as being "influenced" by the US. It's their say to impose a crime upon you. Most "criteria" for acting against the "law" are speculations.

</comment></comment></comment></comment><comment><USER13> The sad fact of the matter is that Xi has already calculated that and deemed it an acceptable loss in the name of "national security."

<comment><USER14> I'm kind of wondering if he will step down next year, or find a reason to keep going. (I don't know what the constitutional arrangements are, but assume that he can only have a single 10 year term)

<comment> green-bottle I doubt Xi's going away anytime soon. He got constitutional term limits on Presidency removed.

[https://www.bbc.com/news/world-asia- china-43361276](https://www.bbc.com/news/world-asia-china-43361276)

</comment></comment></comment><comment><USER10> I read all these headlines, but when I then followup to read more about the text of the proposed laws [1], I have a hard time seeing that aside from freedom of speech infringements (and ability to imprison, fine based on those -- which are clearly a bit vague in terms of enforcement, but otherwise as bland as a lot of US legislation), these laws are not egregiously different from what exist in some other countries.

Aside from the symbolism, can someone enlighten me why they have practical, real worries that this is going to cause some massive political or social change over there? Or whether companies will really shy away from doing business when they already face laws like this elsewhere? Or that the economy there is going to dry up because of this?

[1] [https://en.wikipedia.org/wiki/National_People%27s_Congress_D...](https://en.wikipedia.org/wiki/National_People%27s_Congress_Decision_on_Hong_Kong_national_security_legislation)

<comment><USER15> I don't think the main problem Hongkongers have with this law is necessarily the content, but the fact it has been pushed on them by an external government which many Hongkongers expected to remain independent from for the next 27 years. From their perspective, having their own government taking marching orders from Beijing undermines the principle of "one country two systems".

Aside from the principle of it, there are also several aspects of the proposed law that go beyond what many people consider to be reasonable. Most notable for migrants and tourists is the emphasis on preventing and penalizing "foreign interference", which doesn't sit well in a city that is still the most multicultural in East Asia. Allowing the mainland security apparatus to set up offices in the city is also concerning, given mainland law enforcement is famous for disappearing and torturing people who do not support the single party dictatorship.

I think it's fairly clear that this is an opportunistic power-grab by the central government. The coronavirus has allowed them to dramatically increase the intensity of their security measures in the mainland, instituting Xinjiang-style movement tracking apps, "temporary" barricades and checkpoints all over the country. The state media has whipped up intense anti-American hatred, and the government is emboldened by the fact that America is dealing with the virus comparatively poorly. There is a widespread public support for cracking down on Hong Kong, which has been presented here in mainland as a city besieged by terrorists and American agents of chaos, all out to destroy China. I suspect from the point of view of the central government, being able to advance their timetable on the takeover of Hong Kong is the silver lining of this pandemic.

<comment><USER16> Was Hong Kong ever really independent though?

<comment><USER17> Essentially, yes. Besides China having sovereignty over the city, it has its own currency, government, different law system than China, a border with China, and different passport. In recent years on the rise of Chinese Nationalism, the Chinese government seems to downplay this a lot to eliminate the HKer's local identity and creates an image of HK = China. Culturally, it is also vastly different than China.

<comment><USER16> What i meant was it was under British rule prior to China. The British ruler was literally appointed by outsiders.

From an American perspective it's more about losing a territory under Allied jurisdiction. From the local perspective it's about losing independence rights—though they didn't really have that right under British rule either.

<comment><USER18> Towards the end, it was only under direct British rule because China threatened to invade if the British gave them self-governance.

[https://www.nytimes.com/2014/10/28/world/asia/china-began- pu...](https://www.nytimes.com/2014/10/28/world/asia/china-began-push-against- hong-kong-elections-in-50s.html)

<comment><USER16> Towards the end the British tried to increase Democracy as a an anti-PRC political move but efforts were stalled by HK people themselves.

This is a reminder that it's important to fight for rights everywhere, not just when it suits your interests.

[https://en.m.wikipedia.org/wiki/Democratic_development_in_Ho...](https://en.m.wikipedia.org/wiki/Democratic_development_in_Hong_Kong)

<comment><USER19> > stalled by HK people themselves

From the article you linked, it says it was stalled by vested interests and the CCP. Where does it say it was stalled by HK people?

<comment><USER16> > Although full universal suffrage was never granted by the British to its > colony before the handover in 1997, some democratic reform began in 1984.

> ... but they stalled due to opposition from Beijing, local business > interests as represented by Executive Council, and the British Foreign > Office under the pretext that it would bring chaos to Hong Kong.

> In 1987, many surveys indicated that there was more than 60% popular support > for direct elections. The government, under governor David Wilson, issued > another green paper in 1987 proposing direct LegCo elections for 1988.

> However, the proposal was ruled out after a government consultation > concluded that people were 'sharply divided' over its introduction that > year.

It links to an article here: [https://www.scmp.com/comment/insight- opinion/article/1618427...](https://www.scmp.com/comment/insight- opinion/article/1618427/how-hong-kongs-business-elite-have-thwarted- democracy-150)

The "vested interests" you refer to is "Patten's push for reform was strongly opposed at the time by vested interests within LegCo and by former ambassador to China Percy Cradock." However that was in response to "labour rights and collective bargaining" and not strictly democratic elections.

Local business interests, and a "sharply divided" public were the reasons democracy never came sooner. Of course I'm not sure how reliable those government consultations were. I do want to point out I fully support Democracy in Hong Kong. I'd just rather not be a pawn in an opportunistic power grab by business elites who decided Chinese rulers don't work out as well for them as their former British ones. Freedom of information and thought aside, the elites have more to lose from Chinese rule than the working class.

<comment><USER19> No, by "vested interests" I mean whoever had power at the time. In the 70s-80s it was the ExCo, which had on it a few business elites hand-picked by the British.

In the 80s-90s, as China opened up its markets and needed HK investment, many business elites cozied up with Beijing, gaining political power in the process; they became the vested interests today. But they are not exactly the same group as the vested interests in the 80s.

> > However, the proposal was ruled out after a government consultation > concluded that people were 'sharply divided' over its introduction that > year.

By that time the CCP was heavily involved. People feared that introducing direct elections would (and eventually did) antagonise Beijing.

> rather not be a pawn in an opportunistic power grab by business elites

This is an interesting take. Do you have anything to support this claim?

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER20> If anything, doesn't that strengthen China's hand?

More reliance on the mainland for jobs and handouts, more protests and counter protests so they can justify additional crackdowns. Less westerners and less international firms, less exposure to the West.

Feels like a calculated move.

<comment><USER21> The CCP can now afford to sacrifice HK, their economy is now much larger than it was in 97.

<comment><USER22> They can't. For one thing they desperately need the dollars that flow through Hong Kong.

The GDP size is now among the least valuable aspects of Hong Kong as it pertains to China. That has never been primary.

Hong Kong is the economic staging point that much of the world uses to enter China's economy. Think of it as a translating middleman, that the world uses to convert from foreign market-based economics to China's domestic way of running things as a rigid command economy that is operated by fiat and is often hostile to foreign operators/owners/investors. Hong Kong's role in that respect has been critical to China's economic rise.

<comment><USER23> They're positioning Shanghai for that. Shanghai was something like a free city until WWII.

I think things escalated in Hong Kong much quicker than the CCP wanted-- Shanghai isn't ready to take its place. But Shanghai is the long game, and business leaders in HK know that.

<comment><USER24> Shanghai doesn't (and never will, at the rate things are going) have things that international companies care about like the rule of law.

<comment><USER23> I don't disagree, but what matters for HK's fate is what the CCP believes is possible and, presently, particularly what Xi Jinping believes.

</comment></comment></comment></comment></comment></comment><comment><USER25> I don't understand why the world in general is worried about Hong Kong being taken over by the Chinese. In 1842, Hong Kong was a chinese territory. It was taken over by the British during the first and second opium wars and then leased out to the British for 99 years. The keyword here being leased out. If now China is wresting back control of its territory, how is that disputed. The people of Hong Kong always knew that their autonomy was only till the time when the lease ends.

Interestingly, When the union flag was raised over Possession Point on 26 January 1841, the population of Hong Kong island was about 7,450, mostly Tanka fishermen and Hakka charcoal burners living in a number of coastal villages. Today Hong Kong's population is 7.5 Million so 1000 times its original population. So every body who came later knew about the lease and the length of the autonomy.

<comment><USER19> The key detail you missed is One Country Two Systems, which is what allowed Hong Kong to have a financial system integrated with the Western world's, and a legal system that works more or less the same as in London and New York.

</comment></comment><comment><USER10> So in terms of after-effects and alternatives, should we all start investing in... Singapore real estate?

</comment><comment><USER26> Xi is following the game plan laid out by Putin but at a faster pace. It's not clear to me that Xi is personally as corrupt as Putin but he's definitely as destructive.

</comment><comment><USER27> Anyone else wonder why legitimate, thoughtful responses are being downvoted?

<comment><USER28> I regularly upvote downvoted comments if it looks like someone used a downvote as an "I disagree"-button.

Just undo that nonsense.

</comment></comment><comment><USER29> You have to wonder about the hypocrisy about all this. Every country, every territory, all over the world, has anti-sedition laws.

Hong Kong, as part of the agreement between China and Britain, must enact their own security and anti-sedition laws. They had 23 years to do it!

Hong Kong failed to do so.

Now, a security law, is going to be shoved down their throats, whether they like it or not.

Foreign forces have successfully infiltrated Hong Kong, and brainwashed the young, into believing what the western world wanted them to believe.

The white western nations love Hong Kong for what it is, because the place is lawless. Capitalism is unbridled over there. It's predatory, and it eats the young, and the poor. The rich take all the spoils. It's about laws that favors the rich.

But really, Britain should step up, and give these Hong Kong residents, the right to British citizenship. They extracted trillions of dollars from China, from their plunders during their opium terrorism reign. It's time to give back what they owe. But I doubt it. The British don't have any morals or balls to do anything. They're all talk.

<comment><USER30> What are you even talking about. Hong Kong has one of the strongest legal systems in Asia, although it's being slowly eroded by the government. Have you even visited or do you just watch shitty Kung Fu movies and assume the whole place is Kowloon Walled City or Chungking Mansion?</comment></comment>