Ask HN: If you've used a graph database, would you use it again? - <AUTHOR> <comment><USER2> I used Neo4j for a few side projects but my go-to is still PostgreSQL. The largest flaw I see with Neo4j (and probably other graph databases as well) is that it forces you to think of your entities as either vertices or edges and that line tends to be not as clear as you might expect.

For example: (:Person)-[:BEFRIENDS]->(:Person)

If we'd want to store a date with that relationship, Neo4j got your back, that's entirely possible (= relationships can have attributes). But now our requirements change and we'd also want to have an entity for Events shared by friends (e.g. friendship anniversary), now we have to remodel our data to something like:

(:Person)-[:IS_IN]->(:Friendship)-[:HAS]->(:Event)

In SQL that wouldn't have been a remodel, because there's no difference between a relationship and an entity. We would've gone from:

Person(id) Friendship(person1_id, person2_id)

to:

Person(id) Friendship(person1_id, person2_id) Event(friendship_id)

So I feel like the vertice/edge distinction Neo4j makes, gets in the way of changing data model needs and I ultimately think that modeling your data as a graph is not helpful. Though it can be extremely helpful in querying and that's where its biggest strength lies.

<comment><USER3> Maybe you want a hypergraph?

[http://www.hypergraphdb.org/](http://www.hypergraphdb.org/)

<comment><USER4> I wish this were a networked database that I could just slap on a Digital Ocean droplet and query from anywhere.

</comment></comment></comment><comment><USER5> I've been using RDF and triplestores / RDF databases for the last half-decade, developing both front-end and back-end systems, and training many developers to work in RDF. If you're used to either relational databases or object- oriented design, it's a really different way of thinking about data. Just like OOP is really good for certain kinds of problems and models, and RDBMS is good for other kinds of problems and models, RDF is great for specific kinds of problems. For example, if you need to combine several data from several somewhat incongruent sources into a single coherent database (e.g. dozens of data feeds that are _almost_ the same, but you need to preserve the differences while combining the parts that are the same), you might end up with headaches trying to come up with a good RDBMS design; RDF is really well- suited for that kind of problem.

While a lot of the work I do is covered by NDA, one problem that I've applied it that I can talk about is analyzing basketball play-by-plays. I've spent some time talking to the analytics team at an NBA franchise, and it turns out doing interesting analytics on play-by-plays can be a surprisingly tough nut to crack. RDF was a great tool for tackling this. Here's the source (written in Scala), for anyone interested at having a look: [https://github.com/andrewstellman/pbprdf](https://github.com/andrewstellman/pbprdf)

<comment> ar-jan Do you know if there's off-the-shelf software (GUI) to create/edit/explore your own RDF dataset? Or does it always involve building your own front-end?

<comment><USER5> I like WebVOWL for visualizing the RDF ontology. Here's the pbprdf ontology displayed in it: [http://www.visualdataweb.de/webvowl/#iri=https://raw.githubu...](http://www.visualdataweb.de/webvowl/#iri=https://raw.githubusercontent.com/andrewstellman/pbprdf/master/generated/ontology.ttl)

A few years ago I put together a quick GUI in C# to make it easier to run SPARQL queries: [https://github.com/andrewstellman/sparql- explorer](https://github.com/andrewstellman/sparql-explorer)

I haven't found an RDF editor or visual tool that I like. Some people like Topbraid Composer: [https://www.topquadrant.com/tools/modeling-topbraid- composer...](https://www.topquadrant.com/tools/modeling-topbraid-composer- standard-edition/) (commercial, closed source)

</comment></comment></comment><comment><USER6> We had a production Rails app running with postgres, and we decided to implement some of our models with Neo4j. Graphs felt like the right way to represent the data, and all of the models were new, so we felt more free to choose the approach that seemed best.

A month later we rewrote everything in SQL - the main drivers were:

\- as we refined our model, we realized that a relational DB with a bunch of join tables was good enough

\- our developers were more comfortable working with SQL

\- it wasn't possible to run complicated queries involving both databases simultaneously

\- the Rails ORM felt easier to use than the Neo4j Ruby APIs (though this was certainly a function of our own familiarity with Rails and relational databases in general)

\- having the extra database complicated our codebase and complicated our deployment

There was nothing horrifying or surprising in our encounter with graph databases. It just felt like we just made the wrong initial architectural decision. We were still trying to define the problem and were trying to use something we didn't fully understand.

I'd hesitate to use graph dbs in the future unless I needed a high-performance app with a lot of data that only a graph could model well. Otherwise having two different types of databases is annoying.

<comment><USER7> My instinct is that using two different databases in one app adds a lot of complexity, but it's not clear to me that if you need to pick one database that SQL is a better choice than a graph database. It really depends on the application. For many purposes, a graph database can do what a SQL database can do, because a SQL TABLE is very much like a graph collection of nodes. Of course, if you're starting with an app on a SQL database and just adding to it, that's very different from a "green field" project where you can pick technologies freely.

</comment></comment><comment><USER8> I started using Neo4j 8 years ago after a long time as a relational database developer. I needed it for a project building a LinkedIn clone with skills (at the time LinkedIn didn't have skills). I was going to need a massive join table of user-skill-user and decided it was best in a graph. I built a ruby gem "neography" as a Neo4j driver and became an open source contributor. Later Neo4j contracted me to build a rules engine in a week for one of their clients. That got me a job as a Sales Engineer at Neo4j. 100+ blog posts, 200+ github repos later, lots of travel, and many wins, I still love the job, and still love the database.

<comment><USER9> How is a graph database built under the hood?

I know that a decent RDBMS (simplified) will consist of the following:

\- data in blocks organised with a block-size that the underlying filesystem likes

\- a cache for the most frequently used blocks

\- every index is a B-Tree with pointers to the blocks containing the tuples

Then there are column stores as well as row stores, and for compression you might have some dictionary encoding going on.

Now, how does the Graph Database look under the hood and what are the complexities involved? How is the Graph persisted?

<comment><USER10> Graph databases are built a lot of different ways; for example Neo4j's architecture is very, very different than something like an RDF triple store, or datastax on top of cassandra.

[Neo4j internals can be seen here]([https://www.slideshare.net/thobe/an- overview-of-neo4j-intern...](https://www.slideshare.net/thobe/an-overview-of- neo4j-internals))...it's a bit old but I think mostly still accurate.

In graphs you have to persist nodes and edges, though you may partition nodes by label/category. In the case of neo4j there is a property store rather than a set of columns.

<comment><USER9> Thanks, very helpful. I am just looking at it and will have a bit of a think about this later :)

</comment></comment></comment></comment><comment> v-yadli Interesting question. I think it is critical to point out that, the underlying principles for a graph database is different from RDBMS, because the operators in a graph database may not comply to relational algebra.

Consider the following case:

Client A issues a query -- starting from a vertex, conduct bounded closure search, giving every visited vertex a mark (coloring, or lexical flag, whatever you would expect from a graph algorithm)

Client B issues a query -- clearing any marks applied to a particular vertex, which happens to be one of the visited vertex of Client A's query.

Now, race condition aside, let's assume we first process query A then B. Would we allow query B to succeed? It is clearly possible for query B to break the semantic of query A, for example, query A goes through a bridge and then query B cuts the bridge, so the connectivity information is lost.

Of course we could say that such query A should be a part of a transaction, and isolation can be more strictly enforced -- but again, to what degree? Poor locality will cause the transactions to be interconnected with each other. How does a graph database determine what is the true purpose of the algorithm under each query? What does it guarantee?

Many graph databases now claims ACID, but what do they really mean?

Is it just a fancy query language over a traditional data model? Say, you could also build graph queries for a SQL database -- what does a graph database provide that such graph-over-SQL cannot?

p.s. I work on Microsoft Graph Engine: [https://github.com/Microsoft/GraphEngine](https://github.com/Microsoft/GraphEngine). We decide to build a modular graph processor rather than calling it a graph database, because we don't really know by default, what kind of semantics does a user want. With GraphEngine, you could plug in linear query languages likq Gremlin or GraphQL, you can also plug in SPARQL, or traditional relational model with strong guarantees, or down to bare-metal key-value store with atomicity and durability only. I do think that a graph data model is very helpful in many scenarios, but I think we really need to advance the research on the semantic of graph management.

<comment><USER11> Transaction isolation is a no-brainer, so I don't think your example holds. Also, your example is not related to the algebra but to isolation.

"Claiming ACID" what is ambiguous about that? Transaction support with different serialization levels, like other databases that offer it.

And Neo4j originally started b/c RDBMS was not able to execute the complex deep traversals needed in real time. Dedicated storage & query engine for graphs allow you to run statements quickly that would otherwise take too long to execute.

Regarding the data model, the property-graph model is much closer to the object model but with richer relationships, it doesn't suffer from the object- rdbms impedance mismatch and is better suited to express real-world domains & scenarios. It also represents semantic relevant relationships as first class citizens in the database, allowing for proper information representation and much faster retrieval.

Disclaimer: I work with/for Neo4j, for 8+ years and still love it.

<comment> v-yadli > "Claiming ACID" what is ambiguous about that? Transaction support with > different serialization levels, like other databases that offer it.

A non-graph-database would not provide operators like deep traversals. Operations are tightly bound to ACID as a whole, not just isolation. Of course ACID would always hold if you strictly linearize everything, but that defeats the purpose of data management, and one would achieve the same goal with even macro processors like `m4`.

Getting traversals and other graph algorithms into the business means that there are lot of things that should be reconsidered, like constraints, and triggers.

For example, if you cannot write a constraint to limit the local clustering coefficient of every entity, you do not proceed in your traversal with a good upper bound time budget. However, it is the vertices that you _don't_ visit that will propagate these constraints back while you are halfway there. Parallelizing such queries, in my opinion, is beyond state-of-the-art research.

<comment><USER12> > A non-graph-database would not provide operators like deep traversals

You can do this with a recursive common table expression.

<comment><USER10> While this is technically true, in the SQL world this requires wizard level skills that most SQL developers do not possess, and when you arrive at this spot, you end up with a query that performs really, really badly.

Look, between the database formalisms, they're all "complete" in the sense that you can choose any database and solve all the problems. But certain databases are going to be pathologically bad at solving certain types of problems, which is why there are so many sub-niches that persist over time.

For deep path traversals, you _can_ do it with RDBMS, but a graph DB is going to win every time in part because the data structure is just set up for that purpose. There are other queries where RDBMS will be best too. So it goes.

</comment></comment></comment></comment></comment><comment><USER13> The coolest thing to me about neo4j is that it spins up a little web server with an extremely friendly UI that allows people to build queries and run then locally. My non-coder coworker wrote all her own queries and found, then fixed errors in the data entirely on her own.

Our data set could have been handled fine with a relational database, honestly. However this was a rare case where over-engineering a problem and using the latest technology saved time.

<comment><USER14> So I used Neo4j in 2011. It was very exciting at first, and then I got quite burned by it when I tried to make something real. Many people in this thread are describing a very different experience, and I want to know if it has really dramatically improved, or if the use cases of Neo4j users are just different from mine.

\- In 2011, it worked great on small data that fit in RAM, but once the data became bigger than RAM, queries would take unexpectedly large numbers of seconds. How much data do you put into Neo4j?

\- I admired the friendly little web server until I realized that it was a massive security hole: anyone who could access it could run arbitrary code on the server, it ran over plain HTTP, and if you put it behind an HTTPS proxy, it stopped working. I hope this isn't still the case. Does it have reasonable access control and HTTPS now? Could you use the Web interface in production?

<comment><USER15> On (1), the memory layer has been entirely rewritten since 2011. It used to be a combination of MMAP and on-heap caching; mmap in java being notoriously terrible and caching on the heap being even worse. The memory layer now works similar to postgres, with a user-space page cache managing blocks of RAM. So: It's certainly changed, and in my experience much for the better.

On (2), yes, the little UI now requires a username/password, and it supports HTTPS. HTTP remains available, defaulting to localhost access.

</comment></comment></comment><comment><USER16> I used the graph part of ArangoDB for a recent project and I appreciated the flexible nature of the relationships between entities (being edges, so always n-n). For example, my customer did often change its mind about some critical parts of the business logic (and thus relations between entities) and it was a pleasure to update without rewriting too much code. Also the queries involving many relationships seems more powerful and simpler than in a RDBMS. Anyway, maybe not an universal solution but, as a web/mobile developper, I can't see the actual limitations with my daily use case.

</comment><comment><USER17> Facebook uses a custom graph database called TAO (nodes, edges, traverse them [1]) for storing (almost) all production data. Based on DBMS classes from the Uni days this is counterintuitive, but <scale>. In practice it just worked, and it didn't keep / enabled SWEs to move fast. Having said that I don't see why I would use a graph database unless I have >10M DAUs.

[1] [https://www.facebook.com/notes/facebook-engineering/tao- the-...](https://www.facebook.com/notes/facebook-engineering/tao-the-power-of- the-graph/10151525983993920/)

<comment><USER18> Does that mean Daily Active Users? Please spell out abbreviations!

<comment><USER19> TAO = The Associations and Objects (from the linked paper)

SWE = Software engineer

DBMS = Database management system

DAU = Daily active users

</comment></comment></comment><comment><USER20> I'm currently using a home-baked graph database built on top of PostgreSQL for [https://unlikekinds.com](https://unlikekinds.com)

It stores information as triples (Bob -> Married to -> Gary) and with properties (Bob.last_name = Stamper)

I've been finding that the benefits keep on paying off. I can arbitrary relate any thing to any other thing (and query those relationships) without changing code or database schema at all.

And the fact that it's a literal, intuitive, representation of reality makes things much easier to reason about.

When viewing something and seeing all the related info, the data nerd in me loves it: [https://unlikekinds.com/t/unlike- kinds](https://unlikekinds.com/t/unlike-kinds) (meta)

</comment><comment><USER21> Our app models directed graphs in Postgres with a closure table (the transitive edges between nodes).

The advantages are that it's just sql, has good performance, and we can query the graph using relational logic rather than n+1 traversal. The trade off is space (the closure table has the potential to be huge).

So it depends on the size of the data set. Part of me wishes we'd built something that's easier to partition, but for now that's a future concern.

<comment><USER22> Surely another disadvantage of storing all that redundant data is that either (a) you lose atomicity of updates or (b) have some terrifyingly large transactions for a relatively simple change to the underlying data.

Whether this is acceptable depends not only in the size of the data set but also how often it changes compared to how often you query it.

</comment></comment><comment><USER23> There is a lot of stigma attached to graph DBs. Would it provide good performance? Should I ever use it as my primary database? Is my data ever safe with a graph DB?

If we go beyond that, assuming there was one which provided great performance, data integrity and can be reliable as a primary database — then Graph DBs are just better.

First, the schema and data modeling is incredibly simple. Our minds think in graph terms. Things connecting to each other is very natural to us as human beings. Graph DBs replicate that in a very straightforward way.

Then, many graph DBs, being modern support flexible schemas, something which is a huge win for speed of application iteration.

Graph DBs are also sparse. Which means it's a lot easier to model many differents kinds of data sources and data types into the same "table." What that gives is the ability to query across anything in the entire DB, without being concerned about table level boundaries.

We were solving this problem with Google's knowledge graph where we had to fit movie dataset in DB. The film industry has so many roles (director, producer, actor, cinematographer, and so on), that having a table for each, with many times same person doing multiple roles, is just super fucking hard. With hundreds of such roles, each role being a table would be insane. Representing this information in graphs is a cakewalk in comparison. And this problem gets a lot worse if you then switch to the music industry, books and others (hence, the decision to be a knowledge "graph").

Functionality wise, graph DBs provide a super set of SQL. They support all the (equivalent of) select x from y where z type statements, while also doing fast and recursive traversals and joins at the DB level.

And recursive traversals and joins are a huge deal. The rise of GraphQL over REST APIs is in a way indicative of that. To render a page in modern websites, you need to recursively ask for components (think questions in Quora or Stack Overflow). I remember Quora would have thousands of such components on a single page. GraphQL made it easier to query for those, by expressing a way to retrieve this tree in a single query. But, the internal mechanics of doing this via relational tables is still the same, which is to repeat a query and collect cycle. Graph DBs natively support things like these, and imagine how much more efficient and powerful that is.

Once you start to wrap your head around graphs, it's hard to not be wholeheartedly impressed by their power.

Disclaimer: I'm author of dgraph.io. But, don't let genetic fallacy blind you. My points above stem from the reasons which propelled me to jump into the graph DB world.

<comment><USER24> The film industry example makes sense. Partially duplicative tables make development confusing.

Do you still feel there is an advantage of graph over relational when we have a known schema and known relationships without deep recursive relationships. For example, an inventory tracking system, we have items, customers, deliveries,etc...? I like the idea of being able to throw some metadata onto any of those tables quickly during prototyping, but my gut feeling is that long term we run into the need to be more structured and explicit like we do with a relational DB. It reminds me somewhat of the tradeoffs with NoSQL DBs during development

<comment><USER23> Not only do I think there's a lot of benefit in representing data for which the schema is already fixed, we've actually gone to the extent of showing this by building a whole replica website for Stack Overflow.

[https://github.com/dgraph-io/graphoverflow](https://github.com/dgraph- io/graphoverflow) (unmaintained, so please don't complain if it doesn't work :-)).

If you build systems like inventory tracking, question answering, etc., the hard logic of relevant data retrieval can either lie in your application or within your DB. Former is the case when you use relational DBs, latter is the case when you use graph DBs.

With graph DB, you can put the data together quickly, but then have the DB do the hardlifting of "given a customer, find me all the items and the locations of delivery" (just random Q that I spent 2 seconds, not representative of real workload); or "given a question, find me all the answers, sorted by a score; top 5 comments on these answers sorted by date, with a count of total comments, count of likes, count of dislikes, etc." (real workload for QA sites). Then the application iteration becomes largely a factor of query iteration, not backend logic iteration.

^ And that's solid! That kind of stuff is what makes developers love JS over C++ (random comparison).

</comment></comment></comment><comment><USER25> Currently, using Gremlin on AWS Neptune. The learning curve was steep.

If the situation calls for it, sure! The current use case is sort of up in the air. The decision was made to use a graph database to store the mutation of records over time, but then the higher ups want to limit what's put in it, so... I'm not sure if the computation costs are worth what it's actually capable of. From what I'm gathering, if one is looking to store complex data, which is highly connected through edge-case relationships, as in, greater than 5 types of edges, then it might be worth looking into, but I can't imagine how a dynamic/traditional table database wouldn't have been faster in terms of what we need it for, querying large lists of data, with 3-4 edge traversals.

I only have a year~+ of experience with databases, so grain of salt. In terms of personal preference, working with a graph database has been quite fun.

</comment><comment><USER26> We use Titan DB and are updating it to Janus since Titan is dead. We used Neo4j for a small hack at an event at the office mapping up bus routes and homes living along the bus stops to find out quickly how accessible they were, and it worked well ... for a hack.

I really like Gremlin and I like how you can extend the relations and do new computations you never thought of easily, but it's not the savior it's been hailed as, in my opinion. For a lot of problems SQL will do you well, and migrating can be a bitch with SQL but if it's a domain where the basic functionality is solved (such as a web shop) I wouldn't bother with a graph database until i find a good use case for it. You can always migrate your SQL tables to a graph DB later on if you think it's worth it.

</comment><comment><USER27> We have a production system based on Neo4J (and Elasticsearch). We have had some hard times with Neo4J (cluster issues, deadlocks) but their support helped us figure out those issues.

Honestly, a graph database made discussions with the domain expains MUCH easier. And the schemalessness made evolutions much easier. Our technical team embraced the concept really quickly. And the domain experts have a clean mental model of the data that were otherwise split between very unfriendly technologies (XML databases, files, CSV).

We wonder whether Elasticsearch could be removed from our architecture (because managing 2 databases is a mess). But we do not know yet if Neo4J can handle both the load and the variety of search use-cases.

</comment><comment><USER28> I've used TitanDB multiple times for non-production projects, and would absolutely use it again. It runs in process on the JVM, and models true graph problems well. (dependencies in large code bases, social networks)

</comment><comment><USER29> What's your use case?

As for me, for decades I've wanted to be able to have everything stored on my computer represented as a graph. (Times have changed, so there's obviously a strong network-connected aspect now.)

</comment><comment><USER30> Yes, using RDF+SPARQL I would use it any day of the week. The power off RDF comes when having to deal with other peoples data, or providing your data to other people. This is not a usecase everyone has but if you do nothing beats RDF+SPARQL in a financial sense.

The variety of DBs available if you use RDF is great as well. Different DBs have different strong sides but we can keep the same data model and query language.

</comment><comment><USER31> Helped build one on top of cassandra at past employer - they're still apparently happy with it. It's something like 5-6 petabytes and handles millions of writes per second, hundreds of thousands (or maybe millions) of reads/traversals per second. Powers a successful and growing APT-hunting SaaS platform, and I'm still pretty proud of it, even though I don't work there anymore.

</comment><comment><USER32> I made this: [http://root.rupy.se](http://root.rupy.se)

It's also based on a small HTTP server: [http://github.com/tinspin/rupy](http://github.com/tinspin/rupy)

I will use it for the rest of my life in every project that needs a relations.

</comment><comment><USER33> I am finding Datalog* more general and easier. It lets you write rules declaratively rather than procedurally. I don't know how its performance compares to a traditional graph database, but it sure saves a lot of programming time.

(I'm using pyDatalog, which is open source and works with a variety of database backends.)

</comment><comment><USER34> I'm an engineer that used to do RDBs for a long time. One day a customer of a friend came with an issue that was in my opinion impossible to solve with relational DBs: He described data that is in flow all the time and there was no way we could come up with a schema that would fit his problem for more than one month after we finished it. Then I remembered that another friend once mentioned this graph model called RDF and its query language SPARQL and started digging into it. It's all W3C standards so it's very easy to read into it and there are competing implementations.

It was a wild ride. At the time I started there was little to no tooling, only few SPARQL implementations and SPARQL 1.1 was not released yet. It was PITA to use it but it still stuck with me: I finally had an agile data model that allowed me and our customers to grow with the problem. I was quite sceptical if that would ever scale but I still didn't stop using it.

Initially one can be overwhelmed by RDF: It is a very simple data model but at the same time it's a technology stack that allows you to do a lot of crazy stuff. You can describe semantics of the data in vocabularies and ontologies, which you should share and re-use, you can traverse the graph with its query language SPARQL and you have additional layers like reasoning that can figure out hidden gems in your data and make life easier when you consume or validate it. And most recently people started integrating machine learning toolkits into the stack so you can directly train models based on your RDF knowledge graph.

If you want to solve a small problem RDF might not be the most logical choice at first. But then you start thinking about it again and you figure out that this is probably not the end of it. Sure, maybe you would be faster by using the latest and greatest key/value DB and hack some stuff in fancy web frameworks. But then again there is a fair chance the customer wants you to add stuff in the future and you are quite certain that at one point it will blow up because the technology could not handle it anymore.

That will not happen with RDF. You will have to invest more time at first, you will talk about things like semantics of your customers data and you will spend quite some time figuring out how to create identifiers (URIs in RDF) that are still valid in years from now. You will have a look at existing vocabularies and just refine things that are really necessary for the particular use case. You will think about integrating data from relational systems, Excel files or JSON APIs by mapping them to RDF, which again is all defined in W3C standards. You will mock-up some data in a text editor written in your favourite serialization of RDF. Yes, there are many serializations available and you should most definitely throw away and book/text that starts with RDF/XML, use Turtle or JSON-LD instead, whatever fits you best.

After that you start automating everything, you write some glue-code that interprets the DSL you just built on top of RDF and appropriate vocabularies and you start to adjust everything to your customer's needs. Once you go live it will look and feel like any other solution you built before but unlike those, you can extend it easily and increase its complexity once you need it.

And at that point you realize that this is all worth is and you will most likely not touch any other technology stack anymore. At least that's what I did.

I could go on for a long time, in fact I teach this stack in companies and gov-organizations during several days and I can only scratch the surface of what you can do with it. It does scale, I'm convinced by that by now and the tooling is getting better and better.

If you are interested start having a look at the Creative Commons course/slides we started building. There is still lots of content that should be added but I had to start somewhere: [http://linked-data- training.zazuko.com/](http://linked-data-training.zazuko.com/)

Also have a look at Wikipedia for a list of SPARQL implementations: [https://en.wikipedia.org/wiki/Comparison_of_triplestores](https://en.wikipedia.org/wiki/Comparison_of_triplestores)

Would I use other graph databases? Definitely not. The great thing about RDF is that it's open, you can cross-reference data across silos/domains and profit from work others did. If I create another silo in a proprietary graph model, why would I bother?

Let me finish with a quote from Dan Brickly (Googles schema.org) and Libby Miller (BBC) in a recent book about RDF validation:

> People think RDF is a pain because it is complicated. The truth is even > worse. RDF is painfully simplistic, but it allows you to work with real- > world data and problems that are horribly complicated. While you can avoid > RDF, it is harder to avoid complicated data and complicated computer > problems.

Source: [http://book.validatingrdf.com/bookHtml005.html](http://book.validatingrdf.com/bookHtml005.html)

I could not have come up with a better conclusion.

</comment><comment><USER35> Are GraphDBs ever the right move in terms of performance?

<comment><USER36> For things that can reasonably be done with RDBMS, probably not... see "Do we need specialized graph databases? Benchmarking real-time social networking applications" (PDF link [https://event.cwi.nl/grades/2017/12-Apaci.pdf](https://event.cwi.nl/grades/2017/12-Apaci.pdf))

But it seems likely that for queries that differentiate graph databases, such as finding long, variable-length paths, that there are cases where they can excel.

<comment><USER37> I found the same. If you live in a very specific use case they excel.

I work with large amounts of geographic data. We use Cassandra and RDBMS as the traditional storage but whenever we want to do network analysis it goes into graph DB just to take advantage of the tooling.

And one of our use cases is exactly what you mention. If you are interested in the properties of the edges of long highways in a road network that can stretch hundreds of edges, for instance, RDBMS ain't gonna cut it.

</comment></comment></comment><comment><USER38> I wrote a driver for MongoDB in 2010, but then moved onto Neo4j in late 2013.

I liked Neo4j quite a bit, it could handle all the sensor/IoT data we could throw at it. Back then it had (and I'm sure still does) a beautiful interactive data visualization dashboard, great Cypher tutorials, and more.

Neo4j is a good database. I went to write a database driver for it, and found it extraordinarily difficult. I knew it would take at least a month of work to build.

At the same time really cool tools like Firebase were becoming popular, and Multi-Master database architecture with Cassandra and Riak were showcasing what high availability could do.

So I decided, rather than implementing the Neo4j driver, which I knew was bound to Neo4j's Master-Slave architecture, I would rather switch to Firebase or build my own mashup of all the tools I wanted:

\- Firebase (realtime)

\- Neo4j (graphs)

\- Cassandra (multi-master / P2P)

\- CouchDB (offline-first)

I spent a few weeks building a prototype and submitted it to HackerNews in early 2014. It was a huge success.

Since then, we've gotten 7.5K+ stars ([https://github.com/amark/gun](https://github.com/amark/gun)), raised venture capital money, and introduced decentralized cryptographically secure user blockchains, and a ton more.

Graph databases, to me, are so compelling, I have not only "used them again" but spent the last 3.5+ years of my life dedicated to building, improving, and making them more awesome.

I certainly hope others try them, even if it isn't GUN. They're worth a shot, but aren't a silver bullet, so use them where it makes sense.

<comment><USER39> What's gun, you mean gnu open source ?

<comment><USER40> Likely they're referring to [https://github.com/amark/gun](https://github.com/amark/gun) , which they refer to earlier. amark is Mark Nadal.

<comment><USER38> Thanks, yes (you and xumingmingv) are correct.

Hey, I noticed your nice resources in your profile - particularly Haidt. For my wife's PhD, she worked with Baumeister, a colleague of Haidt. Would love to hear more about your interest in civil discourse and other such things! Shoot me an email?

<comment><USER40> Done!</comment></comment></comment></comment></comment>


The Scottish Register of Tartans - <AUTHOR> https://www.tartanregister.gov.uk/ <comment><USER2> The Debian GNU/Linux distribution has it's own tartan too, the interesting detail being it contains morse code:

[https://wiki.debian.org/Tartan](https://wiki.debian.org/Tartan)

[https://www.tartanregister.gov.uk/tartandetails?ref=5936](https://www.tartanregister.gov.uk/tartandetails?ref=5936)

"This is the tartan of The Debian Project: an association of individuals who work together to create a free operating system that is called Debian GNU/Linux, or simply Debian for short. In 2007 Debian held its eighth annual gathering of developers from all over the world in Edinburgh, and the tartan was designed to celebrate that fact. The colours are references to various logos: Reds for the Debian swirl, Blue for Captain Blue-Eyes (the old Debian logo), and Yellow, Black & White for Tux, the Linux logo. If the image is rotated 180 degrees, the White can be seen to be arranged so as to spell out DEBIAN in Morse code (with a correct 1:3 ratio for dots to dashes, and for the pauses in and between letters)."

<comment><USER3> I was just about to remark that we should have tartans for programming languages.

</comment></comment><comment><USER4> The good thing about this, is it puts tartans into a modern IPR context and sheds the Walter Scott fake history. It's no different to burberry trademarking it's red flash check. All the clan/sept/hunting/dress stuff is a giant fantasy of post Regency construction.

Harris Tweed on the other hand, is much more a "thing" and deserves its restricted mark for heritage reasons.

Cornish sailors knitting patterns next!

<comment><USER5> Yeah - a lot of traditions were "revived" (i.e. invented) for the visit of King George IV to Scotland:

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

Which is ironic given the almost ethnic cleaning levels of treatment given to Highlanders and their culture following the '45 and the later Clearances:

[https://en.wikipedia.org/wiki/Battle_of_Culloden#Aftermath](https://en.wikipedia.org/wiki/Battle_of_Culloden#Aftermath)

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

<comment> 52-6F-62 I can loosely trace my family to those events. History gets blurry before the clearances and the Jacobite revolution.

Fairlie and Kilmarnock in Ayrshire. After that the family was only listed in Broxburn and Uphall mining towns outside of Edinburgh.

edit: Got a name wrong. Kilmarnock in Ayrshire, but also were around Kirkliston near Edinburgh along with the other two towns later on.

<comment><USER6> The will of those people against the English was unbelievable.

During the siege of Caerlaverock Castle, 60 Scottsmen held off 3000 English men along with about 87 English knights. It is also one of the most exquisite castles in that it is triangular. If you ever are in Dumfries, you must see it: [http://www.techandfacts.com/caerlaverock-castle- scotland/](http://www.techandfacts.com/caerlaverock-castle-scotland/)

Edit: This poem from one of the king's heralds detailing the battle is incredible: [https://fourteenthcenturyfiend.com/2017/02/03/the-siege- of-c...](https://fourteenthcenturyfiend.com/2017/02/03/the-siege-of- caerlaverock-castle-a-heralds-eye-witness-account/)

<comment> 52-6F-62 My family (father's side) left Scotland and the company towns in the 30's and we're planted in Canada.

Mother's side left much later—from Derry & Belfast in the early 60's—notably to get away from the Troubles— but that's another thing altogether (yet still rooted in English interference...).

Still it's long been on my list to visit. I still have family in Belfast and Newcastle and some in Edinburgh and London. There's even an old Fairlie castle I'd like to see. Reminder of what became a family of tradesmen used to be haha... it's kind of striking to read back in family history and seeing a few common names repeated again and again. Mine pops up in this article (namesake, rather) — [https://en.wikipedia.org/wiki/Fairlie_Castle](https://en.wikipedia.org/wiki/Fairlie_Castle)

Sadly, the family is noted as being extinct. We're still here, just not reflective of what it was, I suppose.

<comment><USER6> And I can tell your family is Irish because you called it Derry, not London Derry. I nearly got in a fistfight with an Irishmen over accidentally making that distinction wrong.

Since 1/2 of my team is based out of London (I'm in the US), I go to the UK at least once or twice per year and always take an extra week or two to see the various other parts of the UK. Nice country overall.

<comment><USER7> _And I can tell your family is Irish because you called it Derry, not London Derry._

I don't know. Lots of people in England also say Derry (the few times they think about that part of the country at all). Even in Ireland most people in my experience are pretty chill about it as long as you aren't an ass about it.

<comment><USER6> I was literally almost assaulted in Belfast by accidentally saying LondonDerry when chatting with some locals. This isn't a theoretical, it happened just a few years ago. I calmed the lad down and bought him a beer. We then had a great time. The troubles may be over, but things are still not totally settled down.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> This was on the 99 Percent Invisible episode this week. A great episode about tartans.

[https://99percentinvisible.org/episode/plaid-articles-of- int...](https://99percentinvisible.org/episode/plaid-articles-of-interest-2/)

</comment><comment><USER9> Tartans are always a great example of how computer science and algorithms got their start: fabrics. From the Jenner Loom on up, there has been a long relationship with textiles.

Some fun and semi-related tartan sites:

The list of US State Tartans: [https://en.wikipedia.org/wiki/List_of_U.S._state_tartans](https://en.wikipedia.org/wiki/List_of_U.S._state_tartans)

A Tartan warp sequence generator: [http://www.weddslist.com/cgi- bin/tartans/pg.pl?source=sts#re...](http://www.weddslist.com/cgi- bin/tartans/pg.pl?source=sts#result)

The above site is pretty neat! They have a GIANT list of recognized tartans, with the warp sequences. In addition, you can input your own warp sequence. Though I can't find evidence of the warp sequence being used as a messaging platform, it's not hard to envision. Take some message, convert it to hexadecimal (or some other method), put it in the weft, and viola! A 'secret' message:

[http://www.weddslist.com/cgi- bin/tartans/tartan.pl?col(g)=00...](http://www.weddslist.com/cgi- bin/tartans/tartan.pl?col\(g\)=008000&col\(c\)=008080&col\(f\)=800040&col\(k\)=000000&warp=g10\(c6f6\)k10&ptrn=d1)

</comment><comment><USER10> Out of curiosity I checked out the "New Tartans" page. The most recent item is:

[https://www.tartanregister.gov.uk/tartanDetails?ref=12260](https://www.tartanregister.gov.uk/tartanDetails?ref=12260)

which, sadly, seems to have been registered on behalf of a white supremacist cult.

<comment><USER11> Why is that sad? It's a good thing that anybody can register a tartan regardless of whether they are "desirable".

<comment><USER12> The fact that white supremist cults exist is saddening for a lot of people, especially when having to share space / be reminded of them. Interesting usage of the air quotes you have there.

</comment></comment></comment><comment><USER5> As a Scot, I was _slightly_ surprised to see that this is actually an official Scottish Government service!

Edit: I should have guessed by the domain.

<comment><USER13> I'm surprised Scotland doesn't have its own TLD.

<comment><USER14> They do - .scot!

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

</comment></comment></comment><comment><USER15> About a year ago I discovered that California has its own tartan pattern. Unfortunately I was unable to find any manufacturer which currently makes a flannel shirt in this pattern. It's a shame, the pattern is quite nice, but it's unclear to me whether it's ever used anywhere.

<comment><USER16> Most of the designs in the registry are not currently made, but you can order a small run of fabric for handmade clothes. It would be more yardage than for just one shirt though.

</comment></comment><comment><USER17> Compaq Computers have a tartan too:

"Designed by Bill Alexander 1987, promoted by Eyedea Creative Consultancy Ltd for the Compaq Computer Co, an American compay which set up business in Scotland."

[https://www.tartanregister.gov.uk/tartanDetails?ref=726](https://www.tartanregister.gov.uk/tartanDetails?ref=726)

</comment><comment><USER18> Funny thing, there are registered tartans for Mars exploration and Earth preservation activities.

<comment><USER19> And Clan MacDuck: [https://www.tartanregister.gov.uk/tartanDetails?ref=2412](https://www.tartanregister.gov.uk/tartanDetails?ref=2412)

</comment></comment><comment><USER20> That is a weird way of paying by credit card they have:

In order for the customer to make a payment by credit/debit card we need:

1) the card number

2) the card expiry date;

3) the issue number if Maestro;

4) the last 3 digits of the card security number (on the reverse of the credit card);

5) the cardholder's name and initials as displayed on the card; and

6) the cardholder's address. Please note that all of these details are essential. Please also provide your reference (NRS/TR/Tartan Name).

Please telephone +44 (0)131 535 1395 to make payment by credit card. [https://www.tartanregister.gov.uk/fees](https://www.tartanregister.gov.uk/fees)

<comment><USER21> What seems weird about those details? Seems to cover all the things you need to make a payment over the phone.

<comment><USER22> Isn't paying with credit card over phone weird enough? Anyone eavesdropping on the phone line gets full access to your card details, not to say that the person on the other side of the line gets it.

Normally I would expect an https-protected webform of a trusted payment processor.

<comment><USER23> Are you sure this is as uncommon as you suggest?

<comment><USER22> I have seen it only once so far when one minor German publisher asked me to send the same details per snail-mail. Luckily they also had other options.

I can't really know how common it is in UK, never been there, but I would definitely be surprised.

<comment><USER24> Can confirm it's normal enough in both Canada and the US, though the security code is only sometimes requested. I don't have knowledge either way about this question for the UK.</comment></comment></comment></comment></comment></comment>


WPA3 Wifi Security Protocol Announced - <AUTHOR> https://www.wi-fi.org/news-events/newsroom/wi-fi-alliance-introduces-security-enhancements <comment><USER2> A critical problem I see that needs solving is the Starbucks style open wifi login pages that fail to redirect when trying to visit HTTPS sites.

A new secure authentication system is needed for these set ups.

I'm blanking on the name of them but clearly they are widely deployed and likely causing lots of regular people to have trouble connecting to pages because they tried to connect to Facebook instead of an HTTP site.

<comment><USER3> Captive portals? Browsers and some mobile devices have a workaround where on new wifi connections they try to connect to a particular url and if that gives unexpected content they know it's a captive portal and prompt you to log in. But ideally this would be in the network descriptor somehow.

<comment><USER4> I wish gogo worked with this. I've ended up bookmarking [http://captive.apple.com](http://captive.apple.com) just to trigger their login page.

<comment><USER5> I have had this problem as well, and it became increasingly difficult to find non-https domains so I started using one of my own sub-domain for it (I needed it on the dutch railway system). But recently, Ubuntu added a captive portals catcher and gives a small browser window to login (I think it tries to contact an Ubuntu sub-domain first to test the connection, you can turn it off if you want). This is very handy!

<comment><USER6> Why is this a problem? Just mash some keys and add a .com to the end. The portal doesn't check if the domain is real or not, it just intercepts all DNS requests until you've logged in.

<comment><USER3> and for the rare cases of those that don't, you can tunnel data over dns

</comment></comment></comment></comment></comment></comment><comment><USER7> I would keep a wary eye open until actual specifications are announced and publicly available.

If history is any guide, some parts of it might become security mis-features, like Wi-Fi Protected Setup (WPS) which became a security issue because it allows WPS PIN recovery.

Also note that the IEEE controls the actual wireless specification as IEEE 802.11 and also specifies the actual encryption standards used during wireless transmission and reception (this used to be called IEEE 802.11i-2004 [1]).

My educated guess is that WPA3 won't change the block cyphers used to encrypt data (AES-CCMP) and the initial handshaking protocol as that is part of the IEEE Spec and cannot be changed by the Wi-Fi Alliance. Instead, it may specify additional requirements that clients have to fulfill before connecting (like public key certificates and proof of identities).

[1] [https://en.wikipedia.org/wiki/IEEE_802.11i](https://en.wikipedia.org/wiki/IEEE_802.11i)

</comment><comment><USER8> Where can I actually read the spec? I'm not even much of a cryptographer, but I'm curious --- and the closed attitude is a contributing factor to things like this:

[https://blog.cryptographyengineering.com/2017/10/16/falling-...](https://blog.cryptographyengineering.com/2017/10/16/falling- through-the-kracks/)

<comment><USER9> This is just the announcement that they're _going_ to build the spec XD

</comment></comment><comment><USER10> Is WPA3 going to require new hardware (wifi client cards/chips, wifi routers) or will it be possible to add WPA3 support via a software update in common operating systems?

</comment><comment><USER11> One feature I wish to see is some form of AP authentication, maybe with TOFU and some PK pinning. That is currently, name an AP the same as another and a machine that had the AP name saved will try to connect to it. If you name an AP "Apple Store" or "Starbucks" you can watch devices connect (with their real MAC even, defeating MAC randomization used when scanning for APs), and if it's an open AP or you got hold of the passphrase, monitor and possibly MITM connections.

<comment><USER12> We definitely need some kind of mechanism to authenticate APs, right now we only have the SSID and MAC, both of which are trivial to spoof.

There isn't even any collision detection, nothing stopping you from giving your AP the same SSID as an already present AP, and clients will helpfully connect to whichever one has the strongest signal, which is probably going to be the rogue AP right next to you, rather than the actual Starbucks AP at the other end of the store. According to 802.11, APs with identical names are considered to be part of the same network, no questions asked.

I consider it a fundamental flaw of wifi, alongside the boneheadedness of WEP ("wired equivalent protection"... Yeah right, pull the other one), and the idiotic layout of channels in the 2.4GHz spectrum.

The only way to use wifi as a consumer is with WPA2 (AES only, no TKIP) a randomly generated strong passkey, and all smart features turned way _off_ (security holes such as WPS). For any AP that you haven't personally set up and vetted, and _especially_ open public APs, a VPN connection is absolutely mandatory. And I still wouldn't trust it 100%.

<comment><USER13> _There have been proposals to use IEEE 802.11u for access points to signal that they allow EAP-TLS using only server-side authentication._ [1]

It's more of an implementation and UI problem. The required standards already exist, no need to wait for WPA3.

[1] [https://en.wikipedia.org/wiki/IEEE_802.11u#EAP- TLS](https://en.wikipedia.org/wiki/IEEE_802.11u#EAP-TLS)

[2] [https://web.archive.org/web/20131126183610/http://riosec.com...](https://web.archive.org/web/20131126183610/http://riosec.com/open- secure-wireless-2.0)

</comment></comment></comment><comment><USER14> > Another feature will strengthen user privacy in open networks through > individualized data encryption.

WPA1 can arguably be forgiven a lot of shortcomings given its circumstances, but I never understood why this wasn't in WPA2. I understand that the station can't authenticate the AP in this case, but it still seems like it's strictly better for the traffic to be encrypted. What am I missing?

<comment><USER15> The same reason browsers don't allow self-signed certificates, I guess. Those security people think a false sense of security is worse than no security.

<comment><USER16> The false sense of security is what WPA2 gives anyway. Coffee house has a password on their wifi? Great, then only someone with the password can impersonate the AP, which is only... everyone.

You can't tell everybody something and still use it as a secret.

What they should be doing is putting the public key of the AP on the wall as a QR code.

Or the real solution, which is for everything to be end-to-end encrypted regardless.

<comment><USER17> > What they should be doing is putting the public key of the AP on the wall as > a QR code

Except if the attacker has his own QR code stickers.

<comment><USER18> If it's inside a coffee shop or other physical locations the attempt is likely to be caught. Or, put the code inside a photo frame making it easier for staff to distinguish.

</comment></comment></comment></comment></comment><comment><USER19> Now if only I could run `apt-get update && apt-get upgrade` on my router's firmware to support this.

</comment><comment><USER20> Fine, but in addition everything you do should be encrypted end to end as well as you can. Use httpseverywhere. Use privacy badger.

<comment><USER21> Privacy Badger forces you to send the DNT header, making your browser far more vulnerable to fingerprinting. Just use the relevant filter lists in uBlock Origin.

<comment><USER22> How does DNT make you more vulnerable to fingerprinting? Because there's fewer people that DNT than who don't, or am I missing something else?

<comment><USER12> Yes, because it's an option you specifically have to set as a user, most people don't bother (or don't know about it), so simply by setting the flag, you're making yourself easier to identify.

</comment></comment></comment></comment><comment><USER23> Can anyone comment on the efficacy of the CNSA algorithm they are planning to use?

<comment><USER24> CNSA isn't an algorithm. It's the NSA's update to what used to be called "Suite B". It's a set of algorithms that NSA recommends for use in National Security Systems (classified systems that use unclassified algorithms).

Currently, that's AES-256, ECDH over P-384, ECDSA over P-384, SHA-384, and then also RSA/DH with a >3072 modulus.

<comment><USER23> So is WPA3 defective by design, then? I sure don't trust modern NSA-designed algorithms.

<comment><USER25> These are publicly designed algorithms that are widely used. It just so happens that the NSA also recommends then.

<comment><USER26> P-256 and P-384 have some "NSA" stigma associated with them though.

</comment></comment></comment></comment></comment><comment><USER27> Just in time for CES!</comment>


Microsoft to drop Desktop App from Windows 8 ARM tablets? - <AUTHOR> http://www.zdnet.com/blog/microsoft/microsoft-to-drop-desktop-app-from-windows-8-arm-tablets/11325

<comment><USER2> It's amazing how rapidly the story is changing so close to Win8's release date. You'd think major strategic items such as this would've been ironed out long ago.</comment>


On the Benefits of Anthropomorphizing - <AUTHOR> https://lithub.com/deb-olin-unferth-didnt-expect-to-be-writing-from-the-point-of-view-of-a-chicken/ <comment><USER2> Awesome.

"Our error is not anthropomorphism, but the opposite. We refuse to believe, to the point of absurdity that we and they are first animals, that there is no us and them in this regard, only us, all of us."

I raise chickens (and various other animals) and more and more this is exactly how I feel. All higher lifeforms (and I don't care to speculate where "higher" ends) are conscious, and all conscious life is essentially alike... there is "I" and the "the other" and we all have desires and fears and relationships and curiosity. What else is there to life?

<comment><USER3> I agree, clearly we had common ancestors with other higher animals that had emotional lives, were creative, played games, had social lives, even mourned their dead. We do have higher brain functions than other animals, there's no doubt, but clearly having those higher brain functions isn't necessary for having the faculties I described above. I see no reason to assume it fundamentally changes the nature of those faculties and experiences. It may change our ability to reflect on them and express them, but is likely to be independent of their fundamental nature and experience.

<comment><USER2> Actually I think this something that goes far beyond relatedness and the capacities of our common ancesters... consciousness appears to be an emergent property that is substantially similar even when it emerges in physically radically different beings with completely different neural structures.

The biggest piece of evidence we have for this is from octopi... they are about as alien as anything we can image (radial symmetry, distributed brain, visual input and output spread over the entire skin) and the last ancester we have in common with them was some kind of worm with just handful of neurons. Yet they seem to problem solve and explore and manipulate their environment much as we do, and people have developed surprisingly close relationships with some octopi in captivity. Even with an octopus, when you get to know it you begin to feel the kinship that seems to always be possible between one conscious being and another.

</comment></comment></comment><comment><USER4> I think that no discussion of anthopomorphisation is complete without "don't anthropomorphise inanimate objects. They hate that."

<comment><USER5> The version I know is "Don't anthropomorphize computers. They hate that."

Also I agree, and damn you for beating me to it.

<comment><USER6> reminded me of this speech by Dijkstra that i believe was linked on an HN thread last month.

[https://www.cs.utexas.edu/users/EWD/transcriptions/EWD09xx/E...](https://www.cs.utexas.edu/users/EWD/transcriptions/EWD09xx/EWD936.html)</comment></comment></comment>


When we forget why we bothered to try - <AUTHOR> http://www.jorydesjardins.com/pause/2006/05/the_retired_sai.html "You just can't imagine how frustrating it is," he said, looking up at the ceiling, as if trying to make sense of the ceiling tiles. "I keep looking, but there's just no answer!"<p>This would be my worst case scenario. <comment><USER2> Brilliant story. It was easy for me to empathize with the father, and I think I'll eventually die like him.

<comment><AUTHOR> It's especially likely with complacency like that.

</comment></comment><comment><USER3> holy crap. i'd upvote that six times if i could.

find something cool for me i wouldn't have otherwise found by myself ... that's pretty much the _definition_ of what i want from sites like hacker news.

<comment><AUTHOR> _/me tips hat_

This would be along the same vein as the prior thread on existential questions. A popular topic among young, intelligent people for whom tradition has little weight.</comment></comment>


Show HN: Online CV/Resume Maker in React Using Facebook's Draft-Js - <AUTHOR> http://rewritecv.com/create-free-cv-online/ <comment><USER2> I clicked rewrite cv and landed on a blank (white) page.

"we have delivered 1000+ CVs in a very short time since our inception and have more than 90% CV shortlisting rate."

How are you measuring this?

You should raise prices. I'm looking at the senior package and I'd feel less worried about booking it if it was in the $150 range. $45 sounds cheap. If that would make it prohibitively expensive for the indian market, you could price based on geography. nothing wrong with that.

<comment><AUTHOR> The blank was our bad luck - maybe you hit the page at the time of a server update. Can you try opening it again?

On the 90% shortlisting rate, we provide follow up services including cover letter writing and interview preparation. Hence, we keep a track of our clients' job situation. More than 90% of our CV clients have received a job shortlist within 1 month of getting their CV rewritten by us.

On the prices part, $45 works out for us as of now. And one of our main plus points is the high quality of services that we provide. Check out some of our client reviews on our FB page: [https://www.facebook.com/pg/ReWriteCV/reviews/](https://www.facebook.com/pg/ReWriteCV/reviews/) Also, in order to make our clients more confident, we offer a free CV review. So, they go ahead with our services only if they like our CV review. We would love to do a free review for you as well - do email your CV to email@example.com

</comment></comment><comment><USER3> Cool! I figured you'd be using the draft-js-plugins project for the hover- formatting and drag-n-drop plugins, I don't see the plguin being used though. Have you checked that out (or am I just missing it)?

FYI, the edit tool dropdown gets clipped by the resume's borders, so you can't select some of the edit options when you try to edit text near the edge of a document.

<comment><AUTHOR> Yeah I did check them out, the side-toolbar-plugin is really nice, but I figured I would be making too many customisations on it in the long term and would end up replacing it completely. So made one on my own.

Just noticed the issue, thanks for pointing it out! I tend to get tunnel visioned while working on front-end! :)

</comment></comment><comment><USER4> The templates look neat! Any plans to expand the list or make them more customizable?

<comment><AUTHOR> Thanks for the kind words. We will be integrating many more new features in the CV Builder based on user feedback in the coming days. Customizable components are on the top of our list! Moreover, we are working on a recommendation engine to assist users in creating their perfect profile. Stay tuned!

<comment><USER4> Awesome, I'll keep an eye on it :)

</comment></comment></comment><comment><USER5> Is it open source?

<comment><AUTHOR> Not yet, I have to clean up the code first, I'll do it by the weekend. :)

<comment><USER5> Great Work Boy! Here, take my upvote.

</comment></comment></comment><comment><USER6> looks useful.

<comment><AUTHOR> Thanks! Would love to hear more feedback.</comment></comment>


Show HN: A WebGL visualization to show how global temperature changed since 1850 - <AUTHOR> http://callumprentice.github.io/apps/global_temperature_change_webgl/index.html <comment><USER2> Nice, but the rotate controls are a way too sensitive and spin the globe too fast. I recommend you look into arcball rotation [1]. It's perfect for a globe.

[1] [http://nehe.gamedev.net/tutorial/arcball_rotation/19003/](http://nehe.gamedev.net/tutorial/arcball_rotation/19003/)

edit: Love the animated transition between the plate carrée projection and sphere!

<comment><AUTHOR> I like the feel of that affordance and will experiment with it. Have to bathe my 5 year old princess now and read stories but I'll get to it later :) Thanks!

</comment></comment><comment><USER3> 1998 looks like an inflection point. Before then, you'd see blues and reds; after that, it's mostly just red everywhere. What's up with that?

<comment><USER4> In 1998 there was one of the strongest El Nino events.

[https://en.wikipedia.org/wiki/1997%E2%80%9398_El_Ni%C3%B1o_e...](https://en.wikipedia.org/wiki/1997%E2%80%9398_El_Ni%C3%B1o_event)

Maybe this made for a sudden increase, rather than a more gradual one.

</comment></comment><comment><USER5> Great and very pretty!

Besides the rotation issue pointed out by 'McKayDavis, I'd also suggest adding some legends for data - maybe a constantly visible data range on the side, that would help mapping the different shades of blue/red to actual values, and also some popup when you hover or click on a particular tile of the globe/map.

<comment><USER6> Really cool and interesting visualization.

Since this is most likely a common chart for people looking at climate change and it may be explained by the parents feedback, I was wondering if anyone knew what shades are held in reference to? Are they being compared to the average temperature of the last century, average compared to 1849, or whether its sort of a running diff to the previous year?

<comment><USER7> If you click the question mark it gives some details on the data.

The temperatures are relative to a 1961-1990 average.

</comment></comment></comment><comment><USER8> Love it! A few suggestions...

\- Set your Fb app to production so people can share on Facebook; currently shows error about dev mode

\- Maybe increase the transparency of the tiles; people often like to focus on their home country on a map; would make it easier

\- Add help tooltips over the navigation so it's easier to tell what each button does

Thanks for creating this!

<comment><AUTHOR> I made the changes you suggested - Facebook "add a share" button is a little hard to grok but I think I fixed it.

Thank you!

<comment><USER9> I love the fact that you made this really slick interactive 3D data visualization, but the Facebook share button is "a little hard to grok"!

Again, very well made. Really pleasant to play with, though troubling to see. One thing I wonder is how are the temperature differentials normalized? In other words, how are "full red" and "full blue" defined? The max and min of the recorded ranges? Overall, or for that section/year? Etc.

Also, are those stars random?

Also, see [https://news.ycombinator.com/item?id=12476945](https://news.ycombinator.com/item?id=12476945)

<comment><AUTHOR> Thank you. I make a pass over the data, find the min/max values for cooler and warmer and then use that to scale the color from full intensity (largest changes) to least intensity (smallest change). Visually at least, it seems mostly to agree with what the clever climate scientists have made in static images. The range is calculated for the whole period so that comparing year to year should be valid.

I didn't even consider blocked cookies - I set that flag in local storage since it seemed important to show some instructions the first time you see it but not thereafter. I'll experiment a bit and see if I can work around that.

Edit: stars are just a bitmap wrapper around a large sphere.

Cheers!

</comment></comment></comment></comment><comment><USER10> Renders great on an iPhone. The zooming is a bit weird. You should look into locking the viewport. Once you get to a zoom level it's really hard to get out of it.

<comment><AUTHOR> Thanks for the feedback. I tried adding a meta tag in the HTML header and that actually makes a lot of things look nice (large, easy to hit buttons for example) but disables pinch zoom.

Also hard to make everything fit - the UI components are all scaled up which is nice but they no longer fit.

Lots to investigate!

</comment></comment><comment><USER11> "Your graphics card does not seem to support WebGL".

I've never failed to run WebGL before. Using chrome on mac.

<comment><AUTHOR> That's odd - same sort of configuration as me (Chrome 51 on a pretty old iMac)

Fairly recent version of Chrome I presume? Other WebGL apps still run ok?

<comment><USER11> Huh, actually other WebGL demos aren't working for me now.

I'm on chrome 53 and chrome://gpu/ says: "WebGL: Hardware accelerated" but canvas.getContext('webgl') returns null.

Anyway, I can run it nicely in firefox.

<comment><AUTHOR> Interesting. I _think_ Chrome blacklists some GPUs and drivers occasionally so maybe that's what happened. Glad it works ok on Firefox and thanks for the feedback.

</comment></comment></comment></comment><comment><USER12> "Waiting for syndication.twitter.com"

...and this is where I click the close button. No, you will not use me for racking up your whatever.

</comment><comment><USER13> Cool map! Is that coded with Cesium?

<comment><AUTHOR> No although that's a really great SDK. It uses three.js and plain old JavaScript.</comment></comment>


Slate Wars - will any of these rival the iPad? - <AUTHOR> http://www.cio.com/article/589760/Slate_Wars_15_Tablets_That_Could_Rival_Apple_s_iPad

<comment><USER2> Odd that they're missing the WePad (<http://www.wepad.mobi/en>), which seems like one of the more serious contenders to me. Maybe I'm just being taken in by the hype, but they seem to have quite an impressive product on display.</comment>


Easy to Use Drag&Drop HTML Email Editor - <AUTHOR> https://topol.io <comment><USER2> Email should probably be plain text. Early 2000s style emails aren't really popular. But good luck.

<comment><USER3> You're right, not popular at all: [https://sumo.com/stories/mailchimp- marketing](https://sumo.com/stories/mailchimp-marketing)

</comment></comment><comment><USER4> Does this use GrapesJS?

<comment><AUTHOR> We have our own solution based on Vue.JS</comment></comment>


SEC Files Fraud Charges in Bitcoin and Office Space Investment Schemes - <AUTHOR> https://www.sec.gov/litigation/litreleases/2017/lr23870.htm <comment><USER2> This is unrelated to the article, but I'm interested to hear thoughts on this:

As bitcoin becomes more valuable and ransomware / money laundering becomes more prevalent, why not blacklist coins that have been through a mixer? If you can't mix the coins, you can't launder them. It won't be possible to use Bitcoin for these activities anymore.

Here's what I mean by "blacklist": If an exchange detects that your account has received more than N bitcoins that have been through a mixer, your account is closed and your coins are refunded. It's easy to check whether a coin has been through e.g. bitcoinfog, for example, so this is easy to implement.

I think a lot of the resistance to this idea comes from people who use Silk Road clones, most of which force you to use a mixer. And while there's a strong ethical argument to be made that Silk Road ought to exist and that it's made the world safer, there are other types of activities that have been growing with concerning frequency in the Bitcoin world.

The sole reason that Bitcoin is untraceable is because of mixers. Is it time to eliminate them? What are some consequences of pursuing this strategy?

There's nothing stopping it from happening. As soon as a few exchanges become so large that they're the "gatekeepers" for BTC -> USD conversion, it will be difficult to get dollars out. And if other countries follow suit for euros and yen, then mixed Bitcoins won't be worth much.

As far as I can tell, this is a very real possibility for the future, so if it has consequences then we should discuss them now. The era of "pay for everything in bitcoin" is sufficiently far away that we should probably talk about the implications of banning mixed coins.

EDIT: Ok, I've exhausted my self-control for complaining about downvotes. This is a genuine, good-faith question that I spent time crafting. If you don't come to HN to have your preconceptions challenged, then what are we doing here?

And no, people can't troll others by sending them mixed coins. It's no different than the fraud detection that exists today. You'd need tens of thousands of USD to even put a dent in a business account, for example, and exchanges will just forgive it.

I think people don't like the future I've painted, and hence the downvotes. It doesn't bother me much, but it's an interesting phenomenon to see unfold.

<comment><USER3> Fungibility of the coins is a differentiating competitive advantage of bitcoin over, say, PayPal.

Blacklisting coins leads to regulation, which leads to government control, etc. Soon I can't send money to someone in China because the Chinese government blocks coins that were used for something that they don't like.

The system quickly falls apart and becomes much less useful.

<comment><USER4> Regulation and government control is what sillysaurus3 is after: he specifically mentioned ransomware and money laundering as the goal.

If Bitcoin's advantage over PayPal is ransomware, that isn't an advantage governments will tolerate for very long, and why should they? Bans would be popular with the voters.

<comment><USER5> They might be popular. Just completely ineffective.

<comment><USER4> To ban Bitcoin you just have to ban fiat transfers to exchanges, something banks can easily do.

<comment><USER5> And that would take the banning of any instrument like a gift card. How exactly do you think you could do that?

<comment><USER4> They don't need to ban all Bitcoin trading to effectively wipe it out as a significant source of money laundering. Gift cards are not what money launderers want because they are hard work to turn back into real cash. What are you expecting people to do - post giant packages of iTunes gift cards to China in order to buy BTC?

I think a lot of bitcoiners are in denial about how reliant the system is on tolerance by the authorities. If you can't move money in any significant quantity to exchanges then ransomware usages will go away (along with other usages). Even if residual trading by hard-core users continues it won't be at a scale that is large enough to care about.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> We had one of the bar works locations here in miami suddenly shut down last week. Few tenants ever signed up, and the staff weren't even informed the place was shutting down.

<comment><USER7> >We had one of the bar works locations here in miami suddenly shut down last week. Few tenants ever signed up, and the staff weren't even informed the place was shutting down.

This is the number one reason I want nothing to do with Bitcoin. The technology is new and amazing and incredibly exciting, but people are awful as ever. The industry is full of shady characters looking to make a buck any way possible. And anything that touches it tends to fall into the same category.

I'm certain it will be successful in the long run though. There will always be those willing to take the risk.

<comment><USER8> The fact that cryptocurrency keeps showing up alongside scams certainly does not bode well for the legitimacy of cryptocurrency, and by extension it does not bode well for the stability or overall value.

One of the biggest flaws with cryptocurrency is that for all its mathematical and structural elegance, it rolls back almost all of the features that mitigate fraudulent human behaviors.

<comment><USER9> > One of the biggest flaws with cryptocurrency is that for all its > mathematical and structural elegance, it rolls back almost all of the > features that mitigate fraudulent human behaviors.

Those aren't flaws; those are _features_.

Bitcoin was meant to serve a very small number of people attempting to evade the laws surrounding currency exchange.

The fact that it could be propagated as a pyramid scheme (mining gets vastly more expensive the later you "buy in") was marketing genius.

<comment><USER5> Err no. Bitcoin was invented as a hedge against inflation. It is delivering on exactly this promise in spades.

</comment></comment></comment></comment></comment><comment><USER10> I don't get it. The alleged Haddow is intelligent and capable enough to raise 37 million, yet chooses to do it illegally? Why not just use your talents and be legit? Human behavior baffles me sometimes.

<comment><USER11> I don't know why you assume those tasks are similar in difficulty. In general, if you don't factor in the chance of getting caught, it's easier to make money with a an illegal scheme than a legal one. Nobody would break the law if it weren't so.

<comment><USER10> I can't reply to all comments, so since you posted first I'm replying here...

It's a minor thing to learn a criminal skill that lets you con your way into a couple thousand dollars. The combination of knowledge, connections, moxie, and motivation to raise an ill gotten _37 million dollars_ are another thing entirely. Not anyone can just say "oh sure I'll lie my way to 37 million". Given the skills, time, and dedication it must have taken to get this far by a person with these talents, could have been used to be reasonably successful in a whole host of careers or ventures. Perhaps not 37 million effective, but enough to live comfortably and happy for sure, without the constant fear of the long arm of the law creeping up behind you at any moment.

</comment></comment></comment><comment><USER12> It seems that Renwick Haddow is well known for previous scams.[1][2]

[1] [http://www.redd-monitor.org/2017/01/17/bar-works-the- return-...](http://www.redd-monitor.org/2017/01/17/bar-works-the-return-of- renwick-haddow/) [2] [http://www.worldpolicy.org/journal/spring2015/catch-and- rele...](http://www.worldpolicy.org/journal/spring2015/catch-and-release)

</comment><comment><USER13> One of many SEC rulings to come for the crypto space.

<comment><USER14> Seems less related to crypto and more related to good old scamming. The only thing crypto is the company pitch which is not where the SEC had a problem.

<comment><USER15> I'd change the title to 'SEC Files Fraud Charges Against Renwick Haddow'.

<comment><USER3> The SEC is clearly trying to send a message that is watching the crypto space by titling the press release as such.

<comment><USER5> The only thing related to crypto was the use of a crypto name.

</comment></comment></comment></comment></comment><comment><USER16> Bitcoin can be easily tracked. If they make the exchanges refuse to accept coins that have been through a mixer / laundered then everything is trivially trackable.

Even dollar bills can in theory be marked and tracked. Each one has its own number, it's just that they aren't registered on a global ledger. The real advantage of bitcoin was that no one can block your payment or confiscate your money.

But once it's trackable, they can keep a list of "blacklisted" coins which regulated exchanges will refuse to cash out for things. And which will make it hard to pay for actual stuff (eg expedia via BitPay) with them.

</comment><comment><USER17> Monero is the answer to this problem

</comment><comment><USER5> Pretty sure the only relationship that scam had to do with bitcoin is that the name was used in order to bamboozle investors.

</comment><comment><USER12> _Bar Works primarily sold leases coupled with sub-leases that together functioned like investment notes. The company also allegedly sold leases for more workspaces than actually existed in at least two locations._

Classic non-Bitcoin type of scam. The SEC sends people to jail for that sort of thing regularly.

<comment><USER18> _> The SEC sends people to jail for that sort of thing regularly._

Not being pedantic here, just a side note. The SEC actually doesn't have the power to send people to jail. They can only file civil actions. In this case, a parallel (but separate) criminal action was filed by the US Attorney's office, which is the only entity that can bring federal criminal charges.

This is an important distinction, because the standard of proof is lower in civil cases, and there are SEC violations that simply aren't criminal in nature. Accordingly, most conduct that draws the ire of the SEC doesn't actually get criminally prosecuted, nor does all such conduct necessarily deserve it. There are many arcane securities laws (some dating back to the 1920's) that are easy to unintentionally violate.

</comment></comment><comment><USER19> Anybody know if the SEC has looked into last week's Ethereum flash crash?

<comment><USER20> Why would they? It's not a "security".

</comment></comment><comment><USER21> ICO is the new IPO. ICOs will ultimately replace IPOs. Bitcoin is the perfect medium for speculative value. LOL. Enough said.</comment>


Raymarching Distance Fields (2013) - <AUTHOR> http://9bitscience.blogspot.com/2013/07/raymarching-distance-fields_14.html <comment><USER2> I've been using this exact technique over the past couple of weeks (it's addictive). If you're wondering what's new in this field, what caught my attention the most is the appearance of visual SDF/raymarching editors.

These are all node-based environments that allow you to visually create raymarching shaders and integrate them with other stuff. The main ones seem to be in development for Unity and Unreal Engine, and there's also the "field trip" pack for vvvv.

These are great for making the technique more accessible. That being said, I think wouldn't use them for anything more than prototyping or exploration right now. GPUs are still too weak for this, and creative optimization tricks are very useful and often only achievable with plain old programming.

I'll just leave my favorite raymarched shader of 2018 so far: [https://www.shadertoy.com/view/4sVczV](https://www.shadertoy.com/view/4sVczV)

</comment><comment><USER3> I wrote an article on how to ray march distance fields in concert with rasterization in Unity. If anyone's interested check it out: [http://flafla2.github.io/2016/10/01/raymarching.html](http://flafla2.github.io/2016/10/01/raymarching.html)

At SIGGRAPH this year, I also saw this raymarching toolkit that takes the idea to a production-ready setting: [https://kev.town/raymarching- toolkit/](https://kev.town/raymarching-toolkit/)

A cool example of the power of raymarching is the ability to raymarch complex mathematical forms much more easily than with mesh-based methods, and with infinite resolution. Here's a cool paper on raymarching quaternion julia sets: [https://www.cs.cmu.edu/~kmcrane/Projects/QuaternionJulia/](https://www.cs.cmu.edu/~kmcrane/Projects/QuaternionJulia/)</comment>


Uber Knowingly Leased Unsafe Cars to Drivers - <AUTHOR> https://www.wsj.com/articles/smoke-then-fire-uber-knowingly-leased-unsafe-cars-to-drivers-1501786430 <comment><USER2> More & more, Uber's conduct reads like a case study in when the culture of "it's better to ask forgiveness" goes too far, and begins inculcating a culture of "it's not wrong if you don't get caught"

<comment><USER3> Which really makes me hope that the Uber Elevate concept is smoke and mirrors, and they aren't going to try and disrupt their way through aviation regulations.

<comment><USER4> The paper is optimistic (to say the least), but it does appear they intend to fly under part 135 (on-demand charter), which is the "following the FAA rules" way to approach it.

I think they're dreaming if they expect to get part 135 pilot requirements waived/lessened because of their augmentation systems. Not for a long, long time.

</comment></comment></comment><comment><USER5> Uber looks like they are becoming the Comcast of ride sharing. The largest player in the space with some competition. But, instead of bad customer service its questionable morals. Also, a small vocal group will hate it.

<comment><USER6> I think at this point, Comcast is the injured party here, given recent customer service quality that they've given me.

<comment><USER7> When I was buying a house and researching what isps were available they were really nice to deal with. Ultimately had to go with Frontier... which has been... interesting.

<comment><USER8> So you live in a place where there is actual competition.

<comment><USER7> Not really. I can have fiber that's not utilized (Frontier) or cable with awful data caps and poor upload speeds (Comcast). Nearby there are a lot more options but since I'm in between two cities, I kinda get screwed. Good news though, Frontier will sell me gigabit for the low price of 299 if I'll take only 100mbps upload.

</comment></comment></comment></comment></comment><comment><USER9> Once Uber runs out of money to burn they will be no better than your average taxi, and probably more expensive. As more stories like this come out, it's becoming apparent they will be worse.

</comment><comment><USER10> I'm not a lawyer, but... isn't this attempted manslaughter at the very least? They knowingly put lives in danger for personal profit and gain, so clearly the motive is there.

<comment><USER11> Sounds more like (gross) negligence as they weren't actually /trying/ to hurt someone, just didn't do what they should have to prevent it.

<comment><USER12> Unintentionally killing somebody is manslaughter. I guess there is no such thing as 'attempted manslaughter', unlike murder.

If somebody had died it could have been manslaughter.

<comment><USER13> The law school answer is "there is no attempted manslaughter", but in some states, it really does exist due to statute. Example: [https://www.justia.com/criminal/docs/calcrim/500/603.html](https://www.justia.com/criminal/docs/calcrim/500/603.html)

</comment></comment></comment></comment><comment><USER14> Do rental car companies take cars off the road that have recall notices on them? I think there are always recall notices going out, but I don't know what the legal responsibilities are for car rental companies to take cars off the road for every single recall issue, especially in a foreign country like Singapore.

<comment><USER15> In the US, it is illegal to rent out cars with active recalls, but only since June 2016 [1]. The bill was named for some of the only people I can find who were injured or killed by a recalled rental car - two sisters who died in 2004 when the PT Cruiser they rented caught fire. (if you want to read an infuriating story about rental car corporations, this really is one). [2]

1: [https://www.nhtsa.gov/press-releases/effective-today-new- fed...](https://www.nhtsa.gov/press-releases/effective-today-new-federal-law- recalled-rental-cars-protects-consumers-vehicle) 2: [http://www.carconsumers.org/saferentalcaract.htm](http://www.carconsumers.org/saferentalcaract.htm)

<comment><USER16> > (if you want to read an infuriating story about rental car corporations, > this really is one)

Notwithstanding that it shouldn't take legislation to "don't rent out cars under active recall for profit until repaired", even the linked article hardly sounds "infuriating" about rental providers:

"In a commendable move, the rental car industry, including Enterprise, Hertz, Avis, Dollar- thrifty, Alamo, National, and the American Car Rental Association, as well as many smaller rental car companies, helped persuade lawmakers to vote for the Act, and worked alongside Cally Houck, Consumers for Auto Reliability and Safety, and other supporters for passage of the new law. General Motors and Honda broke ranks with other auto manufacturers and also supported the bill"

<comment><USER17> Sometimes businesses like regulation, because it levels the playing field. It can be hard to do what you know is morally right, if it affects your bottom line and you have to justify the decision to your shareholders.

I don't know, but the fact that many automakers didn't support the law implies that the new law might have triggered some contractual terms between automakers and fleet owners around loss of use ...

</comment></comment></comment></comment><comment><USER18> Reminds me of this video from the 70s/80s about Ford knowingly distributing an unsafe car - "Milton Friedman on Ford not recalling the ford pinto"

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

</comment><comment><USER19> Pass the paywall: [https://t.co/fU9VRQUpiw](https://t.co/fU9VRQUpiw)

<comment><USER20> Thanks for that. I couldn't figure out how to get around the paywall.

</comment></comment><comment><USER21> regulators and law makers need to step in and shut it down

</comment><comment><USER22> This is their MO. Growth at any cause. Passengers get raped? Oh well. Tell them it was fake! There was that story where they hired a known convicted rapist in India, who then raped a passenger, and then Uber executives tried to discredit the victim and say it didn't happen. [https://www.theguardian.com/technology/2017/jun/15/uber- indi...](https://www.theguardian.com/technology/2017/jun/15/uber-india-woman- rape-lawsuit)

Unable to read the article linked, but this is Classic Uber and the reason that capitalism needs more regulations. Cars catch fire? Oopsies!

Companies like Uber should not be allowed to operate at this insane "growth at any cost". It's not functional. It's not human. They can't be bothered to do background checks on drivers or safety checks on cars. They shouldn't be allowed to operate.

<comment><USER23> > Tell them it was fake! There was that story where they hired a known > convicted rapist in India, who then raped a passenger, and then Uber > executives tried to discredit the victim.

No they did not. They tried to procure her medical records to verify whether the rape claim was true. They never actively discredited the victim.

There's plenty of stuff to hate Uber for without you making up outrage.

<comment><USER24> They _succeeded_ in procuring her medical records. They then accused her of being a shill for a competitor. I think that's perfectly reasonable to summarize as "tried to discredit the victim." If anything, it's putting things a bit too mildly, since it fails to mention that obtaining her medical records was itself illegal and immoral.

</comment></comment></comment><comment><USER25> Seriously, this company is just plain evil. Can't we just be rid of them already?

<comment><USER26> Of course. Anything or anybody else you want us to get rid of, Mr. Chris?</comment></comment>


Thinking Outside the Square: Landscape and Portrait Formats on Instagram - <AUTHOR> http://blog.instagram.com/post/127722429412/150827-portrait-and-landscape

<comment><USER2> Isn't it kind of absurd that this is news?

On one hand, I totally get it that a multibillion dollar company is altering one of the defining aspects of its user experience, and that's a really big deal. But if you erase that context, it's also a little ridiculous.

My mind is also drawn to making a parallel with struggling Twitter, where you have "essays" composed of indexed sequences of 1-2 sentence thoughts and where people resort to taking screenshots to make quotations of other content. At some point, you have to wonder if the medium is still serving the content as well as it could. Will they be bold/risky enough to break out of their arbitrary constraints?

<comment><USER3> Just like you said, a multibillion dollar company is changing a defining feature. Does that not seem newsworthy?

<comment><USER2> It does, and I feel I acknowledged that. I just wonder if it says something about our economy as a whole that something so trivial could be so important. I'm a huge fan of the progression toward simplification, represented by Instagram, Twitter, etc. over the incumbents they displaced. I just think the missing piece is how to also provide basic adaptability without sacrificing that core of simplicity.

</comment></comment></comment><comment><USER4> Personally, I think this is the wrong decision. I prefer freedom of photo dimensions/format, but on the other hand keeping photos on IG restricted to square crops gave them more personality on a social media format. We can already upload photos of whatever size/crop onto Twitter, Facebook, etc.

</comment><comment><USER5> It is not that I especially fear change, but when it comes to services like Instagram, you don't want to mess up your secret sauce. This reminds me of when Coke changed their recipe and churned away vast swathes of their customer base. Is this feature creep? If it is feature creep, then users should be able to 'peel back' advanced options like this instead of being bombarded with choice when they take a photo.

</comment><comment><USER6> YAY! I started on instagram not too long ago... and being forced into the square was my number 1 problem with their service... I think this is going to be great!

</comment><comment><USER7> I've often wondered if youtube should abandon the fight and allow for portrait videos. After all, a lot of viewers are probably on mobile where they'd rather view it in portrait orientation anyway.

<comment><USER8> Portrait videos don't work properly on mobile though. When you fullscreen the video, it forces your screen horizontal leaving massive black bars on either side.

<comment><USER9> Not anymore: [http://www.androidpolice.com/2015/07/21/our-long-national- ni...](http://www.androidpolice.com/2015/07/21/our-long-national-nightmare-is- over-youtube-on-android-now-shows-vertical-videos-properly-in-full-screen/)

</comment></comment></comment><comment><USER10> Or they should have used Masonry in the first place :-/ Now that I have no reason to play the 1:1 game, I can go back to loooong photos that work better everywhere else.</comment>